nuxeo-development-framework 3.7.5 → 3.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +134 -37
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +5 -5
  4. package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
  5. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +2 -2
  6. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +2 -2
  7. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +7 -2
  8. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +36 -9
  9. package/esm2015/lib/components/notifications/notifications.module.js +8 -4
  10. package/esm2015/lib/components/notifications/notifications.service.js +65 -2
  11. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +2 -2
  12. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
  13. package/esm2015/lib/shared-services/global-admin.service.js +1 -1
  14. package/fesm2015/nuxeo-development-framework.js +113 -17
  15. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  16. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +2 -1
  17. package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +7 -1
  18. package/lib/components/notifications/notifications.module.d.ts +2 -1
  19. package/lib/components/notifications/notifications.service.d.ts +15 -0
  20. package/package.json +1 -1
@@ -1,13 +1,15 @@
1
- import { Component, EventEmitter, Output, ViewEncapsulation } from "@angular/core";
1
+ import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../notifications.service";
4
4
  import * as i2 from "@angular/common";
5
5
  import * as i3 from "../../../../Core/services/translation/translation.service";
6
- import * as i4 from "@angular/material/list";
7
- import * as i5 from "../notification-item/notification-item.component";
8
- import * as i6 from "@angular/material/progress-spinner";
9
- import * as i7 from "ngx-infinite-scroll";
10
- import * as i8 from "@ngx-translate/core";
6
+ import * as i4 from "@angular/material/menu";
7
+ import * as i5 from "@angular/material/slide-toggle";
8
+ import * as i6 from "@angular/material/list";
9
+ import * as i7 from "../notification-item/notification-item.component";
10
+ import * as i8 from "@angular/material/progress-spinner";
11
+ import * as i9 from "ngx-infinite-scroll";
12
+ import * as i10 from "@ngx-translate/core";
11
13
  /**
12
14
  * Notifications Modal Component
13
15
  */
@@ -17,6 +19,7 @@ export class NotificationsListComponent {
17
19
  this.ref = ref;
18
20
  this.datePipe = datePipe;
19
21
  this.translationService = translationService;
22
+ this.showFilters = false;
20
23
  this.listItemClick = new EventEmitter();
21
24
  this._itemHeight = 79;
22
25
  this._divider = true;
@@ -88,6 +91,7 @@ export class NotificationsListComponent {
88
91
  }
89
92
  ngOnInit() {
90
93
  this.changeContentBasedOnUserLang();
94
+ this.notificationsService.pageSize = this.showFilters ? 30 : 15;
91
95
  }
92
96
  markAllAsRead() {
93
97
  this.notificationsService.markAllAsRead();
@@ -146,9 +150,27 @@ export class NotificationsListComponent {
146
150
  this.isArabic = ar;
147
151
  });
148
152
  }
153
+ stop(event) {
154
+ event.stopPropagation();
155
+ }
156
+ selectFilterType(event, type) {
157
+ // event.stopPropagation();
158
+ this.notificationsService.selectedFilterType = type;
159
+ // front end filtering;
160
+ console.log(this.notifications);
161
+ this.trigger.closeMenu();
162
+ this.notificationsService.setNotifications(this.notificationsService.filterNotifications(this.notificationsService.storedNotifications));
163
+ }
164
+ changeReadFilter(event) {
165
+ // event.stopPropagation();
166
+ this.notificationsService.isReaded = event.checked;
167
+ // front end filtering
168
+ console.log(this.notifications);
169
+ this.notificationsService.setNotifications(this.notificationsService.filterNotifications(this.notificationsService.storedNotifications));
170
+ }
149
171
  }
