@hmcts/media-viewer 4.1.0-govuk-frontend-upgrade → 4.1.0-viewport-debug-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/assets/sass/settings.scss +4 -0
  2. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +5 -4
  3. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +4 -2
  4. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +4 -3
  5. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +3 -2
  6. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +3 -2
  7. package/esm2022/lib/icp/icp-session-api.service.mjs +8 -2
  8. package/esm2022/lib/icp/icp-update.service.mjs +3 -3
  9. package/esm2022/lib/media-viewer.component.mjs +3 -2
  10. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +12 -1
  11. package/esm2022/lib/store/effects/icp.effects.mjs +2 -2
  12. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +4 -3
  13. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +3 -2
  14. package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +4 -2
  15. package/fesm2022/hmcts-media-viewer.mjs +56 -35
  16. package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
  17. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -1
  18. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -1
  19. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -1
  20. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -1
  21. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -1
  22. package/lib/icp/icp-session-api.service.d.ts.map +1 -1
  23. package/lib/icp/icp-update.service.d.ts +1 -1
  24. package/lib/icp/icp-update.service.d.ts.map +1 -1
  25. package/lib/media-viewer.component.d.ts.map +1 -1
  26. package/lib/shared/util/helpers/html-templates.helper.d.ts +1 -0
  27. package/lib/shared/util/helpers/html-templates.helper.d.ts.map +1 -1
  28. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -1
  29. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -1
  30. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -1
  31. package/package.json +1 -1
@@ -31,7 +31,9 @@ export class SideBarComponent {
31
31
  this.sidebarOpen = toggle;
32
32
  }));
33
33
  this.subscriptions.push(this.store.pipe(select(bookmarksSelectors.getScrollTop)).subscribe(scrollTopValue => {
34
- this.sidebarDiv.nativeElement.scrollTop = scrollTopValue;
34
+ if (this.sidebarDiv?.nativeElement) {
35
+ this.sidebarDiv.nativeElement.scrollTop = scrollTopValue;
36
+ }
35
37
  }));
36
38
  }
