@hmcts/media-viewer 4.1.9-exui-1580 → 4.1.9-exui-2821-1

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 (26) hide show
  1. package/assets/sass/pdf-viewer.scss +1 -79
  2. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +21 -80
  3. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +1 -1
  4. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +5 -31
  5. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +4 -17
  6. package/esm2022/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +13 -5
  7. package/esm2022/lib/media-viewer.module.mjs +1 -4
  8. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +7 -45
  9. package/fesm2022/hmcts-media-viewer.mjs +724 -1202
  10. package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
  11. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +2 -6
  12. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -1
  13. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +2 -6
  14. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -1
  15. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +0 -3
  16. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -1
  17. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +4 -1
  18. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -1
  19. package/lib/media-viewer.module.d.ts +18 -19
  20. package/lib/media-viewer.module.d.ts.map +1 -1
  21. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +0 -20
  22. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.mjs +0 -354
  25. package/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.d.ts +0 -63
  26. package/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.d.ts.map +0 -1
@@ -101,84 +101,6 @@ mv-pdf-viewer {
101
101
  width: 100%;
102
102
  transition-duration: 600ms;
103
103
  transition-timing-function: ease;
104
-
105
- &.highlightMode {
106
- position: relative;
107
- }
108
- }
109
-
110
- // keyboard cursor for text highlighting (before selection)
111
- .selection-start-cursor {
112
- width: 14px;
113
- height: 14px;
114
- margin-left: -7px;
115
- margin-top: -7px;
116
- pointer-events: none;
117
- background-color: #ffdd00;
118
- border-radius: 50%;
119
- border: 1px solid #ffdd00;
120
-
121
- // vertical line
122
- &::before {
123
- content: '';
124
- position: absolute;
125
- top: 0;
126
- left: 50%;
127
- width: 1px;
128
- height: 100%;
129
- background-color: #0b0c0c;
130
- transform: translateX(-0.5px);
131
- }
132
-
133
- // horizontal line
134
- &::after {
135
- content: '';
136
- position: absolute;
137
- top: 50%;
138
- left: 0;
139
- width: 100%;
140
- height: 1px;
141
- background-color: #0b0c0c;
142
- transform: translateY(-0.5px);
143
- }
144
- }
145
-
146
- // keyboard cursor for text highlighting (during selection)
147
- .selection-end-cursor {
148
- width: 1px;
149
- height: 12px;
150
- margin-left: -1px;
151
- margin-top: -10px;
152
- pointer-events: none;
153
- background-color: #0b0c0c;
154
- border-radius: 0;
155
- box-shadow: -1px 0 0 #ffffff, 1px 0 0 #ffffff;
156
-
157
- // I-beam top
158
- &::before {
159
- content: '';
160
- position: absolute;
161
- top: -1px;
162
- left: 50%;
163
- width: 5px;
164
- height: 1px;
165
- background-color: #0b0c0c;
166
- transform: translateX(-50%);
167
- box-shadow: 0 -1px 0 #ffffff, 0 1px 0 #ffffff;
168
- }
169
-
170
- // I-beam bottom
171
- &::after {
172
- content: '';
173
- position: absolute;
174
- bottom: -1px;
175
- left: 50%;
176
- width: 5px;
177
- height: 1px;
178
- background-color: #0b0c0c;
179
- transform: translateX(-50%);
180
- box-shadow: 0 -1px 0 #ffffff, 0 1px 0 #ffffff;
181
- }
182
104
  }
183
105
 
184
106
  .show-comments-panel {
@@ -206,4 +128,4 @@ mv-pdf-viewer {
206
128
  .splitToolbarButton.left {
207
129
  float: left;
208
130
  }
209
- }
131
+ }
@@ -1,6 +1,5 @@
1
1
  import { Directive, HostListener } from '@angular/core';
2
2
  import { v4 as uuid } from 'uuid';
3
- import { debounceTime, filter } from 'rxjs';
4
3
  import * as fromDocument from '../../../../store/selectors/document.selectors';
5
4
  import * as fromAnnotationActions from '../../../../store/actions/annotation.actions';
6
5
  import { HtmlTemplatesHelper } from '../../../../shared/util/helpers/html-templates.helper';
@@ -16,20 +15,18 @@ export class HighlightCreateDirective {
16
15
  this.viewerEvents = viewerEvents;
17
16
  this.highlightService = highlightService;
18
17
  this.store = store;
19
- this.$subscriptions = [];
20
18
  }
21
19
  ngOnInit() {
22
- this.$subscriptions.push(this.store.select(fromDocument.getPages).subscribe((pages) => {
20
+ this.$subscription = this.store.select(fromDocument.getPages).subscribe((pages) => {
23
21
  if (pages[1]) {
24
22
  this.allPages = pages;
25
23
  }
26
- }));
27
- this.$subscriptions.push(this.toolbarEvents.highlightModeSubject.pipe(filter(enabled => enabled && !!this.element.nativeElement), debounceTime(100)).subscribe(() => {
28
- this.element.nativeElement.focus();
29
- }));
24
+ });
30
25
  }
31
26
  ngOnDestroy() {
32
- this.$subscriptions.forEach(sub => sub.unsubscribe());
27
+ if (this.$subscription) {
28
+ this.$subscription.unsubscribe();
29
+ }
33
30
  }
34
31
  onMouseUp(mouseEvent) {
35
32
  let page;
@@ -48,56 +45,6 @@ export class HighlightCreateDirective {
48
45
  this.viewerEvents.textSelected({ page, rectangles });
49
46
  }
50
47
  }
51
- onKeyboardSelectionConfirmed() {
52
- if (this.toolbarEvents.highlightModeSubject.getValue()) {
53
- const selection = window.getSelection();
54
- if (selection && selection.rangeCount && !selection.isCollapsed) {
55
- const page = this.getCurrentPageFromSelection(selection);
56
- const rectangles = this.getRectanglesFromSelection(selection, page);
57
- if (rectangles && rectangles.length > 0) {
58
- this.viewerEvents.textSelected({ page, rectangles });
59
- }
60
- }
61
- }
62
- }
63
- getCurrentPageFromSelection(selection) {
64
- const range = selection.getRangeAt(0);
65
- let currentElement = range.startContainer;
66
- if (currentElement.nodeType === Node.TEXT_NODE) {
67
- currentElement = currentElement.parentElement;
68
- }
69
- while (currentElement && currentElement.offsetParent) {
70
- currentElement = currentElement.offsetParent;
71
- if (currentElement.getAttribute) {
72
- const page = parseInt(currentElement.getAttribute('data-page-number'), 10);
73
- if (page) {
74
- return page;
75
- }
76
- }
77
- }
78
- return 1;
79
- }
80
- getRectanglesFromSelection(selection, page) {
81
- if (!this.allPages || !this.allPages[page]) {
82
- return [];
83
- }
84
- this.setPageProperties(page);
85
- const range = selection.getRangeAt(0).cloneRange();
86
- const clientRects = range.getClientRects();
87
- if (!clientRects || clientRects.length === 0) {
88
- return [];
89
- }
90
- let textLayerElement = range.startContainer;
91
- if (textLayerElement.nodeType === Node.TEXT_NODE) {
92
- textLayerElement = textLayerElement.parentElement;
93
- }
94
- const textLayer = textLayerElement.closest('.textLayer');
95
- if (!textLayer) {
96
- return [];
97
- }
98
- this.removeEnhancedTextModeStyling(textLayerElement);
99
- return this.processClientRects(clientRects, textLayer);
100
- }
101
48
  onPdfViewerClick(event) {
102
49
  this.store.dispatch(new fromAnnotationActions.SelectedAnnotation({
103
50
  annotationId: '',
@@ -107,7 +54,10 @@ export class HighlightCreateDirective {
107
54
  this.viewerEvents.clearCtxToolbar();
108
55
  }
109
56
  getRectangles(event, page) {
110
- this.setPageProperties(page);
57
+ this.pageHeight = this.allPages[page].styles.height;
58
+ this.pageWidth = this.allPages[page].styles.width;
59
+ this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);
60
+ this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);
111
61
  const selection = window.getSelection();
112
62
  if (selection) {
113
63
  const localElement = event.target;
@@ -116,8 +66,17 @@ export class HighlightCreateDirective {
116
66
  const range = selection.getRangeAt(0).cloneRange();
117
67
  const clientRects = range.getClientRects();
118
68
  if (clientRects) {
119
- const textLayer = localElement.closest(".textLayer");
120
- return this.processClientRects(clientRects, textLayer);
69
+ const parentRect = HtmlTemplatesHelper
70
+ .getAdjustedBoundingRect(localElement.closest(".textLayer"));
71
+ const selectionRectangles = [];
72
+ for (let i = 0; i < clientRects.length; i++) {
73
+ const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
74
+ const findSelecttionRectangle = selectionRectangles.find((rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x);
75
+ if (!findSelecttionRectangle) {
76
+ selectionRectangles.push(selectionRectangle);
77
+ }
78
+ }
79
+ return selectionRectangles;
121
80
  }
122
81
  }
123
82
  }
@@ -143,24 +102,6 @@ export class HighlightCreateDirective {
143
102
  }
144
103
  }
145
104
  }
146
- setPageProperties(page) {
147
- this.pageHeight = this.allPages[page].styles.height;
148
- this.pageWidth = this.allPages[page].styles.width;
149
- this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);
150
- this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);
151
- }
152
- processClientRects(clientRects, textLayer) {
153
- const parentRect = HtmlTemplatesHelper.getAdjustedBoundingRect(textLayer);
154
- const selectionRectangles = [];
155
- for (let i = 0; i < clientRects.length; i++) {
156
- const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
157
- const findSelectionRectangle = selectionRectangles.find((rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x);
158
- if (!findSelectionRectangle) {
159
- selectionRectangles.push(selectionRectangle);
160
- }
161
- }
162
- return selectionRectangles;
163
- }
164
105
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateDirective, deps: [{ token: i0.ElementRef }, { token: i1.ToolbarEventService }, { token: i2.ViewerEventService }, { token: i3.HighlightCreateService }, { token: i4.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
165
106
  /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: HighlightCreateDirective, selector: "[mvCreateTextHighlight]", host: { listeners: { "mouseup": "onMouseUp($event)", "mousedown": "onPdfViewerClick($event)" } }, ngImport: i0 }); }