150
172
  NotificationsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsListComponent, deps: [{ token: i1.NotificationsService }, { token: i0.ChangeDetectorRef }, { token: i2.DatePipe }, { token: i3.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
151
- NotificationsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: NotificationsListComponent, selector: "app-notifications-list", outputs: { listItemClick: "listItemClick" }, host: { classAttribute: "notification-list" }, ngImport: i0, template: "<div class=\"toolbar\">\r\n <div class=\"title\">\r\n <div>{{ \"notifications.notifications\" | translate }}</div>\r\n </div>\r\n <div class=\"flex justify-end\">\r\n <button\r\n mat-button\r\n (click)=\"markAllAsRead()\"\r\n size=\"small\"\r\n fill=\"none\"\r\n class=\"markAllAsRead-btn\"\r\n >\r\n {{ \"notifications.markAllAsRead\" | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n<!-- [matTooltip]=\"'notifications.markAllAsRead' | translate\"\r\n [matTooltipPosition]=\"'before'\" -->\r\n<div *ngIf=\"!notifications?.length\" class=\"no-notifications\">\r\n <p *ngIf=\"!notificationsService.loading\">\r\n {{ \"notifications.noNotifications\" | translate }}\r\n </p>\r\n <p *ngIf=\"notificationsService.loading\">\r\n {{ \"notifications.loading_notification\" | translate }}\r\n </p>\r\n</div>\r\n<div\r\n infiniteScroll\r\n [scrollWindow]=\"false\"\r\n [infiniteScrollDistance]=\"scrollDistance\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n (scrolled)=\"onScrollDown()\"\r\n class=\"notifications-container scroll\"\r\n>\r\n <mat-list class=\"\">\r\n <ng-container\r\n *ngFor=\"\r\n let notification of notifications;\r\n let i = index;\r\n trackBy: trackBy\r\n \"\r\n >\r\n <!-- <mat-divider class=\"marginize\"></mat-divider> -->\r\n <app-notification-item\r\n (click)=\"openNotification(notification)\"\r\n (update)=\"onUpdate($event)\"\r\n [notification]=\"notification\"\r\n [isArabic]=\"isArabic\"\r\n ></app-notification-item>\r\n </ng-container>\r\n <div\r\n *ngIf=\"loading\"\r\n style=\"display: grid; place-items: center; margin-top: 10px\"\r\n >\r\n <mat-spinner [diameter]=\"48\" style=\"margin: 0 auto\"></mat-spinner>\r\n </div>\r\n </mat-list>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}:host{height:100%;position:relative}.toolbar{background-image:linear-gradient(to right,#0dbab5,#1a96c6);display:flex;justify-content:space-between;align-items:center;color:#fff;font-weight:700;padding:.25rem 1.5rem}.toolbar .title{font-size:1.125rem;line-height:1.75rem;display:flex;align-items:center}.toolbar .markAllAsRead-btn{background:none;border:none;margin:0;padding:0;cursor:pointer;font-size:.75rem;line-height:1rem;display:flex;align-items:center;color:#fff}.no-notifications{margin-top:1.25rem;display:flex;justify-content:center;align-items:center}.no-notifications p{text-align:center;color:#b4bac6}.notifications-container{height:100%;overflow:scroll}.notifications-container ::-webkit-scrollbar{width:8px}.notifications-container mat-list{padding:16px;display:grid;grid-row-gap:8px;row-gap:8px}.scroll::-webkit-scrollbar-thumb{background-color:#d9dce2}div[scrollx=true],div[scrolly=true]{position:relative;overflow:hidden;max-height:80vh}div[scrollx=true] ::-webkit-scrollbar,div[scrolly=true] ::-webkit-scrollbar{display:none}div[scrollx=true]{overflow-x:auto}div[scrolly=true]{overflow-y:auto}ion-toolbar{min-height:40px;height:40px;--min-height: 40px;box-shadow:0 0 1px 1px #cbcbcb}ion-toolbar ion-title{height:14px;font-size:13px;font-weight:bold}ion-toolbar ion-button{font-size:12px;letter-spacing:0px}ion-item-divider{--background: rgba(var(--ion-color-light-rgb), 1);color:#666}\n"], components: [{ type: i4.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i5.NotificationItemComponent, selector: "app-notification-item", inputs: ["notification", "isArabic"], outputs: ["update"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i8.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
173
+ NotificationsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: NotificationsListComponent, selector: "app-notifications-list", inputs: { showFilters: "showFilters" }, outputs: { listItemClick: "listItemClick" }, host: { classAttribute: "notification-list" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["filterTypeMenuTrigger"], descendants: true }], ngImport: i0, template: "<div class=\"toolbar\">\r\n <div class=\"title\">\r\n <div>{{ \"notifications.notifications\" | translate }}</div>\r\n </div>\r\n <div class=\"flex justify-end\">\r\n <button\r\n mat-button\r\n (click)=\"markAllAsRead()\"\r\n size=\"small\"\r\n fill=\"none\"\r\n class=\"markAllAsRead-btn\"\r\n >\r\n {{ \"notifications.markAllAsRead\" | translate }}\r\n </button>\r\n <ng-container *ngIf=\"showFilters\">\r\n <div class=\"type-filter\">\r\n <button (click)=\"stop($event)\" class=\"type-filter-trigger\"\r\n [matMenuTriggerFor]=\"filterTypeMenu\" #filterTypeMenuTrigger=\"matMenuTrigger\">\r\n {{'notifications.' + notificationsService.selectedFilterType.name | translate}} \r\n <span class=\"icon icon-chevron-down\"></span>\r\n </button>\r\n <mat-menu class=\"new-menu-design\" #filterTypeMenu=\"matMenu\" >\r\n <div (click)=\"stop($event)\">\r\n <div class=\"single-menu-action notification-filter-menu-item\" *ngFor=\"let type of notificationsService.types\" (click)=\"selectFilterType($event ,type)\">\r\n {{'notifications.' + type.name | translate}}\r\n </div>\r\n </div>\r\n </mat-menu>\r\n <div class=\"notification-toggle\" (click)=\"stop($event)\">\r\n <mat-slide-toggle [checked]=\"notificationsService.isReaded\" (change)=\"changeReadFilter($event)\">{{'notifications.Readed' | translate }}</mat-slide-toggle>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </div>\r\n</div>\r\n<!-- [matTooltip]=\"'notifications.markAllAsRead' | translate\"\r\n [matTooltipPosition]=\"'before'\" -->\r\n<div *ngIf=\"!notifications?.length\" class=\"no-notifications\">\r\n <p *ngIf=\"!notificationsService.loading\">\r\n {{ \"notifications.noNotifications\" | translate }}\r\n </p>\r\n <p *ngIf=\"notificationsService.loading\">\r\n {{ \"notifications.loading_notification\" | translate }}\r\n </p>\r\n</div>\r\n<div\r\n infiniteScroll\r\n [scrollWindow]=\"false\"\r\n [infiniteScrollDistance]=\"scrollDistance\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n (scrolled)=\"onScrollDown()\"\r\n class=\"notifications-container scroll\"\r\n>\r\n <mat-list class=\"\">\r\n <ng-container\r\n *ngFor=\"\r\n let notification of notifications;\r\n let i = index;\r\n trackBy: trackBy\r\n \"\r\n >\r\n <!-- <mat-divider class=\"marginize\"></mat-divider> -->\r\n <app-notification-item\r\n (click)=\"openNotification(notification)\"\r\n (update)=\"onUpdate($event)\"\r\n [notification]=\"notification\"\r\n [isArabic]=\"isArabic\"\r\n ></app-notification-item>\r\n </ng-container>\r\n <div\r\n *ngIf=\"loading\"\r\n style=\"display: grid; place-items: center; margin-top: 10px\"\r\n >\r\n <mat-spinner [diameter]=\"48\" style=\"margin: 0 auto\"></mat-spinner>\r\n </div>\r\n </mat-list>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}:host{height:100%;position:relative}.toolbar{background-image:linear-gradient(to right,#0dbab5,#1a96c6);display:flex;justify-content:space-between;align-items:center;color:#fff;font-weight:700;padding:.25rem 1.5rem}.toolbar .title{font-size:1.125rem;line-height:1.75rem;display:flex;align-items:center}.toolbar .markAllAsRead-btn{background:none;border:none;margin:0;padding:0;cursor:pointer;font-size:.75rem;line-height:1rem;display:flex;align-items:center;color:#fff}.no-notifications{margin-top:1.25rem;display:flex;justify-content:center;align-items:center}.no-notifications p{text-align:center;color:#b4bac6}.notifications-container{height:100%;overflow:scroll}.notifications-container ::-webkit-scrollbar{width:8px}.notifications-container mat-list{padding:16px;display:grid;grid-row-gap:8px;row-gap:8px}.scroll::-webkit-scrollbar-thumb{background-color:#d9dce2}div[scrollx=true],div[scrolly=true]{position:relative;overflow:hidden;max-height:80vh}div[scrollx=true] ::-webkit-scrollbar,div[scrolly=true] ::-webkit-scrollbar{display:none}div[scrollx=true]{overflow-x:auto}div[scrolly=true]{overflow-y:auto}ion-toolbar{min-height:40px;height:40px;--min-height: 40px;box-shadow:0 0 1px 1px #cbcbcb}ion-toolbar ion-title{height:14px;font-size:13px;font-weight:bold}ion-toolbar ion-button{font-size:12px;letter-spacing:0px}ion-item-divider{--background: rgba(var(--ion-color-light-rgb), 1);color:#666}\n"], components: [{ type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i6.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i7.NotificationItemComponent, selector: "app-notification-item", inputs: ["notification", "isArabic"], outputs: ["update"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }], pipes: { "translate": i10.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
152
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsListComponent, decorators: [{
153
175
  type: Component,
154
176
  args: [{
@@ -158,7 +180,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
158
180
  host: { class: "notification-list" },
159
181
  encapsulation: ViewEncapsulation.None
160
182
  }]
161
- }], ctorParameters: function () { return [{ type: i1.NotificationsService }, { type: i0.ChangeDetectorRef }, { type: i2.DatePipe }, { type: i3.TranslationService }]; }, propDecorators: { listItemClick: [{
183
+ }], ctorParameters: function () { return [{ type: i1.NotificationsService }, { type: i0.ChangeDetectorRef }, { type: i2.DatePipe }, { type: i3.TranslationService }]; }, propDecorators: { showFilters: [{
184
+ type: Input
185
+ }], trigger: [{
186
+ type: ViewChild,
187
+ args: ['filterTypeMenuTrigger']
188
+ }], listItemClick: [{
162
189
  type: Output
163
190
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtbGlzdC9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBS2pIOztHQUVHO0FBUUgsTUFBTSxPQUFPLDBCQUEwQjtJQXdDckMsWUFDUyxvQkFBMEMsRUFDekMsR0FBc0IsRUFDdkIsUUFBa0IsRUFDakIsa0JBQXNDO1FBSHZDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDekMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNqQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBMUNoRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJbkMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFPakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQU9oQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBT1osV0FBTSxHQUFHLHFCQUFxQixDQUFDO1FBUS9CLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixtQkFBYyxHQUFHLENB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QUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gXCIuLi8uLi9ub3RpZmljYXRpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIE5vdGlmaWNhdGlvbnMgTW9kYWwgQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtbm90aWZpY2F0aW9ucy1saXN0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vbm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGhvc3Q6IHsgY2xhc3M6IFwibm90aWZpY2F0aW9uLWxpc3RcIiB9LFxyXG4gIGVuY2Fwc3VsYXRpb24gOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpXHJcbiAgbGlzdEl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBnZXQgbm90aWZpY2F0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLm5vdGlmaWNhdGlvbnM7XHJcbiAgfVxyXG4gIF9pdGVtSGVpZ2h0ID0gNzk7XHJcbiAgZ2V0IGl0ZW1IZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtSGVpZ2h0O1xyXG4gIH1cclxuICBzZXQgaXRlbUhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9pdGVtSGVpZ2h0ID0gdmFsdWU7XHJcbiAgfVxyXG4gIF9kaXZpZGVyID0gdHJ1ZTtcclxuICBnZXQgZGl2aWRlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXZpZGVyO1xyXG4gIH1cclxuICBzZXQgZGl2aWRlcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGl2aWRlciA9IHZhbHVlO1xyXG4gIH1cclxuICBfYWxsID0gdHJ1ZTtcclxuICBnZXQgYWxsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbDtcclxuICB9XHJcbiAgc2V0IGFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYWxsID0gdmFsdWU7XHJcbiAgfVxyXG4gIF90aXRsZSA9IFwibm90aWZpY2F0aW9ucy50aXRsZVwiO1xyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xyXG4gIH1cclxuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGl0bGUgPSB2YWx1ZTtcclxuICB9XHJcbiAgaXNBcmFiaWM7XHJcbiAgdGhyb3R0bGUgPSAzMDA7XHJcbiAgc2Nyb2xsRGlzdGFuY2UgPSA3O1xyXG4gIHNjcm9sbFVwRGlzdGFuY2UgPSAyO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBoYXNNb3JlID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBub3RpZmljYXRpb25zU2VydmljZTogTm90aWZpY2F0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZVxyXG4gICkge31cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlQ29udGVudEJhc2VkT25Vc2VyTGFuZygpO1xyXG4gIH1cclxuICBtYXJrQWxsQXNSZWFkKCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5tYXJrQWxsQXNSZWFkKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikge1xyXG4gICAgaWYgKG5vdGlmaWNhdGlvbi5zdGF0dXMgPT09IFwiVU5fUkVBRFwiIHx8IG5vdGlmaWNhdGlvbi5zdGF0dXMgPT09IFwiTkVXXCIpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS51cGRhdGVTdGF0dXMobm90aWZpY2F0aW9uLCB0cnVlKTtcclxuICAgIH1cclxuICAgIHRoaXMubGlzdEl0ZW1DbGljay5uZXh0KG5vdGlmaWNhdGlvbik7XHJcbiAgICAvLyBkbyBzb21ldGhpbmcgd2hlbiBub3RpZmljYXRpb24gY2xpY2tlZFxyXG4gIH1cclxuICBvblVwZGF0ZShkYXRhKSB7XHJcbiAgICBpZiAoZGF0YS5ub3RpZmljYXRpb24pIHtcclxuICAgICAgc3dpdGNoIChkYXRhLmFjdGlvbikge1xyXG4gICAgICAgIGNhc2UgXCJkZWxldGVcIjpcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZGVsZXRlTm90aWZpY2F0aW9uKGRhdGEubm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJzdGF0dXNcIjpcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlU3RhdHVzKGRhdGEubm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRyYWNrQnkoaW5kZXgsIGl0ZW0pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuICBoYW5kbGVPcGVuKGl0ZW0pIHtcclxuICAgIC8vIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlU3RhdHVzKGl0ZW0sIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgY29tcGFyZURhdGUgPSAoaXRlbSwgaXRlbUluZGV4LCBpdGVtcykgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmRpdmlkZXIpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBpdGVtRGF0ZSA9IG5ldyBEYXRlKGl0ZW0uc2VuZERhdGUpO1xyXG4gICAgY29uc3QgaXNUb2RheSA9XHJcbiAgICAgIGl0ZW1EYXRlLmdldERhdGUoKSA9PT0gdG9kYXkuZ2V0RGF0ZSgpICYmXHJcbiAgICAgIGl0ZW1EYXRlLmdldE1vbnRoKCkgPT09IHRvZGF5LmdldE1vbnRoKCkgJiZcclxuICAgICAgaXRlbURhdGUuZ2V0RnVsbFllYXIoKSA9PT0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IHByZXZJdGVtID0gaXRlbXNbaXRlbUluZGV4IC0gMV07XHJcbiAgICBsZXQgaXNQcmV2VG9kYXkgPSAwO1xyXG4gICAgaWYgKHByZXZJdGVtKSB7XHJcbiAgICAgIGNvbnN0IE5leHRJdGVtRGF0ZSA9IG5ldyBEYXRlKHByZXZJdGVtLnNlbmREYXRlKTtcclxuICAgICAgaXNQcmV2VG9kYXkgPVxyXG4gICAgICAgIE5leHRJdGVtRGF0ZS5nZXREYXRlKCkgPT09IHRvZGF5LmdldERhdGUoKSAmJlxyXG4gICAgICAgIE5leHRJdGVtRGF0ZS5nZXRNb250aCgpID09PSB0b2RheS5nZXRNb250aCgpICYmXHJcbiAgICAgICAgTmV4dEl0ZW1EYXRlLmdldEZ1bGxZZWFyKCkgPT09IHRvZGF5LmdldEZ1bGxZZWFyKClcclxuICAgICAgICAgID8gMlxyXG4gICAgICAgICAgOiAxO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc1RvZGF5ICYmIChpc1ByZXZUb2RheSA9PT0gMCB8fCBpc1ByZXZUb2RheSA9PT0gMikpIHtcclxuICAgICAgcmV0dXJuIFwibm90aWZpY2F0aW9ucy5lYXJsaWVyXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNUb2RheSAmJiAoaXNQcmV2VG9kYXkgPT09IDAgfHwgaXNQcmV2VG9kYXkgPT09IDEpKSB7XHJcbiAgICAgIHJldHVybiBcIm5vdGlmaWNhdGlvbnMubmV3XCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xyXG5cclxuICBnZXRJdGVtSGVpZ2h0ID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbUhlaWdodDtcclxuICB9O1xyXG5cclxuICBnb1RvRGV0YWlscyhub3RpZmljYXRpb24pIHt9XHJcblxyXG4gIG9uU2Nyb2xsRG93bigpIHtcclxuICAgIGlmICh0aGlzLmhhc01vcmUpIHtcclxuICAgICAgdGhpcy5mZXRjaE1vcmUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZmV0Y2hNb3JlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZmV0Y2hOb3RpZmljYXRpb25zKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZGF0YVtcIml0ZW1zXCJdLmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgIGRhdGFbXCJpdGVtc1wiXS5sZW5ndGggPCB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnBhZ2VTaXplXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuaGFzTW9yZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5yZXNldCgpO1xyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIC8vICB0aGlzLm1vZGFsQ29udHJvbGxlci5kaXNtaXNzKCk7XHJcbiAgfVxyXG4gIGNoYW5nZUNvbnRlbnRCYXNlZE9uVXNlckxhbmcoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUoKGFyKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSBhcjtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgPGRpdj57eyBcIm5vdGlmaWNhdGlvbnMubm90aWZpY2F0aW9uc1wiIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmRcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAoY2xpY2spPVwibWFya0FsbEFzUmVhZCgpXCJcclxuICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICBjbGFzcz1cIm1hcmtBbGxBc1JlYWQtYnRuXCJcclxuICAgID5cclxuICAgICAge3sgXCJub3RpZmljYXRpb25zLm1hcmtBbGxBc1JlYWRcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48IS0tIFttYXRUb29sdGlwXT1cIidub3RpZmljYXRpb25zLm1hcmtBbGxBc1JlYWQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCInYmVmb3JlJ1wiIC0tPlxyXG48ZGl2ICpuZ0lmPVwiIW5vdGlmaWNhdGlvbnM/Lmxlbmd0aFwiIGNsYXNzPVwibm8tbm90aWZpY2F0aW9uc1wiPlxyXG4gIDxwICpuZ0lmPVwiIW5vdGlmaWNhdGlvbnNTZXJ2aWNlLmxvYWRpbmdcIj5cclxuICAgIHt7IFwibm90aWZpY2F0aW9ucy5ub05vdGlmaWNhdGlvbnNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvcD5cclxuICA8cCAqbmdJZj1cIm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmxvYWRpbmdcIj5cclxuICAgIHt7IFwibm90aWZpY2F0aW9ucy5sb2FkaW5nX25vdGlmaWNhdGlvblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9wPlxyXG48L2Rpdj5cclxuPGRpdlxyXG4gIGluZmluaXRlU2Nyb2xsXHJcbiAgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiXHJcbiAgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwic2Nyb2xsRGlzdGFuY2VcIlxyXG4gIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cInRocm90dGxlXCJcclxuICAoc2Nyb2xsZWQpPVwib25TY3JvbGxEb3duKClcIlxyXG4gIGNsYXNzPVwibm90aWZpY2F0aW9ucy1jb250YWluZXIgc2Nyb2xsXCJcclxuPlxyXG4gIDxtYXQtbGlzdCBjbGFzcz1cIlwiPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdGb3I9XCJcclxuICAgICAgICBsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgbGV0IGkgPSBpbmRleDtcclxuICAgICAgICB0cmFja0J5OiB0cmFja0J5XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gPG1hdC1kaXZpZGVyIGNsYXNzPVwibWFyZ2luaXplXCI+PC9tYXQtZGl2aWRlcj4gLS0+XHJcbiAgICAgIDxhcHAtbm90aWZpY2F0aW9uLWl0ZW1cclxuICAgICAgICAoY2xpY2spPVwib3Blbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pXCJcclxuICAgICAgICAodXBkYXRlKT1cIm9uVXBkYXRlKCRldmVudClcIlxyXG4gICAgICAgIFtub3RpZmljYXRpb25dPVwibm90aWZpY2F0aW9uXCJcclxuICAgICAgICBbaXNBcmFiaWNdPVwiaXNBcmFiaWNcIlxyXG4gICAgICA+PC9hcHAtbm90aWZpY2F0aW9uLWl0ZW0+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJsb2FkaW5nXCJcclxuICAgICAgc3R5bGU9XCJkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBtYXJnaW4tdG9wOiAxMHB4XCJcclxuICAgID5cclxuICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI0OFwiIHN0eWxlPVwibWFyZ2luOiAwIGF1dG9cIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtbGlzdD5cclxuPC9kaXY+XHJcbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtbGlzdC9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7OztBQU1uSTs7R0FFRztBQVFILE1BQU0sT0FBTywwQkFBMEI7SUEyQ3JDLFlBQ1Msb0JBQTBDLEVBQ3pDLEdBQXNCLEVBQ3ZCLFFBQWtCLEVBQ2pCLGtCQUFzQztRQUh2Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQ3pDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQTlDekMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHM0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSW5DLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBT2pCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFPaEIsU0FBSSxHQUFHLElBQUksQ0FBQztRQU9aLFdBQU0sR0FBRyxxQkFBcUIs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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gXCIuLi8uLi9ub3RpZmljYXRpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcblxyXG4vKipcclxuICogTm90aWZpY2F0aW9ucyBNb2RhbCBDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1ub3RpZmljYXRpb25zLWxpc3RcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgaG9zdDogeyBjbGFzczogXCJub3RpZmljYXRpb24tbGlzdFwiIH0sXHJcbiAgZW5jYXBzdWxhdGlvbiA6IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuQElucHV0KCkgc2hvd0ZpbHRlcnMgPSBmYWxzZTtcclxuQFZpZXdDaGlsZCgnZmlsdGVyVHlwZU1lbnVUcmlnZ2VyJykgdHJpZ2dlcjogTWF0TWVudVRyaWdnZXI7XHJcbiAgQE91dHB1dCgpXHJcbiAgbGlzdEl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBnZXQgbm90aWZpY2F0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLm5vdGlmaWNhdGlvbnM7XHJcbiAgfVxyXG4gIF9pdGVtSGVpZ2h0ID0gNzk7XHJcbiAgZ2V0IGl0ZW1IZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtSGVpZ2h0O1xyXG4gIH1cclxuICBzZXQgaXRlbUhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9pdGVtSGVpZ2h0ID0gdmFsdWU7XHJcbiAgfVxyXG4gIF9kaXZpZGVyID0gdHJ1ZTtcclxuICBnZXQgZGl2aWRlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXZpZGVyO1xyXG4gIH1cclxuICBzZXQgZGl2aWRlcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGl2aWRlciA9IHZhbHVlO1xyXG4gIH1cclxuICBfYWxsID0gdHJ1ZTtcclxuICBnZXQgYWxsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbDtcclxuICB9XHJcbiAgc2V0IGFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYWxsID0gdmFsdWU7XHJcbiAgfVxyXG4gIF90aXRsZSA9IFwibm90aWZpY2F0aW9ucy50aXRsZVwiO1xyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xyXG4gIH1cclxuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGl0bGUgPSB2YWx1ZTtcclxuICB9XHJcbiAgaXNBcmFiaWM7XHJcbiAgdGhyb3R0bGUgPSAzMDA7XHJcbiAgc2Nyb2xsRGlzdGFuY2UgPSA3O1xyXG4gIHNjcm9sbFVwRGlzdGFuY2UgPSAyO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBoYXNNb3JlID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgbm90aWZpY2F0aW9uc1NlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2VcclxuICApIHt9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUNvbnRlbnRCYXNlZE9uVXNlckxhbmcoKTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UucGFnZVNpemUgPSB0aGlzLnNob3dGaWx0ZXJzID8gMzAgOiAxNTtcclxuICB9XHJcbiAgbWFya0FsbEFzUmVhZCgpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UubWFya0FsbEFzUmVhZCgpO1xyXG4gIH1cclxuXHJcbiAgb3Blbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgIGlmIChub3RpZmljYXRpb24uc3RhdHVzID09PSBcIlVOX1JFQURcIiB8fCBub3RpZmljYXRpb24uc3RhdHVzID09PSBcIk5FV1wiKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlU3RhdHVzKG5vdGlmaWNhdGlvbiwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxpc3RJdGVtQ2xpY2submV4dChub3RpZmljYXRpb24pO1xyXG4gICAgLy8gZG8gc29tZXRoaW5nIHdoZW4gbm90aWZpY2F0aW9uIGNsaWNrZWRcclxuICB9XHJcbiAgb25VcGRhdGUoZGF0YSkge1xyXG4gICAgaWYgKGRhdGEubm90aWZpY2F0aW9uKSB7XHJcbiAgICAgIHN3aXRjaCAoZGF0YS5hY3Rpb24pIHtcclxuICAgICAgICBjYXNlIFwiZGVsZXRlXCI6XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmRlbGV0ZU5vdGlmaWNhdGlvbihkYXRhLm5vdGlmaWNhdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwic3RhdHVzXCI6XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnVwZGF0ZVN0YXR1cyhkYXRhLm5vdGlmaWNhdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICB0cmFja0J5KGluZGV4LCBpdGVtKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcbiAgaGFuZGxlT3BlbihpdGVtKSB7XHJcbiAgICAvLyB0aGlzLm1vZGFsQ29udHJvbGxlci5kaXNtaXNzKCk7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnVwZGF0ZVN0YXR1cyhpdGVtLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIGNvbXBhcmVEYXRlID0gKGl0ZW0sIGl0ZW1JbmRleCwgaXRlbXMpID0+IHtcclxuICAgIGlmICghdGhpcy5kaXZpZGVyKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgaXRlbURhdGUgPSBuZXcgRGF0ZShpdGVtLnNlbmREYXRlKTtcclxuICAgIGNvbnN0IGlzVG9kYXkgPVxyXG4gICAgICBpdGVtRGF0ZS5nZXREYXRlKCkgPT09IHRvZGF5LmdldERhdGUoKSAmJlxyXG4gICAgICBpdGVtRGF0ZS5nZXRNb250aCgpID09PSB0b2RheS5nZXRNb250aCgpICYmXHJcbiAgICAgIGl0ZW1EYXRlLmdldEZ1bGxZZWFyKCkgPT09IHRvZGF5LmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBwcmV2SXRlbSA9IGl0ZW1zW2l0ZW1JbmRleCAtIDFdO1xyXG4gICAgbGV0IGlzUHJldlRvZGF5ID0gMDtcclxuICAgIGlmIChwcmV2SXRlbSkge1xyXG4gICAgICBjb25zdCBOZXh0SXRlbURhdGUgPSBuZXcgRGF0ZShwcmV2SXRlbS5zZW5kRGF0ZSk7XHJcbiAgICAgIGlzUHJldlRvZGF5ID1cclxuICAgICAgICBOZXh0SXRlbURhdGUuZ2V0RGF0ZSgpID09PSB0b2RheS5nZXREYXRlKCkgJiZcclxuICAgICAgICBOZXh0SXRlbURhdGUuZ2V0TW9udGgoKSA9PT0gdG9kYXkuZ2V0TW9udGgoKSAmJlxyXG4gICAgICAgIE5leHRJdGVtRGF0ZS5nZXRGdWxsWWVhcigpID09PSB0b2RheS5nZXRGdWxsWWVhcigpXHJcbiAgICAgICAgICA/IDJcclxuICAgICAgICAgIDogMTtcclxuICAgIH1cclxuICAgIGlmICghaXNUb2RheSAmJiAoaXNQcmV2VG9kYXkgPT09IDAgfHwgaXNQcmV2VG9kYXkgPT09IDIpKSB7XHJcbiAgICAgIHJldHVybiBcIm5vdGlmaWNhdGlvbnMuZWFybGllclwiO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVG9kYXkgJiYgKGlzUHJldlRvZGF5ID09PSAwIHx8IGlzUHJldlRvZGF5ID09PSAxKSkge1xyXG4gICAgICByZXR1cm4gXCJub3RpZmljYXRpb25zLm5ld1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfTtcclxuXHJcbiAgZ2V0SXRlbUhlaWdodCA9ICgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1IZWlnaHQ7XHJcbiAgfTtcclxuXHJcbiAgZ29Ub0RldGFpbHMobm90aWZpY2F0aW9uKSB7fVxyXG5cclxuICBvblNjcm9sbERvd24oKSB7XHJcbiAgICBpZiAodGhpcy5oYXNNb3JlKSB7XHJcbiAgICAgIHRoaXMuZmV0Y2hNb3JlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZldGNoTW9yZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZmV0Y2hOb3RpZmljYXRpb25zKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZGF0YVtcIml0ZW1zXCJdLmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgICAgZGF0YVtcIml0ZW1zXCJdLmxlbmd0aCA8IHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UucGFnZVNpemVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuaGFzTW9yZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5yZXNldCgpO1xyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIC8vICB0aGlzLm1vZGFsQ29udHJvbGxlci5kaXNtaXNzKCk7XHJcbiAgfVxyXG4gIGNoYW5nZUNvbnRlbnRCYXNlZE9uVXNlckxhbmcoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUoKGFyKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSBhcjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0b3AoZXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0RmlsdGVyVHlwZShldmVudCAsIHR5cGUpe1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNlbGVjdGVkRmlsdGVyVHlwZSA9IHR5cGU7XHJcbiAgICAvLyBmcm9udCBlbmQgZmlsdGVyaW5nO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5ub3RpZmljYXRpb25zKTtcclxuICAgIHRoaXMudHJpZ2dlci5jbG9zZU1lbnUoKTtcclxuICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5zZXROb3RpZmljYXRpb25zKHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZmlsdGVyTm90aWZpY2F0aW9ucyh0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnN0b3JlZE5vdGlmaWNhdGlvbnMpKSA7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VSZWFkRmlsdGVyKGV2ZW50KXtcclxuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5pc1JlYWRlZCA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICAvLyBmcm9udCBlbmQgZmlsdGVyaW5nXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLm5vdGlmaWNhdGlvbnMpO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5zZXROb3RpZmljYXRpb25zKHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZmlsdGVyTm90aWZpY2F0aW9ucyh0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnN0b3JlZE5vdGlmaWNhdGlvbnMpKSA7XHJcbiAgfVxyXG4gIFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b29sYmFyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICA8ZGl2Pnt7IFwibm90aWZpY2F0aW9ucy5ub3RpZmljYXRpb25zXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZFwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtYnV0dG9uXHJcbiAgICAgIChjbGljayk9XCJtYXJrQWxsQXNSZWFkKClcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgIGNsYXNzPVwibWFya0FsbEFzUmVhZC1idG5cIlxyXG4gICAgPlxyXG4gICAgICB7eyBcIm5vdGlmaWNhdGlvbnMubWFya0FsbEFzUmVhZFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RmlsdGVyc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHlwZS1maWx0ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzdG9wKCRldmVudClcIiBjbGFzcz1cInR5cGUtZmlsdGVyLXRyaWdnZXJcIlxyXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJmaWx0ZXJUeXBlTWVudVwiICNmaWx0ZXJUeXBlTWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiPlxyXG4gICAgICAgIHt7J25vdGlmaWNhdGlvbnMuJyArIG5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNlbGVjdGVkRmlsdGVyVHlwZS5uYW1lIHwgdHJhbnNsYXRlfX0gXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGljb24tY2hldnJvbi1kb3duXCI+PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG1hdC1tZW51IGNsYXNzPVwibmV3LW1lbnUtZGVzaWduXCIgI2ZpbHRlclR5cGVNZW51PVwibWF0TWVudVwiID5cclxuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInN0b3AoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLW1lbnUtYWN0aW9uIG5vdGlmaWNhdGlvbi1maWx0ZXItbWVudS1pdGVtXCIgKm5nRm9yPVwibGV0IHR5cGUgb2Ygbm90aWZpY2F0aW9uc1NlcnZpY2UudHlwZXNcIiAoY2xpY2spPVwic2VsZWN0RmlsdGVyVHlwZSgkZXZlbnQgLHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAge3snbm90aWZpY2F0aW9ucy4nICsgdHlwZS5uYW1lIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi10b2dnbGVcIiAoY2xpY2spPVwic3RvcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbY2hlY2tlZF09XCJub3RpZmljYXRpb25zU2VydmljZS5pc1JlYWRlZFwiIChjaGFuZ2UpPVwiY2hhbmdlUmVhZEZpbHRlcigkZXZlbnQpXCI+e3snbm90aWZpY2F0aW9ucy5SZWFkZWQnIHwgdHJhbnNsYXRlIH19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwhLS0gW21hdFRvb2x0aXBdPVwiJ25vdGlmaWNhdGlvbnMubWFya0FsbEFzUmVhZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidiZWZvcmUnXCIgLS0+XHJcbjxkaXYgKm5nSWY9XCIhbm90aWZpY2F0aW9ucz8ubGVuZ3RoXCIgY2xhc3M9XCJuby1ub3RpZmljYXRpb25zXCI+XHJcbiAgPHAgKm5nSWY9XCIhbm90aWZpY2F0aW9uc1NlcnZpY2UubG9hZGluZ1wiPlxyXG4gICAge3sgXCJub3RpZmljYXRpb25zLm5vTm90aWZpY2F0aW9uc1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9wPlxyXG4gIDxwICpuZ0lmPVwibm90aWZpY2F0aW9uc1NlcnZpY2UubG9hZGluZ1wiPlxyXG4gICAge3sgXCJub3RpZmljYXRpb25zLmxvYWRpbmdfbm90aWZpY2F0aW9uXCIgfCB0cmFuc2xhdGUgfX1cclxuICA8L3A+XHJcbjwvZGl2PlxyXG48ZGl2XHJcbiAgaW5maW5pdGVTY3JvbGxcclxuICBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCJcclxuICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCJzY3JvbGxEaXN0YW5jZVwiXHJcbiAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwidGhyb3R0bGVcIlxyXG4gIChzY3JvbGxlZCk9XCJvblNjcm9sbERvd24oKVwiXHJcbiAgY2xhc3M9XCJub3RpZmljYXRpb25zLWNvbnRhaW5lciBzY3JvbGxcIlxyXG4+XHJcbiAgPG1hdC1saXN0IGNsYXNzPVwiXCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgIGxldCBub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9ucztcclxuICAgICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICAgIHRyYWNrQnk6IHRyYWNrQnlcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPCEtLSA8bWF0LWRpdmlkZXIgY2xhc3M9XCJtYXJnaW5pemVcIj48L21hdC1kaXZpZGVyPiAtLT5cclxuICAgICAgPGFwcC1ub3RpZmljYXRpb24taXRlbVxyXG4gICAgICAgIChjbGljayk9XCJvcGVuTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbilcIlxyXG4gICAgICAgICh1cGRhdGUpPVwib25VcGRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgW25vdGlmaWNhdGlvbl09XCJub3RpZmljYXRpb25cIlxyXG4gICAgICAgIFtpc0FyYWJpY109XCJpc0FyYWJpY1wiXHJcbiAgICAgID48L2FwcC1ub3RpZmljYXRpb24taXRlbT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxyXG4gICAgICBzdHlsZT1cImRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbi10b3A6IDEwcHhcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cIjQ4XCIgc3R5bGU9XCJtYXJnaW46IDAgYXV0b1wiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1saXN0PlxyXG48L2Rpdj5cclxuIl19
@@ -17,6 +17,7 @@ import { MatBadgeModule } from '@angular/material/badge';
17
17
  import { MatToolbarModule } from '@angular/material/toolbar';
18
18
  import { NotificationToastComponent } from './components/notification-toast/notification-toast.component';
19
19
  import { PipesModule } from '../../pipes/pipes.module';
20
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
20
21
  import * as i0 from "@angular/core";
21
22
  /** @ignore */
22
23
  export class NotificationsModule {
@@ -39,7 +40,8 @@ NotificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
39
40
  InfiniteScrollModule,
40
41
  MatBadgeModule,
41
42
  TranslateModule,
42
- MatToolbarModule], exports: [NotificationsListComponent,
43
+ MatToolbarModule,
44
+ MatSlideToggleModule], exports: [NotificationsListComponent,
43
45
  NotificationsButtonComponent,
44
46
  NotificationItemComponent,
45
47
  NotificationOptionsComponent] });
@@ -60,7 +62,8 @@ NotificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
60
62
  InfiniteScrollModule,
61
63
  MatBadgeModule,
62
64
  TranslateModule,
63
- MatToolbarModule
65
+ MatToolbarModule,
66
+ MatSlideToggleModule
64
67
  ]] });
65
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsModule, decorators: [{
66
69
  type: NgModule,
@@ -79,7 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
79
82
  InfiniteScrollModule,
80
83
  MatBadgeModule,
81
84
  TranslateModule,
82
- MatToolbarModule
85
+ MatToolbarModule,
86
+ MatSlideToggleModule
83
87
  ],
84
88
  declarations: [
85
89
  NotificationsListComponent,
@@ -106,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
106
110
  ],
107
111
  }]
108
112
  }] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHdCQUF3QixHQUN6QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRXZELGNBQWM7QUEwQ2QsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQXZCNUIsMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsNEJBQTRCO1FBQzVCLDBCQUEwQixhQXBCMUIsWUFBWTtRQUNaLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsYUFBYTtRQUNiLFdBQVc7UUFDWCxhQUFhO1FBQ2IsYUFBYTtRQUNiLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQixhQVVoQiwwQkFBMEI7UUFDMUIsNEJBQTRCO1FBQzVCLHlCQUF5QjtRQUN6Qiw0QkFBNEI7aUhBYW5CLG1CQUFtQixhQVhuQjtRQUNULFFBQVE7UUFDUixvQkFBb0I7S0FDckIsWUFoQ1E7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2IsV0FBVztZQUNYLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLHdCQUF3QjtZQUN4QixnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsZ0JBQWdCO1NBQ2pCOzJGQXlCVSxtQkFBbUI7a0JBekMvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3dCQUM1Qix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsMEJBQTBCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3dCQUMxQiw0QkFBNEI7d0JBQzVCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3FCQUM3QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsUUFBUTt3QkFDUixvQkFBb0I7cUJBQ3JCO29CQUNELGVBQWUsRUFBRTt3QkFDZiwwQkFBMEI7d0JBQzFCLDRCQUE0Qjt3QkFDNUIseUJBQXlCO3dCQUN6Qiw0QkFBNEI7cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1pdGVtL25vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLW9wdGlvbnMvbm90aWZpY2F0aW9uLW9wdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb25zLWJ1dHRvbi9ub3RpZmljYXRpb25zLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb25zLWxpc3Qvbm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRQcm9ncmVzc1NwaW5uZXIsXHJcbiAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xyXG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi10b2FzdC9ub3RpZmljYXRpb24tdG9hc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xyXG5cclxuLyoqIEBpZ25vcmUgKi9cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxyXG4gICAgTWF0QmFkZ2VNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRUb29sYmFyTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE5vdGlmaWNhdGlvbnNMaXN0Q29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uc0J1dHRvbkNvbXBvbmVudCxcclxuICAgIE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQsXHJcbiAgICBOb3RpZmljYXRpb25PcHRpb25zQ29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uVG9hc3RDb21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOb3RpZmljYXRpb25zTGlzdENvbXBvbmVudCxcclxuICAgIE5vdGlmaWNhdGlvbnNCdXR0b25Db21wb25lbnQsXHJcbiAgICBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uT3B0aW9uc0NvbXBvbmVudCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRGF0ZVBpcGUsXHJcbiAgICBOb3RpZmljYXRpb25zU2VydmljZSxcclxuICBdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgTm90aWZpY2F0aW9uc0xpc3RDb21wb25lbnQsXHJcbiAgICBOb3RpZmljYXRpb25zQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCxcclxuICAgIE5vdGlmaWNhdGlvbk9wdGlvbnNDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNNb2R1bGUge31cclxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHdCQUF3QixHQUN6QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXRFLGNBQWM7QUEyQ2QsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQXZCNUIsMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsNEJBQTRCO1FBQzVCLDBCQUEwQixhQXJCMUIsWUFBWTtRQUNaLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsYUFBYTtRQUNiLFdBQVc7UUFDWCxhQUFhO1FBQ2IsYUFBYTtRQUNiLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixvQkFBb0IsYUFVcEIsMEJBQTBCO1FBQzFCLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsNEJBQTRCO2lIQWFuQixtQkFBbUIsYUFYbkI7UUFDVCxRQUFRO1FBQ1Isb0JBQW9CO0tBQ3JCLFlBakNRO1lBQ1AsWUFBWTtZQUNaLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZix3QkFBd0I7WUFDeEIsZ0JBQWdCO1lBQ2hCLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixvQkFBb0I7U0FDckI7MkZBeUJVLG1CQUFtQjtrQkExQy9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixvQkFBb0I7cUJBQ3JCO29CQUNELFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLDRCQUE0Qjt3QkFDNUIseUJBQXlCO3dCQUN6Qiw0QkFBNEI7d0JBQzVCLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3dCQUM1Qix5QkFBeUI7d0JBQ3pCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULFFBQVE7d0JBQ1Isb0JBQW9CO3FCQUNyQjtvQkFDRCxlQUFlLEVBQUU7d0JBQ2YsMEJBQTBCO3dCQUMxQiw0QkFBNEI7d0JBQzVCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3FCQUM3QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24taXRlbS9ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25PcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1vcHRpb25zL25vdGlmaWNhdGlvbi1vcHRpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWF0UHJvZ3Jlc3NTcGlubmVyLFxyXG4gIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcclxuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Ub2FzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24tdG9hc3Qvbm90aWZpY2F0aW9uLXRvYXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xyXG5cclxuLyoqIEBpZ25vcmUgKi9cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxyXG4gICAgTWF0QmFkZ2VNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTm90aWZpY2F0aW9uc0xpc3RDb21wb25lbnQsXHJcbiAgICBOb3RpZmljYXRpb25zQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCxcclxuICAgIE5vdGlmaWNhdGlvbk9wdGlvbnNDb21wb25lbnQsXHJcbiAgICBOb3RpZmljYXRpb25Ub2FzdENvbXBvbmVudCxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIE5vdGlmaWNhdGlvbnNMaXN0Q29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uc0J1dHRvbkNvbXBvbmVudCxcclxuICAgIE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQsXHJcbiAgICBOb3RpZmljYXRpb25PcHRpb25zQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxyXG4gIF0sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbXHJcbiAgICBOb3RpZmljYXRpb25zTGlzdENvbXBvbmVudCxcclxuICAgIE5vdGlmaWNhdGlvbnNCdXR0b25Db21wb25lbnQsXHJcbiAgICBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxyXG4gICAgTm90aWZpY2F0aW9uT3B0aW9uc0NvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uc01vZHVsZSB7fVxyXG4iXX0=