37
39
  ngOnChanges(changes) {
@@ -94,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
94
96
  type: ViewChild,
95
97
  args: ['sidebar']
96
98
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBNEIsS0FBSyxFQUErQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEosT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU14RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8sZ0JBQWdCO0lBb0IzQixZQUFvQixZQUFnQyxFQUMxQyxLQUE0QixFQUNuQixhQUFrQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBWHJELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsU0FBUyxDQUFDO1FBS2pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQU12QyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNu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QztJQUVELFdBQVcsQ0FBQyxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hFLENBQUM7a0lBbkZVLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLDRQQVNoQixrQkFBa0IsNkpDM0IvQix5dUVBa0VBOzs0RkRoRGEsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGFBQWE7NklBS2Qsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFTUCxVQUFVO3NCQUEvQixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4vb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgYm9va21hcmtzU2VsZWN0b3JzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9ib29rbWFyay5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQm9va21hcmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvbW9kZWxzL2Jvb2ttYXJrcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3JlYXRlQm9va21hcmssIExvYWRCb29rbWFya3MgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hY3Rpb25zL2Jvb2ttYXJrLmFjdGlvbnMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFZpZXdlckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc1N0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvYm9va21hcmtzLnJlZHVjZXInO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc0NvbXBvbmVudCB9IGZyb20gJy4vYm9va21hcmtzL2Jvb2ttYXJrcy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1zaWRlLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZUJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGFubm90YXRpb25zRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgb3V0bGluZTogT3V0bGluZTtcbiAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlTnVtYmVyOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZChCb29rbWFya3NDb21wb25lbnQpXG4gIGJvb2ttYXJrczogQm9va21hcmtzQ29tcG9uZW50O1xuICB0cmVlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFZpZXcgPSAnb3V0bGluZSc7XG4gIGJvb2ttYXJrTm9kZXMkOiBPYnNlcnZhYmxlPEJvb2ttYXJrTm9kZVtdPjtcbiAgc2Nyb2xsVG9wOiBhbnk7XG4gIHNpZGViYXJPcGVuOiBhbnk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzaWRlYmFyJykgc2lkZWJhckRpdjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEJvb2ttYXJrc1N0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ib29rbWFya05vZGVzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEJvb2ttYXJrTm9kZXMpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRFZGl0YWJsZUJvb2ttYXJrKSlcbiAgICAgIC5zdWJzY3JpYmUoZWRpdGFibGUgPT4gdGhpcy5zZWxlY3RlZFZpZXcgPSBlZGl0YWJsZSA/ICdib29rbWFya3MnIDogdGhpcy5zZWxlY3RlZFZpZXcpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3V0bGluZVZpZXcuc3Vic2NyaWJlKHRvZ2dsZSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gdG9nZ2xlID8gJ291dGxpbmUnIDogJ2Jvb2ttYXJrcyc7XG4gICAgICB9KSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5zdWJzY3JpYmUodG9nZ2xlID0+IHtcbiAgICAgICAgdGhpcy5zaWRlYmFyT3BlbiA9IHRvZ2dsZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRTY3JvbGxUb3ApKS5zdWJzY3JpYmUoc2Nyb2xsVG9wVmFsdWUgPT4ge1xuICAgICAgdGhpcy5zaWRlYmFyRGl2Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wVmFsdWU7XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnVybCAmJiB0aGlzLnVybCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZEJvb2ttYXJrcygpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudHJlZUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9wID0gZXZlbnQuc3JjRWxlbWVudC5zY3JvbGxUb3A7XG4gICAgfVxuICAgIHRoaXMudHJlZUNoYW5nZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGdvVG9EZXN0aW5hdGlvbihkZXN0aW5hdGlvbjogYW55W10pIHtcbiAgICB0aGlzLnZpZXdlckV2ZW50cy5nb1RvRGVzdGluYXRpb24oZGVzdGluYXRpb24pO1xuICB9XG5cbiAgaGFzVHJlZUNoYW5nZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRyZWVDaGFuZ2VkID0gdmFsdWU7XG4gIH1cblxuICB0b2dnbGVTaWRlYmFyVmlldyhzaWRlYmFyVmlldzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBzaWRlYmFyVmlldztcbiAgfVxuXG4gIGlzVmlld2VkSXRlbShjdXJyZW50OiBPdXRsaW5lLCBuZXh0OiBPdXRsaW5lKTogYm9vbGVhbiB7XG4gICAgaWYgKGN1cnJlbnQucGFnZU51bWJlciA9PT0gdGhpcy5jdXJyZW50UGFnZU51bWJlcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBuZXh0ID09PSB1bmRlZmluZWQgPyBjdXJyZW50LnBhZ2VOdW1iZXIgPD0gdGhpcy5jdXJyZW50UGFnZU51bWJlciA6XG4gICAgICBjdXJyZW50LnBhZ2VOdW1iZXIgPD0gdGhpcy5jdXJyZW50UGFnZU51bWJlciAmJiAobmV4dC5wYWdlTnVtYmVyID4gdGhpcy5jdXJyZW50UGFnZU51bWJlcik7XG4gIH1cblxuICBmaW5kRW5kUGFnZShuZXh0OiBPdXRsaW5lKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV4dCA9PT0gdW5kZWZpbmVkID8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgOiBuZXh0LnBhZ2VOdW1iZXI7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJ0b29sYmFyU2lkZWJhclwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJhbm5vdGF0aW9uc0VuYWJsZWQgJiYgc2VsZWN0ZWRWaWV3ID09PSAnYm9va21hcmtzJ1wiXG4gICAgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b24gdG9nZ2xlZFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cInNvcnRCb29rbWFya1Bvc2l0aW9uXCJcbiAgICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIGxlZnQgYm9va21hcmtfX3NvcnRfX3Bvc2l0aW9uXCJcbiAgICAgIChjbGljayk9XCJib29rbWFya3Muc29ydChib29rbWFya3MucG9zaXRpb25Tb3J0KVwiXG4gICAgICB0aXRsZT1cIk9yZGVyIGJ5IHBsYWNlIGluIGRvY3VtZW50XCJcbiAgICAgIGFyaWEtcHJlc3NlZD1cInRydWVcIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cInNvcnRCb29rbWFya0N1c3RvbVwiXG4gICAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiBsZWZ0IGJvb2ttYXJrX19zb3J0X19jdXN0b21cIlxuICAgICAgKGNsaWNrKT1cImJvb2ttYXJrcy5zb3J0KGJvb2ttYXJrcy5jdXN0b21Tb3J0KVwiXG4gICAgICB0aXRsZT1cIk9yZGVyIG1hbnVhbGx5XCJcbiAgICAgIGFyaWEtcHJlc3NlZD1cInRydWVcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b25TZXBhcmF0b3JcIj48L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIHJpZ2h0XCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGlkPVwiYWRkQm9va21hcmtcIlxuICAgICAgY2xhc3M9XCJ0b29sYmFyQnV0dG9uIGFkZEJvb2ttYXJrXCJcbiAgICAgIChjbGljayk9XCJib29rbWFya3Mub25BZGRCb29rbWFya0NsaWNrKClcIlxuICAgICAgdGl0bGU9XCJBZGQgYm9va21hcmtcIlxuICAgICAgdGFiaW5kZXg9XCIzXCJcbiAgICAgIGRhdGEtbDEwbi1pZD1cImFkZEJvb2ttYXJrXCJcbiAgICA+XG4gICAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJhZGRCb29rbWFya19sYWJlbFwiPnt7XG4gICAgICAgIFwiQWRkIGJvb2ttYXJrXCIgfCBycHhUcmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAjc2lkZWJhciBpZD1cInNpZGViYXJDb250ZW50XCIgY2RrU2Nyb2xsYWJsZSAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIiBbaGlkZGVuXT1cIiFzaWRlYmFyT3BlblwiPlxuICA8ZGl2IGlkPVwib3V0bGluZVZpZXdcIiBjbGFzcz1cIm91dGxpbmVXaXRoRGVlcE5lc3RpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwib3V0bGluZUl0ZW1cIiAqbmdJZj1cInNlbGVjdGVkVmlldyA9PT0gJ291dGxpbmUnXCI+XG4gICAgICA8bXYtb3V0bGluZS1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBvdXRsaW5lSXRlbSBvZiBvdXRsaW5lOyBpbmRleCBhcyBpXCJcbiAgICAgICAgW291dGxpbmVdPVwib3V0bGluZUl0ZW1cIlxuICAgICAgICBbY3VycmVudFBhZ2VOdW1iZXJdPVwiY3VycmVudFBhZ2VOdW1iZXJcIlxuICAgICAgICBbaXNDdXJyZW50U2VjdGlvbl09XCJpc1ZpZXdlZEl0ZW0ob3V0bGluZUl0ZW0sIG91dGxpbmVbaSArIDFdKVwiXG4gICAgICAgIFtlbmRQYWdlXT1cImZpbmRFbmRQYWdlKG91dGxpbmVbaSArIDFdKVwiXG4gICAgICAgIChuYXZpZ2F0aW9uRXZlbnQpPVwiZ29Ub0Rlc3RpbmF0aW9uKCRldmVudClcIlxuICAgICAgPjwvbXYtb3V0bGluZS1pdGVtPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgICAgaWQ9XCJib29rbWFya0NvbnRhaW5lclwiXG4gICAgPlxuICAgICAgPG12LWJvb2ttYXJrc1xuICAgICAgICBbYm9va21hcmtOb2Rlc109XCJib29rbWFya05vZGVzJCB8IGFzeW5jXCJcbiAgICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgICAgW3BhcmVudFNjcm9sbFRvcF09XCJzY3JvbGxUb3BcIlxuICAgICAgICAoZ29Ub0Rlc3RpbmF0aW9uKT1cImdvVG9EZXN0aW5hdGlvbigkZXZlbnQpXCJcbiAgICAgICAgKHRyZWVIYXNDaGFuZ2VkKT1cImhhc1RyZWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgPjwvbXYtYm9va21hcmtzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBNEIsS0FBSyxFQUErQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEosT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU14RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8sZ0JBQWdCO0lBb0IzQixZQUFvQixZQUFnQyxFQUMxQyxLQUE0QixFQUNuQixhQUFrQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBWHJELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsU0FBUyxDQUFDO1FBS2pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQU12QyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNu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LElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hFLENBQUM7a0lBckZVLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLDRQQVNoQixrQkFBa0IsNkpDM0IvQix5dUVBa0VBOzs0RkRoRGEsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGFBQWE7NklBS2Qsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFTUCxVQUFVO3NCQUEvQixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4vb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgYm9va21hcmtzU2VsZWN0b3JzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9ib29rbWFyay5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQm9va21hcmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvbW9kZWxzL2Jvb2ttYXJrcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3JlYXRlQm9va21hcmssIExvYWRCb29rbWFya3MgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hY3Rpb25zL2Jvb2ttYXJrLmFjdGlvbnMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFZpZXdlckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc1N0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvYm9va21hcmtzLnJlZHVjZXInO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc0NvbXBvbmVudCB9IGZyb20gJy4vYm9va21hcmtzL2Jvb2ttYXJrcy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1zaWRlLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZUJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGFubm90YXRpb25zRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgb3V0bGluZTogT3V0bGluZTtcbiAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlTnVtYmVyOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZChCb29rbWFya3NDb21wb25lbnQpXG4gIGJvb2ttYXJrczogQm9va21hcmtzQ29tcG9uZW50O1xuICB0cmVlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFZpZXcgPSAnb3V0bGluZSc7XG4gIGJvb2ttYXJrTm9kZXMkOiBPYnNlcnZhYmxlPEJvb2ttYXJrTm9kZVtdPjtcbiAgc2Nyb2xsVG9wOiBhbnk7XG4gIHNpZGViYXJPcGVuOiBhbnk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzaWRlYmFyJykgc2lkZWJhckRpdjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEJvb2ttYXJrc1N0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ib29rbWFya05vZGVzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEJvb2ttYXJrTm9kZXMpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRFZGl0YWJsZUJvb2ttYXJrKSlcbiAgICAgIC5zdWJzY3JpYmUoZWRpdGFibGUgPT4gdGhpcy5zZWxlY3RlZFZpZXcgPSBlZGl0YWJsZSA/ICdib29rbWFya3MnIDogdGhpcy5zZWxlY3RlZFZpZXcpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3V0bGluZVZpZXcuc3Vic2NyaWJlKHRvZ2dsZSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gdG9nZ2xlID8gJ291dGxpbmUnIDogJ2Jvb2ttYXJrcyc7XG4gICAgICB9KSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5zdWJzY3JpYmUodG9nZ2xlID0+IHtcbiAgICAgICAgdGhpcy5zaWRlYmFyT3BlbiA9IHRvZ2dsZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRTY3JvbGxUb3ApKS5zdWJzY3JpYmUoc2Nyb2xsVG9wVmFsdWUgPT4ge1xuICAgICAgaWYgKHRoaXMuc2lkZWJhckRpdj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnNpZGViYXJEaXYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSBzY3JvbGxUb3BWYWx1ZVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy51cmwgJiYgdGhpcy51cmwpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IExvYWRCb29rbWFya3MoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyZWVDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnNjcm9sbFRvcCA9IGV2ZW50LnNyY0VsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIH1cbiAgICB0aGlzLnRyZWVDaGFuZ2VkID0gZmFsc2U7XG4gIH1cblxuICBnb1RvRGVzdGluYXRpb24oZGVzdGluYXRpb246IGFueVtdKSB7XG4gICAgdGhpcy52aWV3ZXJFdmVudHMuZ29Ub0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIGhhc1RyZWVDaGFuZ2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50cmVlQ2hhbmdlZCA9IHZhbHVlO1xuICB9XG5cbiAgdG9nZ2xlU2lkZWJhclZpZXcoc2lkZWJhclZpZXc6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gc2lkZWJhclZpZXc7XG4gIH1cblxuICBpc1ZpZXdlZEl0ZW0oY3VycmVudDogT3V0bGluZSwgbmV4dDogT3V0bGluZSk6IGJvb2xlYW4ge1xuICAgIGlmIChjdXJyZW50LnBhZ2VOdW1iZXIgPT09IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCA9PT0gdW5kZWZpbmVkID8gY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgOlxuICAgICAgY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgJiYgKG5leHQucGFnZU51bWJlciA+IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpO1xuICB9XG5cbiAgZmluZEVuZFBhZ2UobmV4dDogT3V0bGluZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5leHQgPT09IHVuZGVmaW5lZCA/IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIDogbmV4dC5wYWdlTnVtYmVyO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwidG9vbGJhclNpZGViYXJcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIHRvZ2dsZWRcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgaWQ9XCJzb3J0Qm9va21hcmtQb3NpdGlvblwiXG4gICAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiBsZWZ0IGJvb2ttYXJrX19zb3J0X19wb3NpdGlvblwiXG4gICAgICAoY2xpY2spPVwiYm9va21hcmtzLnNvcnQoYm9va21hcmtzLnBvc2l0aW9uU29ydClcIlxuICAgICAgdGl0bGU9XCJPcmRlciBieSBwbGFjZSBpbiBkb2N1bWVudFwiXG4gICAgICBhcmlhLXByZXNzZWQ9XCJ0cnVlXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgaWQ9XCJzb3J0Qm9va21hcmtDdXN0b21cIlxuICAgICAgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b24gbGVmdCBib29rbWFya19fc29ydF9fY3VzdG9tXCJcbiAgICAgIChjbGljayk9XCJib29rbWFya3Muc29ydChib29rbWFya3MuY3VzdG9tU29ydClcIlxuICAgICAgdGl0bGU9XCJPcmRlciBtYW51YWxseVwiXG4gICAgICBhcmlhLXByZXNzZWQ9XCJ0cnVlXCJcbiAgICA+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uU2VwYXJhdG9yXCI+PC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImFubm90YXRpb25zRW5hYmxlZCAmJiBzZWxlY3RlZFZpZXcgPT09ICdib29rbWFya3MnXCJcbiAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiByaWdodFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cImFkZEJvb2ttYXJrXCJcbiAgICAgIGNsYXNzPVwidG9vbGJhckJ1dHRvbiBhZGRCb29rbWFya1wiXG4gICAgICAoY2xpY2spPVwiYm9va21hcmtzLm9uQWRkQm9va21hcmtDbGljaygpXCJcbiAgICAgIHRpdGxlPVwiQWRkIGJvb2ttYXJrXCJcbiAgICAgIHRhYmluZGV4PVwiM1wiXG4gICAgICBkYXRhLWwxMG4taWQ9XCJhZGRCb29rbWFya1wiXG4gICAgPlxuICAgICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiYWRkQm9va21hcmtfbGFiZWxcIj57e1xuICAgICAgICBcIkFkZCBib29rbWFya1wiIHwgcnB4VHJhbnNsYXRlXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3NpZGViYXIgaWQ9XCJzaWRlYmFyQ29udGVudFwiIGNka1Njcm9sbGFibGUgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCIgW2hpZGRlbl09XCIhc2lkZWJhck9wZW5cIj5cbiAgPGRpdiBpZD1cIm91dGxpbmVWaWV3XCIgY2xhc3M9XCJvdXRsaW5lV2l0aERlZXBOZXN0aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cIm91dGxpbmVJdGVtXCIgKm5nSWY9XCJzZWxlY3RlZFZpZXcgPT09ICdvdXRsaW5lJ1wiPlxuICAgICAgPG12LW91dGxpbmUtaXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgb3V0bGluZUl0ZW0gb2Ygb3V0bGluZTsgaW5kZXggYXMgaVwiXG4gICAgICAgIFtvdXRsaW5lXT1cIm91dGxpbmVJdGVtXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlTnVtYmVyXT1cImN1cnJlbnRQYWdlTnVtYmVyXCJcbiAgICAgICAgW2lzQ3VycmVudFNlY3Rpb25dPVwiaXNWaWV3ZWRJdGVtKG91dGxpbmVJdGVtLCBvdXRsaW5lW2kgKyAxXSlcIlxuICAgICAgICBbZW5kUGFnZV09XCJmaW5kRW5kUGFnZShvdXRsaW5lW2kgKyAxXSlcIlxuICAgICAgICAobmF2aWdhdGlvbkV2ZW50KT1cImdvVG9EZXN0aW5hdGlvbigkZXZlbnQpXCJcbiAgICAgID48L212LW91dGxpbmUtaXRlbT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImFubm90YXRpb25zRW5hYmxlZCAmJiBzZWxlY3RlZFZpZXcgPT09ICdib29rbWFya3MnXCJcbiAgICAgIGlkPVwiYm9va21hcmtDb250YWluZXJcIlxuICAgID5cbiAgICAgIDxtdi1ib29rbWFya3NcbiAgICAgICAgW2Jvb2ttYXJrTm9kZXNdPVwiYm9va21hcmtOb2RlcyQgfCBhc3luY1wiXG4gICAgICAgIFt6b29tXT1cInpvb21cIlxuICAgICAgICBbcm90YXRlXT1cInJvdGF0ZVwiXG4gICAgICAgIFtwYXJlbnRTY3JvbGxUb3BdPVwic2Nyb2xsVG9wXCJcbiAgICAgICAgKGdvVG9EZXN0aW5hdGlvbik9XCJnb1RvRGVzdGluYXRpb24oJGV2ZW50KVwiXG4gICAgICAgICh0cmVlSGFzQ2hhbmdlZCk9XCJoYXNUcmVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgID48L212LWJvb2ttYXJrcz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -2173,9 +2173,9 @@ class IcpUpdateService {
2173
2173
  constructor(socket) {
2174
2174
  this.socket = socket;
2175
2175
  }
2176
- joinSession(username, session) {
2176
+ joinSession(username, session, token) {
2177
2177
  this.session = session;
2178
- this.socket.connect(session.connectionUrl);
2178
+ this.socket.connect(`${session.connectionUrl}?access_token=${token}`);
2179
2179
  this.socket.connected().subscribe(isConnected => {
2180
2180
  if (isConnected) {
2181
2181
  this.socket.join({ ...this.session, username });
@@ -2511,6 +2511,35 @@ const defaultUnsupportedOptions = {
2511
2511
  showPrint: true
2512
2512
  };
2513
2513
 
2514
+ /**
2515
+ * Helper Class
2516
+ * Used for dynamic templates manipulation
2517
+ * */
2518
+ class HtmlTemplatesHelper {
2519
+ static setDescribedBy(errorMessage, config) {
2520
+ if (!errorMessage) {
2521
+ return config.hint ? `${config.id}-hint` : null;
2522
+ }
2523
+ else if (errorMessage && errorMessage.isInvalid) {
2524
+ return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;
2525
+ }
2526
+ else {
2527
+ return config.hint ? `${config.id}-hint` : null;
2528
+ }
2529
+ }
2530
+ static getAdjustedBoundingRect(element, log = true) {
2531
+ const viewportX = window.visualViewport.offsetLeft;
2532
+ const viewportY = window.visualViewport.offsetTop;
2533
+ const viewportScale = window.visualViewport.scale;
2534
+ const viewportPageX = window.visualViewport.pageLeft;
2535
+ const viewportPageY = window.visualViewport.pageTop;
2536
+ if (log && viewportX || viewportY || (viewportScale != 1) || viewportPageX || viewportPageY) {
2537
+ console.log(`Element: ${element.id} Viewport X: ${viewportX}, Y: ${viewportY}, Scale: ${viewportScale}, PageX: ${viewportPageX}, PageY: ${viewportPageY}`);
2538
+ }
2539
+ return element.getBoundingClientRect();
2540
+ }
2541
+ }
2542
+
2514
2543
  const getTagsRootState = createSelector(getMVState, (state) => state.tags);
2515
2544
  const getTagEntities = createSelector(getTagsRootState, getTagNameEnt);
2516
2545
  const getTagFilters = createSelector(getTagsRootState, getFilters);
@@ -2872,7 +2901,7 @@ class RedactionSearchBarComponent {
2872
2901
  const range = selection.getRangeAt(0).cloneRange();
2873
2902
  const clientRects = range.getClientRects();
2874
2903
  if (clientRects) {
2875
- const parentRect = selectedHighLightedElements[0].parentElement.parentElement.getBoundingClientRect();
2904
+ const parentRect = HtmlTemplatesHelper.getAdjustedBoundingRect(selectedHighLightedElements[0]?.parentElement?.parentElement);
2876
2905
  const selectionRectangles = [];
2877
2906
  for (let i = 0; i < clientRects.length; i++) {
2878
2907
  const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
@@ -2998,7 +3027,7 @@ class CommentSetRenderService {
2998
3027
  }
2999
3028
  }
3000
3029
  height(element) {
3001
- return element.form.nativeElement.getBoundingClientRect().height;
3030
+ return HtmlTemplatesHelper.getAdjustedBoundingRect(element.form.nativeElement)?.height | 0;
3002
3031
  }
3003
3032
  difference(a, b) { return Math.abs(a - b); }
3004
3033
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetRenderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -3314,7 +3343,7 @@ class CommentComponent {
3314
3343
  return this.totalPrevPagesHeight + (this.rectTop * this.zoom);
3315
3344
  }
3316
3345
  get height() {
3317
- return this.form.nativeElement.getBoundingClientRect().height / this.zoom;
3346
+ return HtmlTemplatesHelper.getAdjustedBoundingRect(this.form.nativeElement).height / this.zoom;
3318
3347
  }
3319
3348
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentComponent, deps: [{ token: i1.Store }, { token: CommentService }, { token: TagsServices }], target: i0.ɵɵFactoryTarget.Component }); }
3320
3349
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentComponent, selector: "mv-anno-comment", inputs: { rotate: "rotate", zoom: "zoom", index: "index", page: "page", comment: "comment", annotation: "annotation" }, outputs: { commentClick: "commentClick", renderComments: "renderComments", delete: "delete", updated: "updated", changes: "changes" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "editableComment", first: true, predicate: ["editableComment"], descendants: true }], ngImport: i0, template: "<div\n #form\n (click)=\"onCommentClick()\"\n class=\"aui-comment\"\n [ngClass]=\"{ stylestoggle: (marginToComment$ | async) }\"\n [style.top.px]=\"commentTop\"\n [style.zIndex]=\"selected ? 100 : 0\"\n>\n <div id=\"detailsWrapper {{ index }}\" class=\"aui-comment__header\">\n <span *ngIf=\"author && !editor\" class=\"aui-comment__author\">\n {{ author.forename }} {{ author.surname }}\n </span>\n <span *ngIf=\"editor\" class=\"aui-comment__author\">\n {{ editor.forename }} {{ editor.surname }}\n </span>\n <time [hidden]=\"!selected && !this.editable\" class=\"aui-comment__meta\">\n {{ lastUpdate | momentDate : \"d MMMM y h:mm a\" }}\n </time>\n </div>\n <mv-tags\n [tagItems]=\"tagItems\"\n [userId]=\"createdBy\"\n [editable]=\"editable\"\n [annoId]=\"_comment.annotationId\"\n >\n </mv-tags>\n <textarea\n *ngIf=\"selected && editable\"\n #editableComment\n mvTextAreaAutoExpand\n type=\"text\"\n required\n name=\"content\"\n [maxlength]=\"CHAR_LIMIT\"\n class=\"aui-comment__content form-control mimic-focus edit-mode expanded\"\n [ngModel]=\"fullComment\"\n (ngModelChange)=\"fullComment = $event; reRenderComments(); onCommentChange($event)\"\n aria-label=\"comment\"\n >\n </textarea>\n <p\n *ngIf=\"!editable\"\n mvTextHighlight\n class=\"commentText\"\n [textToHighlight]=\"searchString\"\n >\n {{ fullComment }}\n </p>\n <div\n *ngIf=\"\n selected ||\n this.editable ||\n (!fullComment.length && tagItems && !tagItems.length)\n \"\n class=\"aui-comment__footer commentBtns\"\n >\n <button\n class=\"govuk-button\"\n type=\"button\"\n role=\"button\"\n (click)=\"editOrSave()\"\n >\n {{ !editable ? (\"Edit\" | rpxTranslate) : (\"Save\" | rpxTranslate) }}\n </button>\n <button\n type=\"button\"\n role=\"button\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"deleteOrCancel()\"\n >\n {{ !editable ? (\"Delete\" | rpxTranslate) : (\"Cancel\" | rpxTranslate) }}\n </button>\n </div>\n <span class=\"aui-comment__private\">{{ \"private\" | rpxTranslate }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TextHighlightDirective, selector: "[mvTextHighlight]", inputs: ["textToHighlight"] }, { kind: "directive", type: TextareaAutoExpandDirective, selector: "[mvTextAreaAutoExpand]" }, { kind: "component", type: TagsComponent, selector: "mv-tags", inputs: ["tagItems", "userId", "editable", "annoId"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: MomentDatePipe, name: "momentDate" }] }); }
@@ -3807,7 +3836,7 @@ class BoxHighlightCreateComponent {
3807
3836
  this.highlightPage();
3808
3837
  return;
3809
3838
  }
3810
- const rect = event.target.getBoundingClientRect(), offsetX = event.clientX - rect.left, offsetY = event.clientY - rect.top;
3839
+ const rect = HtmlTemplatesHelper.getAdjustedBoundingRect(event.target), offsetX = event.clientX - rect.left, offsetY = event.clientY - rect.top;
3811
3840
  console.log(`initHighlight: rect=${JSON.stringify(rect)}, clientX=${event.clientX}, clientY=${event.clientY}, offsetX=${offsetX}, offsetY=${offsetY}`);
3812
3841
  this.position = 'absolute';
3813
3842
  this.backgroundColor = 'yellow';
@@ -3832,8 +3861,7 @@ class BoxHighlightCreateComponent {
3832
3861
  }
3833
3862
  }
3834
3863
  updateHighlight(event) {
3835
- const rect = event.target.getBoundingClientRect(), offsetX = event.clientX - rect.left, offsetY = event.clientY - rect.top;
3836
- console.log(`updateHighlight: rect=${JSON.stringify(rect)}, clientX=${event.clientX}, clientY=${event.clientY}, offsetX=${offsetX}, offsetY=${offsetY}`);
3864
+ const rect = HtmlTemplatesHelper.getAdjustedBoundingRect(event.target, false), offsetX = event.clientX - rect.left, offsetY = event.clientY - rect.top;
3837
3865
  if (this.drawStartX > 0 && this.drawStartY > 0) {
3838
3866
  this.height = Math.abs(offsetY - this.drawStartY);
3839
3867
  this.width = Math.abs(offsetX - this.drawStartX);
@@ -3846,6 +3874,7 @@ class BoxHighlightCreateComponent {
3846
3874
  let rectangle = this.highlightService
3847
3875
  .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);
3848
3876
  rectangle = { id: v4(), ...rectangle };
3877
+ console.log(`createHighlight: rectangle=${JSON.stringify(rectangle)}`);
3849
3878
  this.saveSelection.emit({ rectangles: [rectangle], page: this.page });
3850
3879
  this.resetHighlight();
3851
3880
  }
@@ -4035,10 +4064,11 @@ class CtxToolbarComponent {
4035
4064
  addOrEditComment() {
4036
4065
  this.addOrEditCommentEvent.emit();
4037
4066
  setTimeout(() => {
4067
+ // This hack to wait until the element is rendered seems to be unreliable,
4038
4068
  if (!location.hash) {
4039
- document.getElementById('viewerContainer').scrollBy(0, 1);
4069
+ document.getElementById('viewerContainer')?.scrollBy(0, 1);
4040
4070
  }
4041
- }, 10);
4071
+ }, 20);
4042
4072
  }
4043
4073
  createBookmark() {
4044
4074
  this.createBookmarkEvent.emit(this.rectangle);
@@ -4740,7 +4770,9 @@ class SideBarComponent {
4740
4770
  this.sidebarOpen = toggle;
4741
4771
  }));
4742
4772
  this.subscriptions.push(this.store.pipe(select(getScrollTop)).subscribe(scrollTopValue => {
4743
- this.sidebarDiv.nativeElement.scrollTop = scrollTopValue;
4773
+ if (this.sidebarDiv?.nativeElement) {
4774
+ this.sidebarDiv.nativeElement.scrollTop = scrollTopValue;
4775
+ }
4744
4776
  }));
4745
4777
  }
4746
4778
  ngOnChanges(changes) {
@@ -4917,7 +4949,8 @@ class HighlightCreateDirective {
4917
4949
  const range = selection.getRangeAt(0).cloneRange();
4918
4950
  const clientRects = range.getClientRects();
4919
4951
  if (clientRects) {
4920
- const parentRect = localElement.closest(".textLayer").getBoundingClientRect();
4952
+ const parentRect = HtmlTemplatesHelper
4953
+ .getAdjustedBoundingRect(localElement.closest(".textLayer"));
4921
4954
  const selectionRectangles = [];
4922
4955
  for (let i = 0; i < clientRects.length; i++) {
4923
4956
  const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
@@ -5756,8 +5789,8 @@ class MainToolbarComponent {
5756
5789
  }
5757
5790
  }
5758
5791
  ngAfterViewInit() {
5759
- Array.from(this.mvToolbarMain.nativeElement.children).forEach(button => {
5760
- this.allButtonsWidth += button.getBoundingClientRect().width;
5792
+ Array.from(this.mvToolbarMain.nativeElement.children).forEach((button) => {
5793
+ this.allButtonsWidth += HtmlTemplatesHelper.getAdjustedBoundingRect(button).width;
5761
5794
  this.widthRequiredForBtn[button.id] = this.allButtonsWidth;
5762
5795
  });
5763
5796
  this.cdr.detectChanges();
@@ -6058,24 +6091,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6058
6091
  type: Input
6059
6092
  }] } });
6060
6093
 
6061
- /**
6062
- * Helper Class
6063
- * Used for dynamic templates manipulation
6064
- * */
6065
- class HtmlTemplatesHelper {
6066
- static setDescribedBy(errorMessage, config) {
6067
- if (!errorMessage) {
6068
- return config.hint ? `${config.id}-hint` : null;
6069
- }
6070
- else if (errorMessage && errorMessage.isInvalid) {
6071
- return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;
6072
- }
6073
- else {
6074
- return config.hint ? `${config.id}-hint` : null;
6075
- }
6076
- }
6077
- }
6078
-
6079
6094
  /*
6080
6095
  * Gov Uk Fieldset Component
6081
6096
  * Used to wrap group fieldset elements
@@ -6558,7 +6573,7 @@ class MediaViewerComponent {
6558
6573
  return;
6559
6574
  }
6560
6575
  if (!this.height) {
6561
- const compOffsetTop = this.elRef.nativeElement.getBoundingClientRect().top;
6576
+ const compOffsetTop = HtmlTemplatesHelper.getAdjustedBoundingRect(this.elRef.nativeElement).top;
6562
6577
  const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;
6563
6578
  const offset = compOffsetTop + viewerOffsetTop;
6564
6579
  if (this.prevOffset !== offset) {
@@ -7239,7 +7254,13 @@ class IcpSessionApiService {
7239
7254
  loadSession(payload) {
7240
7255
  return this.httpClient
7241
7256
  .get(`${this.ICP_SESSION_API}/${payload.caseId}/${payload.documentId}`, { observe: 'response', withCredentials: true })
7242
- .pipe(map(response => response.body));
7257
+ .pipe(map(response => {
7258
+ const token = response.headers.get('X-Access-Token');
7259
+ return {
7260
+ ...response.body,
7261
+ token
7262
+ };
7263
+ }));
7243
7264
  }
7244
7265
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpSessionApiService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
7245
7266
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpSessionApiService, providedIn: 'root' }); }
@@ -7256,7 +7277,7 @@ class IcpEffects {
7256
7277
  this.icpUpdateService = icpUpdateService;
7257
7278
  this.loadIcpSession$ = createEffect(() => this.actions$.pipe(ofType(LOAD_ICP_SESSION), map((action) => action.payload), exhaustMap((payload) => this.icpApiService.loadSession(payload)
7258
7279
  .pipe(map(res => new JoinIcpSocketSession(res)), catchError(error => of(new LoadIcpSessionFailure(error)))))));
7259
- this.joinIcpSocketSession$ = createEffect(() => this.actions$.pipe(ofType(JOIN_ICP_SOCKET_SESSION), map((action) => action.payload), switchMap((res) => this.icpUpdateService.joinSession(res.username, res.session)
7280
+ this.joinIcpSocketSession$ = createEffect(() => this.actions$.pipe(ofType(JOIN_ICP_SOCKET_SESSION), map((action) => action.payload), switchMap((res) => this.icpUpdateService.joinSession(res.username, res.session, res.token)
7260
7281
  .pipe(map(participants => new IcpSocketSessionJoined({ session: res.session, participantInfo: participants }))))));
7261
7282
  }
7262
7283
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpEffects, deps: [{ token: i1$2.Actions }, { token: IcpSessionApiService }, { token: IcpUpdateService }], target: i0.ɵɵFactoryTarget.Injectable }); }