nuxeo-development-framework 1.6.2 → 1.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/nuxeo-development-framework.umd.js +606 -1429
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/Core/services/translation/translation.service.js +6 -9
- package/esm2015/lib/components/card/card.component.js +1 -1
- package/esm2015/lib/components/comments/comments.module.js +5 -11
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +11 -61
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +2 -5
- package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +2 -7
- package/esm2015/lib/components/comments/services/comment-api.service.js +1 -23
- package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +3 -5
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +3 -5
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -8
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -11
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +16 -47
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +1 -30
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +2 -2
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +1 -1
- package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +8 -6
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +1 -1
- package/esm2015/lib/components/documents/components/documents/documents.component.js +2 -4
- package/esm2015/lib/components/documents/services/documents.service.js +6 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +6 -43
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +10 -30
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +5 -11
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +3 -14
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +3 -8
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +3 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +7 -10
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +10 -15
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +2 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +2 -6
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +6 -37
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +5 -22
- package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +12 -18
- package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +26 -44
- package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +4 -19
- package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +2 -3
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +2 -3
- package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +1 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +2 -2
- package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +2 -2
- package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +1 -1
- package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +10 -32
- package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -14
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -8
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +18 -165
- package/esm2015/lib/components/select/select/select.component.js +1 -1
- package/esm2015/lib/components/table/table/table.component.js +15 -45
- package/esm2015/lib/components/users-card/users-card.component.js +1 -1
- package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +1 -1
- package/esm2015/lib/configuration/app-config.service.js +1 -1
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
- package/esm2015/lib/shared/components/button/button.component.js +1 -1
- package/esm2015/lib/shared/components/item-list/item-list.component.js +2 -2
- package/esm2015/lib/shared/components/user-card/user-card.component.js +1 -1
- package/esm2015/public-api.js +1 -8
- package/fesm2015/nuxeo-development-framework.js +289 -1085
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/Core/services/translation/translation.service.d.ts +2 -5
- package/lib/components/comments/comments.module.d.ts +12 -13
- package/lib/components/comments/components/comment-item/comment-item.component.d.ts +3 -14
- package/lib/components/comments/components/comments-dashlet/comments-dashlet.component.d.ts +1 -2
- package/lib/components/comments/components/comments-list/comments-list.component.d.ts +1 -3
- package/lib/components/comments/services/comment-api.service.d.ts +0 -2
- package/lib/components/correspondence-relation/components/versions/versions.component.d.ts +0 -1
- package/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.d.ts +1 -4
- package/lib/components/cts-tags/services/tags-api.service.d.ts +0 -2
- package/lib/components/documents/services/documents.service.d.ts +1 -1
- package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +2 -4
- package/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.d.ts +2 -11
- package/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +0 -1
- package/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.d.ts +1 -4
- package/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.d.ts +1 -2
- package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.d.ts +2 -2
- package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +1 -2
- package/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.d.ts +1 -3
- package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +3 -6
- package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +1 -6
- package/lib/components/dynamic-view/date-viewer/date-viewer.component.d.ts +3 -8
- package/lib/components/dynamic-view/department-viewer/department-viewer.component.d.ts +3 -4
- package/lib/components/dynamic-view/dynamic-view.module.d.ts +5 -8
- package/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.d.ts +2 -3
- package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +2 -5
- package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +2 -3
- package/lib/components/pdf-tron/pdftron/pdftron.component.d.ts +3 -22
- package/lib/components/table/table/table.component.d.ts +2 -14
- package/lib/configuration/app-config.service.d.ts +0 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -7
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +0 -63
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +0 -59
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +0 -68
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +0 -33
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +0 -62
- package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts +0 -22
- package/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.d.ts +0 -22
- package/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.d.ts +0 -28
- package/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.d.ts +0 -16
- package/lib/components/dynamic-view/dynamic-viewe.service.d.ts +0 -15
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component
|
|
1
|
+
import { Component } 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";
|
|
@@ -17,7 +17,6 @@ export class NotificationsListComponent {
|
|
|
17
17
|
this.ref = ref;
|
|
18
18
|
this.datePipe = datePipe;
|
|
19
19
|
this.translationService = translationService;
|
|
20
|
-
this.listItemClick = new EventEmitter();
|
|
21
20
|
this._itemHeight = 79;
|
|
22
21
|
this._divider = true;
|
|
23
22
|
this._all = true;
|
|
@@ -96,7 +95,6 @@ export class NotificationsListComponent {
|
|
|
96
95
|
if (notification.status === "UN_READ" || notification.status === "NEW") {
|
|
97
96
|
this.notificationsService.updateStatus(notification, true);
|
|
98
97
|
}
|
|
99
|
-
this.listItemClick.next(notification);
|
|
100
98
|
// do something when notification clicked
|
|
101
99
|
}
|
|
102
100
|
onUpdate(data) {
|
|
@@ -148,7 +146,7 @@ export class NotificationsListComponent {
|
|
|
148
146
|
}
|
|
149
147
|
}
|
|
150
148
|
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>\r\n {{ \"notifications.noNotifications\" | 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}.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 } });
|
|
149
|
+
NotificationsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: NotificationsListComponent, selector: "app-notifications-list", 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>\r\n {{ \"notifications.noNotifications\" | 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}.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.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.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 } });
|
|
152
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsListComponent, decorators: [{
|
|
153
151
|
type: Component,
|
|
154
152
|
args: [{
|
|
@@ -157,7 +155,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
157
155
|
styleUrls: ["./notifications-list.component.scss"],
|
|
158
156
|
host: { class: "notification-list" },
|
|
159
157
|
}]
|
|
160
|
-
}], ctorParameters: function () { return [{ type: i1.NotificationsService }, { type: i0.ChangeDetectorRef }, { type: i2.DatePipe }, { type: i3.TranslationService }]; }
|
|
161
|
-
type: Output
|
|
162
|
-
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtbGlzdC9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBSzlGOztHQUVHO0FBT0gsTUFBTSxPQUFPLDBCQUEwQjtJQXdDckMsWUFDUyxvQkFBMEMsRUFDekMsR0FBc0IsRUFDdkIsUUFBa0IsRUFDakIsa0JBQXNDO1FBSHZDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDekMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNqQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBMUNoRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJbkMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFPakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQU9oQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBT1osV0FBTSxHQUFHLHFCQUFxQixDQUFDO1FBUS9CLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNu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YW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vbm90aWZpY2F0aW9ucy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBOb3RpZmljYXRpb25zIE1vZGFsIENvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLW5vdGlmaWNhdGlvbnMtbGlzdFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vbm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBob3N0OiB7IGNsYXNzOiBcIm5vdGlmaWNhdGlvbi1saXN0XCIgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBAT3V0cHV0KClcclxuICBsaXN0SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGdldCBub3RpZmljYXRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uubm90aWZpY2F0aW9ucztcclxuICB9XHJcbiAgX2l0ZW1IZWlnaHQgPSA3OTtcclxuICBnZXQgaXRlbUhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1IZWlnaHQ7XHJcbiAgfVxyXG4gIHNldCBpdGVtSGVpZ2h0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2l0ZW1IZWlnaHQgPSB2YWx1ZTtcclxuICB9XHJcbiAgX2RpdmlkZXIgPSB0cnVlO1xyXG4gIGdldCBkaXZpZGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RpdmlkZXI7XHJcbiAgfVxyXG4gIHNldCBkaXZpZGVyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXZpZGVyID0gdmFsdWU7XHJcbiAgfVxyXG4gIF9hbGwgPSB0cnVlO1xyXG4gIGdldCBhbGwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWxsO1xyXG4gIH1cclxuICBzZXQgYWxsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9hbGwgPSB2YWx1ZTtcclxuICB9XHJcbiAgX3RpdGxlID0gXCJub3RpZmljYXRpb25zLnRpdGxlXCI7XHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGl0bGU7XHJcbiAgfVxyXG4gIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90aXRsZSA9IHZhbHVlO1xyXG4gIH1cclxuICBpc0FyYWJpYztcclxuICB0aHJvdHRsZSA9IDMwMDtcclxuICBzY3JvbGxEaXN0YW5jZSA9IDc7XHJcbiAgc2Nyb2xsVXBEaXN0YW5jZSA9IDI7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGhhc01vcmUgPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlXHJcbiAgKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VDb250ZW50QmFzZWRPblVzZXJMYW5nKCk7XHJcbiAgfVxyXG4gIG1hcmtBbGxBc1JlYWQoKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLm1hcmtBbGxBc1JlYWQoKTtcclxuICB9XHJcblxyXG4gIG9wZW5Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uKSB7XHJcbiAgICBpZiAobm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJVTl9SRUFEXCIgfHwgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJORVdcIikge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnVwZGF0ZVN0YXR1cyhub3RpZmljYXRpb24sIHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saXN0SXRlbUNsaWNrLm5leHQobm90aWZpY2F0aW9uKTtcclxuICAgIC8vIGRvIHNvbWV0aGluZyB3aGVuIG5vdGlmaWNhdGlvbiBjbGlja2VkXHJcbiAgfVxyXG4gIG9uVXBkYXRlKGRhdGEpIHtcclxuICAgIGlmIChkYXRhLm5vdGlmaWNhdGlvbikge1xyXG4gICAgICBzd2l0Y2ggKGRhdGEuYWN0aW9uKSB7XHJcbiAgICAgICAgY2FzZSBcImRlbGV0ZVwiOlxyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5kZWxldGVOb3RpZmljYXRpb24oZGF0YS5ub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcInN0YXR1c1wiOlxyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS51cGRhdGVTdGF0dXMoZGF0YS5ub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgdHJhY2tCeShpbmRleCwgaXRlbSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG4gIGhhbmRsZU9wZW4oaXRlbSkge1xyXG4gICAgLy8gdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcygpO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS51cGRhdGVTdGF0dXMoaXRlbSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBjb21wYXJlRGF0ZSA9IChpdGVtLCBpdGVtSW5kZXgsIGl0ZW1zKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMuZGl2aWRlcikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IGl0ZW1EYXRlID0gbmV3IERhdGUoaXRlbS5zZW5kRGF0ZSk7XHJcbiAgICBjb25zdCBpc1RvZGF5ID1cclxuICAgICAgaXRlbURhdGUuZ2V0RGF0ZSgpID09PSB0b2RheS5nZXREYXRlKCkgJiZcclxuICAgICAgaXRlbURhdGUuZ2V0TW9udGgoKSA9PT0gdG9kYXkuZ2V0TW9udGgoKSAmJlxyXG4gICAgICBpdGVtRGF0ZS5nZXRGdWxsWWVhcigpID09PSB0b2RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgcHJldkl0ZW0gPSBpdGVtc1tpdGVtSW5kZXggLSAxXTtcclxuICAgIGxldCBpc1ByZXZUb2RheSA9IDA7XHJcbiAgICBpZiAocHJldkl0ZW0pIHtcclxuICAgICAgY29uc3QgTmV4dEl0ZW1EYXRlID0gbmV3IERhdGUocHJldkl0ZW0uc2VuZERhdGUpO1xyXG4gICAgICBpc1ByZXZUb2RheSA9XHJcbiAgICAgICAgTmV4dEl0ZW1EYXRlLmdldERhdGUoKSA9PT0gdG9kYXkuZ2V0RGF0ZSgpICYmXHJcbiAgICAgICAgTmV4dEl0ZW1EYXRlLmdldE1vbnRoKCkgPT09IHRvZGF5LmdldE1vbnRoKCkgJiZcclxuICAgICAgICBOZXh0SXRlbURhdGUuZ2V0RnVsbFllYXIoKSA9PT0gdG9kYXkuZ2V0RnVsbFllYXIoKVxyXG4gICAgICAgICAgPyAyXHJcbiAgICAgICAgICA6IDE7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzVG9kYXkgJiYgKGlzUHJldlRvZGF5ID09PSAwIHx8IGlzUHJldlRvZGF5ID09PSAyKSkge1xyXG4gICAgICByZXR1cm4gXCJub3RpZmljYXRpb25zLmVhcmxpZXJcIjtcclxuICAgIH1cclxuICAgIGlmIChpc1RvZGF5ICYmIChpc1ByZXZUb2RheSA9PT0gMCB8fCBpc1ByZXZUb2RheSA9PT0gMSkpIHtcclxuICAgICAgcmV0dXJuIFwibm90aWZpY2F0aW9ucy5uZXdcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcblxyXG4gIGdldEl0ZW1IZWlnaHQgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtSGVpZ2h0O1xyXG4gIH07XHJcblxyXG4gIGdvVG9EZXRhaWxzKG5vdGlmaWNhdGlvbikge31cclxuXHJcbiAgb25TY3JvbGxEb3duKCkge1xyXG4gICAgaWYgKHRoaXMuaGFzTW9yZSkge1xyXG4gICAgICB0aGlzLmZldGNoTW9yZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBmZXRjaE1vcmUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5mZXRjaE5vdGlmaWNhdGlvbnMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBkYXRhW1wiaXRlbXNcIl0ubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgZGF0YVtcIml0ZW1zXCJdLmxlbmd0aCA8IHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UucGFnZVNpemVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5oYXNNb3JlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnJlc2V0KCk7XHJcbiAgfVxyXG4gIGNsb3NlKCkge1xyXG4gICAgLy8gIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcclxuICB9XHJcbiAgY2hhbmdlQ29udGVudEJhc2VkT25Vc2VyTGFuZygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljLnN1YnNjcmliZSgoYXIpID0+IHtcclxuICAgICAgdGhpcy5pc0FyYWJpYyA9IGFyO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b29sYmFyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICA8ZGl2Pnt7IFwibm90aWZpY2F0aW9ucy5ub3RpZmljYXRpb25zXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZFwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtYnV0dG9uXHJcbiAgICAgIChjbGljayk9XCJtYXJrQWxsQXNSZWFkKClcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgIGNsYXNzPVwibWFya0FsbEFzUmVhZC1idG5cIlxyXG4gICAgPlxyXG4gICAgICB7eyBcIm5vdGlmaWNhdGlvbnMubWFya0FsbEFzUmVhZFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwhLS0gW21hdFRvb2x0aXBdPVwiJ25vdGlmaWNhdGlvbnMubWFya0FsbEFzUmVhZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidiZWZvcmUnXCIgLS0+XHJcbjxkaXYgKm5nSWY9XCIhbm90aWZpY2F0aW9ucz8ubGVuZ3RoXCIgY2xhc3M9XCJuby1ub3RpZmljYXRpb25zXCI+XHJcbiAgPHA+XHJcbiAgICB7eyBcIm5vdGlmaWNhdGlvbnMubm9Ob3RpZmljYXRpb25zXCIgfCB0cmFuc2xhdGUgfX1cclxuICA8L3A+XHJcbjwvZGl2PlxyXG48ZGl2XHJcbiAgaW5maW5pdGVTY3JvbGxcclxuICBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCJcclxuICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCJzY3JvbGxEaXN0YW5jZVwiXHJcbiAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwidGhyb3R0bGVcIlxyXG4gIChzY3JvbGxlZCk9XCJvblNjcm9sbERvd24oKVwiXHJcbiAgY2xhc3M9XCJub3RpZmljYXRpb25zLWNvbnRhaW5lciBzY3JvbGxcIlxyXG4+XHJcbiAgPG1hdC1saXN0IGNsYXNzPVwiXCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgIGxldCBub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9ucztcclxuICAgICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICAgIHRyYWNrQnk6IHRyYWNrQnlcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPCEtLSA8bWF0LWRpdmlkZXIgY2xhc3M9XCJtYXJnaW5pemVcIj48L21hdC1kaXZpZGVyPiAtLT5cclxuICAgICAgPGFwcC1ub3RpZmljYXRpb24taXRlbVxyXG4gICAgICAgIChjbGljayk9XCJvcGVuTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbilcIlxyXG4gICAgICAgICh1cGRhdGUpPVwib25VcGRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgW25vdGlmaWNhdGlvbl09XCJub3RpZmljYXRpb25cIlxyXG4gICAgICAgIFtpc0FyYWJpY109XCJpc0FyYWJpY1wiXHJcbiAgICAgID48L2FwcC1ub3RpZmljYXRpb24taXRlbT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxyXG4gICAgICBzdHlsZT1cImRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbi10b3A6IDEwcHhcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cIjQ4XCIgc3R5bGU9XCJtYXJnaW46IDAgYXV0b1wiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1saXN0PlxyXG48L2Rpdj5cclxuIl19
|
|
158
|
+
}], ctorParameters: function () { return [{ type: i1.NotificationsService }, { type: i0.ChangeDetectorRef }, { type: i2.DatePipe }, { type: i3.TranslationService }]; } });
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtbGlzdC9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQUt4RTs7R0FFRztBQU9ILE1BQU0sT0FBTywwQkFBMEI7SUFzQ3JDLFlBQ1Msb0JBQTBDLEVBQ3pDLEdBQXNCLEVBQ3ZCLFFBQWtCLEVBQ2pCLGtCQUFzQztRQUh2Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQ3pDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQXRDaEQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFPakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQU9oQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBT1osV0FBTSxHQUFHLHFCQUFxQixDQUFDO1FBUS9CLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBd0NmLGdCQUFXLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQ1gsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUN4QyxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakQsV0FBVztvQkFDVCxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRTt3QkFDMUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUU7d0JBQzVDLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFO3dCQUNoRCxDQUFDLENBQUMsQ0FBQzt3QkFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7WUFDRCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hELE9BQU8sdUJBQXVCLENBQUM7YUFDaEM7WUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN2RCxPQUFPLG1CQUFtQixDQUFDO2FBQzVCO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLEdBQUcsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQyxDQUFDO0lBbEVDLENBQUM7SUExQ0osSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFjO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQWFELFFBQVE7UUFDTixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsWUFBWTtRQUMzQixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzVEO1FBQ0QseUNBQXlDO0lBQzNDLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBSTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNoRSxNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDMUQsTUFBTTthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQUk7UUFDYixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQW9DRCxXQUFXLENBQUMsWUFBWSxJQUFHLENBQUM7SUFFNUIsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQ3pEO2dCQUNBLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxLQUFLO1FBQ0gsbUNBQW1DO0lBQ3JDLENBQUM7SUFDRCw0QkFBNEI7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3VIQTdJVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiw2R0NkdkMsc3FEQXVEQTsyRkR6Q2EsMEJBQTBCO2tCQU50QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELFNBQVMsRUFBRSxDQUFDLHFDQUFxQyxDQUFDO29CQUNsRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL25vdGlmaWNhdGlvbnMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogTm90aWZpY2F0aW9ucyBNb2RhbCBDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1ub3RpZmljYXRpb25zLWxpc3RcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgaG9zdDogeyBjbGFzczogXCJub3RpZmljYXRpb24tbGlzdFwiIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5ub3RpZmljYXRpb25zO1xyXG4gIH1cclxuICBfaXRlbUhlaWdodCA9IDc5O1xyXG4gIGdldCBpdGVtSGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbUhlaWdodDtcclxuICB9XHJcbiAgc2V0IGl0ZW1IZWlnaHQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5faXRlbUhlaWdodCA9IHZhbHVlO1xyXG4gIH1cclxuICBfZGl2aWRlciA9IHRydWU7XHJcbiAgZ2V0IGRpdmlkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGl2aWRlcjtcclxuICB9XHJcbiAgc2V0IGRpdmlkZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RpdmlkZXIgPSB2YWx1ZTtcclxuICB9XHJcbiAgX2FsbCA9IHRydWU7XHJcbiAgZ2V0IGFsbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGw7XHJcbiAgfVxyXG4gIHNldCBhbGwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2FsbCA9IHZhbHVlO1xyXG4gIH1cclxuICBfdGl0bGUgPSBcIm5vdGlmaWNhdGlvbnMudGl0bGVcIjtcclxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90aXRsZTtcclxuICB9XHJcbiAgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RpdGxlID0gdmFsdWU7XHJcbiAgfVxyXG4gIGlzQXJhYmljO1xyXG4gIHRocm90dGxlID0gMzAwO1xyXG4gIHNjcm9sbERpc3RhbmNlID0gNztcclxuICBzY3JvbGxVcERpc3RhbmNlID0gMjtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgaGFzTW9yZSA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgbm90aWZpY2F0aW9uc1NlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2VcclxuICApIHt9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUNvbnRlbnRCYXNlZE9uVXNlckxhbmcoKTtcclxuICB9XHJcbiAgbWFya0FsbEFzUmVhZCgpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UubWFya0FsbEFzUmVhZCgpO1xyXG4gIH1cclxuXHJcbiAgb3Blbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgIGlmIChub3RpZmljYXRpb24uc3RhdHVzID09PSBcIlVOX1JFQURcIiB8fCBub3RpZmljYXRpb24uc3RhdHVzID09PSBcIk5FV1wiKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlU3RhdHVzKG5vdGlmaWNhdGlvbiwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyBkbyBzb21ldGhpbmcgd2hlbiBub3RpZmljYXRpb24gY2xpY2tlZFxyXG4gIH1cclxuICBvblVwZGF0ZShkYXRhKSB7XHJcbiAgICBpZiAoZGF0YS5ub3RpZmljYXRpb24pIHtcclxuICAgICAgc3dpdGNoIChkYXRhLmFjdGlvbikge1xyXG4gICAgICAgIGNhc2UgXCJkZWxldGVcIjpcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZGVsZXRlTm90aWZpY2F0aW9uKGRhdGEubm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJzdGF0dXNcIjpcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlU3RhdHVzKGRhdGEubm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRyYWNrQnkoaW5kZXgsIGl0ZW0pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuICBoYW5kbGVPcGVuKGl0ZW0pIHtcclxuICAgIC8vIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlU3RhdHVzKGl0ZW0sIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgY29tcGFyZURhdGUgPSAoaXRlbSwgaXRlbUluZGV4LCBpdGVtcykgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmRpdmlkZXIpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBpdGVtRGF0ZSA9IG5ldyBEYXRlKGl0ZW0uc2VuZERhdGUpO1xyXG4gICAgY29uc3QgaXNUb2RheSA9XHJcbiAgICAgIGl0ZW1EYXRlLmdldERhdGUoKSA9PT0gdG9kYXkuZ2V0RGF0ZSgpICYmXHJcbiAgICAgIGl0ZW1EYXRlLmdldE1vbnRoKCkgPT09IHRvZGF5LmdldE1vbnRoKCkgJiZcclxuICAgICAgaXRlbURhdGUuZ2V0RnVsbFllYXIoKSA9PT0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IHByZXZJdGVtID0gaXRlbXNbaXRlbUluZGV4IC0gMV07XHJcbiAgICBsZXQgaXNQcmV2VG9kYXkgPSAwO1xyXG4gICAgaWYgKHByZXZJdGVtKSB7XHJcbiAgICAgIGNvbnN0IE5leHRJdGVtRGF0ZSA9IG5ldyBEYXRlKHByZXZJdGVtLnNlbmREYXRlKTtcclxuICAgICAgaXNQcmV2VG9kYXkgPVxyXG4gICAgICAgIE5leHRJdGVtRGF0ZS5nZXREYXRlKCkgPT09IHRvZGF5LmdldERhdGUoKSAmJlxyXG4gICAgICAgIE5leHRJdGVtRGF0ZS5nZXRNb250aCgpID09PSB0b2RheS5nZXRNb250aCgpICYmXHJcbiAgICAgICAgTmV4dEl0ZW1EYXRlLmdldEZ1bGxZZWFyKCkgPT09IHRvZGF5LmdldEZ1bGxZZWFyKClcclxuICAgICAgICAgID8gMlxyXG4gICAgICAgICAgOiAxO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc1RvZGF5ICYmIChpc1ByZXZUb2RheSA9PT0gMCB8fCBpc1ByZXZUb2RheSA9PT0gMikpIHtcclxuICAgICAgcmV0dXJuIFwibm90aWZpY2F0aW9ucy5lYXJsaWVyXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNUb2RheSAmJiAoaXNQcmV2VG9kYXkgPT09IDAgfHwgaXNQcmV2VG9kYXkgPT09IDEpKSB7XHJcbiAgICAgIHJldHVybiBcIm5vdGlmaWNhdGlvbnMubmV3XCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xyXG5cclxuICBnZXRJdGVtSGVpZ2h0ID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbUhlaWdodDtcclxuICB9O1xyXG5cclxuICBnb1RvRGV0YWlscyhub3RpZmljYXRpb24pIHt9XHJcblxyXG4gIG9uU2Nyb2xsRG93bigpIHtcclxuICAgIGlmICh0aGlzLmhhc01vcmUpIHtcclxuICAgICAgdGhpcy5mZXRjaE1vcmUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZmV0Y2hNb3JlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZmV0Y2hOb3RpZmljYXRpb25zKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZGF0YVtcIml0ZW1zXCJdLmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgIGRhdGFbXCJpdGVtc1wiXS5sZW5ndGggPCB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnBhZ2VTaXplXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuaGFzTW9yZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5yZXNldCgpO1xyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIC8vICB0aGlzLm1vZGFsQ29udHJvbGxlci5kaXNtaXNzKCk7XHJcbiAgfVxyXG4gIGNoYW5nZUNvbnRlbnRCYXNlZE9uVXNlckxhbmcoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUoKGFyKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSBhcjtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgPGRpdj57eyBcIm5vdGlmaWNhdGlvbnMubm90aWZpY2F0aW9uc1wiIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmRcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAoY2xpY2spPVwibWFya0FsbEFzUmVhZCgpXCJcclxuICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICBjbGFzcz1cIm1hcmtBbGxBc1JlYWQtYnRuXCJcclxuICAgID5cclxuICAgICAge3sgXCJub3RpZmljYXRpb25zLm1hcmtBbGxBc1JlYWRcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48IS0tIFttYXRUb29sdGlwXT1cIidub3RpZmljYXRpb25zLm1hcmtBbGxBc1JlYWQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCInYmVmb3JlJ1wiIC0tPlxyXG48ZGl2ICpuZ0lmPVwiIW5vdGlmaWNhdGlvbnM/Lmxlbmd0aFwiIGNsYXNzPVwibm8tbm90aWZpY2F0aW9uc1wiPlxyXG4gIDxwPlxyXG4gICAge3sgXCJub3RpZmljYXRpb25zLm5vTm90aWZpY2F0aW9uc1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9wPlxyXG48L2Rpdj5cclxuPGRpdlxyXG4gIGluZmluaXRlU2Nyb2xsXHJcbiAgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiXHJcbiAgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwic2Nyb2xsRGlzdGFuY2VcIlxyXG4gIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cInRocm90dGxlXCJcclxuICAoc2Nyb2xsZWQpPVwib25TY3JvbGxEb3duKClcIlxyXG4gIGNsYXNzPVwibm90aWZpY2F0aW9ucy1jb250YWluZXIgc2Nyb2xsXCJcclxuPlxyXG4gIDxtYXQtbGlzdCBjbGFzcz1cIlwiPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdGb3I9XCJcclxuICAgICAgICBsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgbGV0IGkgPSBpbmRleDtcclxuICAgICAgICB0cmFja0J5OiB0cmFja0J5XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gPG1hdC1kaXZpZGVyIGNsYXNzPVwibWFyZ2luaXplXCI+PC9tYXQtZGl2aWRlcj4gLS0+XHJcbiAgICAgIDxhcHAtbm90aWZpY2F0aW9uLWl0ZW1cclxuICAgICAgICAoY2xpY2spPVwib3Blbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pXCJcclxuICAgICAgICAodXBkYXRlKT1cIm9uVXBkYXRlKCRldmVudClcIlxyXG4gICAgICAgIFtub3RpZmljYXRpb25dPVwibm90aWZpY2F0aW9uXCJcclxuICAgICAgICBbaXNBcmFiaWNdPVwiaXNBcmFiaWNcIlxyXG4gICAgICA+PC9hcHAtbm90aWZpY2F0aW9uLWl0ZW0+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJsb2FkaW5nXCJcclxuICAgICAgc3R5bGU9XCJkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBtYXJnaW4tdG9wOiAxMHB4XCJcclxuICAgID5cclxuICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI0OFwiIHN0eWxlPVwibWFyZ2luOiAwIGF1dG9cIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtbGlzdD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component,
|
|
2
|
+
import { Component, Inject, Input, ViewChild, } from '@angular/core';
|
|
3
3
|
import WebViewer from '@pdftron/webviewer';
|
|
4
4
|
import { APP_BASE_HREF } from '@angular/common';
|
|
5
5
|
import { SecurePipe } from '../../../pipes/secure.pipe';
|
|
@@ -7,7 +7,6 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "./pdftron.service";
|
|
8
8
|
import * as i2 from "../../../Core/services/nuxeo/nuxeo.service";
|
|
9
9
|
import * as i3 from "../../../pipes/secure.pipe";
|
|
10
|
-
import * as i4 from "../../../Core/services/translation/translation.service";
|
|
11
10
|
/**
|
|
12
11
|
* A reusable file viewer based on PDFTron Library
|
|
13
12
|
* @title
|
|
@@ -22,29 +21,19 @@ import * as i4 from "../../../Core/services/translation/translation.service";
|
|
|
22
21
|
* </app-pdftron>
|
|
23
22
|
*/
|
|
24
23
|
export class PdftronComponent {
|
|
25
|
-
constructor(cdr, pdftronService, nuxeo, baseHref, securePipe,
|
|
24
|
+
constructor(cdr, pdftronService, nuxeo, baseHref, securePipe, environment) {
|
|
26
25
|
this.cdr = cdr;
|
|
27
26
|
this.pdftronService = pdftronService;
|
|
28
27
|
this.nuxeo = nuxeo;
|
|
29
28
|
this.baseHref = baseHref;
|
|
30
29
|
this.securePipe = securePipe;
|
|
31
|
-
this.translationService = translationService;
|
|
32
30
|
this.environment = environment;
|
|
33
31
|
this.actionClicked = false; // used to know if there is action clicked outside to start edit mode or not
|
|
34
32
|
this.DOCUMENT_TYPE = 'application/pdf';
|
|
35
33
|
this.fitMode = 'FitWidth';
|
|
36
|
-
this.events = new EventEmitter();
|
|
37
|
-
this.SignatureEvent = new EventEmitter(); // used to export signature to outside
|
|
38
|
-
this.firstTimeLoad = true; //flage to control importing signatures in the first time load only
|
|
39
|
-
this.firstSignatureLoad = true; // flage to pass first load of imported signatures without emitting the event
|
|
40
|
-
this.newSignCreation = false; // flage to indicate signature creation is created or choosed from stored ones
|
|
41
34
|
}
|
|
42
35
|
ngOnInit() {
|
|
43
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
this.transelationSubscrition = this.translationService.isArabic.subscribe(res => {
|
|
45
|
-
this.isArabic = res;
|
|
46
|
-
});
|
|
47
|
-
});
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
48
37
|
}
|
|
49
38
|
ngAfterViewInit() {
|
|
50
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -67,110 +56,21 @@ export class PdftronComponent {
|
|
|
67
56
|
forceClientSideInit: true,
|
|
68
57
|
streaming: true,
|
|
69
58
|
licenseKey: this.environment.pdftronLicenceKey,
|
|
70
|
-
|
|
71
|
-
disabledElements: ['downloadButton', 'printButton'],
|
|
59
|
+
disabledElements: ['downloadButton'],
|
|
72
60
|
}, this.viewerRef.nativeElement).then((instance) => __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
this.isArabic ? instance.setLanguage('ar') : instance.setLanguage('en');
|
|
74
61
|
this.pdftronService.instance = this.webViewerInstance = instance;
|
|
75
|
-
this.addPrintButton();
|
|
76
62
|
this.addDownloadButton();
|
|
77
|
-
this.importSignature();
|
|
78
|
-
this.exportingSignature();
|
|
79
|
-
this.deleteAnnotation();
|
|
80
|
-
this.exportingSavedSignature();
|
|
81
63
|
this.loadDocument();
|
|
82
64
|
}));
|
|
83
65
|
});
|
|
84
66
|
}
|
|
85
|
-
importSignature() {
|
|
86
|
-
const documentViewer = this.webViewerInstance.docViewer;
|
|
87
|
-
const signatureTool = documentViewer.getTool('AnnotationCreateSignature');
|
|
88
|
-
documentViewer.on('documentLoaded', () => {
|
|
89
|
-
if (this.firstTimeLoad) {
|
|
90
|
-
signatureTool.importSignatures([...this.userSignatures]);
|
|
91
|
-
this.firstTimeLoad = false;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
exportingSavedSignature() {
|
|
96
|
-
const documentViewer = this.webViewerInstance.docViewer;
|
|
97
|
-
const SignatureCreateTool = documentViewer.getTool('AnnotationCreateSignature');
|
|
98
|
-
SignatureCreateTool.on('signatureSaved', (annotation) => {
|
|
99
|
-
if (!this.firstSignatureLoad) {
|
|
100
|
-
console.log('signature saved trigered');
|
|
101
|
-
this.newSignCreation = true;
|
|
102
|
-
}
|
|
103
|
-
this.firstSignatureLoad = false;
|
|
104
|
-
});
|
|
105
|
-
;
|
|
106
|
-
}
|
|
107
|
-
exportingSignature() {
|
|
108
|
-
const documentViewer = this.webViewerInstance.docViewer;
|
|
109
|
-
const SignatureCreateTool = documentViewer.getTool('AnnotationCreateSignature');
|
|
110
|
-
SignatureCreateTool.on('annotationAdded', (annotation) => {
|
|
111
|
-
if (annotation && this.newSignCreation) {
|
|
112
|
-
this.newSignCreation = false;
|
|
113
|
-
this.extractAnotation(annotation, documentViewer);
|
|
114
|
-
console.log(annotation);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
;
|
|
118
|
-
}
|
|
119
|
-
extractAnotation(annotation, documentViewer) {
|
|
120
|
-
if (annotation['image']) {
|
|
121
|
-
// convert base64 signature into file and emit it to out side
|
|
122
|
-
let base64Img = annotation['image']['currentSrc'];
|
|
123
|
-
var arr = base64Img.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
|
|
124
|
-
while (n--) {
|
|
125
|
-
u8arr[n] = bstr.charCodeAt(n);
|
|
126
|
-
}
|
|
127
|
-
let name = mime.replace('/', '.');
|
|
128
|
-
let myFile = new File([u8arr], 'mySignature.png', { type: mime });
|
|
129
|
-
this.SignatureEvent.emit({ data: myFile, eventName: 'export' });
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
this.extractAnnotationSignature(annotation, documentViewer);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
extractAnnotationSignature(annotation, docViewer) {
|
|
136
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
// Create a new Canvas to draw the Annotation on
|
|
138
|
-
const canvas = document.createElement('canvas');
|
|
139
|
-
// Reference the annotation from the Document
|
|
140
|
-
const pageMatrix = docViewer.getDocument().getPageMatrix(annotation.PageNumber);
|
|
141
|
-
// Set the height & width of the canvas to match the annotation
|
|
142
|
-
canvas.height = annotation.Height;
|
|
143
|
-
canvas.width = annotation.Width;
|
|
144
|
-
const ctx = canvas.getContext('2d');
|
|
145
|
-
// Translate the Annotation to the top Top Left Corner of the Canvas ie (0, 0)
|
|
146
|
-
ctx.translate(-annotation.X, -annotation.Y);
|
|
147
|
-
// Draw the Annotation onto the Canvas
|
|
148
|
-
annotation.draw(ctx, pageMatrix);
|
|
149
|
-
// Convert the Canvas to a Blob Object for Upload
|
|
150
|
-
canvas.toBlob((blob) => {
|
|
151
|
-
// Call your Blob Storage Upload Function
|
|
152
|
-
let name = blob.type.replace('/', '.');
|
|
153
|
-
let myFile = new File([blob], name);
|
|
154
|
-
this.SignatureEvent.emit({ data: myFile, eventName: 'export' });
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
deleteAnnotation() {
|
|
159
|
-
const documentViewer = this.webViewerInstance.docViewer;
|
|
160
|
-
const SignatureCreateTool = documentViewer.getTool('AnnotationCreateSignature');
|
|
161
|
-
SignatureCreateTool.on('signatureDeleted', (annotation, index) => {
|
|
162
|
-
console.log('there were annotations deleted');
|
|
163
|
-
this.userSignatures.splice(index, 1);
|
|
164
|
-
this.SignatureEvent.emit({ data: { signature: annotation, index: index }, eventName: 'delete' });
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
67
|
addDownloadButton() {
|
|
168
68
|
this.webViewerInstance.setHeaderItems((header) => {
|
|
169
69
|
header.push({
|
|
170
70
|
type: 'actionButton',
|
|
171
71
|
img: '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-file-earmark-arrow-down" viewBox="0 0 16 16"> <path d="M8.5 6.5a.5.5 0 0 0-1 0v3.793L6.354 9.146a.5.5 0 1 0-.708.708l2 2a.5.5 0 0 0 .708 0l2-2a.5.5 0 0 0-.708-.708L8.5 10.293V6.5z"/> <path d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z"/></svg>',
|
|
172
|
-
title:
|
|
173
|
-
onClick: () =>
|
|
72
|
+
title: 'Download',
|
|
73
|
+
onClick: () => {
|
|
174
74
|
const { DocumentViewer, AnnotationManager, SaveOptions } = this.webViewerInstance.CoreControls;
|
|
175
75
|
// const xfdfString = await AnnotationManager.exportAnnotations();
|
|
176
76
|
const saveOptions = SaveOptions;
|
|
@@ -181,7 +81,7 @@ export class PdftronComponent {
|
|
|
181
81
|
downloadType: 'pdf'
|
|
182
82
|
};
|
|
183
83
|
this.pdftronService.instance.downloadPdf(options);
|
|
184
|
-
this.events.next('download');
|
|
84
|
+
// this.events.next('download');
|
|
185
85
|
// let url = this.correspondance.properties.content.data;
|
|
186
86
|
// let fileName = this.correspondance.properties.content.name;
|
|
187
87
|
// if (url && fileName) {
|
|
@@ -194,22 +94,8 @@ export class PdftronComponent {
|
|
|
194
94
|
// document.body.appendChild(link);
|
|
195
95
|
// link.click();
|
|
196
96
|
// document.body.removeChild(link);
|
|
197
|
-
// this.events.next('download');
|
|
198
97
|
// });
|
|
199
98
|
// }
|
|
200
|
-
}),
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
addPrintButton() {
|
|
205
|
-
this.webViewerInstance.setHeaderItems((header) => {
|
|
206
|
-
header.push({
|
|
207
|
-
type: 'actionButton',
|
|
208
|
-
img: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#abb0c4;}</style></defs><title>icon - header - print - line</title><path class="cls-1" d="M20,6H18V2H6V6H4A2,2,0,0,0,2,8v9a2,2,0,0,0,2,2H6v3H18V19h2a2,2,0,0,0,2-2V8A2,2,0,0,0,20,6ZM8,4h8V6H8Zm8,16H8V16h8Zm4-3H18V14H6v3H4V8H20Zm-4-7h2v2H16Zm-3,0h2v2H13Z"></path></svg>',
|
|
209
|
-
title: this.isArabic ? "طباعة" : 'Print',
|
|
210
|
-
onClick: () => {
|
|
211
|
-
this.pdftronService.instance.print();
|
|
212
|
-
this.events.next('print');
|
|
213
99
|
},
|
|
214
100
|
});
|
|
215
101
|
});
|
|
@@ -244,7 +130,6 @@ export class PdftronComponent {
|
|
|
244
130
|
if (this.fileURL && this.fileURL.length) {
|
|
245
131
|
this.webViewerInstance.loadDocument(this.fileURL, {
|
|
246
132
|
filename: this.fileTitle,
|
|
247
|
-
xodstreaming: true,
|
|
248
133
|
customHeaders: {
|
|
249
134
|
Authorization: this.authHeader,
|
|
250
135
|
},
|
|
@@ -296,36 +181,13 @@ export class PdftronComponent {
|
|
|
296
181
|
this.webViewerInstance.annotManager.setReadOnly(true);
|
|
297
182
|
}
|
|
298
183
|
else {
|
|
299
|
-
//
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
]);
|
|
307
|
-
let group;
|
|
308
|
-
if (this.editingType === 'signDoc') {
|
|
309
|
-
this.webViewerInstance.enableElements([
|
|
310
|
-
'toolbarGroup-Insert'
|
|
311
|
-
]);
|
|
312
|
-
}
|
|
313
|
-
else if (this.editingType === 'annotate') {
|
|
314
|
-
this.webViewerInstance.enableElements([
|
|
315
|
-
'toolbarGroup-Shapes',
|
|
316
|
-
'toolbarGroup-Edit',
|
|
317
|
-
'toolbarGroup-Annotate',
|
|
318
|
-
]);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
else {
|
|
322
|
-
this.webViewerInstance.enableElements([
|
|
323
|
-
'toolbarGroup-Shapes',
|
|
324
|
-
'toolbarGroup-Edit',
|
|
325
|
-
'toolbarGroup-Insert',
|
|
326
|
-
'toolbarGroup-Annotate',
|
|
327
|
-
]);
|
|
328
|
-
}
|
|
184
|
+
//edit mode opened and must be when action is clicked
|
|
185
|
+
this.webViewerInstance.enableElements([
|
|
186
|
+
'toolbarGroup-Shapes',
|
|
187
|
+
'toolbarGroup-Edit',
|
|
188
|
+
'toolbarGroup-Insert',
|
|
189
|
+
'toolbarGroup-Annotate',
|
|
190
|
+
]);
|
|
329
191
|
this.webViewerInstance.annotManager.setReadOnly(false);
|
|
330
192
|
// this.webViewerInstance.setToolbarGroup('toolbarGroup-Annotate');
|
|
331
193
|
}
|
|
@@ -356,11 +218,10 @@ export class PdftronComponent {
|
|
|
356
218
|
});
|
|
357
219
|
this.pdftronService.instance = this.webViewerInstance = null;
|
|
358
220
|
}
|
|
359
|
-
this.transelationSubscrition ? this.transelationSubscrition.unsubscribe() : null;
|
|
360
221
|
}
|
|
361
222
|
}
|
|
362
|
-
PdftronComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PdftronComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PdftronService }, { token: i2.NuxeoService }, { token: APP_BASE_HREF }, { token: i3.SecurePipe }, { token:
|
|
363
|
-
PdftronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: PdftronComponent, selector: "app-pdftron", inputs: { editMode: "editMode", actionClicked: "actionClicked", fileTitle: "fileTitle", docId: "docId", DOCUMENT_TYPE: "DOCUMENT_TYPE", fileData: "fileData", fitMode: "fitMode", authHeader: "authHeader", fileURL: "fileURL", correspondance: "correspondance", secrecyProperty: "secrecyProperty"
|
|
223
|
+
PdftronComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PdftronComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PdftronService }, { token: i2.NuxeoService }, { token: APP_BASE_HREF }, { token: i3.SecurePipe }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
+
PdftronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: PdftronComponent, selector: "app-pdftron", inputs: { editMode: "editMode", actionClicked: "actionClicked", fileTitle: "fileTitle", docId: "docId", DOCUMENT_TYPE: "DOCUMENT_TYPE", fileData: "fileData", fitMode: "fitMode", authHeader: "authHeader", fileURL: "fileURL", correspondance: "correspondance", secrecyProperty: "secrecyProperty" }, providers: [SecurePipe], viewQueries: [{ propertyName: "viewerRef", first: true, predicate: ["fileViewer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #fileViewer style=\"width: 100%; height: 100%;\"></div>\r\n", styles: [""] });
|
|
364
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PdftronComponent, decorators: [{
|
|
365
226
|
type: Component,
|
|
366
227
|
args: [{
|
|
@@ -372,7 +233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
372
233
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.PdftronService }, { type: i2.NuxeoService }, { type: undefined, decorators: [{
|
|
373
234
|
type: Inject,
|
|
374
235
|
args: [APP_BASE_HREF]
|
|
375
|
-
}] }, { type: i3.SecurePipe }, { type:
|
|
236
|
+
}] }, { type: i3.SecurePipe }, { type: undefined, decorators: [{
|
|
376
237
|
type: Inject,
|
|
377
238
|
args: ['environment']
|
|
378
239
|
}] }]; }, propDecorators: { viewerRef: [{
|
|
@@ -400,13 +261,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
400
261
|
type: Input
|
|
401
262
|
}], secrecyProperty: [{
|
|
402
263
|
type: Input
|
|
403
|
-
}], editingType: [{
|
|
404
|
-
type: Input
|
|
405
|
-
}], userSignatures: [{
|
|
406
|
-
type: Input
|
|
407
|
-
}], events: [{
|
|
408
|
-
type: Output
|
|
409
|
-
}], SignatureEvent: [{
|
|
410
|
-
type: Output
|
|
411
264
|
}] } });
|
|
412
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sU0FBMkIsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFLeEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQXdDM0IsWUFDUyxHQUFzQixFQUNyQixjQUE4QixFQUM5QixLQUFtQixFQUNJLFFBQWdCLEVBQ3ZDLFVBQXNCLEVBQ3RCLGtCQUF1QyxFQUNoQixXQUFXO1FBTm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ0ksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUF4Q25DLGtCQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsNEVBQTRFO1FBVTVHLGtCQUFhLEdBQUcsaUJBQWlCLENBQUM7UUFJbEMsWUFBTyxHQUFvQyxVQUFVLENBQUM7UUFZdEQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsc0NBQXNDO1FBQ3JGLGtCQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsbUVBQW1FO1FBQ3pGLHVCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFDLDhFQUE4RTtRQUN6RyxvQkFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDLDhFQUE4RTtJQVduRyxDQUFDO0lBRUMsUUFBUTs7WUFDWixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzlFLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFFO1lBQ3ZCLENBQUMsQ0FBQyxDQUFBO1FBQ0gsQ0FBQztLQUFBO0lBRUksZUFBZTs7WUFDbkIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRywrQkFBK0IsQ0FBQzthQUN0RDtpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMzQyxJQUFJLENBQUMsYUFBYTtvQkFDaEIsMkVBQTJFLENBQUM7YUFDL0U7aUJBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQzthQUMzQztpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMzQyxJQUFJLENBQUMsYUFBYTtvQkFDaEIseUVBQXlFLENBQUM7YUFDN0U7WUFDRCxTQUFTLENBQ1A7Z0JBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCO2dCQUN4QyxtQkFBbUIsRUFBRSxJQUFJO2dCQUN6QixTQUFTLEVBQUUsSUFBSTtnQkFDZixVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUI7Z0JBQzlDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO2dCQUN4SCxnQkFBZ0IsRUFBRSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQzthQUVwRCxFQUNELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUM3QixDQUFDLElBQUksQ0FBQyxDQUFPLFFBQVEsRUFBRSxFQUFFO2dCQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFFO2dCQUN6RSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO2dCQUVqRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV0QixDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsZUFBZTtRQUNiLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7UUFDeEQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRTFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1lBQ3ZDLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBQztnQkFDcEIsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztRQUN4RCxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtRQUMvRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0RCxJQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFDO2dCQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUFBLENBQUM7SUFDTixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7UUFDeEQsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFDL0UsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdkQsSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUcsY0FBYyxDQUFDLENBQUM7Z0JBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUFBLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBVSxFQUFHLGNBQWM7UUFDMUMsSUFBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUM7WUFDckIsOERBQThEO1lBQzlELElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRCxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUM5QixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDakMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkIsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQ2YsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE9BQU0sQ0FBQyxFQUFFLEVBQUM7Z0JBQ04sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakM7WUFDRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRyxHQUFHLENBQUMsQ0FBQTtZQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBRWpFO2FBQUk7WUFDSCxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxFQUFHLGNBQWMsQ0FBQyxDQUFBO1NBQzdEO0lBQ0gsQ0FBQztJQUVLLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxTQUFTOztZQUNwRCxnREFBZ0Q7WUFDaEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCw2Q0FBNkM7WUFDN0MsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDaEYsK0RBQStEO1lBQy9ELE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNsQyxNQUFNLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDaEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyw4RUFBOEU7WUFDOUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsc0NBQXNDO1lBQ3RDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLGlEQUFpRDtZQUNqRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JCLHlDQUF5QztnQkFDekMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFHLEdBQUcsQ0FBQyxDQUFBO2dCQUN2QyxJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1FBQ3hELE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hGLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEdBQUcsRUFBRSxrY0FBa2M7Z0JBQ3ZjLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVU7Z0JBQzNDLE9BQU8sRUFBRSxHQUFTLEVBQUU7b0JBQ2xCLE1BQU0sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQztvQkFDL0Ysa0VBQWtFO29CQUNsRSxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUM7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHO3dCQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjt3QkFDbEYsY0FBYzt3QkFDZCxLQUFLLEVBQUUsV0FBVyxDQUFDLFVBQVU7d0JBQzdCLFlBQVksRUFBRSxLQUFLO3FCQUNwQixDQUFDO29CQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQzdCLHlEQUF5RDtvQkFDekQsOERBQThEO29CQUM5RCx5QkFBeUI7b0JBQ3pCLGtEQUFrRDtvQkFDbEQsc0NBQXNDO29CQUN0QyxnREFBZ0Q7b0JBQ2hELG1DQUFtQztvQkFDbkMsNkRBQTZEO29CQUM3RCxnQ0FBZ0M7b0JBQ2hDLHVDQUF1QztvQkFDdkMsb0JBQW9CO29CQUNwQix1Q0FBdUM7b0JBQ3ZDLG9DQUFvQztvQkFDcEMsUUFBUTtvQkFDUixJQUFJO2dCQUNOLENBQUMsQ0FBQTthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixJQUFJLEVBQUUsY0FBYztnQkFDcEIsR0FBRyxFQUFFLGtXQUFrVztnQkFDdlcsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTztnQkFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVCLENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FDOUIsR0FBRyxRQUFRLENBQUMsUUFBUSxNQUFNO1FBQzFCLDRCQUE0QjtRQUM1QixzQkFBc0I7UUFDdEIsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEUsT0FBTztTQUNSO1FBQ0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3hFLFNBQVMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1lBQ2xDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3RELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUNsRDtpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO2dCQUNsQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7YUFDL0M7WUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsNEJBQTRCO1NBQzdCO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEQsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN4QixZQUFZLEVBQUMsSUFBSTtnQkFDakIsYUFBYSxFQUFFO29CQUNiLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVTtpQkFDL0I7Z0JBQ0QsZUFBZSxFQUFFLElBQUk7YUFDdEIsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQ2pDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQ3ZFO2dCQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUzthQUN6QixDQUNGLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDckMscUVBQXFFO1lBQ3JFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNsRSxpREFBaUQ7Z0JBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxRQUFRLEVBQUU7b0JBQzdILElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtpQkFDcEI7YUFDRjtpQkFDSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4RSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7U0FDRjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVLLFlBQVk7O1lBQ2hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0QsTUFBTSxVQUFVLEdBQ2QsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDaEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDO2dCQUNqQyw0Q0FBNEM7Z0JBQzVDLFVBQVU7YUFDWCxDQUFDLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO0tBQUE7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7Z0JBQ3JDLHFCQUFxQjtnQkFDckIsbUJBQW1CO2dCQUNuQixxQkFBcUI7Z0JBQ3JCLHVCQUF1QjthQUN4QixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0wsc0RBQXNEO1lBQ3RELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztvQkFDckMscUJBQXFCO29CQUNyQixtQkFBbUI7b0JBQ25CLHFCQUFxQjtvQkFDckIsdUJBQXVCO2lCQUN4QixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxLQUFLLENBQUU7Z0JBQ1gsSUFBRyxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBQztvQkFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQzt3QkFDcEMscUJBQXFCO3FCQUN0QixDQUFDLENBQUM7aUJBRUo7cUJBQUssSUFBRyxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBQztvQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQzt3QkFDcEMscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHVCQUF1QjtxQkFDeEIsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztvQkFDcEMscUJBQXFCO29CQUNyQixtQkFBbUI7b0JBQ25CLHFCQUFxQjtvQkFDckIsdUJBQXVCO2lCQUN4QixDQUFDLENBQUM7YUFDSjtZQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELG1FQUFtRTtTQUNwRTtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTztRQUNqQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFDRSxPQUFPLENBQUMsY0FBYztnQkFDdEIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhO2dCQUNwQyxPQUFPLENBQUMsY0FBYyxDQUFDLGFBQWE7b0JBQ3BDLE9BQU8sQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUNuQztnQkFDQSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQUs7UUFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RCLGlDQUFpQztZQUNqQyxnREFBZ0Q7U0FDakQ7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQzlEO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNuRixDQUFDOzs2R0FyWVUsZ0JBQWdCLDZHQTRDakIsYUFBYSx5RUFHYixhQUFhO2lHQS9DWixnQkFBZ0IsNmNBRmhCLENBQUMsVUFBVSxDQUFDLHdKQ3hDekIsa0VBQ0E7MkZEeUNhLGdCQUFnQjtrQkFONUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDeEI7OzBCQTZDSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUdwQixNQUFNOzJCQUFDLGFBQWE7NENBN0NFLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWTtnQkFJdkIsUUFBUTtzQkFEUCxLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFTixNQUFNO3NCQURMLE1BQU07Z0JBRUcsY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBXZWJWaWV3ZXIsIHsgQ29yZUNvbnRyb2xzIH0gZnJvbSAnQHBkZnRyb24vd2Vidmlld2VyJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGRmdHJvblNlcnZpY2UgfSBmcm9tICcuL3BkZnRyb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFQUF9CQVNFX0hSRUYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZWN1cmVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvc2VjdXJlLnBpcGUnO1xyXG5pbXBvcnQgeyBUaHJvd1N0bXQgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIEEgcmV1c2FibGUgZmlsZSB2aWV3ZXIgYmFzZWQgb24gUERGVHJvbiBMaWJyYXJ5XHJcbiAqIEB0aXRsZVxyXG4gKiBQREZUcm9uIFZpZXdlclxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLXBkZnRyb25cclxuICogICBbZmlsZURhdGFdPVwiZmlsZURhdGFcIlxyXG4gKiAgIFtlZGl0TW9kZV09XCJmYWxzZVwiXHJcbiAqICAgW2RvY0lkXT1cImZpbGVJZFwiXHJcbiAqICAgW2ZpbGVUaXRsZV09XCJmaWxlLnRpdGxlXCJcclxuICogPlxyXG4gKiA8L2FwcC1wZGZ0cm9uPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcGRmdHJvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZnRyb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BkZnRyb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtTZWN1cmVQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZnRyb25Db21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVWaWV3ZXInKSB2aWV3ZXJSZWY6IEVsZW1lbnRSZWY7XHJcbiAgd2ViVmlld2VySW5zdGFuY2U7XHJcbiAgLyoqIERpc2FibGUvRW5hYmxlIEFubm90YXRpb24gKi9cclxuICBASW5wdXQoKVxyXG4gIGVkaXRNb2RlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkNsaWNrZWQgPSBmYWxzZTsgLy8gdXNlZCB0byBrbm93IGlmIHRoZXJlIGlzIGFjdGlvbiBjbGlja2VkIG91dHNpZGUgdG8gc3RhcnQgZWRpdCBtb2RlIG9yIG5vdFxyXG4gIGlzRG9jdW1lbnRMb2FkaW5nOiBib29sZWFuO1xyXG4gIGlzRmV0Y2hpbmc6IGJvb2xlYW47XHJcbiAgLyoqIERvY3VtZW50IHRpdGxlICovXHJcbiAgQElucHV0KClcclxuICBmaWxlVGl0bGU6IHN0cmluZztcclxuICAvKiogRG9jdW1lbnQgSUQgKi9cclxuICBASW5wdXQoKVxyXG4gIGRvY0lkOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBET0NVTUVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL3BkZic7XHJcbiAgQElucHV0KClcclxuICBmaWxlRGF0YTtcclxuICBASW5wdXQoKVxyXG4gIGZpdE1vZGU6ICdGaXRXaWR0aCcgfCAnRml0UGFnZScgfCAnWm9vbScgPSAnRml0V2lkdGgnO1xyXG4gIEBJbnB1dCgpXHJcbiAgYXV0aEhlYWRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZVVSTDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY29ycmVzcG9uZGFuY2U7XHJcblxyXG4gIEBJbnB1dCgpIHNlY3JlY3lQcm9wZXJ0eTsgLy8gdXNlZCB0byBhZGQgd2F0ZXJtYXJrIGFjb3JkaW5nIGNlcnRhaW4gc2VjcmVjeSBsZXZlbFxyXG4gIEBJbnB1dCgpIGVkaXRpbmdUeXBlO1xyXG4gIEBJbnB1dCgpIHVzZXJTaWduYXR1cmVzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgU2lnbmF0dXJlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHVzZWQgdG8gZXhwb3J0IHNpZ25hdHVyZSB0byBvdXRzaWRlXHJcbiAgZmlyc3RUaW1lTG9hZCA9IHRydWU7IC8vZmxhZ2UgdG8gY29udHJvbCBpbXBvcnRpbmcgc2lnbmF0dXJlcyBpbiB0aGUgZmlyc3QgdGltZSBsb2FkIG9ubHlcclxuICBmaXJzdFNpZ25hdHVyZUxvYWQgPSB0cnVlOyAvLyBmbGFnZSB0byBwYXNzIGZpcnN0IGxvYWQgb2YgaW1wb3J0ZWQgc2lnbmF0dXJlcyB3aXRob3V0IGVtaXR0aW5nIHRoZSBldmVudCBcclxuICBuZXdTaWduQ3JlYXRpb24gPSBmYWxzZTsgLy8gZmxhZ2UgdG8gaW5kaWNhdGUgc2lnbmF0dXJlIGNyZWF0aW9uIGlzIGNyZWF0ZWQgb3IgY2hvb3NlZCBmcm9tIHN0b3JlZCBvbmVzXHJcbiAgdHJhbnNlbGF0aW9uU3Vic2NyaXRpb24gOiBTdWJzY3JpcHRpb247XHJcbiAgaXNBcmFiaWM7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcGRmdHJvblNlcnZpY2U6IFBkZnRyb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlbzogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgQEluamVjdChBUFBfQkFTRV9IUkVGKSBwcml2YXRlIGJhc2VIcmVmOiBzdHJpbmcsXHJcbiAgICBwcml2YXRlIHNlY3VyZVBpcGU6IFNlY3VyZVBpcGUsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZSA6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudFxyXG4gICkgeyB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmlzQXJhYmljID0gcmVzIDtcclxuICAgIH0pXHJcbiAgIH1cclxuXHJcbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcucHB0JykpIHtcclxuICAgICAgdGhpcy5ET0NVTUVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5wcHR4JykpIHtcclxuICAgICAgdGhpcy5ET0NVTUVOVF9UWVBFID1cclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbic7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcuZG9jJykpIHtcclxuICAgICAgdGhpcy5ET0NVTUVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL21zd29yZCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcuZG9jeCcpKSB7XHJcbiAgICAgIHRoaXMuRE9DVU1FTlRfVFlQRSA9XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JztcclxuICAgIH1cclxuICAgIFdlYlZpZXdlcihcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IHRoaXMuYmFzZUhyZWYgKyAnL2Fzc2V0cy9wZGZ0cm9ucycsXHJcbiAgICAgICAgZm9yY2VDbGllbnRTaWRlSW5pdDogdHJ1ZSxcclxuICAgICAgICBzdHJlYW1pbmc6IHRydWUsXHJcbiAgICAgICAgbGljZW5zZUtleTogdGhpcy5lbnZpcm9ubWVudC5wZGZ0cm9uTGljZW5jZUtleSxcclxuICAgICAgICBhbm5vdGF0aW9uVXNlcjogdGhpcy5udXhlby5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMuZmlyc3ROYW1lICsgJyAnICsgdGhpcy5udXhlby5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMubGFzdE5hbWUsXHJcbiAgICAgICAgZGlzYWJsZWRFbGVtZW50czogWydkb3dubG9hZEJ1dHRvbicsICdwcmludEJ1dHRvbiddLFxyXG5cclxuICAgICAgfSxcclxuICAgICAgdGhpcy52aWV3ZXJSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgKS50aGVuKGFzeW5jIChpbnN0YW5jZSkgPT4ge1xyXG4gICAgICB0aGlzLmlzQXJhYmljID8gaW5zdGFuY2Uuc2V0TGFuZ3VhZ2UoJ2FyJykgOiBpbnN0YW5jZS5zZXRMYW5ndWFnZSgnZW4nKSA7XHJcbiAgICAgIHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmFkZFByaW50QnV0dG9uKCk7XHJcbiAgICAgIHRoaXMuYWRkRG93bmxvYWRCdXR0b24oKTtcclxuICAgICAgdGhpcy5pbXBvcnRTaWduYXR1cmUoKTtcclxuICAgICAgdGhpcy5leHBvcnRpbmdTaWduYXR1cmUoKTtcclxuICAgICAgdGhpcy5kZWxldGVBbm5vdGF0aW9uKCk7XHJcbiAgICAgIHRoaXMuZXhwb3J0aW5nU2F2ZWRTaWduYXR1cmUoKTtcclxuICAgICAgdGhpcy5sb2FkRG9jdW1lbnQoKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGltcG9ydFNpZ25hdHVyZSgpIHtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcbiAgICBjb25zdCBzaWduYXR1cmVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpO1xyXG5cclxuICAgIGRvY3VtZW50Vmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsICgpID0+IHtcclxuICAgICAgaWYodGhpcy5maXJzdFRpbWVMb2FkKXtcclxuICAgICAgICBzaWduYXR1cmVUb29sLmltcG9ydFNpZ25hdHVyZXMoWy4uLnRoaXMudXNlclNpZ25hdHVyZXNdKTtcclxuICAgICAgICB0aGlzLmZpcnN0VGltZUxvYWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0aW5nU2F2ZWRTaWduYXR1cmUoKSB7XHJcbiAgICBjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG4gICAgY29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKVxyXG4gICAgU2lnbmF0dXJlQ3JlYXRlVG9vbC5vbignc2lnbmF0dXJlU2F2ZWQnLCAoYW5ub3RhdGlvbikgPT4ge1xyXG4gICAgICBpZighdGhpcy5maXJzdFNpZ25hdHVyZUxvYWQpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdzaWduYXR1cmUgc2F2ZWQgdHJpZ2VyZWQnKTtcclxuICAgICAgICB0aGlzLm5ld1NpZ25DcmVhdGlvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maXJzdFNpZ25hdHVyZUxvYWQgPSBmYWxzZTtcclxuICAgIH0pOztcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0aW5nU2lnbmF0dXJlKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IFNpZ25hdHVyZUNyZWF0ZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJylcclxuICAgIFNpZ25hdHVyZUNyZWF0ZVRvb2wub24oJ2Fubm90YXRpb25BZGRlZCcsIChhbm5vdGF0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChhbm5vdGF0aW9uICYmIHRoaXMubmV3U2lnbkNyZWF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5uZXdTaWduQ3JlYXRpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmV4dHJhY3RBbm90YXRpb24oYW5ub3RhdGlvbiAsIGRvY3VtZW50Vmlld2VyKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhhbm5vdGF0aW9uKVxyXG4gICAgICB9XHJcbiAgICB9KTs7XHJcbiAgfVxyXG5cclxuICBleHRyYWN0QW5vdGF0aW9uKGFubm90YXRpb24gLCBkb2N1bWVudFZpZXdlcil7XHJcbiAgICBpZihhbm5vdGF0aW9uWydpbWFnZSddKXtcclxuICAgICAgLy8gY29udmVydCBiYXNlNjQgc2lnbmF0dXJlIGludG8gZmlsZSBhbmQgZW1pdCBpdCB0byBvdXQgc2lkZSBcclxuICAgICAgbGV0IGJhc2U2NEltZyA9IGFubm90YXRpb25bJ2ltYWdlJ11bJ2N1cnJlbnRTcmMnXTtcclxuICAgICAgdmFyIGFyciA9IGJhc2U2NEltZy5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksIFxyXG4gICAgICBuID0gYnN0ci5sZW5ndGgsIFxyXG4gICAgICB1OGFyciA9IG5ldyBVaW50OEFycmF5KG4pO1xyXG4gICAgICB3aGlsZShuLS0pe1xyXG4gICAgICAgICAgdThhcnJbbl0gPSBic3RyLmNoYXJDb2RlQXQobik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5hbWUgPSBtaW1lLnJlcGxhY2UoJy8nICwgJy4nKVxyXG4gICAgICBsZXQgbXlGaWxlID0gbmV3IEZpbGUoW3U4YXJyXSwgJ215U2lnbmF0dXJlLnBuZycsIHt0eXBlOm1pbWV9KTtcclxuICAgICAgdGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogbXlGaWxlLCBldmVudE5hbWU6ICdleHBvcnQnIH0pO1xyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmV4dHJhY3RBbm5vdGF0aW9uU2lnbmF0dXJlKGFubm90YXRpb24gLCBkb2N1bWVudFZpZXdlcilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGV4dHJhY3RBbm5vdGF0aW9uU2lnbmF0dXJlKGFubm90YXRpb24sIGRvY1ZpZXdlcikge1xyXG4gICAgLy8gQ3JlYXRlIGEgbmV3IENhbnZhcyB0byBkcmF3IHRoZSBBbm5vdGF0aW9uIG9uXHJcbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgIC8vIFJlZmVyZW5jZSB0aGUgYW5ub3RhdGlvbiBmcm9tIHRoZSBEb2N1bWVudFxyXG4gICAgY29uc3QgcGFnZU1hdHJpeCA9IGRvY1ZpZXdlci5nZXREb2N1bWVudCgpLmdldFBhZ2VNYXRyaXgoYW5ub3RhdGlvbi5QYWdlTnVtYmVyKTtcclxuICAgIC8vIFNldCB0aGUgaGVpZ2h0ICYgd2lkdGggb2YgdGhlIGNhbnZhcyB0byBtYXRjaCB0aGUgYW5ub3RhdGlvblxyXG4gICAgY2FudmFzLmhlaWdodCA9IGFubm90YXRpb24uSGVpZ2h0O1xyXG4gICAgY2FudmFzLndpZHRoID0gYW5ub3RhdGlvbi5XaWR0aDtcclxuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgLy8gVHJhbnNsYXRlIHRoZSBBbm5vdGF0aW9uIHRvIHRoZSB0b3AgVG9wIExlZnQgQ29ybmVyIG9mIHRoZSBDYW52YXMgaWUgKDAsIDApXHJcbiAgICBjdHgudHJhbnNsYXRlKC1hbm5vdGF0aW9uLlgsIC1hbm5vdGF0aW9uLlkpO1xyXG4gICAgLy8gRHJhdyB0aGUgQW5ub3RhdGlvbiBvbnRvIHRoZSBDYW52YXNcclxuICAgIGFubm90YXRpb24uZHJhdyhjdHgsIHBhZ2VNYXRyaXgpO1xyXG4gICAgLy8gQ29udmVydCB0aGUgQ2FudmFzIHRvIGEgQmxvYiBPYmplY3QgZm9yIFVwbG9hZFxyXG4gICAgY2FudmFzLnRvQmxvYigoYmxvYikgPT4ge1xyXG4gICAgICAvLyBDYWxsIHlvdXIgQmxvYiBTdG9yYWdlIFVwbG9hZCBGdW5jdGlvblxyXG4gICAgICBsZXQgbmFtZSA9IGJsb2IudHlwZS5yZXBsYWNlKCcvJyAsICcuJylcclxuICAgICAgbGV0IG15RmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgbmFtZSk7XHJcbiAgICAgIHRoaXMuU2lnbmF0dXJlRXZlbnQuZW1pdCh7IGRhdGE6IG15RmlsZSwgZXZlbnROYW1lOiAnZXhwb3J0JyB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQW5ub3RhdGlvbigpIHtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcbiAgICBjb25zdCBTaWduYXR1cmVDcmVhdGVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpO1xyXG4gICAgU2lnbmF0dXJlQ3JlYXRlVG9vbC5vbignc2lnbmF0dXJlRGVsZXRlZCcsIChhbm5vdGF0aW9uLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygndGhlcmUgd2VyZSBhbm5vdGF0aW9ucyBkZWxldGVkJyk7XHJcbiAgICAgIHRoaXMudXNlclNpZ25hdHVyZXMuc3BsaWNlKGluZGV4ICwgMSk7XHJcbiAgICAgIHRoaXMuU2lnbmF0dXJlRXZlbnQuZW1pdCh7IGRhdGE6IHsgc2lnbmF0dXJlOiBhbm5vdGF0aW9uLCBpbmRleDogaW5kZXggfSwgZXZlbnROYW1lOiAnZGVsZXRlJyB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBhZGREb3dubG9hZEJ1dHRvbigpIHtcclxuICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0SGVhZGVySXRlbXMoKGhlYWRlcikgPT4ge1xyXG4gICAgICBoZWFkZXIucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ2FjdGlvbkJ1dHRvbicsXHJcbiAgICAgICAgaW1nOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrLWFycm93LWRvd25cIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+IDxwYXRoIGQ9XCJNOC41IDYuNWEuNS41IDAgMCAwLTEgMHYzLjc5M0w2LjM1NCA5LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDIgMmEuNS41IDAgMCAwIC43MDggMGwyLTJhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1Y2LjV6XCIvPiA8cGF0aCBkPVwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmlzQXJhYmljID8gJ9iq2YbYstmK2YQnIDogJ0Rvd25sb2FkJyxcclxuICAgICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IERvY3VtZW50Vmlld2VyLCBBbm5vdGF0aW9uTWFuYWdlciwgU2F2ZU9wdGlvbnMgfSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQ29yZUNvbnRyb2xzO1xyXG4gICAgICAgICAgLy8gY29uc3QgeGZkZlN0cmluZyA9IGF3YWl0IEFubm90YXRpb25NYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcbiAgICAgICAgICBjb25zdCBzYXZlT3B0aW9ucyA9IFNhdmVPcHRpb25zO1xyXG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgZmlsZW5hbWU6IHRoaXMuY29ycmVzcG9uZGFuY2UudGl0bGUgPyB0aGlzLmNvcnJlc3BvbmRhbmNlLnRpdGxlIDogJ215RG9jdW1lbnQucGRmJyxcclxuICAgICAgICAgICAgLy8geGZkZlN0cmluZyxcclxuICAgICAgICAgICAgZmxhZ3M6IHNhdmVPcHRpb25zLkxJTkVBUklaRUQsXHJcbiAgICAgICAgICAgIGRvd25sb2FkVHlwZTogJ3BkZidcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb3dubG9hZFBkZihvcHRpb25zKTtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ2Rvd25sb2FkJyk7XHJcbiAgICAgICAgICAvLyBsZXQgdXJsID0gdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzLmNvbnRlbnQuZGF0YTtcclxuICAgICAgICAgIC8vIGxldCBmaWxlTmFtZSA9IHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllcy5jb250ZW50Lm5hbWU7XHJcbiAgICAgICAgICAvLyBpZiAodXJsICYmIGZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAvLyAgIGxldCBzYWZlVXJsID0gdGhpcy5zZWN1cmVQaXBlLnRyYW5zZm9ybSh1cmwpO1xyXG4gICAgICAgICAgLy8gICBzYWZlVXJsLnN1YnNjcmliZSgodXJsOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgLy8gICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAgIC8vICAgICBsaW5rLmhyZWYgPSB1cmwuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgICB0aGlzLmV2ZW50cy5uZXh0KCdkb3dubG9hZCcpO1xyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkUHJpbnRCdXR0b24oKSB7XHJcbiAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEhlYWRlckl0ZW1zKChoZWFkZXIpID0+IHtcclxuICAgICAgaGVhZGVyLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG4gICAgICAgIGltZzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2FiYjBjNDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmljb24gLSBoZWFkZXIgLSBwcmludCAtIGxpbmU8L3RpdGxlPjxwYXRoIGNsYXNzPVwiY2xzLTFcIiBkPVwiTTIwLDZIMThWMkg2VjZINEEyLDIsMCwwLDAsMiw4djlhMiwyLDAsMCwwLDIsMkg2djNIMThWMTloMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDIwLDZaTTgsNGg4VjZIOFptOCwxNkg4VjE2aDhabTQtM0gxOFYxNEg2djNINFY4SDIwWm0tNC03aDJ2MkgxNlptLTMsMGgydjJIMTNaXCI+PC9wYXRoPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuaXNBcmFiaWMgPyBcIti32KjYp9i52KlcIiA6ICdQcmludCcsXHJcbiAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5wcmludCgpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHMubmV4dCgncHJpbnQnKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkV2F0ZXJtYXJrKCkge1xyXG4gICAgY29uc3QgdXNlcmluZm8gPSB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcztcclxuICAgIHRoaXMucGRmdHJvblNlcnZpY2UuYWRkV2F0ZXJtYXJrKFxyXG4gICAgICBgJHt1c2VyaW5mby51c2VybmFtZX0gICAgYFxyXG4gICAgICAvLyBgJHt1c2VyaW5mby5maXJzdE5hbWV9ICR7XHJcbiAgICAgIC8vICAgdXNlcmluZm8ubGFzdE5hbWVcclxuICAgICAgLy8gfSBgXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9hZERvY3VtZW50KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLndlYlZpZXdlckluc3RhbmNlIHx8ICghdGhpcy5maWxlRGF0YSAmJiAhdGhpcy5maWxlVVJMKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGRvY1ZpZXdlciwgYW5ub3RNYW5hZ2VyLCBBbm5vdGF0aW9ucyB9ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZTtcclxuICAgIGRvY1ZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCAoKSA9PiB7XHJcbiAgICAgIGxldCBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLkZpdFdpZHRoO1xyXG4gICAgICBpZiAodGhpcy5maXRNb2RlID09PSAnRml0UGFnZScpIHtcclxuICAgICAgICBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLkZpdFBhZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5maXRNb2RlID09PSAnWm9vbScpIHtcclxuICAgICAgICBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLlpvb207XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRGaXRNb2RlKGZpdE1vZGUpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMuZWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcbiAgICAgIC8vIGluc3RhbmNlLmVuYWJsZVRvb2xzKFtdKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVVUkwgJiYgdGhpcy5maWxlVVJMLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmxvYWREb2N1bWVudCh0aGlzLmZpbGVVUkwsIHtcclxuICAgICAgICBmaWxlbmFtZTogdGhpcy5maWxlVGl0bGUsXHJcbiAgICAgICAgeG9kc3RyZWFtaW5nOnRydWUsXHJcbiAgICAgICAgY3VzdG9tSGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogdGhpcy5hdXRoSGVhZGVyLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UubG9hZERvY3VtZW50KFxyXG4gICAgICAgIG5ldyBCbG9iKFtuZXcgVWludDhBcnJheSh0aGlzLmZpbGVEYXRhKV0sIHsgdHlwZTogdGhpcy5ET0NVTUVOVF9UWVBFIH0pLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpbGVuYW1lOiB0aGlzLmZpbGVUaXRsZSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0ZldGNoaW5nID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5jb3JyZXNwb25kYW5jZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vIGlmIHdlIG5lZWQgdG8gY2hlY2sgb24gc2VjcmVjeSBsZXZlbCBmb3IgYWRkaW5nIHdhdGVyIG1hcmsgb3Igbm90IFxyXG4gICAgICBpZiAodGhpcy5lbnZpcm9ubWVudC5lbmFibGVWaWV3ZXJXYXRlck1hcmsgJiYgdGhpcy5zZWNyZWN5UHJvcGVydHkpIHtcclxuICAgICAgICAvLyBjaGVjayBmb3Igc2VjcmVjeSBsZXZlbCBiZWZvciBhZGRpbmcgd2F0ZXJtYXJrXHJcbiAgICAgICAgaWYgKHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllc1t0aGlzLnNlY3JlY3lQcm9wZXJ0eV0gJiYgdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAhPT0gJ05vcm1hbCcpIHtcclxuICAgICAgICAgIHRoaXMuYWRkV2F0ZXJtYXJrKClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5lbnZpcm9ubWVudC5lbmFibGVWaWV3ZXJXYXRlck1hcmsgJiYgIXRoaXMuc2VjcmVjeVByb3BlcnR5KSB7XHJcbiAgICAgICAgdGhpcy5hZGRXYXRlcm1hcmsoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhwb3J0QXNCbG9iKCk6IFByb21pc2U8QmxvYj4ge1xyXG4gICAgY29uc3QgZG9jID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0RG9jdW1lbnQoKTtcclxuICAgIGNvbnN0IHhmZGZTdHJpbmcgPVxyXG4gICAgICBhd2FpdCB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5leHBvcnRBbm5vdGF0aW9ucygpO1xyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGRvYy5nZXRGaWxlRGF0YSh7XHJcbiAgICAgIC8vIHNhdmVzIHRoZSBkb2N1bWVudCB3aXRoIGFubm90YXRpb25zIGluIGl0XHJcbiAgICAgIHhmZGZTdHJpbmcsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGRhdGEpO1xyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJdLCB7IHR5cGU6IHRoaXMuRE9DVU1FTlRfVFlQRSB9KTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYmxvYik7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFZGl0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmFjdGlvbkNsaWNrZWQpIHtcclxuICAgICAgLy8gYWN0aW9uIGNsaWNrZWQgaXMgbm90IGNsaWNrZWQgdGhlbiBubyB1cGRhdGUgbW9kZSBvcGVuZWRcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kaXNhYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuICAgICAgICAndG9vbGJhckdyb3VwLUFubm90YXRlJyxcclxuICAgICAgXSk7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnNldFJlYWRPbmx5KHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gZWRpdCBtb2RlIG9wZW5lZCBhbmQgbXVzdCBiZSB3aGVuIGFjdGlvbiBpcyBjbGlja2VkXHJcbiAgICAgIGlmICh0aGlzLmVkaXRpbmdUeXBlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kaXNhYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIGxldCBncm91cCA7XHJcbiAgICAgICAgaWYodGhpcy5lZGl0aW5nVHlwZSA9PT0gJ3NpZ25Eb2MnKXtcclxuICAgICAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgICAndG9vbGJhckdyb3VwLUluc2VydCdcclxuICAgICAgICAgIF0pO1xyXG5cclxuICAgICAgICB9ZWxzZSBpZih0aGlzLmVkaXRpbmdUeXBlID09PSAnYW5ub3RhdGUnKXtcclxuICAgICAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtRWRpdCcsXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICAgICAgXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICAgIF0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnNldFJlYWRPbmx5KGZhbHNlKTtcclxuICAgICAgLy8gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRUb29sYmFyR3JvdXAoJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMud2ViVmlld2VySW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy50b2dnbGVFZGl0KCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50ICYmXHJcbiAgICAgICAgY2hhbmdlcy51cmxGaWxlQ29udGVudC5wcmV2aW91c1ZhbHVlICYmXHJcbiAgICAgICAgY2hhbmdlcy51cmxGaWxlQ29udGVudC5wcmV2aW91c1ZhbHVlICE9PVxyXG4gICAgICAgIGNoYW5nZXMudXJsRmlsZUNvbnRlbnQuY3VycmVudFZhbHVlXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwZGZUcm9uRXZlbnQoZXZlbnQpIHtcclxuICAgIGlmICh0aGlzW2V2ZW50LmFjdGlvbl0pIHtcclxuICAgICAgLy8gbWV0aG9kIGV4aXN0cyBpbiB0aGUgY29tcG9uZW50XHJcbiAgICAgIC8vICB0aGlzW2V2ZW50LmFjdGlvbl0oZXZlbnQucGFyYW1zKTsgLy8gY2FsbCBpdFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmNsb3NlRG9jdW1lbnQoKS50aGVuKCgpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZG9jdW1lbnQgY2xvc2VkIScpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA/IHRoaXMudHJhbnNlbGF0aW9uU3Vic2NyaXRpb24udW5zdWJzY3JpYmUoKSA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2ZpbGVWaWV3ZXIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1wiPjwvZGl2PlxyXG4iXX0=
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUlMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFNBQTJCLE1BQU0sb0JBQW9CLENBQUM7QUFHN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFFeEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQThCM0IsWUFDUyxHQUFzQixFQUNyQixjQUE4QixFQUM5QixLQUFtQixFQUNJLFFBQWdCLEVBQ3ZDLFVBQXNCLEVBQ0MsV0FBVztRQUxuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNJLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDdkMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNDLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBNUJuQyxrQkFBYSxHQUFHLEtBQUssQ0FBQyxDQUFDLDRFQUE0RTtRQVU1RyxrQkFBYSxHQUFHLGlCQUFpQixDQUFDO1FBSWxDLFlBQU8sR0FBb0MsVUFBVSxDQUFDO0lB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Q3ZDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDeEI7OzBCQW1DSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUVwQixNQUFNOzJCQUFDLGFBQWE7NENBakNFLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWTtnQkFJdkIsUUFBUTtzQkFEUCxLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBXZWJWaWV3ZXIsIHsgQ29yZUNvbnRyb2xzIH0gZnJvbSAnQHBkZnRyb24vd2Vidmlld2VyJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGRmdHJvblNlcnZpY2UgfSBmcm9tICcuL3BkZnRyb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFQUF9CQVNFX0hSRUYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZWN1cmVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvc2VjdXJlLnBpcGUnO1xyXG5cclxuLyoqXHJcbiAqIEEgcmV1c2FibGUgZmlsZSB2aWV3ZXIgYmFzZWQgb24gUERGVHJvbiBMaWJyYXJ5XHJcbiAqIEB0aXRsZVxyXG4gKiBQREZUcm9uIFZpZXdlclxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLXBkZnRyb25cclxuICogICBbZmlsZURhdGFdPVwiZmlsZURhdGFcIlxyXG4gKiAgIFtlZGl0TW9kZV09XCJmYWxzZVwiXHJcbiAqICAgW2RvY0lkXT1cImZpbGVJZFwiXHJcbiAqICAgW2ZpbGVUaXRsZV09XCJmaWxlLnRpdGxlXCJcclxuICogPlxyXG4gKiA8L2FwcC1wZGZ0cm9uPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcGRmdHJvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZnRyb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BkZnRyb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtTZWN1cmVQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZnRyb25Db21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXNcclxue1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVWaWV3ZXInKSB2aWV3ZXJSZWY6IEVsZW1lbnRSZWY7XHJcbiAgd2ViVmlld2VySW5zdGFuY2U7XHJcbiAgLyoqIERpc2FibGUvRW5hYmxlIEFubm90YXRpb24gKi9cclxuICBASW5wdXQoKVxyXG4gIGVkaXRNb2RlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkNsaWNrZWQgPSBmYWxzZTsgLy8gdXNlZCB0byBrbm93IGlmIHRoZXJlIGlzIGFjdGlvbiBjbGlja2VkIG91dHNpZGUgdG8gc3RhcnQgZWRpdCBtb2RlIG9yIG5vdFxyXG4gIGlzRG9jdW1lbnRMb2FkaW5nOiBib29sZWFuO1xyXG4gIGlzRmV0Y2hpbmc6IGJvb2xlYW47XHJcbiAgLyoqIERvY3VtZW50IHRpdGxlICovXHJcbiAgQElucHV0KClcclxuICBmaWxlVGl0bGU6IHN0cmluZztcclxuICAvKiogRG9jdW1lbnQgSUQgKi9cclxuICBASW5wdXQoKVxyXG4gIGRvY0lkOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBET0NVTUVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL3BkZic7XHJcbiAgQElucHV0KClcclxuICBmaWxlRGF0YTtcclxuICBASW5wdXQoKVxyXG4gIGZpdE1vZGU6ICdGaXRXaWR0aCcgfCAnRml0UGFnZScgfCAnWm9vbScgPSAnRml0V2lkdGgnO1xyXG4gIEBJbnB1dCgpXHJcbiAgYXV0aEhlYWRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZVVSTDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY29ycmVzcG9uZGFuY2U7XHJcbiAgQElucHV0KCkgc2VjcmVjeVByb3BlcnR5O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBkZnRyb25TZXJ2aWNlOiBQZGZ0cm9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW86IE51eGVvU2VydmljZSxcclxuICAgIEBJbmplY3QoQVBQX0JBU0VfSFJFRikgcHJpdmF0ZSBiYXNlSHJlZjogc3RyaW5nLFxyXG4gICAgcHJpdmF0ZSBzZWN1cmVQaXBlOiBTZWN1cmVQaXBlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHt9XHJcblxyXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLnBwdCcpKSB7XHJcbiAgICAgIHRoaXMuRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcucHB0eCcpKSB7XHJcbiAgICAgIHRoaXMuRE9DVU1FTlRfVFlQRSA9XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLmRvYycpKSB7XHJcbiAgICAgIHRoaXMuRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9tc3dvcmQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLmRvY3gnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPVxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc7XHJcbiAgICB9XHJcbiAgICBXZWJWaWV3ZXIoXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiB0aGlzLmJhc2VIcmVmICsgJy9hc3NldHMvcGRmdHJvbnMnLFxyXG4gICAgICAgIGZvcmNlQ2xpZW50U2lkZUluaXQ6IHRydWUsXHJcbiAgICAgICAgc3RyZWFtaW5nOiB0cnVlLFxyXG4gICAgICAgIGxpY2Vuc2VLZXk6IHRoaXMuZW52aXJvbm1lbnQucGRmdHJvbkxpY2VuY2VLZXksXHJcbiAgICAgICAgZGlzYWJsZWRFbGVtZW50czogWydkb3dubG9hZEJ1dHRvbiddLFxyXG5cclxuICAgICAgfSxcclxuICAgICAgdGhpcy52aWV3ZXJSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgKS50aGVuKGFzeW5jIChpbnN0YW5jZSkgPT4ge1xyXG4gICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IGluc3RhbmNlO1xyXG4gICAgICB0aGlzLmFkZERvd25sb2FkQnV0dG9uKCk7XHJcbiAgICAgIHRoaXMubG9hZERvY3VtZW50KCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgYWRkRG93bmxvYWRCdXR0b24oKSB7XHJcbiAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEhlYWRlckl0ZW1zKChoZWFkZXIpID0+IHtcclxuICAgICAgaGVhZGVyLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG4gICAgICAgIGltZzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBjbGFzcz1cImJpIGJpLWZpbGUtZWFybWFyay1hcnJvdy1kb3duXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPiA8cGF0aCBkPVwiTTguNSA2LjVhLjUuNSAwIDAgMC0xIDB2My43OTNMNi4zNTQgOS4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwyIDJhLjUuNSAwIDAgMCAuNzA4IDBsMi0yYS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSAxMC4yOTNWNi41elwiLz4gPHBhdGggZD1cIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV2MnpcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogJ0Rvd25sb2FkJyxcclxuICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IERvY3VtZW50Vmlld2VyLCBBbm5vdGF0aW9uTWFuYWdlciwgU2F2ZU9wdGlvbnMgfSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQ29yZUNvbnRyb2xzO1xyXG4gICAgICAgICAgLy8gY29uc3QgeGZkZlN0cmluZyA9IGF3YWl0IEFubm90YXRpb25NYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcbiAgICAgICAgICBjb25zdCBzYXZlT3B0aW9ucyA9IFNhdmVPcHRpb25zO1xyXG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgZmlsZW5hbWU6IHRoaXMuY29ycmVzcG9uZGFuY2UudGl0bGUgPyB0aGlzLmNvcnJlc3BvbmRhbmNlLnRpdGxlIDogJ215RG9jdW1lbnQucGRmJyxcclxuICAgICAgICAgICAgLy8geGZkZlN0cmluZyxcclxuICAgICAgICAgICAgZmxhZ3M6IHNhdmVPcHRpb25zLkxJTkVBUklaRUQsXHJcbiAgICAgICAgICAgIGRvd25sb2FkVHlwZTogJ3BkZidcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb3dubG9hZFBkZihvcHRpb25zKTtcclxuICAgICAgICAgIC8vIHRoaXMuZXZlbnRzLm5leHQoJ2Rvd25sb2FkJyk7XHJcbiAgICAgICAgICAvLyBsZXQgdXJsID0gdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzLmNvbnRlbnQuZGF0YTtcclxuICAgICAgICAgIC8vIGxldCBmaWxlTmFtZSA9IHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllcy5jb250ZW50Lm5hbWU7XHJcbiAgICAgICAgICAvLyBpZiAodXJsICYmIGZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAvLyAgIGxldCBzYWZlVXJsID0gdGhpcy5zZWN1cmVQaXBlLnRyYW5zZm9ybSh1cmwpO1xyXG4gICAgICAgICAgLy8gICBzYWZlVXJsLnN1YnNjcmliZSgodXJsOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgLy8gICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAgIC8vICAgICBsaW5rLmhyZWYgPSB1cmwuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAvLyAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgYWRkV2F0ZXJtYXJrKCkge1xyXG4gICAgY29uc3QgdXNlcmluZm8gPSB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcztcclxuICAgIHRoaXMucGRmdHJvblNlcnZpY2UuYWRkV2F0ZXJtYXJrKFxyXG4gICAgICBgJHt1c2VyaW5mby51c2VybmFtZX0gICAgYFxyXG4gICAgICAvLyBgJHt1c2VyaW5mby5maXJzdE5hbWV9ICR7XHJcbiAgICAgIC8vICAgdXNlcmluZm8ubGFzdE5hbWVcclxuICAgICAgLy8gfSBgXHJcbiAgICApO1xyXG4gIH1cclxuICBsb2FkRG9jdW1lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMud2ViVmlld2VySW5zdGFuY2UgfHwgKCF0aGlzLmZpbGVEYXRhICYmICF0aGlzLmZpbGVVUkwpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZG9jVmlld2VyLCBhbm5vdE1hbmFnZXIsIEFubm90YXRpb25zIH0gPSB0aGlzLndlYlZpZXdlckluc3RhbmNlO1xyXG4gICAgZG9jVmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsICgpID0+IHtcclxuICAgICAgbGV0IGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuRml0V2lkdGg7XHJcbiAgICAgIGlmICh0aGlzLmZpdE1vZGUgPT09ICdGaXRQYWdlJykge1xyXG4gICAgICAgIGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuRml0UGFnZTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmZpdE1vZGUgPT09ICdab29tJykge1xyXG4gICAgICAgIGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuWm9vbTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEZpdE1vZGUoZml0TW9kZSk7XHJcbiAgICB9KTtcclxuICAgIGlmICghdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seSh0cnVlKTtcclxuICAgICAgLy8gaW5zdGFuY2UuZW5hYmxlVG9vbHMoW10pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZVVSTCAmJiB0aGlzLmZpbGVVUkwubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UubG9hZERvY3VtZW50KHRoaXMuZmlsZVVSTCwge1xyXG4gICAgICAgIGZpbGVuYW1lOiB0aGlzLmZpbGVUaXRsZSxcclxuICAgICAgICBjdXN0b21IZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmF1dGhIZWFkZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5sb2FkRG9jdW1lbnQoXHJcbiAgICAgICAgbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KHRoaXMuZmlsZURhdGEpXSwgeyB0eXBlOiB0aGlzLkRPQ1VNRU5UX1RZUEUgfSksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZVRpdGxlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmNvcnJlc3BvbmRhbmNlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gaWYgd2UgbmVlZCB0byBjaGVjayBvbiBzZWNyZWN5IGxldmVsIGZvciBhZGRpbmcgd2F0ZXIgbWFyayBvciBub3QgXHJcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmVuYWJsZVZpZXdlcldhdGVyTWFyayAmJiB0aGlzLnNlY3JlY3lQcm9wZXJ0eSkge1xyXG4gICAgICAgIC8vIGNoZWNrIGZvciBzZWNyZWN5IGxldmVsIGJlZm9yIGFkZGluZyB3YXRlcm1hcmtcclxuICAgICAgICBpZiAodGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAmJiB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbdGhpcy5zZWNyZWN5UHJvcGVydHldICE9PSAnTm9ybWFsJykge1xyXG4gICAgICAgICAgdGhpcy5hZGRXYXRlcm1hcmsoKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmVudmlyb25tZW50LmVuYWJsZVZpZXdlcldhdGVyTWFyayAmJiAhdGhpcy5zZWNyZWN5UHJvcGVydHkpIHtcclxuICAgICAgICB0aGlzLmFkZFdhdGVybWFyaygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIGFzeW5jIGV4cG9ydEFzQmxvYigpOiBQcm9taXNlPEJsb2I+IHtcclxuICAgIGNvbnN0IGRvYyA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmdldERvY3VtZW50KCk7XHJcbiAgICBjb25zdCB4ZmRmU3RyaW5nID1cclxuICAgICAgYXdhaXQgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZXhwb3J0QW5ub3RhdGlvbnMoKTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBkb2MuZ2V0RmlsZURhdGEoe1xyXG4gICAgICAvLyBzYXZlcyB0aGUgZG9jdW1lbnQgd2l0aCBhbm5vdGF0aW9ucyBpbiBpdFxyXG4gICAgICB4ZmRmU3RyaW5nLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBhcnIgPSBuZXcgVWludDhBcnJheShkYXRhKTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYXJyXSwgeyB0eXBlOiB0aGlzLkRPQ1VNRU5UX1RZUEUgfSk7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGJsb2IpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRWRpdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5hY3Rpb25DbGlja2VkKSB7XHJcbiAgICAgIC8vIGFjdGlvbiBjbGlja2VkIGlzIG5vdCBjbGlja2VkIHRoZW4gbm8gdXBkYXRlIG1vZGUgb3BlbmVkXHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZGlzYWJsZUVsZW1lbnRzKFtcclxuICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAndG9vbGJhckdyb3VwLUluc2VydCcsXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgIF0pO1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seSh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vZWRpdCBtb2RlIG9wZW5lZCBhbmQgbXVzdCBiZSB3aGVuIGFjdGlvbiBpcyBjbGlja2VkXHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuICAgICAgICAndG9vbGJhckdyb3VwLUFubm90YXRlJyxcclxuICAgICAgXSk7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnNldFJlYWRPbmx5KGZhbHNlKTtcclxuICAgICAgLy8gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRUb29sYmFyR3JvdXAoJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUVkaXQoKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNoYW5nZXMudXJsRmlsZUNvbnRlbnQgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LmN1cnJlbnRWYWx1ZVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLm5nT25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBwZGZUcm9uRXZlbnQoZXZlbnQpIHtcclxuICAgIGlmICh0aGlzW2V2ZW50LmFjdGlvbl0pIHtcclxuICAgICAgLy8gbWV0aG9kIGV4aXN0cyBpbiB0aGUgY29tcG9uZW50XHJcbiAgICAgIC8vICB0aGlzW2V2ZW50LmFjdGlvbl0oZXZlbnQucGFyYW1zKTsgLy8gY2FsbCBpdFxyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLndlYlZpZXdlckluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuY2xvc2VEb2N1bWVudCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkb2N1bWVudCBjbG9zZWQhJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2ZpbGVWaWV3ZXIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1wiPjwvZGl2PlxyXG4iXX0=
|