166
107
  }
@@ -176,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
176
117
  type: HostListener,
177
118
  args: ['mousedown', ['$event']]
178
119
  }] } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LWNyZWF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFJMUQsT0FBTyxLQUFLLFlBQVksTUFBTSxnREFBZ0QsQ0FBQztBQUUvRSxPQUFPLEtBQUsscUJBQXFCLE1BQU0sOENBQThDLENBQUM7QUFHdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7OztBQUs1RixNQUFNLE9BQU8sd0JBQXdCO0lBU25DLFlBQ1UsT0FBZ0MsRUFDaEMsYUFBa0MsRUFDbEMsWUFBZ0MsRUFDaEMsZ0JBQXdDLEVBQ3hDLEtBQTBDO1FBSjFDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4QyxVQUFLLEdBQUwsS0FBSyxDQUFxQztRQVA1QyxtQkFBYyxHQUFtQixFQUFFLENBQUM7SUFReEMsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENB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QUUsQ0FBQztZQUM1QyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDaEYsTUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3JELENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGtCQUFrQixDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FDckYsQ0FBQztZQUNGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM1QixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztrSUFoTlUsd0JBQXdCO3NIQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtpQkFDcEM7Mk1Bd0NDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBa0ZuQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgVmlld2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdmlld2Vycy92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub3RhdGlvbkFjdGlvbnMgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSB9IGZyb20gJy4vaGlnaGxpZ2h0LWNyZWF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBIdG1sVGVtcGxhdGVzSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3V0aWwvaGVscGVycy9odG1sLXRlbXBsYXRlcy5oZWxwZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXZDcmVhdGVUZXh0SGlnaGxpZ2h0XSdcbn0pXG5leHBvcnQgY2xhc3MgSGlnaGxpZ2h0Q3JlYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwYWdlSGVpZ2h0OiBudW1iZXI7XG4gIHBhZ2VXaWR0aDogbnVtYmVyO1xuICB6b29tOiBudW1iZXI7XG4gIHJvdGF0ZTogbnVtYmVyO1xuICBhbGxQYWdlczogb2JqZWN0O1xuXG4gIHByaXZhdGUgJHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGhpZ2hsaWdodFNlcnZpY2U6IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT5cbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zLnB1c2godGhpcy5zdG9yZS5zZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKS5zdWJzY3JpYmUoKHBhZ2VzKSA9PiB7XG4gICAgICBpZiAocGFnZXNbMV0pIHtcbiAgICAgICAgdGhpcy5hbGxQYWdlcyA9IHBhZ2VzO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5waXBlKFxuICAgICAgICBmaWx0ZXIoZW5hYmxlZCA9PiBlbmFibGVkICYmICEhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKVxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZVVwKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBsZXQgcGFnZTogbnVtYmVyO1xuICAgIGxldCBjdXJyZW50RWxlbWVudCA9IG1vdXNlRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIHdoaWxlIChjdXJyZW50RWxlbWVudC5vZmZzZXRQYXJlbnQpIHtcbiAgICAgIGN1cnJlbnRFbGVtZW50ID0gY3VycmVudEVsZW1lbnQub2Zmc2V0UGFyZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKGN1cnJlbnRFbGVtZW50LmdldEF0dHJpYnV0ZSkge1xuICAgICAgICBwYWdlID0gcGFyc2VJbnQoY3VycmVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXBhZ2UtbnVtYmVyJyksIDEwKTtcbiAgICAgICAgaWYgKHBhZ2UpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy50b29sYmFyRXZlbnRzLmhpZ2hsaWdodE1vZGVTdWJqZWN0LmdldFZhbHVlKCkpIHtcbiAgICAgIGNvbnN0IHJlY3RhbmdsZXMgPSB0aGlzLmdldFJlY3RhbmdsZXMobW91c2VFdmVudCwgcGFnZSk7XG4gICAgICB0aGlzLnZpZXdlckV2ZW50cy50ZXh0U2VsZWN0ZWQoeyBwYWdlLCByZWN0YW5nbGVzIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleWJvYXJkU2VsZWN0aW9uQ29uZmlybWVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2xiYXJFdmVudHMuaGlnaGxpZ2h0TW9kZVN1YmplY3QuZ2V0VmFsdWUoKSkge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCAmJiAhc2VsZWN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmdldEN1cnJlbnRQYWdlRnJvbVNlbGVjdGlvbihzZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCByZWN0YW5nbGVzID0gdGhpcy5nZXRSZWN0YW5nbGVzRnJvbVNlbGVjdGlvbihzZWxlY3Rpb24sIHBhZ2UpO1xuICAgICAgICBpZiAocmVjdGFuZ2xlcyAmJiByZWN0YW5nbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnZpZXdlckV2ZW50cy50ZXh0U2VsZWN0ZWQoeyBwYWdlLCByZWN0YW5nbGVzIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW50UGFnZUZyb21TZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgbGV0IGN1cnJlbnRFbGVtZW50ID0gcmFuZ2Uuc3RhcnRDb250YWluZXIgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoY3VycmVudEVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgd2hpbGUgKGN1cnJlbnRFbGVtZW50ICYmIGN1cnJlbnRFbGVtZW50Lm9mZnNldFBhcmVudCkge1xuICAgICAgY3VycmVudEVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAoY3VycmVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKSB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChjdXJyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGFnZS1udW1iZXInKSwgMTApO1xuICAgICAgICBpZiAocGFnZSkge1xuICAgICAgICAgIHJldHVybiBwYWdlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWN0YW5nbGVzRnJvbVNlbGVjdGlvbihzZWxlY3Rpb246IFNlbGVjdGlvbiwgcGFnZTogbnVtYmVyKTogUmVjdGFuZ2xlW10ge1xuICAgIGlmICghdGhpcy5hbGxQYWdlcyB8fCAhdGhpcy5hbGxQYWdlc1twYWdlXSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHRoaXMuc2V0UGFnZVByb3BlcnRpZXMocGFnZSk7XG5cbiAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmNsb25lUmFuZ2UoKTtcbiAgICBjb25zdCBjbGllbnRSZWN0cyA9IHJhbmdlLmdldENsaWVudFJlY3RzKCk7XG5cbiAgICBpZiAoIWNsaWVudFJlY3RzIHx8IGNsaWVudFJlY3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB0ZXh0TGF5ZXJFbGVtZW50ID0gcmFuZ2Uuc3RhcnRDb250YWluZXIgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRleHRMYXllckVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICB0ZXh0TGF5ZXJFbGVtZW50ID0gdGV4dExheWVyRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCB0ZXh0TGF5ZXIgPSB0ZXh0TGF5ZXJFbGVtZW50LmNsb3Nlc3QoJy50ZXh0TGF5ZXInKSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICghdGV4dExheWVyKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVFbmhhbmNlZFRleHRNb2RlU3R5bGluZyh0ZXh0TGF5ZXJFbGVtZW50KTtcblxuICAgIHJldHVybiB0aGlzLnByb2Nlc3NDbGllbnRSZWN0cyhjbGllbnRSZWN0cywgdGV4dExheWVyKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uUGRmVmlld2VyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgbmV3IGZyb21Bbm5vdGF0aW9uQWN0aW9ucy5TZWxlY3RlZEFubm90YXRpb24oe1xuICAgICAgICBhbm5vdGF0aW9uSWQ6ICcnLFxuICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIGVkaXRhYmxlOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnZpZXdlckV2ZW50cy5jbGVhckN0eFRvb2xiYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVjdGFuZ2xlcyhldmVudDogTW91c2VFdmVudCwgcGFnZSkge1xuICAgIHRoaXMuc2V0UGFnZVByb3BlcnRpZXMocGFnZSk7XG5cbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgY29uc3QgbG9jYWxFbGVtZW50ID0gPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldDtcblxuICAgICAgdGhpcy5yZW1vdmVFbmhhbmNlZFRleHRNb2RlU3R5bGluZyhsb2NhbEVsZW1lbnQpO1xuXG4gICAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgJiYgIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCkge1xuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmNsb25lUmFuZ2UoKTtcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdHMgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpO1xuXG4gICAgICAgIGlmIChjbGllbnRSZWN0cykge1xuICAgICAgICAgIGNvbnN0IHRleHRMYXllciA9IGxvY2FsRWxlbWVudC5jbG9zZXN0KFwiLnRleHRMYXllclwiKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2xpZW50UmVjdHMoY2xpZW50UmVjdHMsIHRleHRMYXllcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRSZWN0YW5nbGUocmVjdDogYW55LCBwYXJlbnRSZWN0OiBhbnkpOiBSZWN0YW5nbGUge1xuICAgIGNvbnN0IGhlaWdodCA9IHJlY3QuYm90dG9tIC0gcmVjdC50b3A7XG4gICAgY29uc3Qgd2lkdGggPSByZWN0LnJpZ2h0IC0gcmVjdC5sZWZ0O1xuICAgIGNvbnN0IHRvcCA9IHJlY3QudG9wIC0gcGFyZW50UmVjdC50b3A7XG4gICAgY29uc3QgbGVmdCA9IHJlY3QubGVmdCAtIHBhcmVudFJlY3QubGVmdDtcbiAgICBsZXQgcmVjdGFuZ2xlID0gdGhpcy5oaWdobGlnaHRTZXJ2aWNlLmFwcGx5Um90YXRpb24oXG4gICAgICB0aGlzLnBhZ2VIZWlnaHQsXG4gICAgICB0aGlzLnBhZ2VXaWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHdpZHRoLFxuICAgICAgdG9wLFxuICAgICAgbGVmdCxcbiAgICAgIHRoaXMucm90YXRlLFxuICAgICAgdGhpcy56b29tXG4gICAgKTtcbiAgICByZWN0YW5nbGUgPSB7IGlkOiB1dWlkKCksIC4uLnJlY3RhbmdsZSB9O1xuXG4gICAgcmV0dXJuIHJlY3RhbmdsZSBhcyBSZWN0YW5nbGU7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUVuaGFuY2VkVGV4dE1vZGVTdHlsaW5nKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudC5jaGlsZHJlbikge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50LnBhcmVudEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSA8SFRNTEVsZW1lbnQ+ZWxlbWVudC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuW2ldO1xuXG4gICAgICAgIGNoaWxkLnN0eWxlLnBhZGRpbmcgPSAnMCc7XG4gICAgICAgIC8vIHJlZ2V4IHdpbGwgYmUgdGFyZ2V0aW5nIHRoZSB0cmFuc2xhdGUgc3R5bGUgaW4gc3RyaW5nXG4gICAgICAgIC8vIGUuZy4gc2NhbGVYKDAuOTY5OTE4KSB0cmFuc2xhdGVYKC0xMTAuNjg0cHgpIHRyYW5zbGF0ZVkoLTEwNS4yNzRweCkgd2lsbCBiZWNvbWUgc2NhbGVYKDAuOTY5OTE4KVxuICAgICAgICBjb25zdCB0cmFuc2xhdGVDU1NSZWdleCA9IC90cmFuc2xhdGVbWFlaXVxcKC0/XFxkKihcXC5cXGQrKT8ocHgpP1xcKS9nO1xuICAgICAgICBjaGlsZC5zdHlsZS50cmFuc2Zvcm0gPSBjaGlsZC5zdHlsZS50cmFuc2Zvcm0ucmVwbGFjZSh0cmFuc2xhdGVDU1NSZWdleCwgJycpLnRyaW0oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFBhZ2VQcm9wZXJ0aWVzKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZUhlaWdodCA9IHRoaXMuYWxsUGFnZXNbcGFnZV0uc3R5bGVzLmhlaWdodDtcbiAgICB0aGlzLnBhZ2VXaWR0aCA9IHRoaXMuYWxsUGFnZXNbcGFnZV0uc3R5bGVzLndpZHRoO1xuICAgIHRoaXMuem9vbSA9IHBhcnNlRmxvYXQodGhpcy5hbGxQYWdlc1twYWdlXS5zY2FsZVJvdGF0aW9uLnNjYWxlKTtcbiAgICB0aGlzLnJvdGF0ZSA9IHBhcnNlSW50KHRoaXMuYWxsUGFnZXNbcGFnZV0uc2NhbGVSb3RhdGlvbi5yb3RhdGlvbiwgMTApO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ2xpZW50UmVjdHMoY2xpZW50UmVjdHM6IERPTVJlY3RMaXN0LCB0ZXh0TGF5ZXI6IEhUTUxFbGVtZW50KTogUmVjdGFuZ2xlW10ge1xuICAgIGNvbnN0IHBhcmVudFJlY3QgPSBIdG1sVGVtcGxhdGVzSGVscGVyLmdldEFkanVzdGVkQm91bmRpbmdSZWN0KHRleHRMYXllcik7XG4gICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlczogUmVjdGFuZ2xlW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2xpZW50UmVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZSA9IHRoaXMuY3JlYXRlVGV4dFJlY3RhbmdsZShjbGllbnRSZWN0c1tpXSwgcGFyZW50UmVjdCk7XG4gICAgICBjb25zdCBmaW5kU2VsZWN0aW9uUmVjdGFuZ2xlID0gc2VsZWN0aW9uUmVjdGFuZ2xlcy5maW5kKFxuICAgICAgICAocmVjdCkgPT4gcmVjdC53aWR0aCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLndpZHRoICYmIHJlY3QueCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLnhcbiAgICAgICk7XG4gICAgICBpZiAoIWZpbmRTZWxlY3Rpb25SZWN0YW5nbGUpIHtcbiAgICAgICAgc2VsZWN0aW9uUmVjdGFuZ2xlcy5wdXNoKHNlbGVjdGlvblJlY3RhbmdsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGlvblJlY3RhbmdsZXM7XG4gIH1cbn1cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LWNyZWF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU1sQyxPQUFPLEtBQUssWUFBWSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUd0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7O0FBSzVGLE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsWUFDVSxPQUFnQyxFQUNoQyxhQUFrQyxFQUNsQyxZQUFnQyxFQUNoQyxnQkFBd0MsRUFDeEMsS0FBMEM7UUFKMUMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBQ3hDLFVBQUssR0FBTCxLQUFLLENBQXFDO0lBQ2hELENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEYsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMs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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi92aWV3ZXJzL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vdGF0aW9uQWN0aW9ucyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hY3Rpb25zL2Fubm90YXRpb24uYWN0aW9ucyc7XG5pbXBvcnQgeyBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlIH0gZnJvbSAnLi9oaWdobGlnaHQtY3JlYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEh0bWxUZW1wbGF0ZXNIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvdXRpbC9oZWxwZXJzL2h0bWwtdGVtcGxhdGVzLmhlbHBlcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttdkNyZWF0ZVRleHRIaWdobGlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRDcmVhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgcGFnZVdpZHRoOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgcm90YXRlOiBudW1iZXI7XG4gIGFsbFBhZ2VzOiBvYmplY3Q7XG5cbiAgJHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlld2VyRXZlbnRzOiBWaWV3ZXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBoaWdobGlnaHRTZXJ2aWNlOiBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+XG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5zZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKS5zdWJzY3JpYmUoKHBhZ2VzKSA9PiB7XG4gICAgICBpZiAocGFnZXNbMV0pIHtcbiAgICAgICAgdGhpcy5hbGxQYWdlcyA9IHBhZ2VzO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuJHN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy4kc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2V1cCcsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VVcChtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgbGV0IHBhZ2U6IG51bWJlcjtcbiAgICBsZXQgY3VycmVudEVsZW1lbnQgPSBtb3VzZUV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICB3aGlsZSAoY3VycmVudEVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XG4gICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50Lm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChjdXJyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUpIHtcbiAgICAgICAgcGFnZSA9IHBhcnNlSW50KGN1cnJlbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1wYWdlLW51bWJlcicpLCAxMCk7XG4gICAgICAgIGlmIChwYWdlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMudG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICBjb25zdCByZWN0YW5nbGVzID0gdGhpcy5nZXRSZWN0YW5nbGVzKG1vdXNlRXZlbnQsIHBhZ2UpO1xuICAgICAgdGhpcy52aWV3ZXJFdmVudHMudGV4dFNlbGVjdGVkKHsgcGFnZSwgcmVjdGFuZ2xlcyB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBvblBkZlZpZXdlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIG5ldyBmcm9tQW5ub3RhdGlvbkFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHtcbiAgICAgICAgYW5ub3RhdGlvbklkOiAnJyxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy52aWV3ZXJFdmVudHMuY2xlYXJDdHhUb29sYmFyKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlY3RhbmdsZXMoZXZlbnQ6IE1vdXNlRXZlbnQsIHBhZ2UpIHtcbiAgICB0aGlzLnBhZ2VIZWlnaHQgPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy5oZWlnaHQ7XG4gICAgdGhpcy5wYWdlV2lkdGggPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy53aWR0aDtcbiAgICB0aGlzLnpvb20gPSBwYXJzZUZsb2F0KHRoaXMuYWxsUGFnZXNbcGFnZV0uc2NhbGVSb3RhdGlvbi5zY2FsZSk7XG4gICAgdGhpcy5yb3RhdGUgPSBwYXJzZUludCh0aGlzLmFsbFBhZ2VzW3BhZ2VdLnNjYWxlUm90YXRpb24ucm90YXRpb24sIDEwKTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgY29uc3QgbG9jYWxFbGVtZW50ID0gPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldDtcblxuICAgICAgdGhpcy5yZW1vdmVFbmhhbmNlZFRleHRNb2RlU3R5bGluZyhsb2NhbEVsZW1lbnQpO1xuXG4gICAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgJiYgIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCkge1xuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmNsb25lUmFuZ2UoKTtcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdHMgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpO1xuXG4gICAgICAgIGlmIChjbGllbnRSZWN0cykge1xuXG4gICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IEh0bWxUZW1wbGF0ZXNIZWxwZXJcbiAgICAgICAgICAgIC5nZXRBZGp1c3RlZEJvdW5kaW5nUmVjdChsb2NhbEVsZW1lbnQuY2xvc2VzdChcIi50ZXh0TGF5ZXJcIikpO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdID0gW107XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGllbnRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlID0gdGhpcy5jcmVhdGVUZXh0UmVjdGFuZ2xlKGNsaWVudFJlY3RzW2ldLCBwYXJlbnRSZWN0KTtcbiAgICAgICAgICAgIGNvbnN0IGZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlID0gc2VsZWN0aW9uUmVjdGFuZ2xlcy5maW5kKFxuICAgICAgICAgICAgICAocmVjdCkgPT4gcmVjdC53aWR0aCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLndpZHRoICYmIHJlY3QueCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLnhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIWZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGlvblJlY3RhbmdsZXMucHVzaChzZWxlY3Rpb25SZWN0YW5nbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uUmVjdGFuZ2xlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGV4dFJlY3RhbmdsZShyZWN0OiBhbnksIHBhcmVudFJlY3Q6IGFueSk6IFJlY3RhbmdsZSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gcmVjdC5ib3R0b20gLSByZWN0LnRvcDtcbiAgICBjb25zdCB3aWR0aCA9IHJlY3QucmlnaHQgLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgdG9wID0gcmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcDtcbiAgICBjb25zdCBsZWZ0ID0gcmVjdC5sZWZ0IC0gcGFyZW50UmVjdC5sZWZ0O1xuICAgIGxldCByZWN0YW5nbGUgPSB0aGlzLmhpZ2hsaWdodFNlcnZpY2UuYXBwbHlSb3RhdGlvbihcbiAgICAgIHRoaXMucGFnZUhlaWdodCxcbiAgICAgIHRoaXMucGFnZVdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgd2lkdGgsXG4gICAgICB0b3AsXG4gICAgICBsZWZ0LFxuICAgICAgdGhpcy5yb3RhdGUsXG4gICAgICB0aGlzLnpvb21cbiAgICApO1xuICAgIHJlY3RhbmdsZSA9IHsgaWQ6IHV1aWQoKSwgLi4ucmVjdGFuZ2xlIH07XG5cbiAgICByZXR1cm4gcmVjdGFuZ2xlIGFzIFJlY3RhbmdsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRW5oYW5jZWRUZXh0TW9kZVN0eWxpbmcoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoZWxlbWVudC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnQucGFyZW50RWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjaGlsZCA9IDxIVE1MRWxlbWVudD5lbGVtZW50LnBhcmVudEVsZW1lbnQuY2hpbGRyZW5baV07XG5cbiAgICAgICAgY2hpbGQuc3R5bGUucGFkZGluZyA9ICcwJztcbiAgICAgICAgLy8gcmVnZXggd2lsbCBiZSB0YXJnZXRpbmcgdGhlIHRyYW5zbGF0ZSBzdHlsZSBpbiBzdHJpbmdcbiAgICAgICAgLy8gZS5nLiBzY2FsZVgoMC45Njk5MTgpIHRyYW5zbGF0ZVgoLTExMC42ODRweCkgdHJhbnNsYXRlWSgtMTA1LjI3NHB4KSB3aWxsIGJlY29tZSBzY2FsZVgoMC45Njk5MTgpXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZUNTU1JlZ2V4ID0gL3RyYW5zbGF0ZVtYWVpdXFwoLT9cXGQqKFxcLlxcZCspPyhweCk/XFwpL2c7XG4gICAgICAgIGNoaWxkLnN0eWxlLnRyYW5zZm9ybSA9IGNoaWxkLnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKHRyYW5zbGF0ZUNTU1JlZ2V4LCAnJykudHJpbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -64,7 +64,7 @@ export class AnnotationViewComponent {
64
64
  this.toolbarEvents.toggleCommentsPanel(true);
65
65
  }
