@hmcts/media-viewer 2.7.22 → 2.7.24
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/assets/sass/outline-attachment.scss +6 -1
- package/bundles/hmcts-media-viewer.umd.js +5082 -4779
- package/bundles/hmcts-media-viewer.umd.js.map +1 -1
- package/bundles/hmcts-media-viewer.umd.min.js +1 -1
- package/bundles/hmcts-media-viewer.umd.min.js.map +1 -1
- package/esm2015/hmcts-media-viewer.js +20 -20
- package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +8 -2
- package/esm2015/lib/icp/icp-update.service.js +22 -40
- package/esm2015/lib/icp/icp.events.js +20 -0
- package/esm2015/lib/icp/icp.interfaces.js +3 -1
- package/esm2015/lib/icp/socket.service.js +133 -43
- package/esm2015/lib/media-viewer.component.js +2 -2
- package/esm2015/lib/store/selectors/annotation.selectors.js +10 -2
- package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +56 -2
- package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +18 -3
- package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +33 -2
- package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js +3 -1
- package/esm2015/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +22 -3
- package/esm5/hmcts-media-viewer.js +20 -20
- package/esm5/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +8 -2
- package/esm5/lib/icp/icp-update.service.js +23 -40
- package/esm5/lib/icp/icp.events.js +20 -0
- package/esm5/lib/icp/icp.interfaces.js +3 -1
- package/esm5/lib/icp/socket.service.js +143 -45
- package/esm5/lib/media-viewer.component.js +2 -2
- package/esm5/lib/store/selectors/annotation.selectors.js +10 -2
- package/esm5/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +126 -16
- package/esm5/lib/viewers/pdf-viewer/pdf-viewer.component.js +20 -3
- package/esm5/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +45 -2
- package/esm5/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js +3 -1
- package/esm5/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +31 -3
- package/fesm2015/hmcts-media-viewer.js +4308 -4094
- package/fesm2015/hmcts-media-viewer.js.map +1 -1
- package/fesm5/hmcts-media-viewer.js +5212 -4910
- package/fesm5/hmcts-media-viewer.js.map +1 -1
- package/hmcts-media-viewer-v2.7.24.tgz +0 -0
- package/hmcts-media-viewer.d.ts +19 -19
- package/hmcts-media-viewer.metadata.json +1 -1
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +4 -3
- package/lib/icp/icp-update.service.d.ts +0 -9
- package/lib/icp/icp.events.d.ts +13 -0
- package/lib/icp/icp.interfaces.d.ts +1 -0
- package/lib/icp/socket.service.d.ts +13 -4
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +3 -0
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +4 -1
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +6 -0
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +2 -1
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +3 -0
- package/package.json +1 -1
- package/hmcts-media-viewer-v2.7.22.tgz +0 -0
|
@@ -94,10 +94,35 @@ var SideBarComponent = /** @class */ (function () {
|
|
|
94
94
|
_this.store.dispatch(new CreateBookmark((/** @type {?} */ (tslib_1.__assign({}, bookmarkInfo, { name: '', id: uuid() })))));
|
|
95
95
|
}));
|
|
96
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* @param {?} current
|
|
99
|
+
* @param {?} next
|
|
100
|
+
* @return {?}
|
|
101
|
+
*/
|
|
102
|
+
SideBarComponent.prototype.isViewedItem = /**
|
|
103
|
+
* @param {?} current
|
|
104
|
+
* @param {?} next
|
|
105
|
+
* @return {?}
|
|
106
|
+
*/
|
|
107
|
+
function (current, next) {
|
|
108
|
+
return next === undefined ? current.pageNumber <= this.currentPageNumber :
|
|
109
|
+
current.pageNumber <= this.currentPageNumber && (next.pageNumber > this.currentPageNumber);
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* @param {?} next
|
|
113
|
+
* @return {?}
|
|
114
|
+
*/
|
|
115
|
+
SideBarComponent.prototype.findEndPage = /**
|
|
116
|
+
* @param {?} next
|
|
117
|
+
* @return {?}
|
|
118
|
+
*/
|
|
119
|
+
function (next) {
|
|
120
|
+
return next === undefined ? Number.MAX_SAFE_INTEGER : next.pageNumber;
|
|
121
|
+
};
|
|
97
122
|
SideBarComponent.decorators = [
|
|
98
123
|
{ type: Component, args: [{
|
|
99
124
|
selector: 'mv-side-bar',
|
|
100
|
-
template: "<div id=\"toolbarSidebar\">\n <div class=\"splitToolbarButton toggled\">\n <button id=\"viewOutline\"\n [ngClass]=\"{ 'toolbarButton': true, 'toggled': selectedView === 'outline' }\"\n (click)=\"toggleSidebarView('outline')\"\n title=\"Show Document Outline\" tabindex=\"1\" data-l10n-id=\"document_outline\">\n <span data-l10n-id=\"document_outline_label\">Document Outline</span>\n </button>\n <button *ngIf=\"annotationsEnabled\"\n id=\"viewBookmark\" class=\"toolbarButton bookmark\"\n [ngClass]=\"{ toggled: selectedView === 'bookmarks' }\"\n (click)=\"toggleSidebarView('bookmarks')\"\n title=\"Show Bookmarks\" tabindex=\"2\" data-l10n-id=\"bookmarks\">\n <span data-l10n-id=\"bookmarks_label\">Bookmarks</span>\n </button>\n </div>\n <div class=\"splitToolbarButtonSeparator\"></div>\n <div *ngIf=\"annotationsEnabled\"\n class=\"splitToolbarButton right\">\n <button id=\"addBookmark\"\n class=\"toolbarButton addBookmark\"\n (click)=\"onAddBookmarkClick()\"\n title=\"Add bookmark\" tabindex=\"3\" data-l10n-id=\"addBookmark\">\n <span data-l10n-id=\"addBookmark_label\">Add bookmark</span>\n </button>\n </div>\n</div>\n<div id=\"sidebarContent\">\n <div id=\"outlineView\" class=\"outlineWithDeepNesting\">\n <div class=\"outlineItem\" *ngIf=\"selectedView === 'outline'\">\n <mv-outline-item *ngFor=\"let outlineItem of outline\"\n [outline]=\"outlineItem\"\n (navigationEvent)=\"goToDestination($event)\"></mv-outline-item>\n </div>\n <div *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n id=\"bookmarkContainer\">\n <mv-bookmarks [bookmarkNodes]=\"bookmarkNodes$ | async\"\n [zoom]=\"zoom\" [rotate]=\"rotate\"\n (goToDestination)=\"goToDestination($event)\"></mv-bookmarks>\n </div>\n </div>\n</div>\n"
|
|
125
|
+
template: "<div id=\"toolbarSidebar\">\n <div class=\"splitToolbarButton toggled\">\n <button id=\"viewOutline\"\n [ngClass]=\"{ 'toolbarButton': true, 'toggled': selectedView === 'outline' }\"\n (click)=\"toggleSidebarView('outline')\"\n title=\"Show Document Outline\" tabindex=\"1\" data-l10n-id=\"document_outline\">\n <span data-l10n-id=\"document_outline_label\">Document Outline</span>\n </button>\n <button *ngIf=\"annotationsEnabled\"\n id=\"viewBookmark\" class=\"toolbarButton bookmark\"\n [ngClass]=\"{ toggled: selectedView === 'bookmarks' }\"\n (click)=\"toggleSidebarView('bookmarks')\"\n title=\"Show Bookmarks\" tabindex=\"2\" data-l10n-id=\"bookmarks\">\n <span data-l10n-id=\"bookmarks_label\">Bookmarks</span>\n </button>\n </div>\n <div class=\"splitToolbarButtonSeparator\"></div>\n <div *ngIf=\"annotationsEnabled\"\n class=\"splitToolbarButton right\">\n <button id=\"addBookmark\"\n class=\"toolbarButton addBookmark\"\n (click)=\"onAddBookmarkClick()\"\n title=\"Add bookmark\" tabindex=\"3\" data-l10n-id=\"addBookmark\">\n <span data-l10n-id=\"addBookmark_label\">Add bookmark</span>\n </button>\n </div>\n</div>\n<div id=\"sidebarContent\">\n <div id=\"outlineView\" class=\"outlineWithDeepNesting\">\n <div class=\"outlineItem\" *ngIf=\"selectedView === 'outline'\">\n <mv-outline-item *ngFor=\"let outlineItem of outline; index as i\"\n [outline]=\"outlineItem\"\n [currentPageNumber]=\"currentPageNumber\"\n [isCurrentSection]= \"isViewedItem(outlineItem, outline[i+1])\"\n [endPage]=\"findEndPage(outline[i+1])\"\n (navigationEvent)=\"goToDestination($event)\"></mv-outline-item>\n </div>\n <div *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n id=\"bookmarkContainer\">\n <mv-bookmarks [bookmarkNodes]=\"bookmarkNodes$ | async\"\n [zoom]=\"zoom\" [rotate]=\"rotate\"\n (goToDestination)=\"goToDestination($event)\"></mv-bookmarks>\n </div>\n </div>\n</div>\n"
|
|
101
126
|
}] }
|
|
102
127
|
];
|
|
103
128
|
/** @nocollapse */
|
|
@@ -110,7 +135,8 @@ var SideBarComponent = /** @class */ (function () {
|
|
|
110
135
|
outline: [{ type: Input }],
|
|
111
136
|
url: [{ type: Input }],
|
|
112
137
|
zoom: [{ type: Input }],
|
|
113
|
-
rotate: [{ type: Input }]
|
|
138
|
+
rotate: [{ type: Input }],
|
|
139
|
+
currentPageNumber: [{ type: Input }]
|
|
114
140
|
};
|
|
115
141
|
return SideBarComponent;
|
|
116
142
|
}());
|
|
@@ -127,6 +153,8 @@ if (false) {
|
|
|
127
153
|
/** @type {?} */
|
|
128
154
|
SideBarComponent.prototype.rotate;
|
|
129
155
|
/** @type {?} */
|
|
156
|
+
SideBarComponent.prototype.currentPageNumber;
|
|
157
|
+
/** @type {?} */
|
|
130
158
|
SideBarComponent.prototype.selectedView;
|
|
131
159
|
/** @type {?} */
|
|
132
160
|
SideBarComponent.prototype.bookmarkNodes$;
|
|
@@ -143,4 +171,4 @@ if (false) {
|
|
|
143
171
|
*/
|
|
144
172
|
SideBarComponent.prototype.store;
|
|
145
173
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL21lZGlhLXZpZXdlci8iLCJzb3VyY2VzIjpbImxpYi92aWV3ZXJzL3BkZi12aWV3ZXIvc2lkZS1iYXIvc2lkZS1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBRzlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxrQkFBa0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUVsRixPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEU7SUFtQkUsMEJBQW9CLFlBQWdDLEVBQzFDLEtBQTRCO1FBRGxCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUMxQyxVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQU50QyxpQkFBWSxHQUFHLFNBQVMsQ0FBQztJQU9yQixDQUFDOzs7O0lBRUwsbUNBQVE7OztJQUFSO1FBQUEsaUJBSUM7UUFIQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUNqRixTQUFTOzs7O1FBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxLQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsWUFBWSxFQUE5RCxDQUE4RCxFQUFDLENBQUM7SUFDM0YsQ0FBQzs7Ozs7SUFFRCxzQ0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQzs7OztJQUVELHNDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7Ozs7SUFFRCwwQ0FBZTs7OztJQUFmLFVBQWdCLFdBQWtCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Ozs7O0lBRUQsNENBQWlCOzs7O0lBQWpCLFVBQWtCLFdBQW1CO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7Ozs7SUFFRCw2Q0FBa0I7OztJQUFsQjtRQUFBLGlCQVFDO1FBUEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakUsU0FBUzs7OztRQUFDLFVBQUMsWUFBWTtZQUN0QixLQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyx3Q0FDbEMsWUFBWSxJQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUMvQixDQUFDLENBQUMsQ0FBQztRQUNiLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Ozs7O0lBRUQsdUNBQVk7Ozs7O0lBQVosVUFBYSxPQUFnQixFQUFFLElBQWE7UUFDMUMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvRixDQUFDOzs7OztJQUVELHNDQUFXOzs7O0lBQVgsVUFBWSxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hFLENBQUM7O2dCQWhFRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGlzRUFBd0M7aUJBQ3pDOzs7O2dCQU5RLGtCQUFrQjtnQkFOVixLQUFLOzs7cUNBZW5CLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSztvQ0FDTCxLQUFLOztJQXNEUix1QkFBQztDQUFBLEFBakVELElBaUVDO1NBN0RZLGdCQUFnQjs7O0lBRTNCLDhDQUFxQzs7SUFDckMsbUNBQTBCOztJQUMxQiwrQkFBcUI7O0lBQ3JCLGdDQUFzQjs7SUFDdEIsa0NBQXdCOztJQUN4Qiw2Q0FBbUM7O0lBR25DLHdDQUF5Qjs7SUFDekIsMENBQTJDOztJQUUzQyx5Q0FBNEI7Ozs7O0lBRWhCLHdDQUF3Qzs7Ozs7SUFDbEQsaUNBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4vb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgYm9va21hcmtzU2VsZWN0b3JzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9ib29rbWFyay5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQm9va21hcmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvbW9kZWxzL2Jvb2ttYXJrcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3JlYXRlQm9va21hcmssIExvYWRCb29rbWFya3MgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hY3Rpb25zL2Jvb2ttYXJrLmFjdGlvbnMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgVmlld2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdmlld2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQm9va21hcmtzU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9ib29rbWFya3MucmVkdWNlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXNpZGUtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgYW5ub3RhdGlvbnNFbmFibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBvdXRsaW5lOiBPdXRsaW5lO1xuICBASW5wdXQoKSB1cmw6IHN0cmluZztcbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcbiAgQElucHV0KCkgY3VycmVudFBhZ2VOdW1iZXI6IG51bWJlcjtcblxuXG4gIHNlbGVjdGVkVmlldyA9ICdvdXRsaW5lJztcbiAgYm9va21hcmtOb2RlcyQ6IE9ic2VydmFibGU8Qm9va21hcmtOb2RlW10+O1xuXG4gICRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEJvb2ttYXJrc1N0YXRlPlxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYm9va21hcmtOb2RlcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRCb29rbWFya05vZGVzKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChib29rbWFya3NTZWxlY3RvcnMuZ2V0RWRpdGFibGVCb29rbWFyaykpXG4gICAgICAuc3Vic2NyaWJlKGVkaXRhYmxlID0+IHRoaXMuc2VsZWN0ZWRWaWV3ID0gZWRpdGFibGUgPyAnYm9va21hcmtzJyA6IHRoaXMuc2VsZWN0ZWRWaWV3KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy51cmwgJiYgdGhpcy51cmwpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IExvYWRCb29rbWFya3MoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnb1RvRGVzdGluYXRpb24oZGVzdGluYXRpb246IGFueVtdKSB7XG4gICAgdGhpcy52aWV3ZXJFdmVudHMuZ29Ub0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGViYXJWaWV3KHNpZGViYXJWaWV3OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmlldyA9IHNpZGViYXJWaWV3O1xuICB9XG5cbiAgb25BZGRCb29rbWFya0NsaWNrKCkge1xuICAgIHRoaXMudG9nZ2xlU2lkZWJhclZpZXcoJ2Jvb2ttYXJrcycpO1xuICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEJvb2ttYXJrSW5mbyksIHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChib29rbWFya0luZm8pID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQ3JlYXRlQm9va21hcmsoe1xuICAgICAgICAgIC4uLmJvb2ttYXJrSW5mbywgbmFtZTogJycsIGlkOiB1dWlkKClcbiAgICAgICAgfSBhcyBhbnkpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaXNWaWV3ZWRJdGVtKGN1cnJlbnQ6IE91dGxpbmUsIG5leHQ6IE91dGxpbmUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmV4dCA9PT0gdW5kZWZpbmVkID8gY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgOlxuICAgICAgY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgJiYgKG5leHQucGFnZU51bWJlciA+IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpO1xuICB9XG5cbiAgZmluZEVuZFBhZ2UobmV4dDogT3V0bGluZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5leHQgPT09IHVuZGVmaW5lZCA/IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIDogbmV4dC5wYWdlTnVtYmVyO1xuICB9XG59XG4iXX0=
|