@@ -37,6 +37,20 @@ export class NotificationsService {
37
37
  this.profile = { id: this.nuxeoService.nuxeoClient.user.id };
38
38
  this.systemLang = "";
39
39
  this.loading = false;
40
+ this.selectedFilterType = {
41
+ name: 'all',
42
+ id: 'all'
43
+ };
44
+ this.isReaded = false;
45
+ this.showFilters = false;
46
+ this.types = [
47
+ { name: 'all', id: 'all' },
48
+ { name: 'correspondence', id: 'correspondence' },
49
+ { name: 'assignment', id: 'assignment' },
50
+ { name: 'workspace', id: 'corrWorkspace' },
51
+ { name: 'approvals', id: 'approval' }
52
+ ];
53
+ this.storedNotifications = []; // to store all notification in it so when filtering not losing all data
40
54
  if (this.profile.id) {
41
55
  this.getCount().subscribe(() => {
42
56
  this.connect();
@@ -62,10 +76,16 @@ export class NotificationsService {
62
76
  }
63
77
  reset() {
64
78
  this._notifications = [];
79
+ this.storedNotifications = [];
65
80
  this._notificationsCount = 0;
66
81
  }
67
82
  resetNotifications() {
68
83
  this._notifications = [];
84
+ this.storedNotifications = [];
85
+ }
86
+ resetFilterParams() {
87
+ this.selectedFilterType = { name: 'all', id: 'all' };
88
+ this.isReaded = false;
69
89
  }
70
90
  fetchNotifications() {
71
91
  this.loading = true;
@@ -81,7 +101,13 @@ export class NotificationsService {
81
101
  }).pipe(map((notifications) => {
82
102
  this.loading = false;
83
103
  if (notifications.items) {
84
- this._notifications = this._notifications.concat(notifications.items);
104
+ if (this.showFilters) {
105
+ this.storedNotifications = this.storedNotifications.concat(notifications.items);
106
+ this._notifications = this._notifications.concat(this.filterNotifications(notifications.items));
107
+ }
108
+ else {
109
+ this._notifications = this._notifications.concat(notifications.items);
110
+ }
85
111
  return notifications;
86
112
  }
87
113
  else {
@@ -90,10 +116,44 @@ export class NotificationsService {
90
116
  }
91
117
  }), catchError(() => {
92
118
  this._notifications = [];
119
+ this.storedNotifications = [];
93
120
  this.loading = false;
94
121
  return [];
95
122
  }));
96
123
  }
124
+ // filter notifcations in front end according to the selected filters
125
+ filterNotifications(notifications) {
126
+ let filteredNotifications = [];
127
+ if (this.selectedFilterType.name === 'all') {
128
+ if (this.isReaded) {
129
+ // find readed notifications on all types of notifications
130
+ return this.findReadOrUnReadedNotification('READ', notifications);
131
+ }
132
+ else {
133
+ // find un readed notifications on all types of notifications
134
+ return this.findReadOrUnReadedNotification('UN_READ', notifications);
135
+ }
136
+ }
137
+ else {
138
+ let requiredState = this.isReaded ? 'READ' : 'UN_READ';
139
+ notifications.map(notification => {
140
+ if (notification.sourceType === this.selectedFilterType.id && notification.status === requiredState) {
141
+ filteredNotifications.push(notification);
142
+ }
143
+ });
144
+ return filteredNotifications;
145
+ }
146
+ }
147
+ // find a notification according to its state READ or UN_READ
148
+ findReadOrUnReadedNotification(state, notifications) {
149
+ let statedNotifications = [];
150
+ notifications.map(notification => {
151
+ if (notification.status === state) {
152
+ statedNotifications.push(notification);
153
+ }
154
+ });
155
+ return statedNotifications;
156
+ }
97
157
  resetCount() {
98
158
  this._notificationsCount = 0;
99
159
  }
@@ -283,6 +343,9 @@ export class NotificationsService {
283
343
  myCachable = this.intializationService.decriptFormating(myCachable);
284
344
  return myCachable['access_token'];
285
345
  }
346
+ setNotifications(notifications) {
347
+ this._notifications = notifications;
348
+ }
286
349
  }
287
350
  NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsService, deps: [{ token: i1.HttpClient }, { token: i2.Router }, { token: i3.NuxeoService }, { token: i4.KeycloakService }, { token: i5.CookieService }, { token: i6.LocalStoragService }, { token: i7.InitializationService }, { token: i8.TranslationService }, { token: "environment" }], target: i0.ɵɵFactoryTarget.Injectable });
288
351
  NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsService });
