@hmcts/media-viewer 4.0.2 → 4.0.4

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 (225) hide show
  1. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
  2. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
  3. package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +5 -5
  4. package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
  5. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
  6. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
  7. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
  8. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +86 -0
  9. package/{esm2020 → esm2022}/lib/annotations/annotations.module.mjs +61 -61
  10. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +177 -0
  11. package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
  12. package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
  13. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +5 -5
  14. package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
  15. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +5 -5
  16. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +54 -0
  17. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
  18. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
  19. package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +123 -0
  20. package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +120 -0
  21. package/{esm2020 → esm2022}/lib/annotations/pipes/date/date.pipe.mjs +4 -4
  22. package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
  23. package/{esm2020 → esm2022}/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/annotations/services/annotation-api/annotation-api.service.mjs +5 -5
  25. package/{esm2020 → esm2022}/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +5 -5
  26. package/{esm2020 → esm2022}/lib/annotations/services/tags/tags.services.mjs +5 -5
  27. package/esm2022/lib/annotations/tags/tags.component.mjs +53 -0
  28. package/{esm2020 → esm2022}/lib/bookmark/components/bookmark-icons.component.mjs +5 -5
  29. package/{esm2020 → esm2022}/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +5 -5
  30. package/esm2022/lib/icp/icp-follower.service.mjs +60 -0
  31. package/esm2022/lib/icp/icp-presenter.service.mjs +55 -0
  32. package/{esm2020 → esm2022}/lib/icp/icp-session-api.service.mjs +5 -5
  33. package/esm2022/lib/icp/icp-update.service.mjs +65 -0
  34. package/esm2022/lib/icp/icp.service.mjs +95 -0
  35. package/{esm2020 → esm2022}/lib/icp/participants-list/participants-list.component.mjs +5 -5
  36. package/esm2022/lib/icp/socket.service.mjs +118 -0
  37. package/esm2022/lib/media-viewer.component.mjs +244 -0
  38. package/{esm2020 → esm2022}/lib/media-viewer.module.mjs +55 -55
  39. package/{esm2020 → esm2022}/lib/print.service.mjs +4 -4
  40. package/esm2022/lib/redaction/components/redaction.component.mjs +91 -0
  41. package/{esm2020 → esm2022}/lib/redaction/services/redaction-api.service.mjs +5 -5
  42. package/{esm2020 → esm2022}/lib/shared/gov-uk-date/gov-uk-date.component.mjs +4 -4
  43. package/{esm2020 → esm2022}/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +7 -7
  44. package/{esm2020 → esm2022}/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +6 -6
  45. package/{esm2020 → esm2022}/lib/shared/gov-uk-label/gov-uk-label.component.mjs +7 -7
  46. package/{esm2020 → esm2022}/lib/shared/shared.module.mjs +19 -19
  47. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +18 -0
  48. package/{esm2020 → esm2022}/lib/shared/util/services/number.helper.service.mjs +5 -5
  49. package/esm2022/lib/store/bookmarks-store-utils.mjs +49 -0
  50. package/esm2022/lib/store/effects/annotation.effects.mjs +51 -0
  51. package/esm2022/lib/store/effects/bookmarks.effects.mjs +44 -0
  52. package/{esm2020 → esm2022}/lib/store/effects/document.effects.mjs +5 -5
  53. package/{esm2020 → esm2022}/lib/store/effects/icp.effects.mjs +5 -5
  54. package/{esm2020 → esm2022}/lib/store/effects/redaction.effects.mjs +5 -5
  55. package/esm2022/lib/store/reducers/annotations.reducer.mjs +208 -0
  56. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +116 -0
  57. package/esm2022/lib/store/reducers/document.reducer.mjs +135 -0
  58. package/esm2022/lib/store/reducers/icp.reducer.mjs +56 -0
  59. package/esm2022/lib/store/reducers/redaction.reducer.mjs +116 -0
  60. package/esm2022/lib/store/reducers/tags.reducer.mjs +93 -0
  61. package/esm2022/lib/store/selectors/annotation.selectors.mjs +81 -0
  62. package/{esm2020 → esm2022}/lib/store/selectors/bookmark.selectors.mjs +1 -1
  63. package/{esm2020 → esm2022}/lib/store/selectors/redaction.selectors.mjs +1 -1
  64. package/esm2022/lib/store/store-utils.mjs +131 -0
  65. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +44 -0
  66. package/{esm2020 → esm2022}/lib/toolbar/icp-event.service.mjs +1 -1
  67. package/{esm2020 → esm2022}/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +5 -5
  68. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +189 -0
  69. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +236 -0
  70. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +68 -0
  71. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
  72. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  73. package/esm2022/lib/toolbar/toolbar-event.service.mjs +178 -0
  74. package/{esm2020 → esm2022}/lib/toolbar/toolbar.module.mjs +25 -25
  75. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
  76. package/{esm2020 → esm2022}/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +5 -5
  77. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +57 -0
  78. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  79. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
  80. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +210 -0
  81. package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +5 -5
  82. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +236 -0
  83. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +352 -0
  84. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  85. package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +78 -0
  86. package/{esm2020 → esm2022}/lib/viewers/rotation-persist/rotation-api.service.mjs +5 -5
  87. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
  88. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  89. package/{esm2020 → esm2022}/lib/viewers/viewer-event.service.mjs +5 -5
  90. package/{esm2020 → esm2022}/lib/viewers/viewer-util.service.mjs +5 -5
  91. package/{fesm2020 → fesm2022}/hmcts-media-viewer.mjs +445 -445
  92. package/fesm2022/hmcts-media-viewer.mjs.map +1 -0
  93. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +1 -1
  94. package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -1
  95. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +1 -1
  96. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +1 -1
  97. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +1 -1
  98. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -1
  99. package/lib/annotations/comment-set/comment/comment.component.d.ts +1 -1
  100. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -1
  101. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -1
  102. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -1
  103. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -1
  104. package/lib/annotations/comment-set/comment-set.component.d.ts +1 -1
  105. package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
  106. package/lib/annotations/tags/tags.component.d.ts +1 -1
  107. package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -1
  108. package/lib/icp/socket.service.d.ts +6 -6
  109. package/lib/icp/socket.service.d.ts.map +1 -1
  110. package/lib/media-viewer.component.d.ts +1 -2
  111. package/lib/media-viewer.component.d.ts.map +1 -1
  112. package/lib/redaction/components/redaction.component.d.ts +1 -1
  113. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +1 -1
  114. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
  115. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
  116. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +1 -1
  117. package/lib/store/bookmarks-store-utils.d.ts.map +1 -1
  118. package/lib/toolbar/icp-event.service.d.ts +4 -4
  119. package/lib/toolbar/icp-event.service.d.ts.map +1 -1
  120. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -1
  121. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +1 -1
  122. package/lib/toolbar/toolbar-event.service.d.ts +6 -6
  123. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  124. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -1
  125. package/lib/viewers/grab-n-drag.directive.d.ts +1 -1
  126. package/lib/viewers/image-viewer/image-viewer.component.d.ts +1 -1
  127. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -1
  128. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -1
  129. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -1
  130. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +1 -1
  131. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +1 -1
  132. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +1 -1
  133. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -1
  134. package/lib/viewers/viewer-event.service.d.ts +1 -1
  135. package/lib/viewers/viewer-event.service.d.ts.map +1 -1
  136. package/package.json +16 -23
  137. package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -116
  138. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -109
  139. package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
  140. package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
  141. package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
  142. package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -118
  143. package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
  144. package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +0 -177
  145. package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
  146. package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
  147. package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
  148. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
  149. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -68
  150. package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +0 -54
  151. package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +0 -123
  152. package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
  153. package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
  154. package/esm2020/lib/annotations/tags/tags.component.mjs +0 -53
  155. package/esm2020/lib/icp/icp-follower.service.mjs +0 -60
  156. package/esm2020/lib/icp/icp-presenter.service.mjs +0 -55
  157. package/esm2020/lib/icp/icp-update.service.mjs +0 -65
  158. package/esm2020/lib/icp/icp.service.mjs +0 -95
  159. package/esm2020/lib/icp/socket.service.mjs +0 -118
  160. package/esm2020/lib/media-viewer.component.mjs +0 -245
  161. package/esm2020/lib/redaction/components/redaction.component.mjs +0 -91
  162. package/esm2020/lib/shared/util/helpers/html-templates.helper.mjs +0 -18
  163. package/esm2020/lib/store/bookmarks-store-utils.mjs +0 -49
  164. package/esm2020/lib/store/effects/annotation.effects.mjs +0 -51
  165. package/esm2020/lib/store/effects/bookmarks.effects.mjs +0 -44
  166. package/esm2020/lib/store/reducers/annotations.reducer.mjs +0 -208
  167. package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +0 -116
  168. package/esm2020/lib/store/reducers/document.reducer.mjs +0 -135
  169. package/esm2020/lib/store/reducers/icp.reducer.mjs +0 -56
  170. package/esm2020/lib/store/reducers/redaction.reducer.mjs +0 -116
  171. package/esm2020/lib/store/reducers/tags.reducer.mjs +0 -93
  172. package/esm2020/lib/store/selectors/annotation.selectors.mjs +0 -81
  173. package/esm2020/lib/store/store-utils.mjs +0 -131
  174. package/esm2020/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -44
  175. package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -189
  176. package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -236
  177. package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -68
  178. package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
  179. package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
  180. package/esm2020/lib/toolbar/toolbar-event.service.mjs +0 -178
  181. package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
  182. package/esm2020/lib/viewers/grab-n-drag.directive.mjs +0 -57
  183. package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
  184. package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
  185. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -209
  186. package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -236
  187. package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -352
  188. package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
  189. package/esm2020/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +0 -78
  190. package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
  191. package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
  192. package/fesm2015/hmcts-media-viewer.mjs +0 -6953
  193. package/fesm2015/hmcts-media-viewer.mjs.map +0 -1
  194. package/fesm2020/hmcts-media-viewer.mjs.map +0 -1
  195. /package/{esm2020 → esm2022}/hmcts-media-viewer.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-set.model.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/comment.model.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/annotations/models/api-persisted.model.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/annotations/models/event-select.model.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/annotations/models/tags.model.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/annotations/models/user.model.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/icp/icp.events.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/icp/icp.interfaces.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/redaction/services/redaction.model.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/store/actions/annotation.actions.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/store/actions/bookmark.actions.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/store/actions/document.actions.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/store/actions/icp.actions.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/store/actions/redaction.actions.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/store/actions/tag.actions.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/store/effects/index.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/store/models/bookmarks.interface.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/store/models/filters.interface.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/store/reducers/reducers.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/store/selectors/document.selectors.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/store/selectors/icp.selectors.mjs +0 -0
  219. /package/{esm2020 → esm2022}/lib/store/selectors/tag.selectors.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -0
  223. /package/{esm2020 → esm2022}/lib/viewers/rotation-persist/rotation.model.mjs +0 -0
  224. /package/{esm2020 → esm2022}/lib/viewers/viewer-exception.model.mjs +0 -0
  225. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,91 +0,0 @@