66
66
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationViewComponent, deps: [{ token: i1.ToolbarEventService }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Component }); }
67
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AnnotationViewComponent, selector: "mv-annotation", inputs: { annotation: "annotation", zoom: "zoom", rotate: "rotate", selectedAnnoId: "selectedAnnoId", pageHeight: "pageHeight", pageWidth: "pageWidth" }, outputs: { update: "update", delete: "delete", annotationClick: "annotationClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div #container [tabindex]=\"anno.id\">\n <mv-ctx-toolbar *ngIf=\"selected\"\n [canDelete]=\"true\" [canComment]=\"true\"\n [rectangles]=\"anno.rectangles\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (deleteHighlightEvent)=\"deleteHighlight()\"\n (addOrEditCommentEvent)=\"addOrEditComment()\">\n </mv-ctx-toolbar>\n <ng-container *ngFor=\"let rectangle of anno.rectangles\">\n <mv-anno-rectangle\n (selectEvent)=\"onSelect()\"\n (updateEvent)=\"onRectangleUpdate($event)\"\n [selected]=\"selected\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n [editable]=\"anno.rectangles.length <= 1\"\n [annoRect]=\"rectangle\"\n [color]=\"anno.color\">\n </mv-anno-rectangle>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.RectangleComponent, selector: "mv-anno-rectangle", inputs: ["color", "zoom", "rotate", "editable", "pageHeight", "pageWidth", "annoRect", "selected"], outputs: ["selectEvent", "updateEvent"] }, { kind: "component", type: i5.CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: ["zoom", "rotate", "pageHeight", "pageWidth", "canHighlight", "canBookmark", "canComment", "canDelete", "rectangles"], outputs: ["createHighlightEvent", "deleteHighlightEvent", "addOrEditCommentEvent", "createBookmarkEvent", "cancelEvent"] }] }); }
67
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AnnotationViewComponent, selector: "mv-annotation", inputs: { annotation: "annotation", zoom: "zoom", rotate: "rotate", selectedAnnoId: "selectedAnnoId", pageHeight: "pageHeight", pageWidth: "pageWidth" }, outputs: { update: "update", delete: "delete", annotationClick: "annotationClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div #container [tabindex]=\"anno.id\">\n <mv-ctx-toolbar *ngIf=\"selected\"\n [canDelete]=\"true\" [canComment]=\"true\"\n [rectangles]=\"anno.rectangles\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (deleteHighlightEvent)=\"deleteHighlight()\"\n (addOrEditCommentEvent)=\"addOrEditComment()\">\n </mv-ctx-toolbar>\n <ng-container *ngFor=\"let rectangle of anno.rectangles\">\n <mv-anno-rectangle\n (selectEvent)=\"onSelect()\"\n (updateEvent)=\"onRectangleUpdate($event)\"\n [selected]=\"selected\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n [editable]=\"anno.rectangles.length <= 1\"\n [annoRect]=\"rectangle\"\n [color]=\"anno.color\">\n </mv-anno-rectangle>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.RectangleComponent, selector: "mv-anno-rectangle", inputs: ["color", "zoom", "rotate", "editable", "pageHeight", "pageWidth", "annoRect", "selected"], outputs: ["selectEvent", "updateEvent"] }, { kind: "component", type: i5.CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: ["zoom", "rotate", "pageHeight", "pageWidth", "canHighlight", "canBookmark", "canComment", "canDelete", "rectangles"], outputs: ["createHighlightEvent", "deleteHighlightEvent", "addOrEditCommentEvent", "createBookmarkEvent"] }] }); }
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationViewComponent, decorators: [{
70
70
  type: Component,
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  export class CtxToolbarComponent {
@@ -7,7 +7,6 @@ export class CtxToolbarComponent {
7
7
  this.deleteHighlightEvent = new EventEmitter();
8
8
  this.addOrEditCommentEvent = new EventEmitter();
9
9
  this.createBookmarkEvent = new EventEmitter();
10
- this.cancelEvent = new EventEmitter();
11
10
  this.defaultHeight = 70;
12
11
  this.defaultWidth = 300;
13
12
  }
@@ -16,14 +15,6 @@ export class CtxToolbarComponent {
16
15
  this.top = this.popupTop();
17
16
  this.left = this.popupLeft();
18
17
  }
19
- onEscapeKey(event) {
20
- if (this.rectangle) {
21
- event.stopPropagation();
22
- event.preventDefault();
23
- this.rectangle = undefined;
24
- this.cancelEvent.emit();
25
- }
26
- }
27
18
  set rectangles(rectangles) {
28
19
  if (rectangles) {
29
20
  this._rectangles = rectangles;
@@ -92,25 +83,13 @@ export class CtxToolbarComponent {
92
83
  return popupLeft;
93
84
  }
94
85
  }
95
- focusToolbar() {
96
- if (this.toolbarContainer?.nativeElement) {
97
- const firstButton = this.toolbarContainer.nativeElement.querySelector('button');
98
- if (firstButton) {
99
- setTimeout(() => firstButton.focus(), 0);
100
- return;
101
- }
102
- }
103
- }
104
86
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CtxToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: { zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth", canHighlight: "canHighlight", canBookmark: "canBookmark", canComment: "canComment", canDelete: "canDelete", rectangles: "rectangles" }, outputs: { createHighlightEvent: "createHighlightEvent", deleteHighlightEvent: "deleteHighlightEvent", addOrEditCommentEvent: "addOrEditCommentEvent", createBookmarkEvent: "createBookmarkEvent", cancelEvent: "cancelEvent" }, host: { listeners: { "document:keydown.escape": "onEscapeKey($event)" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #toolbarContainer class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\"\n (keydown.enter)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\"\n (keydown.enter)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\"\n (keydown.enter)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\"\n (keydown.enter)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
87
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: { zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth", canHighlight: "canHighlight", canBookmark: "canBookmark", canComment: "canComment", canDelete: "canDelete", rectangles: "rectangles" }, outputs: { createHighlightEvent: "createHighlightEvent", deleteHighlightEvent: "deleteHighlightEvent", addOrEditCommentEvent: "addOrEditCommentEvent", createBookmarkEvent: "createBookmarkEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
106
88
  }
107
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CtxToolbarComponent, decorators: [{
108
90
  type: Component,
109
- args: [{ selector: 'mv-ctx-toolbar', template: "<div #toolbarContainer class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\"\n (keydown.enter)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\"\n (keydown.enter)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\"\n (keydown.enter)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\"\n (keydown.enter)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n" }]
110
- }], ctorParameters: () => [], propDecorators: { toolbarContainer: [{
111
- type: ViewChild,
112
- args: ['toolbarContainer', { static: false }]
113
- }], zoom: [{
91
+ args: [{ selector: 'mv-ctx-toolbar', template: "<div class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n" }]
92
+ }], ctorParameters: () => [], propDecorators: { zoom: [{
114
93
  type: Input
115
94
  }], rotate: [{
116
95
  type: Input
@@ -134,12 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
134
113
  type: Output
135
114
  }], createBookmarkEvent: [{
136
115
  type: Output
137
- }], cancelEvent: [{
138
- type: Output
139
- }], onEscapeKey: [{
140
- type: HostListener,
141
- args: ['document:keydown.escape', ['$event']]
142
116
  }], rectangles: [{
143
117
  type: Input
144
118
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3R4LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkIsTUFBTSxPQUFPLG1CQUFtQjtJQTRCOUI7UUFYVSx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVF6QyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBR0QsV0FB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWN0eC10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N0eC10b29sYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDdHhUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICByZWFkb25seSBkZWZhdWx0SGVpZ2h0O1xuICByZWFkb25seSBkZWZhdWx0V2lkdGg7XG5cbiAgQFZpZXdDaGlsZCgndG9vbGJhckNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSB0b29sYmFyQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoKSB6b29tO1xuICBASW5wdXQoKSByb3RhdGU7XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVdpZHRoOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2FuSGlnaGxpZ2h0OiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5Cb29rbWFyazogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuQ29tbWVudDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuRGVsZXRlOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBjcmVhdGVIaWdobGlnaHRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRlbGV0ZUhpZ2hsaWdodEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYWRkT3JFZGl0Q29tbWVudEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlQm9va21hcmtFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjdGFuZ2xlPigpO1xuICBAT3V0cHV0KCkgY2FuY2VsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcmVjdGFuZ2xlOiBSZWN0YW5nbGU7XG4gIF9yZWN0YW5nbGVzOiBSZWN0YW5nbGVbXTtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlZmF1bHRIZWlnaHQgPSA3MDtcbiAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IDMwMDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICB0aGlzLnNldFJlY3RhbmdsZSgpO1xuICAgIHRoaXMudG9wID0gdGhpcy5wb3B1cFRvcCgpO1xuICAgIHRoaXMubGVmdCA9IHRoaXMucG9wdXBMZWZ0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pXG4gIG9uRXNjYXBlS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVjdGFuZ2xlKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnJlY3RhbmdsZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuY2FuY2VsRXZlbnQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCByZWN0YW5nbGVzKHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKSB7XG4gICAgaWYgKHJlY3RhbmdsZXMpIHtcbiAgICAgIHRoaXMuX3JlY3RhbmdsZXMgPSByZWN0YW5nbGVzO1xuICAgICAgdGhpcy5zZXRSZWN0YW5nbGUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVjdGFuZ2xlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVjdGFuZ2xlcztcbiAgfVxuXG4gIGNyZWF0ZUhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLmNyZWF0ZUhpZ2hsaWdodEV2ZW50LmVtaXQoKTtcbiAgICB0aGlzLnJlY3RhbmdsZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGRlbGV0ZUhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLmRlbGV0ZUhpZ2hsaWdodEV2ZW50LmVtaXQoKTtcbiAgfVxuXG4gIGFkZE9yRWRpdENvbW1lbnQoKSB7XG4gICAgdGhpcy5hZGRPckVkaXRDb21tZW50RXZlbnQuZW1pdCgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gVGhpcyBoYWNrIHRvIHdhaXQgdW50aWwgdGhlIGVsZW1lbnQgaXMgcmVuZGVyZWQgc2VlbXMgdG8gYmUgdW5yZWxpYWJsZSxcbiAgICAgIGlmICghbG9jYXRpb24uaGFzaCkge1xuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlld2VyQ29udGFpbmVyJyk/LnNjcm9sbEJ5KDAsIDEpO1xuICAgICAgfVxuICAgIH0sIDIwKTtcbiAgfVxuXG4gIGNyZWF0ZUJvb2ttYXJrKCkge1xuICAgIHRoaXMuY3JlYXRlQm9va21hcmtFdmVudC5lbWl0KHRoaXMucmVjdGFuZ2xlKTtcbiAgICB0aGlzLnJlY3RhbmdsZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldFJlY3RhbmdsZSgpIHtcbiAgICBjb25zdCByZWN0YW5nbGUgPSB0aGlzLnJlY3RhbmdsZXNcbiAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnJlbnQpID0+IHByZXYueSA8IGN1cnJlbnQueSA/IHByZXYgOiBjdXJyZW50KTtcbiAgICB0aGlzLnJlY3RhbmdsZSA9ICB7IC4uLnJlY3RhbmdsZSB9O1xuICAgIHN3aXRjaCAodGhpcy5yb3RhdGUpIHtcbiAgICAgIGNhc2UgOTA6XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLndpZHRoID0gcmVjdGFuZ2xlLmhlaWdodDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUuaGVpZ2h0ID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZS54ID0gKHRoaXMucGFnZVdpZHRoIC8gdGhpcy56b29tKSAtIHJlY3RhbmdsZS55IC0gcmVjdGFuZ2xlLmhlaWdodDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUueSA9IHJlY3RhbmdsZS54O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOlxuICAgICAgICB0aGlzLnJlY3RhbmdsZS54ID0gKHRoaXMucGFnZVdpZHRoIC8gdGhpcy56b29tKSAtIHJlY3RhbmdsZS54IC0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZS55ID0gKHRoaXMucGFnZUhlaWdodCAvIHRoaXMuem9vbSkgLSByZWN0YW5nbGUueSAtIHJlY3RhbmdsZS5oZWlnaHQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNzA6XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLndpZHRoID0gcmVjdGFuZ2xlLmhlaWdodDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUuaGVpZ2h0ID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZS54ID0gcmVjdGFuZ2xlLnk7XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLnkgPSAodGhpcy5wYWdlSGVpZ2h0IC8gdGhpcy56b29tKSAtIHJlY3RhbmdsZS54IC0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwb3B1cFRvcCgpIHtcbiAgICBjb25zdCBwb3B1cFRvcCA9IHRoaXMucmVjdGFuZ2xlLnkgKiB0aGlzLnpvb20gLSB0aGlzLmRlZmF1bHRIZWlnaHQ7XG4gICAgcmV0dXJuIHBvcHVwVG9wIDw9IDAgPyB0aGlzLmRlZmF1bHRIZWlnaHQgOiBwb3B1cFRvcDtcbiAgfVxuXG4gIHBvcHVwTGVmdCgpIHtcbiAgICBjb25zdCBwb3B1cExlZnQgPSAodGhpcy5yZWN0YW5nbGUueCArICh0aGlzLnJlY3RhbmdsZS53aWR0aCAvIDIpKSAqIHRoaXMuem9vbSAtICh0aGlzLmRlZmF1bHRXaWR0aCAvIDIpO1xuICAgIGlmIChwb3B1cExlZnQgPD0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIGlmIChwb3B1cExlZnQgPj0gdGhpcy5wYWdlV2lkdGggLSB0aGlzLmRlZmF1bHRXaWR0aCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFnZVdpZHRoIC0gdGhpcy5kZWZhdWx0V2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwb3B1cExlZnQ7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNUb29sYmFyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2xiYXJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGZpcnN0QnV0dG9uID0gdGhpcy50b29sYmFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7XG4gICAgICBcbiAgICAgIGlmIChmaXJzdEJ1dHRvbikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZpcnN0QnV0dG9uLmZvY3VzKCksIDApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IFxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjdG9vbGJhckNvbnRhaW5lciBjbGFzcz1cInRvb2xiYXJcIiAqbmdJZj1cInJlY3RhbmdsZVwiXG4gICAgIFtzdHlsZS50b3AucHhdPVwidG9wXCJcbiAgICAgW3N0eWxlLmxlZnQucHhdPVwibGVmdFwiPlxuICA8YnV0dG9uICpuZ0lmPVwiY2FuSGlnaGxpZ2h0XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgdGl0bGU9XCJIaWdobGlnaHRcIlxuICAgICAgICAgIGNsYXNzPVwiYXVpX190b29sYmFyLWJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLS1jb21tZW50cyBjb250ZXh0dWFsLWJ0biBsZWZ0QnV0dG9uIGF1aV9fdG9vbGJhci1idXR0b24taGlnaGxpZ2h0XCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cImNyZWF0ZUhpZ2hsaWdodCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjcmVhdGVIaWdobGlnaHQoKVwiPlxuICAgIDxzcGFuPkhpZ2hsaWdodDwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKm5nSWY9XCJjYW5EZWxldGVcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkRlbGV0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhdWlfX3Rvb2xiYXItYnV0dG9uIGF1aV9fdG9vbGJhci1idXR0b24tLWNvbW1lbnRzIGNvbnRleHR1YWwtYnRuIGxlZnRCdXR0b25cIlxuICAgICAgICAgIChtb3VzZWRvd24pPVwiZGVsZXRlSGlnaGxpZ2h0KClcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImRlbGV0ZUhpZ2hsaWdodCgpXCI+XG4gICAgPHNwYW4+UmVtb3ZlPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAqbmdJZj1cImNhbkNvbW1lbnRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkNvbW1lbnRcIlxuICAgICAgICAgIGNsYXNzPVwiYXVpX190b29sYmFyLWJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLS1jb21tZW50cyBjb250ZXh0dWFsLWJ0biByaWdodEJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLWNvbW1lbnRcIlxuICAgICAgICAgIChtb3VzZWRvd24pPVwiYWRkT3JFZGl0Q29tbWVudCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJhZGRPckVkaXRDb21tZW50KClcIj5cbiAgICA8c3Bhbj5Db21tZW50PC9zcGFuPjwvYnV0dG9uPlxuICA8YnV0dG9uICpuZ0lmPVwiY2FuQm9va21hcmtcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkJvb2ttYXJrXCJcbiAgICAgICAgICBjbGFzcz1cImF1aV9fdG9vbGJhci1idXR0b24gYXVpX190b29sYmFyLWJ1dHRvbi0tY29tbWVudHMgY29udGV4dHVhbC1idG4gcmlnaHRCdXR0b24gYXVpX190b29sYmFyLWJ1dHRvbi1ib29rbWFya1wiXG4gICAgICAgICAgaWQ9XCJib29rbWFya0J1dHRvblwiXG4gICAgICAgICAgKG1vdXNlZG93bik9XCJjcmVhdGVCb29rbWFyaygpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjcmVhdGVCb29rbWFyaygpXCI+XG4gICAgPHNwYW4+Qm9va21hcms8L3NwYW4+PC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJhcnJvdy1kb3duXCI+XG4gICAgPGRpdiBjbGFzcz1cImlubmVyLXRyaWFuZ2xlXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3R4LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUF5QjlCO1FBVlUseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Msd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQVE1RCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBYSxVQUFVLENBQUMsVUFBdUI7UUFDN0MsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FB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QUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFrQk0sVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlIH0gZnJvbSAnLi4vYW5ub3RhdGlvbi12aWV3L3JlY3RhbmdsZS9yZWN0YW5nbGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1jdHgtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdHgtdG9vbGJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ3R4VG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgcmVhZG9ubHkgZGVmYXVsdEhlaWdodDtcbiAgcmVhZG9ubHkgZGVmYXVsdFdpZHRoO1xuXG4gIEBJbnB1dCgpIHpvb207XG4gIEBJbnB1dCgpIHJvdGF0ZTtcbiAgQElucHV0KCkgcGFnZUhlaWdodDogbnVtYmVyO1xuICBASW5wdXQoKSBwYWdlV2lkdGg6IG51bWJlcjtcblxuICBASW5wdXQoKSBjYW5IaWdobGlnaHQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNhbkJvb2ttYXJrOiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5Db21tZW50OiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5EZWxldGU6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIGNyZWF0ZUhpZ2hsaWdodEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlSGlnaGxpZ2h0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhZGRPckVkaXRDb21tZW50RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVCb29rbWFya0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWN0YW5nbGU+KCk7XG5cbiAgcmVjdGFuZ2xlOiBSZWN0YW5nbGU7XG4gIF9yZWN0YW5nbGVzOiBSZWN0YW5nbGVbXTtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlZmF1bHRIZWlnaHQgPSA3MDtcbiAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IDMwMDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICB0aGlzLnNldFJlY3RhbmdsZSgpO1xuICAgIHRoaXMudG9wID0gdGhpcy5wb3B1cFRvcCgpO1xuICAgIHRoaXMubGVmdCA9IHRoaXMucG9wdXBMZWZ0KCk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgcmVjdGFuZ2xlcyhyZWN0YW5nbGVzOiBSZWN0YW5nbGVbXSkge1xuICAgIGlmIChyZWN0YW5nbGVzKSB7XG4gICAgICB0aGlzLl9yZWN0YW5nbGVzID0gcmVjdGFuZ2xlcztcbiAgICAgIHRoaXMuc2V0UmVjdGFuZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlY3RhbmdsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlY3RhbmdsZXM7XG4gIH1cblxuICBjcmVhdGVIaWdobGlnaHQoKSB7XG4gICAgdGhpcy5jcmVhdGVIaWdobGlnaHRFdmVudC5lbWl0KCk7XG4gICAgdGhpcy5yZWN0YW5nbGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBkZWxldGVIaWdobGlnaHQoKSB7XG4gICAgdGhpcy5kZWxldGVIaWdobGlnaHRFdmVudC5lbWl0KCk7XG4gIH1cblxuICBhZGRPckVkaXRDb21tZW50KCkge1xuICAgIHRoaXMuYWRkT3JFZGl0Q29tbWVudEV2ZW50LmVtaXQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIFRoaXMgaGFjayB0byB3YWl0IHVudGlsIHRoZSBlbGVtZW50IGlzIHJlbmRlcmVkIHNlZW1zIHRvIGJlIHVucmVsaWFibGUsXG4gICAgICBpZiAoIWxvY2F0aW9uLmhhc2gpIHtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZXdlckNvbnRhaW5lcicpPy5zY3JvbGxCeSgwLCAxKTtcbiAgICAgIH1cbiAgICB9LCAyMCk7XG4gIH1cblxuICBjcmVhdGVCb29rbWFyaygpIHtcbiAgICB0aGlzLmNyZWF0ZUJvb2ttYXJrRXZlbnQuZW1pdCh0aGlzLnJlY3RhbmdsZSk7XG4gICAgdGhpcy5yZWN0YW5nbGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBzZXRSZWN0YW5nbGUoKSB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gdGhpcy5yZWN0YW5nbGVzXG4gICAgICAucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBwcmV2LnkgPCBjdXJyZW50LnkgPyBwcmV2IDogY3VycmVudCk7XG4gICAgdGhpcy5yZWN0YW5nbGUgPSAgeyAuLi5yZWN0YW5nbGUgfTtcbiAgICBzd2l0Y2ggKHRoaXMucm90YXRlKSB7XG4gICAgICBjYXNlIDkwOlxuICAgICAgICB0aGlzLnJlY3RhbmdsZS53aWR0aCA9IHJlY3RhbmdsZS5oZWlnaHQ7XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLmhlaWdodCA9IHJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUueCA9ICh0aGlzLnBhZ2VXaWR0aCAvIHRoaXMuem9vbSkgLSByZWN0YW5nbGUueSAtIHJlY3RhbmdsZS5oZWlnaHQ7XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLnkgPSByZWN0YW5nbGUueDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE4MDpcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUueCA9ICh0aGlzLnBhZ2VXaWR0aCAvIHRoaXMuem9vbSkgLSByZWN0YW5nbGUueCAtIHJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUueSA9ICh0aGlzLnBhZ2VIZWlnaHQgLyB0aGlzLnpvb20pIC0gcmVjdGFuZ2xlLnkgLSByZWN0YW5nbGUuaGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjcwOlxuICAgICAgICB0aGlzLnJlY3RhbmdsZS53aWR0aCA9IHJlY3RhbmdsZS5oZWlnaHQ7XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLmhlaWdodCA9IHJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUueCA9IHJlY3RhbmdsZS55O1xuICAgICAgICB0aGlzLnJlY3RhbmdsZS55ID0gKHRoaXMucGFnZUhlaWdodCAvIHRoaXMuem9vbSkgLSByZWN0YW5nbGUueCAtIHJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcG9wdXBUb3AoKSB7XG4gICAgY29uc3QgcG9wdXBUb3AgPSB0aGlzLnJlY3RhbmdsZS55ICogdGhpcy56b29tIC0gdGhpcy5kZWZhdWx0SGVpZ2h0O1xuICAgIHJldHVybiBwb3B1cFRvcCA8PSAwID8gdGhpcy5kZWZhdWx0SGVpZ2h0IDogcG9wdXBUb3A7XG4gIH1cblxuICBwb3B1cExlZnQoKSB7XG4gICAgY29uc3QgcG9wdXBMZWZ0ID0gKHRoaXMucmVjdGFuZ2xlLnggKyAodGhpcy5yZWN0YW5nbGUud2lkdGggLyAyKSkgKiB0aGlzLnpvb20gLSAodGhpcy5kZWZhdWx0V2lkdGggLyAyKTtcbiAgICBpZiAocG9wdXBMZWZ0IDw9IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSBpZiAocG9wdXBMZWZ0ID49IHRoaXMucGFnZVdpZHRoIC0gdGhpcy5kZWZhdWx0V2lkdGgpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2VXaWR0aCAtIHRoaXMuZGVmYXVsdFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcG9wdXBMZWZ0O1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvb2xiYXJcIiAqbmdJZj1cInJlY3RhbmdsZVwiXG4gICAgIFtzdHlsZS50b3AucHhdPVwidG9wXCJcbiAgICAgW3N0eWxlLmxlZnQucHhdPVwibGVmdFwiPlxuICA8YnV0dG9uICpuZ0lmPVwiY2FuSGlnaGxpZ2h0XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgdGl0bGU9XCJIaWdobGlnaHRcIlxuICAgICAgICAgIGNsYXNzPVwiYXVpX190b29sYmFyLWJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLS1jb21tZW50cyBjb250ZXh0dWFsLWJ0biBsZWZ0QnV0dG9uIGF1aV9fdG9vbGJhci1idXR0b24taGlnaGxpZ2h0XCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cImNyZWF0ZUhpZ2hsaWdodCgpXCI+XG4gICAgPHNwYW4+SGlnaGxpZ2h0PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAqbmdJZj1cImNhbkRlbGV0ZVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiIHRpdGxlPVwiRGVsZXRlXCJcbiAgICAgICAgICBjbGFzcz1cImF1aV9fdG9vbGJhci1idXR0b24gYXVpX190b29sYmFyLWJ1dHRvbi0tY29tbWVudHMgY29udGV4dHVhbC1idG4gbGVmdEJ1dHRvblwiXG4gICAgICAgICAgKG1vdXNlZG93bik9XCJkZWxldGVIaWdobGlnaHQoKVwiPlxuICAgIDxzcGFuPlJlbW92ZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKm5nSWY9XCJjYW5Db21tZW50XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgdGl0bGU9XCJDb21tZW50XCJcbiAgICAgICAgICBjbGFzcz1cImF1aV9fdG9vbGJhci1idXR0b24gYXVpX190b29sYmFyLWJ1dHRvbi0tY29tbWVudHMgY29udGV4dHVhbC1idG4gcmlnaHRCdXR0b24gYXVpX190b29sYmFyLWJ1dHRvbi1jb21tZW50XCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cImFkZE9yRWRpdENvbW1lbnQoKVwiPlxuICAgIDxzcGFuPkNvbW1lbnQ8L3NwYW4+PC9idXR0b24+XG4gIDxidXR0b24gKm5nSWY9XCJjYW5Cb29rbWFya1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiIHRpdGxlPVwiQm9va21hcmtcIlxuICAgICAgICAgIGNsYXNzPVwiYXVpX190b29sYmFyLWJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLS1jb21tZW50cyBjb250ZXh0dWFsLWJ0biByaWdodEJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLWJvb2ttYXJrXCJcbiAgICAgICAgICBpZD1cImJvb2ttYXJrQnV0dG9uXCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cImNyZWF0ZUJvb2ttYXJrKClcIj5cbiAgICA8c3Bhbj5Cb29rbWFyazwvc3Bhbj48L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cImFycm93LWRvd25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5uZXItdHJpYW5nbGVcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
1
+ import { Component, Input } from '@angular/core';
2
2
  import { take } from 'rxjs/operators';
3
3
  import { select } from '@ngrx/store';
4
4
  import { v4 as uuid } from 'uuid';
@@ -6,7 +6,6 @@ import * as fromDocument from '../../../store/selectors/document.selectors';
6
6
  import * as fromSelectors from '../../../store/selectors/annotation.selectors';
7
7
  import { CreateBookmark } from '../../../store/actions/bookmark.actions';
8
8
  import * as fromBookmarks from '../../../store/selectors/bookmark.selectors';
9
- import { CtxToolbarComponent } from '../ctx-toolbar/ctx-toolbar.component';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "@ngrx/store";
12
11
  import * as i2 from "../annotation-create/highlight-create/highlight-create.service";
@@ -41,20 +40,11 @@ export class MetadataLayerComponent {
41
40
  this.rectangles = highlight.rectangles;
42
41
  if (this.rectangles) {
43
42
  this.toolbarEvents.highlightModeSubject.next(false);
44
- setTimeout(() => this.ctxToolbar.focusToolbar(), 0);
45
43
  }
46
44
  }
47
45
  clearContextToolbar() {
48
46
  this.rectangles = undefined;
49
47
  }
50
- cancelContextToolbar() {
51
- const selection = window.getSelection();
52
- if (selection) {
53
- selection.removeAllRanges();
54
- }
55
- this.rectangles = undefined;
56
- this.toolbarEvents.highlightModeSubject.next(true);
57
- }
58
48
  createHighlight() {
59
49
  this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);
60
50
  this.highlightService.resetHighlight();
@@ -83,17 +73,14 @@ export class MetadataLayerComponent {
83
73
  this.toolbarEvents.drawModeSubject.next(false);
84
74
  }
85
75
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataLayerComponent, deps: [{ token: i1.Store }, { token: i2.HighlightCreateService }, { token: i3.ToolbarEventService }, { token: i4.ViewerEventService }], target: i0.ɵɵFactoryTarget.Component }); }
86
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataLayerComponent, selector: "mv-metadata-layer", inputs: { zoom: "zoom", rotate: "rotate" }, viewQueries: [{ propertyName: "ctxToolbar", first: true, predicate: CtxToolbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\"\n (cancelEvent)=\"cancelContextToolbar()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: ["page", "pageHeight", "pageWidth", "rotate", "zoom", "container"], outputs: ["saveSelection"] }, { kind: "component", type: i7.AnnotationSetComponent, selector: "mv-annotation-set", inputs: ["page", "annotations", "zoom", "rotate", "pageHeight", "pageWidth"] }, { kind: "component", type: i8.CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: ["zoom", "rotate", "pageHeight", "pageWidth", "canHighlight", "canBookmark", "canComment", "canDelete", "rectangles"], outputs: ["createHighlightEvent", "deleteHighlightEvent", "addOrEditCommentEvent", "createBookmarkEvent", "cancelEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
76
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataLayerComponent, selector: "mv-metadata-layer", inputs: { zoom: "zoom", rotate: "rotate" }, ngImport: i0, template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: ["page", "pageHeight", "pageWidth", "rotate", "zoom", "container"], outputs: ["saveSelection"] }, { kind: "component", type: i7.AnnotationSetComponent, selector: "mv-annotation-set", inputs: ["page", "annotations", "zoom", "rotate", "pageHeight", "pageWidth"] }, { kind: "component", type: i8.CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: ["zoom", "rotate", "pageHeight", "pageWidth", "canHighlight", "canBookmark", "canComment", "canDelete", "rectangles"], outputs: ["createHighlightEvent", "deleteHighlightEvent", "addOrEditCommentEvent", "createBookmarkEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
87
77
  }
88
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataLayerComponent, decorators: [{
89
79
  type: Component,
90
- args: [{ selector: 'mv-metadata-layer', template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\"\n (cancelEvent)=\"cancelContextToolbar()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n" }]
80
+ args: [{ selector: 'mv-metadata-layer', template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n" }]
91
81
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.HighlightCreateService }, { type: i3.ToolbarEventService }, { type: i4.ViewerEventService }], propDecorators: { zoom: [{
92
82
  type: Input
93
83
  }], rotate: [{
94
84
  type: Input
95
- }], ctxToolbar: [{
96
- type: ViewChild,
97
- args: [CtxToolbarComponent, { static: false }]
98
85
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvbWV0YWRhdGEtbGF5ZXIvbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvbWV0YWRhdGEtbGF5ZXIvbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxPQUFPLEtBQUssWUFBWSxNQUFNLDZDQUE2QyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxhQUFhLE1BQU0sK0NBQStDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxhQUFhLE1BQU0sNkNBQTZDLENBQUM7QUFHN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7QUFNM0UsTUFBTSxPQUFPLHNCQUFzQjtJQWdCakMsWUFDVSxLQUEwQyxFQUNqQyxnQkFBd0MsRUFDeEMsYUFBa0MsRUFDbEMsWUFBZ0M7UUFIekMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4Qyxr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QjtrQkFKbEMsU0FBUzsrQkFDRSxtQkFBbUI7a0xBS3BCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRTZDLFVBQVU7c0JBQTVELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21TZWxlY3RvcnMgZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Fubm90YXRpb24uc2VsZWN0b3JzJztcbmltcG9ydCB7IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UgfSBmcm9tICcuLi9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgeyBDcmVhdGVCb29rbWFyayB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMvYm9va21hcmsuYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tQm9va21hcmtzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9ib29rbWFyay5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEhpZ2hsaWdodCwgVmlld2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdmlld2Vycy92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDdHhUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtbWV0YWRhdGEtbGF5ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhTGF5ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcblxuICBAVmlld0NoaWxkKEN0eFRvb2xiYXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBjdHhUb29sYmFyOiBDdHhUb29sYmFyQ29tcG9uZW50O1xuXG4gIHBhZ2VzOiBhbnlbXSA9IFtdOyAvLyB0b2RvIGFkZCB0eXBlXG4gIGFubm9QYWdlcyQ6IE9ic2VydmFibGU8YW55PjsgLy8gdG9kbyBhZGQgdHlwZVxuXG4gIGRyYXdNb2RlID0gZmFsc2U7XG4gIGhpZ2hsaWdodFBhZ2U6IG51bWJlcjtcbiAgcmVjdGFuZ2xlczogUmVjdGFuZ2xlW107XG5cbiAgcHJpdmF0ZSAkc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0U2VydmljZTogSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucyA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKSlcbiAgICAgIC5zdWJzY3JpYmUocGFnZXMgPT4gdGhpcy5wYWdlcyA9IE9iamVjdC52YWx1ZXMocGFnZXMpKTtcbiAgICB0aGlzLmFubm9QYWdlcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0UGFnZUVudGl0aWVzKSk7XG5cbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMuZHJhd01vZGVTdWJqZWN0LnN1YnNjcmliZShkcmF3TW9kZSA9PiB0aGlzLmRyYXdNb2RlID0gZHJhd01vZGUpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zLmFkZCh0aGlzLnZpZXdlckV2ZW50cy50ZXh0SGlnaGxpZ2h0LnN1YnNjcmliZShoaWdobGlnaHQgPT4gdGhpcy5zaG93Q29udGV4dFRvb2xiYXIoaGlnaGxpZ2h0KSkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudmlld2VyRXZlbnRzLmN0eFRvb2xiYXJDbGVhcmVkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFyQ29udGV4dFRvb2xiYXIoKSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2hvd0NvbnRleHRUb29sYmFyKGhpZ2hsaWdodDogSGlnaGxpZ2h0KSB7XG4gICAgdGhpcy5oaWdobGlnaHRQYWdlID0gaGlnaGxpZ2h0LnBhZ2U7XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gaGlnaGxpZ2h0LnJlY3RhbmdsZXM7XG4gICAgaWYgKHRoaXMucmVjdGFuZ2xlcykge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmhpZ2hsaWdodE1vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmN0eFRvb2xiYXIuZm9jdXNUb29sYmFyKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyQ29udGV4dFRvb2xiYXIoKSB7XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY2FuY2VsQ29udGV4dFRvb2xiYXIoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICB9XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgY3JlYXRlSGlnaGxpZ2h0KCkge1xuICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5zYXZlQW5ub3RhdGlvbih0aGlzLnJlY3RhbmdsZXMsIHRoaXMuaGlnaGxpZ2h0UGFnZSk7XG4gICAgdGhpcy5oaWdobGlnaHRTZXJ2aWNlLnJlc2V0SGlnaGxpZ2h0KCk7XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY3JlYXRlQm9va21hcmsocmVjdGFuZ2xlOiBSZWN0YW5nbGUpIHtcbiAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Cb29rbWFya3MuZ2V0Qm9va21hcmtJbmZvKSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGJvb2ttYXJrSW5mbykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQ3JlYXRlQm9va21hcmsoe1xuICAgICAgICAgIC4uLmJvb2ttYXJrSW5mbyxcbiAgICAgICAgICBuYW1lOiBzZWxlY3Rpb24ubGVuZ3RoID4gMCA/IHNlbGVjdGlvbi5zdWJzdHIoMCwgMzApIDogJ25ldyBib29rbWFyaycsXG4gICAgICAgICAgaWQ6IHV1aWQoKSxcbiAgICAgICAgICBwYWdlTnVtYmVyOiB0aGlzLmhpZ2hsaWdodFBhZ2UgLSAxLFxuICAgICAgICAgIHhDb29yZGluYXRlOiByZWN0YW5nbGUueCxcbiAgICAgICAgICB5Q29vcmRpbmF0ZTogcmVjdGFuZ2xlLnlcbiAgICAgICAgfSBhcyBhbnkpKTtcbiAgICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVNpZGVCYXIodHJ1ZSk7XG4gICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVTaWRlQmFyVmlldyhmYWxzZSk7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5yZXNldEhpZ2hsaWdodCgpO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZXMgPSB1bmRlZmluZWQ7XG5cbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZUFubm90YXRpb24oeyByZWN0YW5nbGVzLCBwYWdlIH06IHsgcmVjdGFuZ2xlczogUmVjdGFuZ2xlW10sIHBhZ2U6IGFueSB9KSB7XG4gICAgdGhpcy5oaWdobGlnaHRTZXJ2aWNlLnNhdmVBbm5vdGF0aW9uKHJlY3RhbmdsZXMsIHBhZ2UpO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5kcmF3TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWdlQ29udGFpbmVyXCI+XG4gIDxkaXYgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyAgaW5kZXggYXMgaVwiXG4gICAgICAgY2xhc3M9XCJwYWdlQ29udGFpbmVyX19wYWdlXCJcbiAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgJ3dpZHRoLnB4JzogcGFnZS5zdHlsZXMud2lkdGgsXG4gICAgICAgJ2hlaWdodC5weCc6IHBhZ2Uuc3R5bGVzLmhlaWdodFxuICAgICAgIH1cIlxuICAgICAgIFtuZ0NsYXNzXT1cInsgJ3BhZ2VDb250YWluZXJfX3BhZ2UtLWRyYXcnIDogZHJhd01vZGUgfVwiPlxuICAgIDxtdi1ib3gtaGlnaGxpZ2h0LWNyZWF0ZVxuICAgICAgW3BhZ2VdPVwiaSArIDFcIlxuICAgICAgW3BhZ2VIZWlnaHRdPVwicGFnZS5zdHlsZXMuaGVpZ2h0XCJcbiAgICAgIFtwYWdlV2lkdGhdPVwicGFnZS5zdHlsZXMud2lkdGhcIlxuICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAoc2F2ZVNlbGVjdGlvbik9XCJzYXZlQW5ub3RhdGlvbigkZXZlbnQpXCI+XG4gICAgPC9tdi1ib3gtaGlnaGxpZ2h0LWNyZWF0ZT5cbiAgICA8bXYtY3R4LXRvb2xiYXIgKm5nSWY9XCJyZWN0YW5nbGVzICYmIGhpZ2hsaWdodFBhZ2UgPT09IChpICsgMSlcIlxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlc109XCJyZWN0YW5nbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbkJvb2ttYXJrXT1cInRydWVcIiBbY2FuSGlnaGxpZ2h0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbcGFnZUhlaWdodF09XCJwYWdlLnN0eWxlcy5oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICBbcGFnZVdpZHRoXT1cInBhZ2Uuc3R5bGVzLndpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZUJvb2ttYXJrRXZlbnQpPVwiY3JlYXRlQm9va21hcmsoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChjcmVhdGVIaWdobGlnaHRFdmVudCk9XCJjcmVhdGVIaWdobGlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjYW5jZWxFdmVudCk9XCJjYW5jZWxDb250ZXh0VG9vbGJhcigpXCI+XG4gICAgPC9tdi1jdHgtdG9vbGJhcj5cbiAgICA8ZGl2IGNsYXNzPVwicGFnZUNvbnRhaW5lcl9fcGFnZS1pdGVtXCI+XG4gICAgICA8bXYtYW5ub3RhdGlvbi1zZXQgKm5nSWY9XCIoYW5ub1BhZ2VzJCB8IGFzeW5jKSBhcyBhbm5vUGFnZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tXT1cInpvb21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZUhlaWdodF09XCJwYWdlLnN0eWxlcy5oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlV2lkdGhdPVwicGFnZS5zdHlsZXMud2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlXT1cImlcIiBbYW5ub3RhdGlvbnNdPVwiYW5ub1BhZ2VzW2kgKyAxXVwiPjwvbXYtYW5ub3RhdGlvbi1zZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvbWV0YWRhdGEtbGF5ZXIvbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvbWV0YWRhdGEtbGF5ZXIvbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sS0FBSyxZQUFZLE1BQU0sNkNBQTZDLENBQUM7QUFDNUUsT0FBTyxLQUFLLGFBQWEsTUFBTSwrQ0FBK0MsQ0FBQztBQUcvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxLQUFLLGFBQWEsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7OztBQVE3RSxNQUFNLE9BQU8sc0JBQXNCO0lBY2pDLFlBQ1UsS0FBMEMsRUFDakMsZ0JBQXdDLEVBQ3hDLGFBQWtDLEVBQ2xDLFlBQWdDO1FBSHpDLFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQ2pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUFDeEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQWJuRCxV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LFNBQVMsQ0FBQyxDQUFDO2dCQUN4QixXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDbEIsQ0FBQyxDQUFDLENBQUM7WUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUU5QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUEwQztRQUN6RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztrSUEzRVUsc0JBQXNCO3NIQUF0QixzQkFBc0IscUdDcEJuQyx5aERBb0NBOzs0RkRoQmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG1CQUFtQjtrTEFLcEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuXG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50IGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0ICogYXMgZnJvbVNlbGVjdG9ycyBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvYW5ub3RhdGlvbi5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSB9IGZyb20gJy4uL2Fubm90YXRpb24tY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUvaGlnaGxpZ2h0LWNyZWF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uL2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCB7IENyZWF0ZUJvb2ttYXJrIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21Cb29rbWFya3MgZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Jvb2ttYXJrLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0LCBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi92aWV3ZXJzL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtbWV0YWRhdGEtbGF5ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhTGF5ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcblxuICBwYWdlczogYW55W10gPSBbXTsgLy8gdG9kbyBhZGQgdHlwZVxuICBhbm5vUGFnZXMkOiBPYnNlcnZhYmxlPGFueT47IC8vIHRvZG8gYWRkIHR5cGVcblxuICBkcmF3TW9kZSA9IGZhbHNlO1xuICBoaWdobGlnaHRQYWdlOiBudW1iZXI7XG4gIHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdO1xuXG4gIHByaXZhdGUgJHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpZ2hsaWdodFNlcnZpY2U6IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld2VyRXZlbnRzOiBWaWV3ZXJFdmVudFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2N1bWVudC5nZXRQYWdlcykpXG4gICAgICAuc3Vic2NyaWJlKHBhZ2VzID0+IHRoaXMucGFnZXMgPSBPYmplY3QudmFsdWVzKHBhZ2VzKSk7XG4gICAgdGhpcy5hbm5vUGFnZXMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldFBhZ2VFbnRpdGllcykpO1xuXG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy5hZGQodGhpcy50b29sYmFyRXZlbnRzLmRyYXdNb2RlU3ViamVjdC5zdWJzY3JpYmUoZHJhd01vZGUgPT4gdGhpcy5kcmF3TW9kZSA9IGRyYXdNb2RlKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy5hZGQodGhpcy52aWV3ZXJFdmVudHMudGV4dEhpZ2hsaWdodC5zdWJzY3JpYmUoaGlnaGxpZ2h0ID0+IHRoaXMuc2hvd0NvbnRleHRUb29sYmFyKGhpZ2hsaWdodCkpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zLmFkZCh0aGlzLnZpZXdlckV2ZW50cy5jdHhUb29sYmFyQ2xlYXJlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGVhckNvbnRleHRUb29sYmFyKCkpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHNob3dDb250ZXh0VG9vbGJhcihoaWdobGlnaHQ6IEhpZ2hsaWdodCkge1xuICAgIHRoaXMuaGlnaGxpZ2h0UGFnZSA9IGhpZ2hsaWdodC5wYWdlO1xuICAgIHRoaXMucmVjdGFuZ2xlcyA9IGhpZ2hsaWdodC5yZWN0YW5nbGVzO1xuICAgIGlmICh0aGlzLnJlY3RhbmdsZXMpIHtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBjbGVhckNvbnRleHRUb29sYmFyKCkge1xuICAgIHRoaXMucmVjdGFuZ2xlcyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNyZWF0ZUhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLmhpZ2hsaWdodFNlcnZpY2Uuc2F2ZUFubm90YXRpb24odGhpcy5yZWN0YW5nbGVzLCB0aGlzLmhpZ2hsaWdodFBhZ2UpO1xuICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5yZXNldEhpZ2hsaWdodCgpO1xuICAgIHRoaXMucmVjdGFuZ2xlcyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNyZWF0ZUJvb2ttYXJrKHJlY3RhbmdsZTogUmVjdGFuZ2xlKSB7XG4gICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tQm9va21hcmtzLmdldEJvb2ttYXJrSW5mbyksIHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChib29rbWFya0luZm8pID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IENyZWF0ZUJvb2ttYXJrKHtcbiAgICAgICAgICAuLi5ib29rbWFya0luZm8sXG4gICAgICAgICAgbmFtZTogc2VsZWN0aW9uLmxlbmd0aCA+IDAgPyBzZWxlY3Rpb24uc3Vic3RyKDAsIDMwKSA6ICduZXcgYm9va21hcmsnLFxuICAgICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgICAgcGFnZU51bWJlcjogdGhpcy5oaWdobGlnaHRQYWdlIC0gMSxcbiAgICAgICAgICB4Q29vcmRpbmF0ZTogcmVjdGFuZ2xlLngsXG4gICAgICAgICAgeUNvb3JkaW5hdGU6IHJlY3RhbmdsZS55XG4gICAgICAgIH0gYXMgYW55KSk7XG4gICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVTaWRlQmFyKHRydWUpO1xuICAgICAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlU2lkZUJhclZpZXcoZmFsc2UpO1xuICAgICAgICB0aGlzLmhpZ2hsaWdodFNlcnZpY2UucmVzZXRIaWdobGlnaHQoKTtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGVzID0gdW5kZWZpbmVkO1xuXG4gICAgICB9KTtcbiAgfVxuXG4gIHNhdmVBbm5vdGF0aW9uKHsgcmVjdGFuZ2xlcywgcGFnZSB9OiB7IHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdLCBwYWdlOiBhbnkgfSkge1xuICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5zYXZlQW5ub3RhdGlvbihyZWN0YW5nbGVzLCBwYWdlKTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnZUNvbnRhaW5lclwiPlxuICA8ZGl2ICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlczsgIGluZGV4IGFzIGlcIlxuICAgICAgIGNsYXNzPVwicGFnZUNvbnRhaW5lcl9fcGFnZVwiXG4gICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICd3aWR0aC5weCc6IHBhZ2Uuc3R5bGVzLndpZHRoLFxuICAgICAgICdoZWlnaHQucHgnOiBwYWdlLnN0eWxlcy5oZWlnaHRcbiAgICAgICB9XCJcbiAgICAgICBbbmdDbGFzc109XCJ7ICdwYWdlQ29udGFpbmVyX19wYWdlLS1kcmF3JyA6IGRyYXdNb2RlIH1cIj5cbiAgICA8bXYtYm94LWhpZ2hsaWdodC1jcmVhdGVcbiAgICAgIFtwYWdlXT1cImkgKyAxXCJcbiAgICAgIFtwYWdlSGVpZ2h0XT1cInBhZ2Uuc3R5bGVzLmhlaWdodFwiXG4gICAgICBbcGFnZVdpZHRoXT1cInBhZ2Uuc3R5bGVzLndpZHRoXCJcbiAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgIFt6b29tXT1cInpvb21cIlxuICAgICAgKHNhdmVTZWxlY3Rpb24pPVwic2F2ZUFubm90YXRpb24oJGV2ZW50KVwiPlxuICAgIDwvbXYtYm94LWhpZ2hsaWdodC1jcmVhdGU+XG4gICAgPG12LWN0eC10b29sYmFyICpuZ0lmPVwicmVjdGFuZ2xlcyAmJiBoaWdobGlnaHRQYWdlID09PSAoaSArIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlY3RhbmdsZXNdPVwicmVjdGFuZ2xlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtjYW5Cb29rbWFya109XCJ0cnVlXCIgW2NhbkhpZ2hsaWdodF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW3BhZ2VIZWlnaHRdPVwicGFnZS5zdHlsZXMuaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgW3BhZ2VXaWR0aF09XCJwYWdlLnN0eWxlcy53aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgIChjcmVhdGVCb29rbWFya0V2ZW50KT1cImNyZWF0ZUJvb2ttYXJrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoY3JlYXRlSGlnaGxpZ2h0RXZlbnQpPVwiY3JlYXRlSGlnaGxpZ2h0KClcIj5cbiAgICA8L212LWN0eC10b29sYmFyPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdlQ29udGFpbmVyX19wYWdlLWl0ZW1cIj5cbiAgICAgIDxtdi1hbm5vdGF0aW9uLXNldCAqbmdJZj1cIihhbm5vUGFnZXMkIHwgYXN5bmMpIGFzIGFubm9QYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlSGVpZ2h0XT1cInBhZ2Uuc3R5bGVzLmhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VXaWR0aF09XCJwYWdlLnN0eWxlcy53aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VdPVwiaVwiIFthbm5vdGF0aW9uc109XCJhbm5vUGFnZXNbaSArIDFdXCI+PC9tdi1hbm5vdGF0aW9uLXNldD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==