@@ -292,4 +355,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
292
355
  type: Inject,
293
356
  args: ["environment"]
294
357
  }] }]; } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sb0JBQW9CO0lBeUIvQixZQUNVLElBQWdCLEVBQ2pCLE1BQWMsRUFDZCxZQUEwQixFQUN6QixRQUF5QixFQUN6QixhQUE2QixFQUM3QixXQUFnQyxFQUNoQyxvQkFBNEMsRUFDNUMsa0JBQXNDLEVBQ2YsV0FBVztRQVJsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBakM1QyxnQkFBVyxHQUFHLElBQUks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Q1osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsVUFBVSxHQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RSxPQUFPLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsQyxDQUFDOztpSEEzU1Usb0JBQW9CLG1RQWtDckIsYUFBYTtxSEFsQ1osb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQW1DTixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tIFwia2V5Y2xvYWstYW5ndWxhclwiO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcHVibGlzaFJlcGxheSwgcmVmQ291bnQgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0ICogYXMgU29ja0pTIGZyb20gXCJzb2NranMtY2xpZW50XCI7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gXCIuLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2VcIjtcclxuaW1wb3J0ICogYXMgU3RvbXAgZnJvbSBcIndlYnN0b21wLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnU2VydmljZSB9IGZyb20gXCIuLi8uLi9Db3JlL3NlcnZpY2VzL2xvY2FsU3RvcmFnL2xvY2FsLXN0b3JhZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9Db3JlL3NlcnZpY2VzL2luaXRpYWxpemF0aW9uL2luaXRpYWxpemF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIHtcclxuICBzdG9tcENsaWVudCA9IG51bGw7XHJcbiAgc3Vic2NyaWJlciA9IG51bGw7XHJcbiAgY29ubmVjdGlvbjogUHJvbWlzZTxhbnk+O1xyXG4gIGNvbm5lY3RlZFByb21pc2U6IGFueSA9IG51bGw7XHJcbiAgbGlzdGVuZXJPYnNlcnZlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgdXBkYXRlOiBSZXBsYXlTdWJqZWN0PGFueT4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcclxuICBhbHJlYWR5Q29ubmVjdGVkT25jZSA9IGZhbHNlO1xyXG4gIHBhZ2VTaXplID0gMTU7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdG9tcC5TdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgX25vdGlmaWNhdGlvbnMgPSBbXTtcclxuICBnZXQgbm90aWZpY2F0aW9ucygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25vdGlmaWNhdGlvbnM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25vdGlmaWNhdGlvbnNDb3VudCA9IDA7XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX25vdGlmaWNhdGlvbnNDb3VudDtcclxuICB9XHJcbiAgYmFzZSA9IFwiXCI7XHJcbiAgcHJvZmlsZSA9IHsgaWQ6IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIuaWQgfTtcclxuICBzeXN0ZW1MYW5nID0gXCJcIjtcclxuICBsYW5nQ2hhbmdlZDogYm9vbGVhbjtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGtleWNsb2FrOiBLZXljbG9ha1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2UgOiBDb29raWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZyA6IExvY2FsU3RvcmFnU2VydmljZSxcclxuICAgIHByaXZhdGUgaW50aWFsaXphdGlvblNlcnZpY2UgOiBJbml0aWFsaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChcImVudmlyb25tZW50XCIpIHByaXZhdGUgZW52aXJvbm1lbnRcclxuICApIHtcclxuICAgIGlmICh0aGlzLnByb2ZpbGUuaWQpIHtcclxuICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0KCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnJlc2V0Tm90aWZpY2F0aW9ucygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldENvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9Db3VudE5ldyh0aGlzLnByb2ZpbGUuaWQpLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNDb3VudCA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy51cGRhdGUubmV4dCgpO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICByZXNldE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgfVxyXG4gIGZldGNoTm90aWZpY2F0aW9ucygpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5nZXROb3RpZmljYXRpb25zKHRoaXMucHJvZmlsZS5pZCwge1xyXG4gICAgICBwYWdlOlxyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMubGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyBNYXRoLmNlaWwodGhpcy5fbm90aWZpY2F0aW9ucy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKVxyXG4gICAgICAgICAgOiAwLFxyXG4gICAgICBzaXplOiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBwYWdlZDogdHJ1ZSxcclxuICAgICAgc29ydDogXCJzZW5kRGF0ZSxkZXNjXCIsXHJcbiAgICAgIHNvcnRlZDogdHJ1ZSxcclxuICAgICAgbGFuZzogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudXNlckxhbmcudG9VcHBlckNhc2UoKSxcclxuICAgIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgobm90aWZpY2F0aW9uczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbnMuaXRlbXMpIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSB0aGlzLl9ub3RpZmljYXRpb25zLmNvbmNhdChub3RpZmljYXRpb25zLml0ZW1zKTtcclxuICAgICAgICAgIHJldHVybiBub3RpZmljYXRpb25zO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IFtdO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHJlc2V0Q291bnQoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICBtYXJrQWxsQXNSZWFkKCkge1xyXG4gICAgdGhpcy5kb01hcmtBbGxBc1JlYWQodGhpcy5wcm9maWxlLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnN0YXR1cyA9IFwiUkVBRFwiKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgdXBkYXRlU3RhdHVzKG5vdGlmaWNhdGlvbiwgb25PcGVuID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGJvb2wgPVxyXG4gICAgICBub3RpZmljYXRpb24uc3RhdHVzID09PSBcIlVOX1JFQURcIiB8fFxyXG4gICAgICBub3RpZmljYXRpb24uc3RhdHVzID09PSBcIk5FV1wiIHx8XHJcbiAgICAgIG9uT3BlbjtcclxuICAgIGlmIChib29sKSB7XHJcbiAgICAgIHRoaXMuZG9NYXJrQXNSZWFkKG5vdGlmaWNhdGlvbi5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBub3RpZmljYXRpb24uc3RhdHVzID0gXCJSRUFEXCI7XHJcbiAgICAgICAgdGhpcy5nZXRDb3VudCgpLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb01hcmtBc1VucmVhZChub3RpZmljYXRpb24uaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9IFwiVU5fUkVBRFwiO1xyXG4gICAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge30pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZGVsZXRlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikge1xyXG4gICAgdGhpcy5kb0RlbGV0ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLmlkID09PSBub3RpZmljYXRpb24uaWQpIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnVwZGF0ZS5uZXh0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0Tm90aWZpY2F0aW9ucyh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvYWxsLyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihlbmRwb2ludCwgeyBvYnNlcnZlOiBcInJlc3BvbnNlXCIsIHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwKSA9PiAoe1xyXG4gICAgICAgICAgdG90YWxDb3VudDogcmVzcC5oZWFkZXJzLmdldChcIngtdG90YWwtY291bnRcIiksXHJcbiAgICAgICAgICBpdGVtczogcmVzcC5ib2R5Lm1hcCgoaXRlbSkgPT4gaXRlbSksXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImdldE5vdGlmaWNhdGlvbnNcIiwgW10pKSxcclxuICAgICAgICBwdWJsaXNoUmVwbGF5KDEpLFxyXG4gICAgICAgIHJlZkNvdW50KClcclxuICAgICAgKTtcclxuICB9XHJcbiAgZG9Db3VudE5ldyh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvY291bnROZXcvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiY291bnROZXdcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvUmVzZXRDb3VudE5ldyh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvcmVzZXRDb3VudC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJyZXNldENvdW50TmV3XCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb0NvdW50VW5yZWFkKHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9jb3VudFVuUmVhZC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJjb3VudFVucmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9NYXJrQWxsQXNSZWFkKHVzZXJJZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9tYXJrQWxsQXNSZWFkLyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBbGxBc1JlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FzUmVhZChub3RpZmljYXRpb25JZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy9tYXJrQXNSZWFkLyR7bm90aWZpY2F0aW9uSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwibWFya0FzUmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9NYXJrQXNVbnJlYWQobm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FzVW5SZWFkLyR7bm90aWZpY2F0aW9uSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwibWFya0FzVW5yZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb0RlbGV0ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JZCwgcXVlcnlQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L2FwaS9zeXN0ZW0tbm90aWZpY2F0aW9ucy8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5kZWxldGU8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImRlbGV0ZU5vdGlmaWNhdGlvblwiLCBbXSkpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcjxUPihvcGVyYXRpb24gPSBcIm9wZXJhdGlvblwiLCByZXN1bHQ/OiBUKSB7XHJcbiAgICByZXR1cm4gKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgICAgLy8gVE9ETzogc2VuZCB0aGUgZXJyb3IgdG8gcmVtb3RlIGxvZ2dpbmcgaW5mcmFzdHJ1Y3R1cmVcclxuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7IC8vIGxvZyB0byBjb25zb2xlIGluc3RlYWRcclxuXHJcbiAgICAgIC8vIFRPRE86IGJldHRlciBqb2Igb2YgdHJhbnNmb3JtaW5nIGVycm9yIGZvciB1c2VyIGNvbnN1bXB0aW9uXHJcbiAgICAgIGNvbnNvbGUubG9nKGAke29wZXJhdGlvbn0gZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YCk7XHJcblxyXG4gICAgICAvLyBMZXQgdGhlIGFwcCBrZWVwIHJ1bm5pbmcgYnkgcmV0dXJuaW5nIGFuIGVtcHR5IHJlc3VsdC5cclxuICAgICAgcmVzdWx0W1wic3RhdHVzXCJdID0gZXJyb3Iuc3RhdHVzO1xyXG4gICAgICBpZiAoZXJyb3IuZXJyb3IuaGFzT3duUHJvcGVydHkoXCJtZXNzYWdlXCIpKSB7XHJcbiAgICAgICAgcmVzdWx0W1wibWVzc2FnZVwiXSA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgcmVzdWx0W1widHlwZVwiXSA9IGVycm9yLmVycm9yLnR5cGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBvZihyZXN1bHQgYXMgVCk7XHJcbiAgICB9O1xyXG4gIH1cclxuICBhc3luYyBjb25uZWN0KCkge1xyXG4gICAgaWYgKHRoaXMuY29ubmVjdGVkUHJvbWlzZSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24gPSB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oKTtcclxuICAgIH1cclxuICAgIC8vIGJ1aWxkaW5nIGFic29sdXRlIHBhdGggc28gdGhhdCB3ZWJzb2NrZXQgZG9lc24ndCBmYWlsIHdoZW4gZGVwbG95aW5nIHdpdGggYSBjb250ZXh0IHBhdGhcclxuICAgIGxldCB1cmw7XHJcbiAgICB1cmwgPSBgJHt0aGlzLmVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnN9L3dlYnNvY2tldC9la2hhYWA7IC8vdXJsXHJcbiAgICBjb25zdCBzb2NrZXQgPSBuZXcgU29ja0pTKHVybCk7XHJcbiAgICB0aGlzLnN0b21wQ2xpZW50ID0gU3RvbXAub3Zlcihzb2NrZXQpO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHtcclxuICAgICAgLy8gVXBncmFkZTogJ3dlYnNvY2tldCcsXHJcbiAgICAgIC8vIENvbm5lY3Rpb246ICdVcGdyYWRlJyxcclxuICAgICAgdG9rZW46IHRoaXMuZW52aXJvbm1lbnQubG9naW5NZXRob2QgPT09ICdudXhlbycgPyB0aGlzLmdldENhY2hhYmxlKCk6IGAke2F3YWl0IHRoaXMua2V5Y2xvYWsuZ2V0VG9rZW4oKX1gLFxyXG4gICAgfTtcclxuICAgIGlmICghdGhpcy5hbHJlYWR5Q29ubmVjdGVkT25jZSkge1xyXG4gICAgICB0aGlzLnN0b21wQ2xpZW50LmNvbm5lY3QoaGVhZGVycywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkUHJvbWlzZShcInN1Y2Nlc3NcIik7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRQcm9taXNlID0gbnVsbDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNjb25uZWN0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RvbXBDbGllbnQgIT09IG51bGwgJiYgdGhpcy5hbHJlYWR5Q29ubmVjdGVkT25jZSkge1xyXG4gICAgICB0aGlzLnN0b21wQ2xpZW50LmRpc2Nvbm5lY3QoKTtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudCA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jb25uZWN0ZWRQcm9taXNlKSB7XHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbi50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWJzY3JpYmUoKSB7XHJcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbi50aGVuKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zdG9tcENsaWVudCkge1xyXG4gICAgICAgICAgdGhpcy5zdWJzY3JpYmVyID0gdGhpcy5zdG9tcENsaWVudC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIFwiL3VzZXIvdG9waWMvbm90aWZpY2F0aW9uXCIsXHJcbiAgICAgICAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gSlNPTi5wYXJzZShkYXRhLmJvZHkpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMudW5zaGlmdChub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge30pO1xyXG4gICAgICAgICAgICAgIHRoaXMubGlzdGVuZXJPYnNlcnZlci5lbWl0KG5vdGlmaWNhdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaWJlciAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDb25uZWN0aW9uKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gKHRoaXMuY29ubmVjdGVkUHJvbWlzZSA9IHJlc29sdmUpKTtcclxuICB9XHJcblxyXG4gIHRlc3ROb3RpZmljYXRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oXCJTeXN0ZW0uTm90aWZpY2F0aW9uXCIsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnBhcmFtcyh7XHJcbiAgICAgICAgICBhcHBsaWNhdGlvbktleTogXCJjdHNuXCIsXHJcbiAgICAgICAgICBub3RpZmljYXRpb25LZXk6IFwiTm90aWZpY2F0aW9uV2hlbk91dGdvaW5nQ29ycmVzcG9uZG5lY2VBcHByb3ZlXCIsXHJcbiAgICAgICAgICBhcGlEYXRhOlxyXG4gICAgICAgICAgICAne1wiaWRcIjogXCJhN2VkNjI5ZS1jOGVhLTRlODQtOGI4My0zMjkwMDk1MTU4NzhcIixcInNjaGVtYVwiOiBcIkNvcnJlc3BvbmRlbmNlXCJ9JyxcclxuICAgICAgICAgIGRhdGE6IFwie31cIixcclxuICAgICAgICAgIGdyb3Vwc0lkOiBbXSxcclxuICAgICAgICAgIHVzZXJzSWQ6IFtcImN0c19zZWNcIl0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQoXCJhN2VkNjI5ZS1jOGVhLTRlODQtOGI4My0zMjkwMDk1MTU4NzhcIilcclxuICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENhY2hhYmxlKCl7XHJcbiAgICBsZXQgbXlDYWNoYWJsZSA9IHRoaXMuY29va2llU2VydmljZS5nZXQoJ0NNU19DQUNIQUJMRScpO1xyXG4gICAgbXlDYWNoYWJsZSA9ICB0aGlzLmludGlhbGl6YXRpb25TZXJ2aWNlLmRlY3JpcHRGb3JtYXRpbmcobXlDYWNoYWJsZSk7XHJcbiAgcmV0dXJuIG15Q2FjaGFibGVbJ2FjY2Vzc190b2tlbiddO1xyXG4gIH1cclxufVxyXG4iXX0=
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLElBQWdCLEVBQ2pCLE1BQWMsRUFDZCxZQUEwQixFQUN6QixRQUF5QixFQUN6QixhQUE2QixFQUM3QixXQUFnQyxFQUNoQyxvQkFBNEMsRUFDNUMsa0JBQXNDLEVBQ2YsV0FBVztRQVJsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBL0M1QyxnQkFBVyxHQUFHLElBQUks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QUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELFVBQVUsR0FBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWE7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQzs7aUhBM1dVLG9CQUFvQixtUUFnRHJCLGFBQWE7cUhBaERaLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFpRE4sTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSBcImtleWNsb2FrLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHB1Ymxpc2hSZXBsYXksIHJlZkNvdW50IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCAqIGFzIFNvY2tKUyBmcm9tIFwic29ja2pzLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIFN0b21wIGZyb20gXCJ3ZWJzdG9tcC1jbGllbnRcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy9sb2NhbFN0b3JhZy9sb2NhbC1zdG9yYWcuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy9pbml0aWFsaXphdGlvbi9pbml0aWFsaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XHJcbiAgc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gIHN1YnNjcmliZXIgPSBudWxsO1xyXG4gIGNvbm5lY3Rpb246IFByb21pc2U8YW55PjtcclxuICBjb25uZWN0ZWRQcm9taXNlOiBhbnkgPSBudWxsO1xyXG4gIGxpc3RlbmVyT2JzZXJ2ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwZGF0ZTogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcbiAgYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSBmYWxzZTtcclxuICBwYWdlU2l6ZSA9IDE1O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3RvbXAuU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zID0gW107XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zO1xyXG4gIH1cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIGdldCBub3RpZmljYXRpb25zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQ7XHJcbiAgfVxyXG4gIGJhc2UgPSBcIlwiO1xyXG4gIHByb2ZpbGUgPSB7IGlkOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLmlkIH07XHJcbiAgc3lzdGVtTGFuZyA9IFwiXCI7XHJcbiAgbGFuZ0NoYW5nZWQ6IGJvb2xlYW47XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRmlsdGVyVHlwZSA9IHtcclxuICAgIG5hbWU6ICdhbGwnLFxyXG4gICAgaWQgOiAnYWxsJ1xyXG4gIH07XHJcbiAgaXNSZWFkZWQgPSBmYWxzZTtcclxuICBzaG93RmlsdGVycyA9IGZhbHNlO1xyXG4gIHR5cGVzID0gW1xyXG4gICAgeyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9LFxyXG4gICAgeyBuYW1lOiAnY29ycmVzcG9uZGVuY2UnLCBpZCA6ICdjb3JyZXNwb25kZW5jZScgfSxcclxuICAgIHsgbmFtZTogJ2Fzc2lnbm1lbnQnLCBpZCA6ICdhc3NpZ25tZW50JyB9LFxyXG4gICAgeyBuYW1lOiAnd29ya3NwYWNlJywgaWQgOiAnY29ycldvcmtzcGFjZScgfSxcclxuICAgIHsgbmFtZTogJ2FwcHJvdmFscycsIGlkIDogJ2FwcHJvdmFsJyB9XHJcbiAgXVxyXG4gIHN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXSA7IC8vIHRvIHN0b3JlIGFsbCBub3RpZmljYXRpb24gaW4gaXQgc28gd2hlbiBmaWx0ZXJpbmcgbm90IGxvc2luZyBhbGwgZGF0YVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXljbG9hazogS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlIDogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWcgOiBMb2NhbFN0b3JhZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGludGlhbGl6YXRpb25TZXJ2aWNlIDogSW5pdGlhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIEBJbmplY3QoXCJlbnZpcm9ubWVudFwiKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5wcm9maWxlLmlkKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5yZXNldE5vdGlmaWNhdGlvbnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRDb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRvQ291bnROZXcodGhpcy5wcm9maWxlLmlkKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMudXBkYXRlLm5leHQoKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IFtdO1xyXG4gICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICByZXNldE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLnN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXTtcclxuICB9XHJcbiAgcmVzZXRGaWx0ZXJQYXJhbXMoKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlID0geyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9O1xyXG4gICAgdGhpcy5pc1JlYWRlZCA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBmZXRjaE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucyh0aGlzLnByb2ZpbGUuaWQsIHtcclxuICAgICAgcGFnZTpcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gTWF0aC5jZWlsKHRoaXMuX25vdGlmaWNhdGlvbnMubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSlcclxuICAgICAgICAgIDogMCxcclxuICAgICAgc2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgcGFnZWQ6IHRydWUsXHJcbiAgICAgIHNvcnQ6IFwic2VuZERhdGUsZGVzY1wiLFxyXG4gICAgICBzb3J0ZWQ6IHRydWUsXHJcbiAgICAgIGxhbmc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnVzZXJMYW5nLnRvVXBwZXJDYXNlKCksXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAoKG5vdGlmaWNhdGlvbnM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChub3RpZmljYXRpb25zLml0ZW1zKSB7XHJcbiAgICAgICAgICBpZih0aGlzLnNob3dGaWx0ZXJzKXtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gdGhpcy5zdG9yZWROb3RpZmljYXRpb25zLmNvbmNhdChub3RpZmljYXRpb25zLml0ZW1zKTtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KHRoaXMuZmlsdGVyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25zLml0ZW1zKSk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KG5vdGlmaWNhdGlvbnMuaXRlbXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIGZpbHRlciBub3RpZmNhdGlvbnMgaW4gZnJvbnQgZW5kIGFjY29yZGluZyB0byB0aGUgc2VsZWN0ZWQgZmlsdGVyc1xyXG4gIGZpbHRlck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICBsZXQgZmlsdGVyZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBpZih0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5uYW1lID09PSAnYWxsJyl7XHJcbiAgICAgIGlmKHRoaXMuaXNSZWFkZWQpe1xyXG4gICAgICAgIC8vIGZpbmQgcmVhZGVkIG5vdGlmaWNhdGlvbnMgb24gYWxsIHR5cGVzIG9mIG5vdGlmaWNhdGlvbnNcclxuICAgICAgICByZXR1cm4gdGhpcy5maW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oJ1JFQUQnICwgbm90aWZpY2F0aW9ucylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgLy8gZmluZCB1biByZWFkZWQgbm90aWZpY2F0aW9ucyBvbiBhbGwgdHlwZXMgb2Ygbm90aWZpY2F0aW9uc1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRSZWFkT3JVblJlYWRlZE5vdGlmaWNhdGlvbignVU5fUkVBRCcgLCBub3RpZmljYXRpb25zKVxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGV0IHJlcXVpcmVkU3RhdGUgPSB0aGlzLmlzUmVhZGVkID8gJ1JFQUQnIDogJ1VOX1JFQUQnO1xyXG4gICAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICAgIGlmKG5vdGlmaWNhdGlvbi5zb3VyY2VUeXBlID09PSB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5pZCAmJiBub3RpZmljYXRpb24uc3RhdHVzID09PSByZXF1aXJlZFN0YXRlKXtcclxuICAgICAgICAgIGZpbHRlcmVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiBmaWx0ZXJlZE5vdGlmaWNhdGlvbnNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGZpbmQgYSBub3RpZmljYXRpb24gYWNjb3JkaW5nIHRvIGl0cyBzdGF0ZSBSRUFEIG9yIFVOX1JFQURcclxuICBmaW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oc3RhdGUgLCBub3RpZmljYXRpb25zKXtcclxuICAgIGxldCBzdGF0ZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICBpZihub3RpZmljYXRpb24uc3RhdHVzID09PSBzdGF0ZSl7XHJcbiAgICAgICAgc3RhdGVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBzdGF0ZWROb3RpZmljYXRpb25zO1xyXG4gIH1cclxuICByZXNldENvdW50KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uc0NvdW50ID0gMDtcclxuICB9XHJcbiAgbWFya0FsbEFzUmVhZCgpIHtcclxuICAgIHRoaXMuZG9NYXJrQWxsQXNSZWFkKHRoaXMucHJvZmlsZS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zdGF0dXMgPSBcIlJFQURcIikpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHVwZGF0ZVN0YXR1cyhub3RpZmljYXRpb24sIG9uT3BlbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBib29sID1cclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJVTl9SRUFEXCIgfHxcclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJORVdcIiB8fFxyXG4gICAgICBvbk9wZW47XHJcbiAgICBpZiAoYm9vbCkge1xyXG4gICAgICB0aGlzLmRvTWFya0FzUmVhZChub3RpZmljYXRpb24uaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9IFwiUkVBRFwiO1xyXG4gICAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge30pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9NYXJrQXNVbnJlYWQobm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPSBcIlVOX1JFQURcIjtcclxuICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlbGV0ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5pZCA9PT0gbm90aWZpY2F0aW9uLmlkKSB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGUubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldE5vdGlmaWNhdGlvbnModXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2FsbC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oZW5kcG9pbnQsIHsgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLCBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcCkgPT4gKHtcclxuICAgICAgICAgIHRvdGFsQ291bnQ6IHJlc3AuaGVhZGVycy5nZXQoXCJ4LXRvdGFsLWNvdW50XCIpLFxyXG4gICAgICAgICAgaXRlbXM6IHJlc3AuYm9keS5tYXAoKGl0ZW0pID0+IGl0ZW0pLFxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJnZXROb3RpZmljYXRpb25zXCIsIFtdKSksXHJcbiAgICAgICAgcHVibGlzaFJlcGxheSgxKSxcclxuICAgICAgICByZWZDb3VudCgpXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIGRvQ291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2NvdW50TmV3LyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImNvdW50TmV3XCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb1Jlc2V0Q291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL3Jlc2V0Q291bnQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwicmVzZXRDb3VudE5ld1wiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9Db3VudFVucmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvY291bnRVblJlYWQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiY291bnRVbnJlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FsbEFzUmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FsbEFzUmVhZC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQWxsQXNSZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBc1JlYWQobm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FzUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1JlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FzVW5yZWFkKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBc1VuUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1VucmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZGVsZXRlPGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJkZWxldGVOb3RpZmljYXRpb25cIiwgW10pKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3I8VD4ob3BlcmF0aW9uID0gXCJvcGVyYXRpb25cIiwgcmVzdWx0PzogVCkge1xyXG4gICAgcmV0dXJuIChlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICAgIC8vIFRPRE86IHNlbmQgdGhlIGVycm9yIHRvIHJlbW90ZSBsb2dnaW5nIGluZnJhc3RydWN0dXJlXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOyAvLyBsb2cgdG8gY29uc29sZSBpbnN0ZWFkXHJcblxyXG4gICAgICAvLyBUT0RPOiBiZXR0ZXIgam9iIG9mIHRyYW5zZm9ybWluZyBlcnJvciBmb3IgdXNlciBjb25zdW1wdGlvblxyXG4gICAgICBjb25zb2xlLmxvZyhgJHtvcGVyYXRpb259IGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWApO1xyXG5cclxuICAgICAgLy8gTGV0IHRoZSBhcHAga2VlcCBydW5uaW5nIGJ5IHJldHVybmluZyBhbiBlbXB0eSByZXN1bHQuXHJcbiAgICAgIHJlc3VsdFtcInN0YXR1c1wiXSA9IGVycm9yLnN0YXR1cztcclxuICAgICAgaWYgKGVycm9yLmVycm9yLmhhc093blByb3BlcnR5KFwibWVzc2FnZVwiKSkge1xyXG4gICAgICAgIHJlc3VsdFtcIm1lc3NhZ2VcIl0gPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIHJlc3VsdFtcInR5cGVcIl0gPSBlcnJvci5lcnJvci50eXBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gb2YocmVzdWx0IGFzIFQpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgYXN5bmMgY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICAvLyBidWlsZGluZyBhYnNvbHV0ZSBwYXRoIHNvIHRoYXQgd2Vic29ja2V0IGRvZXNuJ3QgZmFpbCB3aGVuIGRlcGxveWluZyB3aXRoIGEgY29udGV4dCBwYXRoXHJcbiAgICBsZXQgdXJsO1xyXG4gICAgdXJsID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS93ZWJzb2NrZXQvZWtoYWFgOyAvL3VybFxyXG4gICAgY29uc3Qgc29ja2V0ID0gbmV3IFNvY2tKUyh1cmwpO1xyXG4gICAgdGhpcy5zdG9tcENsaWVudCA9IFN0b21wLm92ZXIoc29ja2V0KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICAgIC8vIFVwZ3JhZGU6ICd3ZWJzb2NrZXQnLFxyXG4gICAgICAvLyBDb25uZWN0aW9uOiAnVXBncmFkZScsXHJcbiAgICAgIHRva2VuOiB0aGlzLmVudmlyb25tZW50LmxvZ2luTWV0aG9kID09PSAnbnV4ZW8nID8gdGhpcy5nZXRDYWNoYWJsZSgpOiBgJHthd2FpdCB0aGlzLmtleWNsb2FrLmdldFRva2VuKCl9YCxcclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5jb25uZWN0KGhlYWRlcnMsICgpID0+IHtcclxuICAgICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZFByb21pc2UoXCJzdWNjZXNzXCIpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLnN0b21wQ2xpZW50ICE9PSBudWxsICYmIHRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5kaXNjb25uZWN0KCk7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29ubmVjdGVkUHJvbWlzZSkge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlKCkge1xyXG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvbXBDbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlciA9IHRoaXMuc3RvbXBDbGllbnQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICBcIi91c2VyL3RvcGljL25vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IEpTT04ucGFyc2UoZGF0YS5ib2R5KTtcclxuICAgICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnVuc2hpZnQobm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVyT2JzZXJ2ZXIuZW1pdChub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmliZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29ubmVjdGlvbigpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+ICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPSByZXNvbHZlKSk7XHJcbiAgfVxyXG5cclxuICB0ZXN0Tm90aWZpY2F0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKFwiU3lzdGVtLk5vdGlmaWNhdGlvblwiLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgYXBwbGljYXRpb25LZXk6IFwiY3RzblwiLFxyXG4gICAgICAgICAgbm90aWZpY2F0aW9uS2V5OiBcIk5vdGlmaWNhdGlvbldoZW5PdXRnb2luZ0NvcnJlc3BvbmRuZWNlQXBwcm92ZVwiLFxyXG4gICAgICAgICAgYXBpRGF0YTpcclxuICAgICAgICAgICAgJ3tcImlkXCI6IFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIsXCJzY2hlbWFcIjogXCJDb3JyZXNwb25kZW5jZVwifScsXHJcbiAgICAgICAgICBkYXRhOiBcInt9XCIsXHJcbiAgICAgICAgICBncm91cHNJZDogW10sXHJcbiAgICAgICAgICB1c2Vyc0lkOiBbXCJjdHNfc2VjXCJdLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIpXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWNoYWJsZSgpe1xyXG4gICAgbGV0IG15Q2FjaGFibGUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCdDTVNfQ0FDSEFCTEUnKTtcclxuICAgIG15Q2FjaGFibGUgPSAgdGhpcy5pbnRpYWxpemF0aW9uU2VydmljZS5kZWNyaXB0Rm9ybWF0aW5nKG15Q2FjaGFibGUpO1xyXG4gIHJldHVybiBteUNhY2hhYmxlWydhY2Nlc3NfdG9rZW4nXTtcclxuICB9XHJcblxyXG4gIHNldE5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gbm90aWZpY2F0aW9ucztcclxuICB9XHJcbn1cclxuIl19