1
- import { Component, Input, ViewEncapsulation } from '@angular/core';
2
- import * as fromActions from '../../../store/actions/annotation.actions';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngrx/store";
5
- import * as i2 from "../../../toolbar/toolbar-event.service";
6
- import * as i3 from "@angular/router";
7
- export class CommentsNavigateComponent {
8
- constructor(store, toolbarEvents) {
9
- this.store = store;
10
- this.toolbarEvents = toolbarEvents;
11
- this.autoSelect = false;
12
- this.navigationList = [];
13
- this.index = 0;
14
- }
15
- ngOnChanges(changes) {
16
- if (changes.annotationList) {
17
- this.initNavigationList();
18
- }
19
- }
20
- initNavigationList() {
21
- this.index = 0;
22
- this.navigationList = [...this.annotationList || []]
23
- .map(annotation => ({
24
- content: annotation.comments[0].content,
25
- annotationId: annotation.id,
26
- page: annotation.page,
27
- rectangle: this.upperRectangle(annotation.rectangles),
28
- }))
29
- .sort(this.sortComments);
30
- if (this.autoSelect) {
31
- this.toolbarEvents.setPage(Number.parseInt(this.navigationList[0].page, 0));
32
- this.store.dispatch(new fromActions.SelectedAnnotation({
33
- annotationId: this.navigationList[0].annotationId,
34
- editable: false,
35
- selected: true
36
- }));
37
- }
38
- }
39
- sortComments(mappedCommentA, mappedCommentB) {
40
- if (mappedCommentA.page !== mappedCommentB.page) {
41
- return mappedCommentA.page - mappedCommentB.page;
42
- }
43
- else {
44
- const rectA = mappedCommentA.rectangle;
45
- const rectB = mappedCommentB.rectangle;
46
- if (rectA.y !== rectB.y) {
47
- return rectA.y - rectB.y;
48
- }
49
- else {
50
- return rectA.x - rectB.x;
51
- }
52
- }
53
- }
54
- nextItem() {
55
- this.index += 1;
56
- if (this.index === this.annotationList.length) {
57
- this.index = 0;
58
- }
59
- this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));
60
- this.store.dispatch(new fromActions.SelectedAnnotation({
61
- annotationId: this.navigationList[this.index].annotationId, editable: false, selected: true
62
- }));
63
- }
64
- prevItem() {
65
- this.index -= 1;
66
- if (this.index < 0) {
67
- this.index = this.navigationList.length - 1;
68
- }
69
- this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));
70
- this.store.dispatch(new fromActions.SelectedAnnotation({
71
- annotationId: this.navigationList[this.index].annotationId,
72
- editable: false,
73
- selected: true
74
- }));
75
- }
76
- upperRectangle(rectangles) {
77
- [...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);
78
- return { x: rectangles[0].x, y: rectangles[0].y };
79
- }
80
- }
81
- /** @nocollapse */ CommentsNavigateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentsNavigateComponent, deps: [{ token: i1.Store }, { token: i2.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component });
82
- /** @nocollapse */ CommentsNavigateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentsNavigateComponent, selector: "mv-comments-navigate", inputs: { annotationList: "annotationList", autoSelect: "autoSelect" }, usesOnChanges: true, ngImport: i0, template: "<p class=\"comment-search\">\n <span class=\"comment-search__item\">\n Showing {{ index + 1 }} of {{ navigationList.length }}\n </span>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Previous comment\"\n (click)=\"prevItem()\">Prev</a>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Next comment'\"\n (click)=\"nextItem()\">Next</a>\n</p>\n", dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None });
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentsNavigateComponent, decorators: [{
84
- type: Component,
85
- args: [{ selector: 'mv-comments-navigate', encapsulation: ViewEncapsulation.None, template: "<p class=\"comment-search\">\n <span class=\"comment-search__item\">\n Showing {{ index + 1 }} of {{ navigationList.length }}\n </span>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Previous comment\"\n (click)=\"prevItem()\">Prev</a>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Next comment'\"\n (click)=\"nextItem()\">Next</a>\n</p>\n" }]
86
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ToolbarEventService }]; }, propDecorators: { annotationList: [{
87
- type: Input
88
- }], autoSelect: [{
89
- type: Input
90
- }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMtbmF2aWdhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1uYXZpZ2F0ZS9jb21tZW50cy1uYXZpZ2F0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50LW5hdmlnYXRlL2NvbW1lbnRzLW5hdmlnYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs5RixPQUFPLEtBQUssV0FBVyxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQVF6RSxNQUFNLE9BQU8seUJBQXlCO0lBUXBDLFlBQW9CLEtBQTBDLEVBQWtCLGFBQWtDO1FBQTlGLFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQWtCLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUx6RyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRTVCLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLFVBQUssR0FBRyxDQUFDLENBQUM7SUFFMkcsQ0FBQztJQUV0SCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO2FBQ2pELEdBQUcsQ0FBQyxVQUFVLENBQUMs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QVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWTtZQUMxRCxRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQXVCO1FBQ3BDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwRCxDQUFDOzswSUFoRlUseUJBQXlCOzhIQUF6Qix5QkFBeUIseUpDYnRDLCtaQWFBOzRGREFhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUk7OEhBSXJCLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQge1N0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFjdGlvbnMgZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHtUb29sYmFyRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWNvbW1lbnRzLW5hdmlnYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnRzLW5hdmlnYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50c05hdmlnYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBwdWJsaWMgYW5ub3RhdGlvbkxpc3Q6IEFubm90YXRpb25bXTtcbiAgQElucHV0KCkgYXV0b1NlbGVjdCA9IGZhbHNlO1xuXG4gIG5hdmlnYXRpb25MaXN0OiBhbnlbXSA9IFtdO1xuICBpbmRleCA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5hbm5vdGF0aW9uTGlzdCkge1xuICAgICAgdGhpcy5pbml0TmF2aWdhdGlvbkxpc3QoKTtcbiAgICB9XG4gIH1cblxuICBpbml0TmF2aWdhdGlvbkxpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5pbmRleCA9IDA7XG4gICAgdGhpcy5uYXZpZ2F0aW9uTGlzdCA9IFsuLi50aGlzLmFubm90YXRpb25MaXN0IHx8IFtdXVxuICAgICAgLm1hcChhbm5vdGF0aW9uID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IGFubm90YXRpb24uY29tbWVudHNbMF0uY29udGVudCxcbiAgICAgICAgYW5ub3RhdGlvbklkOiBhbm5vdGF0aW9uLmlkLFxuICAgICAgICBwYWdlOiBhbm5vdGF0aW9uLnBhZ2UsXG4gICAgICAgIHJlY3RhbmdsZTogdGhpcy51cHBlclJlY3RhbmdsZShhbm5vdGF0aW9uLnJlY3RhbmdsZXMpLFxuICAgICAgfSkpXG4gICAgICAuc29ydCh0aGlzLnNvcnRDb21tZW50cyk7XG5cbiAgICBpZiAodGhpcy5hdXRvU2VsZWN0KSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0UGFnZShOdW1iZXIucGFyc2VJbnQodGhpcy5uYXZpZ2F0aW9uTGlzdFswXS5wYWdlLCAwKSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TZWxlY3RlZEFubm90YXRpb24oe1xuICAgICAgICBhbm5vdGF0aW9uSWQ6IHRoaXMubmF2aWdhdGlvbkxpc3RbMF0uYW5ub3RhdGlvbklkLFxuICAgICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICAgIHNlbGVjdGVkOiB0cnVlXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgc29ydENvbW1lbnRzKG1hcHBlZENvbW1lbnRBLCBtYXBwZWRDb21tZW50Qikge1xuICAgIGlmIChtYXBwZWRDb21tZW50QS5wYWdlICE9PSBtYXBwZWRDb21tZW50Qi5wYWdlKSB7XG4gICAgICByZXR1cm4gbWFwcGVkQ29tbWVudEEucGFnZSAtIG1hcHBlZENvbW1lbnRCLnBhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlY3RBID0gbWFwcGVkQ29tbWVudEEucmVjdGFuZ2xlO1xuICAgICAgY29uc3QgcmVjdEIgPSBtYXBwZWRDb21tZW50Qi5yZWN0YW5nbGU7XG4gICAgICBpZiAocmVjdEEueSAhPT0gcmVjdEIueSkge1xuICAgICAgICByZXR1cm4gcmVjdEEueSAtIHJlY3RCLnk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVjdEEueCAtIHJlY3RCLng7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmV4dEl0ZW0oKSB7XG4gICAgdGhpcy5pbmRleCArPSAxO1xuICAgIGlmICh0aGlzLmluZGV4ID09PSB0aGlzLmFubm90YXRpb25MaXN0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNldFBhZ2UoTnVtYmVyLnBhcnNlSW50KHRoaXMubmF2aWdhdGlvbkxpc3RbdGhpcy5pbmRleF0ucGFnZSwgMCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21BY3Rpb25zLlNlbGVjdGVkQW5ub3RhdGlvbih7XG4gICAgICBhbm5vdGF0aW9uSWQ6IHRoaXMubmF2aWdhdGlvbkxpc3RbdGhpcy5pbmRleF0uYW5ub3RhdGlvbklkLCBlZGl0YWJsZTogZmFsc2UsIHNlbGVjdGVkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cblxuICBwcmV2SXRlbSgpIHtcbiAgICB0aGlzLmluZGV4IC09IDE7XG4gICAgaWYgKHRoaXMuaW5kZXggPCAwKSB7XG4gICAgICB0aGlzLmluZGV4ID0gdGhpcy5uYXZpZ2F0aW9uTGlzdC5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0UGFnZShOdW1iZXIucGFyc2VJbnQodGhpcy5uYXZpZ2F0aW9uTGlzdFt0aGlzLmluZGV4XS5wYWdlLCAwKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHtcbiAgICAgIGFubm90YXRpb25JZDogdGhpcy5uYXZpZ2F0aW9uTGlzdFt0aGlzLmluZGV4XS5hbm5vdGF0aW9uSWQsXG4gICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICBzZWxlY3RlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHVwcGVyUmVjdGFuZ2xlKHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKSB7XG4gICAgWy4uLnJlY3RhbmdsZXNdLnNvcnQoKHJlY3QxLCByZWN0MikgPT4gcmVjdDEueSAtIHJlY3QyLnkpO1xuICAgIHJldHVybiB7IHg6IHJlY3RhbmdsZXNbMF0ueCwgeTogcmVjdGFuZ2xlc1swXS55IH07XG4gIH1cbn1cbiIsIjxwIGNsYXNzPVwiY29tbWVudC1zZWFyY2hcIj5cbiAgPHNwYW4gY2xhc3M9XCJjb21tZW50LXNlYXJjaF9faXRlbVwiPlxuICAgIFNob3dpbmcge3sgaW5kZXggKyAxIH19IG9mIHt7IG5hdmlnYXRpb25MaXN0Lmxlbmd0aCB9fVxuICA8L3NwYW4+XG4gIDxhIFtyb3V0ZXJMaW5rXT1cIltdXCJcbiAgICAgY2xhc3M9XCJjb21tZW50LXNlYXJjaF9faXRlbVwiXG4gICAgIHRpdGxlPVwiUHJldmlvdXMgY29tbWVudFwiXG4gICAgIChjbGljayk9XCJwcmV2SXRlbSgpXCI+UHJldjwvYT5cbiAgPGEgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICBjbGFzcz1cImNvbW1lbnQtc2VhcmNoX19pdGVtXCJcbiAgICAgdGl0bGU9XCJOZXh0IGNvbW1lbnQnXCJcbiAgICAgKGNsaWNrKT1cIm5leHRJdGVtKClcIj5OZXh0PC9hPlxuPC9wPlxuIl19
@@ -1,54 +0,0 @@
1
- import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import * as fromActions from '../../../../store/actions/annotation.actions';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngrx/store";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "../../comment-navigate/comments-navigate.component";
8
- import * as i5 from "rpx-xui-translation";
9
- export class CommentSearchComponent {
10
- constructor(store) {
11
- this.store = store;
12
- this.searchResults = [];
13
- this.searchIndex = 0;
14
- }
15
- ngAfterViewInit() {
16
- if (this.searchInput) {
17
- this.searchInput.nativeElement.focus();
18
- }
19
- }
20
- ngOnDestroy() {
21
- // TODO workaround for tab error
22
- setTimeout(() => { this.store.dispatch(new fromActions.SearchComment('')); }, 250);
23
- }
24
- searchComments(searchText) {
25
- this.clearSearch();
26
- if (searchText.length > 2) {
27
- this.searchString = searchText;
28
- this.searchResults = this.annotations
29
- .filter(annotation => annotation.comments.length > 0)
30
- .filter(annotation => annotation.comments[0].content.toLowerCase().includes(this.searchString.toLowerCase()));
31
- if (this.searchResults.length > 0) {
32
- this.store.dispatch(new fromActions.SearchComment(searchText));
33
- }
34
- }
35
- }
36
- clearSearch() {
37
- this.searchString = undefined;
38
- this.searchResults = [];
39
- this.searchIndex = 0;
40
- this.store.dispatch(new fromActions.SearchComment(''));
41
- }
42
- }
43
- /** @nocollapse */ CommentSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSearchComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
44
- /** @nocollapse */ CommentSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentSearchComponent, selector: "mv-comment-search", inputs: { annotations: "annotations" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<input\n #searchInput\n type=\"text\"\n class=\"govuk-input comment-search__item\"\n id=\"search-comments-input\"\n name=\"searchString\"\n aria-label=\"search comments input\"\n [ngModel]=\"searchString\"\n/>\n<button\n type=\"button\"\n [class.govuk-button--disabled]=\"searchInput?.value.length <= 2\"\n class=\"govuk-button comment-search__item\"\n (click)=\"searchComments(searchInput.value.trim())\"\n>\n {{ \"Search\" | rpxTranslate }}\n</button>\n<ng-container *ngIf=\"searchResults.length > 0\">\n <mv-comments-navigate [annotationList]=\"searchResults\"></mv-comments-navigate>\n</ng-container>\n<ng-container *ngIf=\"searchString && searchResults?.length === 0\">\n <p class=\"comment-search__item\">\n {{ \"No matches have been found\" | rpxTranslate }}\n </p>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.CommentsNavigateComponent, selector: "mv-comments-navigate", inputs: ["annotationList", "autoSelect"] }, { kind: "pipe", type: i5.RpxTranslatePipe, name: "rpxTranslate" }], encapsulation: i0.ViewEncapsulation.None });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSearchComponent, decorators: [{
46
- type: Component,
47
- args: [{ selector: 'mv-comment-search', encapsulation: ViewEncapsulation.None, template: "<input\n #searchInput\n type=\"text\"\n class=\"govuk-input comment-search__item\"\n id=\"search-comments-input\"\n name=\"searchString\"\n aria-label=\"search comments input\"\n [ngModel]=\"searchString\"\n/>\n<button\n type=\"button\"\n [class.govuk-button--disabled]=\"searchInput?.value.length <= 2\"\n class=\"govuk-button comment-search__item\"\n (click)=\"searchComments(searchInput.value.trim())\"\n>\n {{ \"Search\" | rpxTranslate }}\n</button>\n<ng-container *ngIf=\"searchResults.length > 0\">\n <mv-comments-navigate [annotationList]=\"searchResults\"></mv-comments-navigate>\n</ng-container>\n<ng-container *ngIf=\"searchString && searchResults?.length === 0\">\n <p class=\"comment-search__item\">\n {{ \"No matches have been found\" | rpxTranslate }}\n </p>\n</ng-container>\n" }]
48
- }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { annotations: [{
49
- type: Input
50
- }], searchInput: [{
51
- type: ViewChild,
52
- args: ['searchInput', { static: false }]
53
- }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1zZXQtaGVhZGVyL2NvbW1lbnQtc2VhcmNoL2NvbW1lbnQtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2NvbW1lbnQtc2V0L2NvbW1lbnQtc2V0LWhlYWRlci9jb21tZW50LXNlYXJjaC9jb21tZW50LXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQWEsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJILE9BQU8sS0FBSyxXQUFXLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7QUFPNUUsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUFvQixLQUEwQztRQUExQyxVQUFLLEdBQUwsS0FBSyxDQUFxQztRQUg5RCxrQkFBYSxHQUFpQixFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7SUFFaUQsQ0FBQztJQUVsRSxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxnQ0FBZ0M7UUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBa0I7UUFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVztpQkFDbEMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUNwRCxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDbkIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVGLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNoRTtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDOzt1SUExQ1Usc0JBQXNCOzJIQUF0QixzQkFBc0IsNk1DWG5DLDJ5QkF5QkE7NEZEZGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQixpQkFFZCxpQkFBaUIsQ0FBQyxJQUFJOzRGQUlaLFdBQVc7c0JBQW5DLEtBQUs7Z0JBRXFDLFdBQVc7c0JBQXJELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9hbm5vdGF0aW9uLm1vZGVsJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21BY3Rpb25zIGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtY29tbWVudC1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSBhbm5vdGF0aW9uczogQW5ub3RhdGlvbltdO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0Jywge3N0YXRpYzogZmFsc2V9KSBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBzZWFyY2hTdHJpbmc6IHN0cmluZztcbiAgc2VhcmNoUmVzdWx0czogQW5ub3RhdGlvbltdID0gW107XG4gIHNlYXJjaEluZGV4ID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlPikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIFRPRE8gd29ya2Fyb3VuZCBmb3IgdGFiIGVycm9yXG4gICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2VhcmNoQ29tbWVudCgnJykpOyB9LCAyNTApO1xuICB9XG5cbiAgc2VhcmNoQ29tbWVudHMoc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclNlYXJjaCgpO1xuICAgIGlmIChzZWFyY2hUZXh0Lmxlbmd0aCA+IDIpIHtcbiAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gc2VhcmNoVGV4dDtcbiAgICAgIHRoaXMuc2VhcmNoUmVzdWx0cyA9IHRoaXMuYW5ub3RhdGlvbnNcbiAgICAgICAgLmZpbHRlcihhbm5vdGF0aW9uID0+IGFubm90YXRpb24uY29tbWVudHMubGVuZ3RoID4gMClcbiAgICAgICAgLmZpbHRlcihhbm5vdGF0aW9uID0+XG4gICAgICAgICAgYW5ub3RhdGlvbi5jb21tZW50c1swXS5jb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hTdHJpbmcudG9Mb3dlckNhc2UoKSkpO1xuICAgICAgaWYgKHRoaXMuc2VhcmNoUmVzdWx0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21BY3Rpb25zLlNlYXJjaENvbW1lbnQoc2VhcmNoVGV4dCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VhcmNoUmVzdWx0cyA9IFtdO1xuICAgIHRoaXMuc2VhcmNoSW5kZXggPSAwO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21BY3Rpb25zLlNlYXJjaENvbW1lbnQoJycpKTtcbiAgfVxufVxuIiwiPGlucHV0XG4gICNzZWFyY2hJbnB1dFxuICB0eXBlPVwidGV4dFwiXG4gIGNsYXNzPVwiZ292dWstaW5wdXQgY29tbWVudC1zZWFyY2hfX2l0ZW1cIlxuICBpZD1cInNlYXJjaC1jb21tZW50cy1pbnB1dFwiXG4gIG5hbWU9XCJzZWFyY2hTdHJpbmdcIlxuICBhcmlhLWxhYmVsPVwic2VhcmNoIGNvbW1lbnRzIGlucHV0XCJcbiAgW25nTW9kZWxdPVwic2VhcmNoU3RyaW5nXCJcbi8+XG48YnV0dG9uXG4gIHR5cGU9XCJidXR0b25cIlxuICBbY2xhc3MuZ292dWstYnV0dG9uLS1kaXNhYmxlZF09XCJzZWFyY2hJbnB1dD8udmFsdWUubGVuZ3RoIDw9IDJcIlxuICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBjb21tZW50LXNlYXJjaF9faXRlbVwiXG4gIChjbGljayk9XCJzZWFyY2hDb21tZW50cyhzZWFyY2hJbnB1dC52YWx1ZS50cmltKCkpXCJcbj5cbiAge3sgXCJTZWFyY2hcIiB8IHJweFRyYW5zbGF0ZSB9fVxuPC9idXR0b24+XG48bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoUmVzdWx0cy5sZW5ndGggPiAwXCI+XG4gIDxtdi1jb21tZW50cy1uYXZpZ2F0ZSBbYW5ub3RhdGlvbkxpc3RdPVwic2VhcmNoUmVzdWx0c1wiPjwvbXYtY29tbWVudHMtbmF2aWdhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hTdHJpbmcgJiYgc2VhcmNoUmVzdWx0cz8ubGVuZ3RoID09PSAwXCI+XG4gIDxwIGNsYXNzPVwiY29tbWVudC1zZWFyY2hfX2l0ZW1cIj5cbiAgICB7eyBcIk5vIG1hdGNoZXMgaGF2ZSBiZWVuIGZvdW5kXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgPC9wPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,68 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
- import { select } from '@ngrx/store';
3
- import * as fromTagSelectors from '../../../store/selectors/tag.selectors';
4
- import * as fromAnnoSelector from '../../../store/selectors/annotation.selectors';
5
- import { combineLatest } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ngrx/store";
8
- import * as i2 from "../comment/comment.service";
9
- import * as i3 from "../../../toolbar/toolbar-event.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/router";
12
- import * as i6 from "./comment-search/comment-search.component";
13
- import * as i7 from "../comment-navigate/comments-navigate.component";
14
- import * as i8 from "./comment-filter/comment-filter.component";
15
- export class CommentSetHeaderComponent {
16
- constructor(store, commentService, toolbarEvents) {
17
- this.store = store;
18
- this.commentService = commentService;
19
- this.toolbarEvents = toolbarEvents;
20
- this.showCommentSummaryDialog = new EventEmitter();
21
- this.tabs = [];
22
- this.tabSelected = '';
23
- }
24
- ngOnInit() {
25
- const tagFilter$ = this.store.pipe(select(fromTagSelectors.getTagFilters));
26
- const filteredAnnotation$ = this.store.pipe(select(fromAnnoSelector.getFilteredAnnotations));
27
- this.$subscriptions = combineLatest([tagFilter$, filteredAnnotation$]).subscribe(([formData, filteredAnno]) => {
28
- this.navigationList = filteredAnno;
29
- this.tabs = this.navigationList.length > 0 ?
30
- [{ label: 'comments' }, { label: 'filter' }, { label: 'search' }] : [{ label: 'comments' }];
31
- this.isFiltered = !formData.length;
32
- this.tabs = [...this.tabs].map((tab) => {
33
- return !this.isFiltered && tab.label === 'filter' ? { ...tab, isFiltered: true } : { ...tab, isFiltered: false };
34
- });
35
- });
36
- }
37
- toggleCommentsSummary() {
38
- this.showCommentSummaryDialog.emit();
39
- }
40
- selectTab(tab) {
41
- this.tabSelected = tab !== this.tabSelected ? tab : undefined;
42
- if (this.tabSelected) {
43
- this.marginToComment = true;
44
- this.commentService.createMarginToCommentEvent(this.marginToComment);
45
- }
46
- else {
47
- this.marginToComment = false;
48
- this.commentService.createMarginToCommentEvent(this.marginToComment);
49
- }
50
- }
51
- toggleCommentsPanel() {
52
- this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());
53
- }
54
- ngOnDestroy() {
55
- this.$subscriptions.unsubscribe();
56
- }
57
- }
58
- /** @nocollapse */ CommentSetHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSetHeaderComponent, deps: [{ token: i1.Store }, { token: i2.CommentService }, { token: i3.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component });
59
- /** @nocollapse */ CommentSetHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentSetHeaderComponent, selector: "mv-comment-set-header", inputs: { showCommentSummary: "showCommentSummary" }, outputs: { showCommentSummaryDialog: "showCommentSummaryDialog" }, ngImport: i0, template: "<div class=\"govuk-tabs commentSummaryHeader\" [ngClass]=\"{'icp-mode': toolbarEvents.icp.enabled | async}\" data-module=\"govuk-tabs\">\n <ul class=\"govuk-tabs__list\">\n <li *ngFor=\"let tab of tabs; let i = index\" class=\"govuk-tabs__list-item govuk-tabs__list-item\"\n [ngClass]=\"{'govuk-tabs__list-item--selected': tabSelected === tab.label}\">\n <a id=\"commentSubPane{{ i }}\" (click)=\"selectTab(tab.label)\" [routerLink]=\"[]\" [ngClass]=\"{'govuk-tabs__list-item--filtered': tab.isFiltered}\"\n class=\"govuk-tabs__tab\">\n {{ tab.label | titlecase }}\n </a>\n </li>\n <li>\n <button id=\"mvCloseBtn\" #mvCloseBtn class=\"mv-button commentSummaryHeader-button--close\"\n title=\"Close Comments\" (click)=\"toggleCommentsPanel()\">\n </button>\n </li>\n </ul>\n <div class=\"govuk-tabs__panel\" [hidden]=\"!tabSelected\">\n <ng-container *ngIf=\"tabSelected === 'comments'\">\n <div style=\"width: 100%\">\n <div class=\"hmcts-banner\" *ngIf=\"navigationList?.length === 0\">\n <svg alt=\"\" class=\"hmcts-banner__icon\" fill=\"currentColor\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\nC13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">information</span>\n Select text to add a comment or highlight.\n </div>\n </div>\n <button type=\"button\" class=\"govuk-button\"\n id=\"commentSummary\" tabindex=\"0\"\n data-l10n-id=\"commentSummary\"\n title=\"Open collate summary\"\n (click)=\"toggleCommentsSummary()\">Collate comments</button>\n </div>\n <ng-container *ngIf=\"navigationList?.length > 0\">\n <mv-comments-navigate\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </ng-container>\n <p class=\"aui-comment__private-text\">\n <span class=\"aui-comment__private\">private</span>\n All comments can only be seen by you\n </p>\n </ng-container>\n <div [hidden]=\"tabSelected !== 'filter'\">\n <div class=\"govuk-tabs__panel--container\">\n <mv-comment-filter></mv-comment-filter>\n <mv-comments-navigate\n *ngIf=\"navigationList?.length > 0\"\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </div>\n </div>\n\n <div [hidden]=\"tabSelected !== 'search'\">\n <mv-comment-search [annotations]=\"navigationList\"></mv-comment-search>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.CommentSearchComponent, selector: "mv-comment-search", inputs: ["annotations"] }, { kind: "component", type: i7.CommentsNavigateComponent, selector: "mv-comments-navigate", inputs: ["annotationList", "autoSelect"] }, { kind: "component", type: i8.CommentFilterComponent, selector: "mv-comment-filter" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }], encapsulation: i0.ViewEncapsulation.None });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSetHeaderComponent, decorators: [{
61
- type: Component,
62
- args: [{ selector: 'mv-comment-set-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"govuk-tabs commentSummaryHeader\" [ngClass]=\"{'icp-mode': toolbarEvents.icp.enabled | async}\" data-module=\"govuk-tabs\">\n <ul class=\"govuk-tabs__list\">\n <li *ngFor=\"let tab of tabs; let i = index\" class=\"govuk-tabs__list-item govuk-tabs__list-item\"\n [ngClass]=\"{'govuk-tabs__list-item--selected': tabSelected === tab.label}\">\n <a id=\"commentSubPane{{ i }}\" (click)=\"selectTab(tab.label)\" [routerLink]=\"[]\" [ngClass]=\"{'govuk-tabs__list-item--filtered': tab.isFiltered}\"\n class=\"govuk-tabs__tab\">\n {{ tab.label | titlecase }}\n </a>\n </li>\n <li>\n <button id=\"mvCloseBtn\" #mvCloseBtn class=\"mv-button commentSummaryHeader-button--close\"\n title=\"Close Comments\" (click)=\"toggleCommentsPanel()\">\n </button>\n </li>\n </ul>\n <div class=\"govuk-tabs__panel\" [hidden]=\"!tabSelected\">\n <ng-container *ngIf=\"tabSelected === 'comments'\">\n <div style=\"width: 100%\">\n <div class=\"hmcts-banner\" *ngIf=\"navigationList?.length === 0\">\n <svg alt=\"\" class=\"hmcts-banner__icon\" fill=\"currentColor\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\nC13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">information</span>\n Select text to add a comment or highlight.\n </div>\n </div>\n <button type=\"button\" class=\"govuk-button\"\n id=\"commentSummary\" tabindex=\"0\"\n data-l10n-id=\"commentSummary\"\n title=\"Open collate summary\"\n (click)=\"toggleCommentsSummary()\">Collate comments</button>\n </div>\n <ng-container *ngIf=\"navigationList?.length > 0\">\n <mv-comments-navigate\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </ng-container>\n <p class=\"aui-comment__private-text\">\n <span class=\"aui-comment__private\">private</span>\n All comments can only be seen by you\n </p>\n </ng-container>\n <div [hidden]=\"tabSelected !== 'filter'\">\n <div class=\"govuk-tabs__panel--container\">\n <mv-comment-filter></mv-comment-filter>\n <mv-comments-navigate\n *ngIf=\"navigationList?.length > 0\"\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </div>\n </div>\n\n <div [hidden]=\"tabSelected !== 'search'\">\n <mv-comment-search [annotations]=\"navigationList\"></mv-comment-search>\n </div>\n </div>\n</div>\n" }]
63
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.CommentService }, { type: i3.ToolbarEventService }]; }, propDecorators: { showCommentSummary: [{
64
- type: Input
65
- }], showCommentSummaryDialog: [{
66
- type: Output
67
- }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZXQtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2NvbW1lbnQtc2V0L2NvbW1lbnQtc2V0LWhlYWRlci9jb21tZW50LXNldC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1zZXQtaGVhZGVyL2NvbW1lbnQtc2V0LWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RyxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sK0NBQStDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLHlCQUF5QjtJQVlwQyxZQUFvQixLQUE2QixFQUM3QixjQUE4QixFQUMvQixhQUFrQztRQUZqQyxVQUFLLEdBQUwsS0FBSyxDQUF3QjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBWDNCLDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHeEUsU0FBSSxHQUE0QyxFQUFFLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFPdUMsQ0FBQztJQUV6RCxRQUFRO1FBQ04sTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBRTdGLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQzVHLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLENBQUMsRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLEVBQUUsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLEVBQUUsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQztZQUMvRyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUN0RTthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OzBJQXBEVSx5QkFBeUI7OEhBQXpCLHlCQUF5QixzTENmdEMsKzBGQTBEQTs0RkQzQ2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QixpQkFFbEIsaUJBQWlCLENBQUMsSUFBSTsySkFJckIsa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNvQix3QkFBd0I7c0JBQWpELE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L2Fubm90YXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tVGFnU2VsZWN0b3JzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy90YWcuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vU2VsZWN0b3IgZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Fubm90YXRpb24uc2VsZWN0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbWVudC9jb21tZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1jb21tZW50LXNldC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC1zZXQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudFNldEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hvd0NvbW1lbnRTdW1tYXJ5OiBib29sZWFuO1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHNob3dDb21tZW50U3VtbWFyeURpYWxvZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBtYXJnaW5Ub0NvbW1lbnQ6IGJvb2xlYW47XG4gIHRhYnM6IHtpc0ZpbHRlcmVkPzogYm9vbGVhbjsgbGFiZWw6IHN0cmluZ31bXSA9IFtdO1xuICB0YWJTZWxlY3RlZCA9ICcnO1xuICBpc0ZpbHRlcmVkOiBib29sZWFuO1xuICBuYXZpZ2F0aW9uTGlzdDogQW5ub3RhdGlvbltdO1xuICAkc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5TdGF0ZT4sXG4gICAgICAgICAgICAgIHByaXZhdGUgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwdWJsaWMgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB0YWdGaWx0ZXIkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tVGFnU2VsZWN0b3JzLmdldFRhZ0ZpbHRlcnMpKTtcbiAgICBjb25zdCBmaWx0ZXJlZEFubm90YXRpb24kID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tQW5ub1NlbGVjdG9yLmdldEZpbHRlcmVkQW5ub3RhdGlvbnMpKTtcblxuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMgPSBjb21iaW5lTGF0ZXN0KFt0YWdGaWx0ZXIkLCBmaWx0ZXJlZEFubm90YXRpb24kXSkuc3Vic2NyaWJlKChbZm9ybURhdGEsIGZpbHRlcmVkQW5ub10pID0+IHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbkxpc3QgPSBmaWx0ZXJlZEFubm87XG4gICAgICB0aGlzLnRhYnMgPSB0aGlzLm5hdmlnYXRpb25MaXN0Lmxlbmd0aCA+IDAgP1xuICAgICAgICBbe2xhYmVsOiAnY29tbWVudHMnfSwge2xhYmVsOiAnZmlsdGVyJ30sIHtsYWJlbDogJ3NlYXJjaCd9XSA6IFt7bGFiZWw6ICdjb21tZW50cyd9XTtcbiAgICAgIHRoaXMuaXNGaWx0ZXJlZCA9ICFmb3JtRGF0YS5sZW5ndGg7XG4gICAgICB0aGlzLnRhYnMgPSBbLi4udGhpcy50YWJzXS5tYXAoKHRhYikgPT4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNGaWx0ZXJlZCAmJiB0YWIubGFiZWwgPT09ICdmaWx0ZXInID8gey4uLnRhYiwgaXNGaWx0ZXJlZDogdHJ1ZX0gOiB7Li4udGFiLCBpc0ZpbHRlcmVkOiBmYWxzZX07XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDb21tZW50c1N1bW1hcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q29tbWVudFN1bW1hcnlEaWFsb2cuZW1pdCgpO1xuICB9XG5cbiAgc2VsZWN0VGFiKHRhYjogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJTZWxlY3RlZCA9IHRhYiAhPT0gdGhpcy50YWJTZWxlY3RlZCA/IHRhYiA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy50YWJTZWxlY3RlZCkge1xuICAgICAgdGhpcy5tYXJnaW5Ub0NvbW1lbnQgPSB0cnVlO1xuICAgICAgdGhpcy5jb21tZW50U2VydmljZS5jcmVhdGVNYXJnaW5Ub0NvbW1lbnRFdmVudCh0aGlzLm1hcmdpblRvQ29tbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFyZ2luVG9Db21tZW50ID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLmNyZWF0ZU1hcmdpblRvQ29tbWVudEV2ZW50KHRoaXMubWFyZ2luVG9Db21tZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ29tbWVudHNQYW5lbCgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlQ29tbWVudHNQYW5lbCghdGhpcy50b29sYmFyRXZlbnRzLmNvbW1lbnRzUGFuZWxWaXNpYmxlLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstdGFicyBjb21tZW50U3VtbWFyeUhlYWRlclwiIFtuZ0NsYXNzXT1cInsnaWNwLW1vZGUnOiB0b29sYmFyRXZlbnRzLmljcC5lbmFibGVkIHwgYXN5bmN9XCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay10YWJzXCI+XG4gIDx1bCBjbGFzcz1cImdvdnVrLXRhYnNfX2xpc3RcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJnb3Z1ay10YWJzX19saXN0LWl0ZW0gZ292dWstdGFic19fbGlzdC1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay10YWJzX19saXN0LWl0ZW0tLXNlbGVjdGVkJzogdGFiU2VsZWN0ZWQgPT09IHRhYi5sYWJlbH1cIj5cbiAgICAgIDxhIGlkPVwiY29tbWVudFN1YlBhbmV7eyBpIH19XCIgKGNsaWNrKT1cInNlbGVjdFRhYih0YWIubGFiZWwpXCIgW3JvdXRlckxpbmtdPVwiW11cIiBbbmdDbGFzc109XCJ7J2dvdnVrLXRhYnNfX2xpc3QtaXRlbS0tZmlsdGVyZWQnOiB0YWIuaXNGaWx0ZXJlZH1cIlxuICAgICAgICAgY2xhc3M9XCJnb3Z1ay10YWJzX190YWJcIj5cbiAgICAgICAge3sgdGFiLmxhYmVsIHwgdGl0bGVjYXNlIH19XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICA8YnV0dG9uIGlkPVwibXZDbG9zZUJ0blwiICNtdkNsb3NlQnRuIGNsYXNzPVwibXYtYnV0dG9uIGNvbW1lbnRTdW1tYXJ5SGVhZGVyLWJ1dHRvbi0tY2xvc2VcIlxuICAgICAgICB0aXRsZT1cIkNsb3NlIENvbW1lbnRzXCIgKGNsaWNrKT1cInRvZ2dsZUNvbW1lbnRzUGFuZWwoKVwiPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXRhYnNfX3BhbmVsXCIgW2hpZGRlbl09XCIhdGFiU2VsZWN0ZWRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiU2VsZWN0ZWQgPT09ICdjb21tZW50cydcIj5cbiAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG1jdHMtYmFubmVyXCIgKm5nSWY9XCJuYXZpZ2F0aW9uTGlzdD8ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgPHN2ZyBhbHQ9XCJcIiBjbGFzcz1cImhtY3RzLWJhbm5lcl9faWNvblwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBmb2N1c2FibGU9XCJmYWxzZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI1IDI1XCIgaGVpZ2h0PVwiMjVcIiB3aWR0aD1cIjI1XCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEzLjcsMTguNWgtMi40di0yLjRoMi40VjE4LjV6IE0xMi41LDEzLjdjLTAuNywwLTEuMi0wLjUtMS4yLTEuMlY3LjdjMC0wLjcsMC41LTEuMiwxLjItMS4yczEuMiwwLjUsMS4yLDEuMnY0LjhcbkMxMy43LDEzLjIsMTMuMiwxMy43LDEyLjUsMTMuN3ogTTEyLjUsMC41Yy02LjYsMC0xMiw1LjQtMTIsMTJzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMxOS4xLDAuNSwxMi41LDAuNXpcIiAvPjwvc3ZnPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJobWN0cy1iYW5uZXJfX21lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG1jdHMtYmFubmVyX19hc3Npc3RpdmVcIj5pbmZvcm1hdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgIFNlbGVjdCB0ZXh0IHRvIGFkZCBhIGNvbW1lbnQgb3IgaGlnaGxpZ2h0LlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgICAgICAgIGlkPVwiY29tbWVudFN1bW1hcnlcIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImNvbW1lbnRTdW1tYXJ5XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIk9wZW4gY29sbGF0ZSBzdW1tYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29tbWVudHNTdW1tYXJ5KClcIj5Db2xsYXRlIGNvbW1lbnRzPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuYXZpZ2F0aW9uTGlzdD8ubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bXYtY29tbWVudHMtbmF2aWdhdGVcbiAgICAgICAgICBbYW5ub3RhdGlvbkxpc3RdPVwibmF2aWdhdGlvbkxpc3RcIj5cbiAgICAgICAgPC9tdi1jb21tZW50cy1uYXZpZ2F0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHAgY2xhc3M9XCJhdWktY29tbWVudF9fcHJpdmF0ZS10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXVpLWNvbW1lbnRfX3ByaXZhdGVcIj5wcml2YXRlPC9zcGFuPlxuICAgICAgICBBbGwgY29tbWVudHMgY2FuIG9ubHkgYmUgc2VlbiBieSB5b3VcbiAgICAgIDwvcD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IFtoaWRkZW5dPVwidGFiU2VsZWN0ZWQgIT09ICdmaWx0ZXInXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstdGFic19fcGFuZWwtLWNvbnRhaW5lclwiPlxuICAgICAgICA8bXYtY29tbWVudC1maWx0ZXI+PC9tdi1jb21tZW50LWZpbHRlcj5cbiAgICAgICAgPG12LWNvbW1lbnRzLW5hdmlnYXRlXG4gICAgICAgICAgKm5nSWY9XCJuYXZpZ2F0aW9uTGlzdD8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgW2Fubm90YXRpb25MaXN0XT1cIm5hdmlnYXRpb25MaXN0XCI+XG4gICAgICAgIDwvbXYtY29tbWVudHMtbmF2aWdhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgW2hpZGRlbl09XCJ0YWJTZWxlY3RlZCAhPT0gJ3NlYXJjaCdcIj5cbiAgICAgIDxtdi1jb21tZW50LXNlYXJjaCBbYW5ub3RhdGlvbnNdPVwibmF2aWdhdGlvbkxpc3RcIj48L212LWNvbW1lbnQtc2VhcmNoPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CommentSetRenderService {
4
- redrawComponents(commentComponents, pageHeights, rotate, zoom) {
5
- let prevComment;
6
- this.sortComponents(commentComponents, pageHeights, rotate, zoom).forEach((comment) => {
7
- this.adjustIfOverlapping(comment, prevComment, zoom);
8
- prevComment = comment;
9
- });
10
- }
11
- sortComponents(commentComponents, pageHeights, rotate, zoom) {
12
- return commentComponents.sort((a, b) => {
13
- a.rectTop = this.top(a._rectangle, pageHeights[a.page - 1], rotate, zoom);
14
- b.rectTop = this.top(b._rectangle, pageHeights[b.page - 1], rotate, zoom);
15
- return this.processSort(a, b);
16
- });
17
- }
18
- adjustIfOverlapping(comment, prevComment, zoom) {
19
- if (prevComment) {
20
- const endOfPrevComment = prevComment.commentTop + this.height(prevComment);
21
- if (comment.commentTop <= endOfPrevComment) {
22
- comment.rectTop = (endOfPrevComment - comment.totalPrevPagesHeight) / zoom;
23
- }
24
- }
25
- }
26
- processSort(a, b) {
27
- if (this.onSameLine(a, b)) {
28
- return a.rectLeft >= b.rectLeft ? 1 : -1;
29
- }
30
- return a.commentTop >= b.commentTop ? 1 : -1;
31
- }
32
- onSameLine(a, b) {
33
- return this.difference(a.commentTop, b.commentTop) === 0;
34
- }
35
- top(rectangle, height, rotate, zoom) {
36
- const actualHeight = height / zoom;
37
- switch (rotate) {
38
- case 90: return rectangle.x;
39
- case 180: return actualHeight - (rectangle.y + rectangle.height);
40
- case 270: return actualHeight - (rectangle.x + rectangle.width);
41
- default: return rectangle.y;
42
- }
43
- }
44
- height(element) {
45
- return element.form.nativeElement.getBoundingClientRect().height;
46
- }
47
- difference(a, b) { return Math.abs(a - b); }
48
- }
49
- /** @nocollapse */ CommentSetRenderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSetRenderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
- /** @nocollapse */ CommentSetRenderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSetRenderService });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSetRenderService, decorators: [{
52
- type: Injectable
53
- }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZXQtcmVuZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50LXNldC1yZW5kZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLGdCQUFnQixDQUFDLGlCQUFxQyxFQUFFLFdBQWtCLEVBQUUsTUFBYyxFQUFFLElBQVk7UUFDdEcsSUFBSSxXQUE2QixDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUF5QixFQUFFLEVBQUU7WUFDdEcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsaUJBQXFDLEVBQUUsV0FBa0IsRUFBRSxNQUFjLEVBQUUsSUFBWTtRQUNwRyxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQW1CLEVBQUUsQ0FBbUIsRUFBRSxFQUFFO1lBQ3pFLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxRSxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUF5QixFQUFFLFdBQTZCLEVBQUUsSUFBWTtRQUNoRyxJQUFJLFdBQVcsRUFBRTtZQUNmLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNFLElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDMUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQzthQUM1RTtTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxDQUFtQixFQUFFLENBQW1CO1FBQzFELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sVUFBVSxDQUFDLENBQW1CLEVBQUUsQ0FBbUI7UUFDekQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sR0FBRyxDQUFDLFNBQWtDLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxJQUFZO1FBQzFGLE1BQU0sWUFBWSxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkMsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM1QixLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sWUFBWSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakUsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLFlBQVksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsT0FBWTtRQUN6QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ25FLENBQUM7SUFFTyxVQUFVLENBQUMsQ0FBUyxFQUFFLENBQVMsSUFBWSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7d0lBcERqRSx1QkFBdUI7NElBQXZCLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC9jb21tZW50LmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21tZW50U2V0UmVuZGVyU2VydmljZSB7XG5cbiAgcmVkcmF3Q29tcG9uZW50cyhjb21tZW50Q29tcG9uZW50czogQ29tbWVudENvbXBvbmVudFtdLCBwYWdlSGVpZ2h0czogYW55W10sIHJvdGF0ZTogbnVtYmVyLCB6b29tOiBudW1iZXIpIHtcbiAgICBsZXQgcHJldkNvbW1lbnQ6IENvbW1lbnRDb21wb25lbnQ7XG4gICAgdGhpcy5zb3J0Q29tcG9uZW50cyhjb21tZW50Q29tcG9uZW50cywgcGFnZUhlaWdodHMsIHJvdGF0ZSwgem9vbSkuZm9yRWFjaCgoY29tbWVudDogQ29tbWVudENvbXBvbmVudCkgPT4ge1xuICAgICAgdGhpcy5hZGp1c3RJZk92ZXJsYXBwaW5nKGNvbW1lbnQsIHByZXZDb21tZW50LCB6b29tKTtcbiAgICAgIHByZXZDb21tZW50ID0gY29tbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIHNvcnRDb21wb25lbnRzKGNvbW1lbnRDb21wb25lbnRzOiBDb21tZW50Q29tcG9uZW50W10sIHBhZ2VIZWlnaHRzOiBhbnlbXSwgcm90YXRlOiBudW1iZXIsIHpvb206IG51bWJlcikge1xuICAgIHJldHVybiBjb21tZW50Q29tcG9uZW50cy5zb3J0KChhOiBDb21tZW50Q29tcG9uZW50LCBiOiBDb21tZW50Q29tcG9uZW50KSA9PiB7XG4gICAgICBhLnJlY3RUb3AgPSB0aGlzLnRvcChhLl9yZWN0YW5nbGUsIHBhZ2VIZWlnaHRzW2EucGFnZSAtIDFdLCByb3RhdGUsIHpvb20pO1xuICAgICAgYi5yZWN0VG9wID0gdGhpcy50b3AoYi5fcmVjdGFuZ2xlLCBwYWdlSGVpZ2h0c1tiLnBhZ2UgLSAxXSwgcm90YXRlLCB6b29tKTtcbiAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NTb3J0KGEsIGIpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RJZk92ZXJsYXBwaW5nKGNvbW1lbnQ6IENvbW1lbnRDb21wb25lbnQsIHByZXZDb21tZW50OiBDb21tZW50Q29tcG9uZW50LCB6b29tOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAocHJldkNvbW1lbnQpIHtcbiAgICAgIGNvbnN0IGVuZE9mUHJldkNvbW1lbnQgPSBwcmV2Q29tbWVudC5jb21tZW50VG9wICsgdGhpcy5oZWlnaHQocHJldkNvbW1lbnQpO1xuICAgICAgaWYgKGNvbW1lbnQuY29tbWVudFRvcCA8PSBlbmRPZlByZXZDb21tZW50KSB7XG4gICAgICAgIGNvbW1lbnQucmVjdFRvcCA9IChlbmRPZlByZXZDb21tZW50IC0gY29tbWVudC50b3RhbFByZXZQYWdlc0hlaWdodCkgLyB6b29tO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1NvcnQoYTogQ29tbWVudENvbXBvbmVudCwgYjogQ29tbWVudENvbXBvbmVudCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMub25TYW1lTGluZShhLCBiKSkge1xuICAgICAgcmV0dXJuIGEucmVjdExlZnQgPj0gYi5yZWN0TGVmdCA/IDEgOiAtMTtcbiAgICB9XG4gICAgcmV0dXJuIGEuY29tbWVudFRvcCA+PSBiLmNvbW1lbnRUb3AgPyAxIDogLTE7XG4gIH1cblxuICBwcml2YXRlIG9uU2FtZUxpbmUoYTogQ29tbWVudENvbXBvbmVudCwgYjogQ29tbWVudENvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpZmZlcmVuY2UoYS5jb21tZW50VG9wLCBiLmNvbW1lbnRUb3ApID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSB0b3AocmVjdGFuZ2xlOiB7IHgsIHksIGhlaWdodCwgd2lkdGggfSwgaGVpZ2h0OiBudW1iZXIsIHJvdGF0ZTogbnVtYmVyLCB6b29tOiBudW1iZXIpIHtcbiAgICBjb25zdCBhY3R1YWxIZWlnaHQgPSBoZWlnaHQgLyB6b29tO1xuICAgIHN3aXRjaCAocm90YXRlKSB7XG4gICAgICBjYXNlIDkwOiByZXR1cm4gcmVjdGFuZ2xlLng7XG4gICAgICBjYXNlIDE4MDogcmV0dXJuIGFjdHVhbEhlaWdodCAtIChyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgY2FzZSAyNzA6IHJldHVybiBhY3R1YWxIZWlnaHQgLSAocmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgpO1xuICAgICAgZGVmYXVsdDogcmV0dXJuIHJlY3RhbmdsZS55O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGVpZ2h0KGVsZW1lbnQ6IGFueSkge1xuICAgIHJldHVybiBlbGVtZW50LmZvcm0ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gIH1cblxuICBwcml2YXRlIGRpZmZlcmVuY2UoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIgeyByZXR1cm4gTWF0aC5hYnMoYSAtIGIpOyB9XG59XG4iXX0=
@@ -1,123 +0,0 @@
1
- import { Component, Input, ViewChild, ViewChildren, } from '@angular/core';
2
- import { select } from '@ngrx/store';
3
- import * as fromActions from '../../store/actions/annotation.actions';
4
- import * as fromSelectors from '../../store/selectors/annotation.selectors';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngrx/store";
7
- import * as i2 from "./comment/comment.service";
8
- import * as i3 from "./comment-set-render.service";
9
- import * as i4 from "../../toolbar/toolbar-event.service";
10
- import * as i5 from "@angular/common";
11
- import * as i6 from "./comment/comment.component";
12
- export class CommentSetComponent {
13
- constructor(store, commentService, renderService, toolbarEvents) {
14
- this.store = store;
15
- this.commentService = commentService;
16
- this.renderService = renderService;
17
- this.toolbarEvents = toolbarEvents;
18
- this.pageHeights = [];
19
- this.subscriptions = [];
20
- this.clearSelection();
21
- }
22
- ngOnInit() {
23
- this.comments$ = this.store.pipe(select(fromSelectors.getCommentsArray));
24
- this.annoEntities$ = this.store.pipe(select(fromSelectors.getAnnotationEntities));
25
- this.subscriptions.push(this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {
26
- this.redrawComments();
27
- this.showCommentsPanel = toggle;
28
- }));
29
- this.subscriptions.push(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument()));
30
- }
31
- ngOnChanges(changes) {
32
- if (changes.annotationSet) {
33
- this.commentService.setCommentSet(this);
34
- }
35
- if (changes.contentScrollTop) {
36
- if (this.container) {
37
- this.container.nativeElement.scrollTo(0, this.contentScrollTop);
38
- }
39
- }
40
- }
41
- ngOnDestroy() {
42
- if (this.subscriptions.length > 0) {
43
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
44
- }
45
- }
46
- onSelect(annotationId) {
47
- this.store.dispatch(new fromActions.SelectedAnnotation(annotationId));
48
- }
49
- onCommentDelete(comment) {
50
- const annotation = this.annotationSet.annotations.find(anno => anno.id === comment.annotationId);
51
- const comments = [];
52
- const annot = {
53
- ...annotation,
54
- comments
55
- };
56
- this.onAnnotationUpdate(annot);
57
- this.redrawComments();
58
- }
59
- redrawComments() {
60
- setTimeout(() => {
61
- const componentList = this.commentComponents.map(comment => comment);
62
- this.renderService.redrawComponents(componentList, this.pageHeights, this.rotate, this.zoom);
63
- }, 0);
64
- }
65
- rotateDocument() {
66
- if (this.panel) {
67
- this.panel.nativeElement.style.height = '0';
68
- }
69
- }
70
- onCommentUpdate(payload) {
71
- const annotation = this.annotationSet.annotations.find(anno => anno.id === payload.comment.annotationId);
72
- const comments = [payload.comment];
73
- const tags = payload.tags;
74
- const annot = {
75
- ...annotation,
76
- comments,
77
- tags
78
- };
79
- this.onAnnotationUpdate(annot);
80
- }
81
- onAnnotationUpdate(annotation) {
82
- this.store.dispatch(new fromActions.SaveAnnotation(annotation));
83
- }
84
- onContainerClick(e) {
85
- if (e.path && e.path[0] === this.panel.nativeElement) {
86
- this.clearSelection();
87
- }
88
- }
89
- clearSelection() {
90
- this.store.dispatch(new fromActions.SelectedAnnotation({ annotationId: '', editable: false, selected: false }));
91
- }
92
- allCommentsSaved() {
93
- this.commentService.allCommentsSaved();
94
- }
95
- }
96
- /** @nocollapse */ CommentSetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSetComponent, deps: [{ token: i1.Store }, { token: i2.CommentService }, { token: i3.CommentSetRenderService }, { token: i4.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component });
97
- /** @nocollapse */ CommentSetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentSetComponent, selector: "mv-comment-set", inputs: { annotationSet: "annotationSet", zoom: "zoom", rotate: "rotate", height: "height", pageHeights: "pageHeights", contentScrollTop: "contentScrollTop" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "commentComponents", predicate: ["commentComponent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #container [ngClass]=\"{'comments': showCommentsPanel}\">\n <div #panel [ngClass]=\"{ 'comments-panel comment-container': true, 'expanded': showCommentsPanel }\"\n [style.height.px]=\"height\"\n (click)=\"onContainerClick($event)\">\n <ng-container *ngFor=\"let comment of (comments$ | async); let i = index;\">\n <mv-anno-comment\n [ngStyle]=\"showCommentsPanel ? {} : {'display':'none'}\"\n #commentComponent\n (commentClick)=\"onSelect($event)\"\n (delete)=\"onCommentDelete($event)\"\n (updated)=\"onCommentUpdate($event)\"\n (changes)=\"allCommentsSaved()\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [index]=\"i\"\n [page]=\"comment.page\"\n [comment]=\"comment\"\n [annotation]=\"(annoEntities$ | async)[comment.annotationId]\"\n (renderComments)=\"redrawComments()\">\n </mv-anno-comment>\n </ng-container>\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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.CommentComponent, selector: "mv-anno-comment", inputs: ["rotate", "zoom", "index", "page", "comment", "annotation"], outputs: ["commentClick", "renderComments", "delete", "updated", "changes"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentSetComponent, decorators: [{
99
- type: Component,
100
- args: [{ selector: 'mv-comment-set', template: "<div #container [ngClass]=\"{'comments': showCommentsPanel}\">\n <div #panel [ngClass]=\"{ 'comments-panel comment-container': true, 'expanded': showCommentsPanel }\"\n [style.height.px]=\"height\"\n (click)=\"onContainerClick($event)\">\n <ng-container *ngFor=\"let comment of (comments$ | async); let i = index;\">\n <mv-anno-comment\n [ngStyle]=\"showCommentsPanel ? {} : {'display':'none'}\"\n #commentComponent\n (commentClick)=\"onSelect($event)\"\n (delete)=\"onCommentDelete($event)\"\n (updated)=\"onCommentUpdate($event)\"\n (changes)=\"allCommentsSaved()\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [index]=\"i\"\n [page]=\"comment.page\"\n [comment]=\"comment\"\n [annotation]=\"(annoEntities$ | async)[comment.annotationId]\"\n (renderComments)=\"redrawComments()\">\n </mv-anno-comment>\n </ng-container>\n </div>\n</div>\n" }]
101
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.CommentService }, { type: i3.CommentSetRenderService }, { type: i4.ToolbarEventService }]; }, propDecorators: { annotationSet: [{
102
- type: Input
103
- }], zoom: [{
104
- type: Input
105
- }], rotate: [{
106
- type: Input
107
- }], height: [{
108
- type: Input
109
- }], pageHeights: [{
110
- type: Input
111
- }], contentScrollTop: [{
112
- type: Input
113
- }], container: [{
114
- type: ViewChild,
115
- args: ['container', { static: false }]
116
- }], panel: [{
117
- type: ViewChild,
118
- args: ['panel', { static: false }]
119
- }], commentComponents: [{
120
- type: ViewChildren,
121
- args: ['commentComponent']
122
- }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1zZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1zZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBUzVDLE9BQU8sS0FBSyxXQUFXLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxLQUFLLGFBQWEsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7QUFTNUUsTUFBTSxPQUFPLG1CQUFtQjtJQXFCOUIsWUFBb0IsS0FBMEMsRUFDakMsY0FBOEIsRUFDOUIsYUFBc0MsRUFDdEMsYUFBa0M7UUFIM0MsVUFBSyxHQUFMLEtBQUssQ0FBcUM7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUN0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFsQnRELGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBS2xCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQWN6QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FB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O3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFtQyxTQUFTO3NCQUFqRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0YsS0FBSztzQkFBekMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNELGlCQUFpQjtzQkFBbEQsWUFBWTt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LCBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuaW1wb3J0IHsgQW5ub3RhdGlvblNldCB9IGZyb20gJy4uL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tc2V0Lm1vZGVsJztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZW50IH0gZnJvbSAnLi9jb21tZW50L2NvbW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC9jb21tZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4vY29tbWVudC9jb21tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbWVudFNldFJlbmRlclNlcnZpY2UgfSBmcm9tICcuL2NvbW1lbnQtc2V0LXJlbmRlci5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuLi8uLi9zdG9yZS9hY3Rpb25zL2Fubm90YXRpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tU2VsZWN0b3JzIGZyb20gJy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9hbm5vdGF0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBUYWdzTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdGFncy5tb2RlbCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Bbm5vdGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2V2ZW50LXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1jb21tZW50LXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50LXNldC5jb21wb25lbnQuaHRtbCcsXG4gfSlcbmV4cG9ydCBjbGFzcyBDb21tZW50U2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgYW5ub3RhdGlvblNldDogQW5ub3RhdGlvblNldDtcbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHRzID0gW107XG4gIEBJbnB1dCgpIGNvbnRlbnRTY3JvbGxUb3A6IG51bWJlcjtcblxuICBjb21tZW50czogQ29tbWVudFtdO1xuICB0YWdzOiBUYWdzTW9kZWxbXTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgY29tbWVudHMkOiBPYnNlcnZhYmxlPEFubm90YXRpb25bXT47XG4gIHB1YmxpYyBhbm5vRW50aXRpZXMkOiBPYnNlcnZhYmxlPHsgW2lkOiBzdHJpbmddOiBBbm5vdGF0aW9uIH0+O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtzdGF0aWM6IGZhbHNlfSkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgncGFuZWwnLCB7c3RhdGljOiBmYWxzZX0pIHBhbmVsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZHJlbignY29tbWVudENvbXBvbmVudCcpIGNvbW1lbnRDb21wb25lbnRzOiBRdWVyeUxpc3Q8Q29tbWVudENvbXBvbmVudD47XG5cbiAgc2hvd0NvbW1lbnRzUGFuZWw6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlclNlcnZpY2U6IENvbW1lbnRTZXRSZW5kZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UpIHtcbiAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbW1lbnRzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbVNlbGVjdG9ycy5nZXRDb21tZW50c0FycmF5KSk7XG4gICAgdGhpcy5hbm5vRW50aXRpZXMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldEFubm90YXRpb25FbnRpdGllcykpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmNvbW1lbnRzUGFuZWxWaXNpYmxlLnN1YnNjcmliZSh0b2dnbGUgPT4ge1xuICAgICAgICB0aGlzLnJlZHJhd0NvbW1lbnRzKCk7XG4gICAgICAgIHRoaXMuc2hvd0NvbW1lbnRzUGFuZWwgPSB0b2dnbGU7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b29sYmFyRXZlbnRzLnJvdGF0ZVN1YmplY3Quc3Vic2NyaWJlKHJvdGF0ZSA9PiB0aGlzLnJvdGF0ZURvY3VtZW50KCkpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5hbm5vdGF0aW9uU2V0KSB7XG4gICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLnNldENvbW1lbnRTZXQodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmNvbnRlbnRTY3JvbGxUb3ApIHtcbiAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKDAsIHRoaXMuY29udGVudFNjcm9sbFRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdChhbm5vdGF0aW9uSWQ6IFNlbGVjdGlvbkFubm90YXRpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TZWxlY3RlZEFubm90YXRpb24oYW5ub3RhdGlvbklkKSk7XG4gIH1cblxuICBwdWJsaWMgb25Db21tZW50RGVsZXRlKGNvbW1lbnQ6IENvbW1lbnQpIHtcbiAgICBjb25zdCBhbm5vdGF0aW9uID0gdGhpcy5hbm5vdGF0aW9uU2V0LmFubm90YXRpb25zLmZpbmQoYW5ubyA9PiBhbm5vLmlkID09PSBjb21tZW50LmFubm90YXRpb25JZCk7XG4gICAgY29uc3QgY29tbWVudHMgPSBbXTtcbiAgICBjb25zdCBhbm5vdCA9IHtcbiAgICAgIC4uLmFubm90YXRpb24sXG4gICAgICBjb21tZW50c1xuICAgIH07XG4gICAgdGhpcy5vbkFubm90YXRpb25VcGRhdGUoYW5ub3QpO1xuICAgIHRoaXMucmVkcmF3Q29tbWVudHMoKTtcbiAgfVxuXG4gIHJlZHJhd0NvbW1lbnRzKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgY29tcG9uZW50TGlzdDogQ29tbWVudENvbXBvbmVudFtdID0gdGhpcy5jb21tZW50Q29tcG9uZW50cy5tYXAoY29tbWVudCA9PiBjb21tZW50KTtcbiAgICAgICAgdGhpcy5yZW5kZXJTZXJ2aWNlLnJlZHJhd0NvbXBvbmVudHMoY29tcG9uZW50TGlzdCwgdGhpcy5wYWdlSGVpZ2h0cywgdGhpcy5yb3RhdGUsIHRoaXMuem9vbSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHJvdGF0ZURvY3VtZW50KCkge1xuICAgIGlmICh0aGlzLnBhbmVsKSB7XG4gICAgICB0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJzAnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNvbW1lbnRVcGRhdGUocGF5bG9hZDoge2NvbW1lbnQ6IENvbW1lbnQsIHRhZ3M6IFRhZ3NNb2RlbFtdfSApIHtcbiAgICBjb25zdCBhbm5vdGF0aW9uID0gdGhpcy5hbm5vdGF0aW9uU2V0LmFubm90YXRpb25zLmZpbmQoYW5ubyA9PiBhbm5vLmlkID09PSBwYXlsb2FkLmNvbW1lbnQuYW5ub3RhdGlvbklkKTtcbiAgICBjb25zdCBjb21tZW50cyA9IFtwYXlsb2FkLmNvbW1lbnRdO1xuICAgIGNvbnN0IHRhZ3MgPSBwYXlsb2FkLnRhZ3M7XG4gICAgY29uc3QgYW5ub3QgPSB7XG4gICAgICAuLi5hbm5vdGF0aW9uLFxuICAgICAgY29tbWVudHMsXG4gICAgICB0YWdzXG4gICAgfTtcbiAgICB0aGlzLm9uQW5ub3RhdGlvblVwZGF0ZShhbm5vdCk7XG4gIH1cblxuICBwdWJsaWMgb25Bbm5vdGF0aW9uVXBkYXRlKGFubm90YXRpb246IEFubm90YXRpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TYXZlQW5ub3RhdGlvbihhbm5vdGF0aW9uKSk7XG4gIH1cblxuICBvbkNvbnRhaW5lckNsaWNrKGUpIHtcbiAgICBpZiAoZS5wYXRoICYmIGUucGF0aFswXSA9PT0gdGhpcy5wYW5lbC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHsgYW5ub3RhdGlvbklkOiAnJywgZWRpdGFibGU6IGZhbHNlLCBzZWxlY3RlZDogZmFsc2V9KSk7XG4gIH1cblxuICBhbGxDb21tZW50c1NhdmVkKCkge1xuICAgIHRoaXMuY29tbWVudFNlcnZpY2UuYWxsQ29tbWVudHNTYXZlZCgpO1xuICB9XG59XG4iLCI8ZGl2ICNjb250YWluZXIgW25nQ2xhc3NdPVwieydjb21tZW50cyc6IHNob3dDb21tZW50c1BhbmVsfVwiPlxuICA8ZGl2ICNwYW5lbCBbbmdDbGFzc109XCJ7ICdjb21tZW50cy1wYW5lbCBjb21tZW50LWNvbnRhaW5lcic6IHRydWUsICdleHBhbmRlZCc6IHNob3dDb21tZW50c1BhbmVsIH1cIlxuICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXG4gICAgIChjbGljayk9XCJvbkNvbnRhaW5lckNsaWNrKCRldmVudClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb21tZW50IG9mIChjb21tZW50cyQgfCBhc3luYyk7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICA8bXYtYW5uby1jb21tZW50XG4gICAgICAgIFtuZ1N0eWxlXT1cInNob3dDb21tZW50c1BhbmVsID8ge30gOiB7J2Rpc3BsYXknOidub25lJ31cIlxuICAgICAgICAjY29tbWVudENvbXBvbmVudFxuICAgICAgICAoY29tbWVudENsaWNrKT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAgICAgICAoZGVsZXRlKT1cIm9uQ29tbWVudERlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgKHVwZGF0ZWQpPVwib25Db21tZW50VXBkYXRlKCRldmVudClcIlxuICAgICAgICAoY2hhbmdlcyk9XCJhbGxDb21tZW50c1NhdmVkKClcIlxuICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICAgIFtwYWdlXT1cImNvbW1lbnQucGFnZVwiXG4gICAgICAgIFtjb21tZW50XT1cImNvbW1lbnRcIlxuICAgICAgICBbYW5ub3RhdGlvbl09XCIoYW5ub0VudGl0aWVzJCB8IGFzeW5jKVtjb21tZW50LmFubm90YXRpb25JZF1cIlxuICAgICAgICAocmVuZGVyQ29tbWVudHMpPVwicmVkcmF3Q29tbWVudHMoKVwiPlxuICAgICAgPC9tdi1hbm5vLWNvbW1lbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=