@hmcts/media-viewer 4.0.1 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
  2. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
  3. package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +5 -5
  4. package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
  5. package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
  6. package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
  7. package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
  8. package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +86 -0
  9. package/{esm2022 → esm2020}/lib/annotations/annotations.module.mjs +61 -61
  10. package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +177 -0
  11. package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
  12. package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
  13. package/{esm2022 → esm2020}/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +5 -5
  14. package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
  15. package/{esm2022 → esm2020}/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +5 -5
  16. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +54 -0
  17. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
  18. package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
  19. package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +123 -0
  20. package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +120 -0
  21. package/{esm2022 → esm2020}/lib/annotations/pipes/date/date.pipe.mjs +4 -4
  22. package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
  23. package/{esm2022 → esm2020}/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +4 -4
  24. package/{esm2022 → esm2020}/lib/annotations/services/annotation-api/annotation-api.service.mjs +5 -5
  25. package/{esm2022 → esm2020}/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +5 -5
  26. package/{esm2022 → esm2020}/lib/annotations/services/tags/tags.services.mjs +5 -5
  27. package/esm2020/lib/annotations/tags/tags.component.mjs +53 -0
  28. package/{esm2022 → esm2020}/lib/bookmark/components/bookmark-icons.component.mjs +5 -5
  29. package/{esm2022 → esm2020}/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +5 -5
  30. package/esm2020/lib/icp/icp-follower.service.mjs +60 -0
  31. package/esm2020/lib/icp/icp-presenter.service.mjs +55 -0
  32. package/esm2020/lib/icp/icp-session-api.service.mjs +21 -0
  33. package/esm2020/lib/icp/icp-update.service.mjs +65 -0
  34. package/{esm2022 → esm2020}/lib/icp/icp.interfaces.mjs +1 -1
  35. package/esm2020/lib/icp/icp.service.mjs +95 -0
  36. package/{esm2022 → esm2020}/lib/icp/participants-list/participants-list.component.mjs +5 -5
  37. package/esm2020/lib/icp/socket.service.mjs +118 -0
  38. package/esm2020/lib/media-viewer.component.mjs +245 -0
  39. package/{esm2022 → esm2020}/lib/media-viewer.module.mjs +55 -55
  40. package/{esm2022 → esm2020}/lib/print.service.mjs +4 -4
  41. package/esm2020/lib/redaction/components/redaction.component.mjs +91 -0
  42. package/{esm2022 → esm2020}/lib/redaction/services/redaction-api.service.mjs +5 -5
  43. package/{esm2022 → esm2020}/lib/shared/gov-uk-date/gov-uk-date.component.mjs +4 -4
  44. package/{esm2022 → esm2020}/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +7 -7
  45. package/{esm2022 → esm2020}/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +6 -6
  46. package/{esm2022 → esm2020}/lib/shared/gov-uk-label/gov-uk-label.component.mjs +7 -7
  47. package/{esm2022 → esm2020}/lib/shared/shared.module.mjs +19 -19
  48. package/esm2020/lib/shared/util/helpers/html-templates.helper.mjs +18 -0
  49. package/{esm2022 → esm2020}/lib/shared/util/services/number.helper.service.mjs +5 -5
  50. package/esm2020/lib/store/actions/icp.actions.mjs +56 -0
  51. package/esm2020/lib/store/bookmarks-store-utils.mjs +49 -0
  52. package/esm2020/lib/store/effects/annotation.effects.mjs +51 -0
  53. package/{esm2022 → esm2020}/lib/store/effects/bookmarks.effects.mjs +5 -5
  54. package/{esm2022 → esm2020}/lib/store/effects/document.effects.mjs +5 -5
  55. package/esm2020/lib/store/effects/icp.effects.mjs +26 -0
  56. package/{esm2022 → esm2020}/lib/store/effects/redaction.effects.mjs +5 -5
  57. package/esm2020/lib/store/reducers/annotations.reducer.mjs +208 -0
  58. package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +116 -0
  59. package/esm2020/lib/store/reducers/document.reducer.mjs +135 -0
  60. package/esm2020/lib/store/reducers/icp.reducer.mjs +56 -0
  61. package/esm2020/lib/store/reducers/redaction.reducer.mjs +116 -0
  62. package/esm2020/lib/store/reducers/tags.reducer.mjs +93 -0
  63. package/esm2020/lib/store/selectors/annotation.selectors.mjs +81 -0
  64. package/{esm2022 → esm2020}/lib/store/selectors/bookmark.selectors.mjs +1 -1
  65. package/{esm2022 → esm2020}/lib/store/selectors/redaction.selectors.mjs +1 -1
  66. package/esm2020/lib/store/store-utils.mjs +131 -0
  67. package/esm2020/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +44 -0
  68. package/{esm2022 → esm2020}/lib/toolbar/icp-event.service.mjs +1 -1
  69. package/{esm2022 → esm2020}/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +5 -5
  70. package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +189 -0
  71. package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +236 -0
  72. package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +68 -0
  73. package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
  74. package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  75. package/esm2020/lib/toolbar/toolbar-event.service.mjs +178 -0
  76. package/{esm2022 → esm2020}/lib/toolbar/toolbar.module.mjs +25 -25
  77. package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
  78. package/{esm2022 → esm2020}/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +5 -5
  79. package/esm2020/lib/viewers/grab-n-drag.directive.mjs +57 -0
  80. package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  81. package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
  82. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +209 -0
  83. package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +5 -5
  84. package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +236 -0
  85. package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +352 -0
  86. package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  87. package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +5 -5
  88. package/{esm2022 → esm2020}/lib/viewers/rotation-persist/rotation-api.service.mjs +5 -5
  89. package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
  90. package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  91. package/{esm2022 → esm2020}/lib/viewers/viewer-event.service.mjs +5 -5
  92. package/{esm2022 → esm2020}/lib/viewers/viewer-util.service.mjs +5 -5
  93. package/fesm2015/hmcts-media-viewer.mjs +6953 -0
  94. package/fesm2015/hmcts-media-viewer.mjs.map +1 -0
  95. package/{fesm2022 → fesm2020}/hmcts-media-viewer.mjs +462 -453
  96. package/fesm2020/hmcts-media-viewer.mjs.map +1 -0
  97. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +1 -1
  98. package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -1
  99. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +1 -1
  100. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +1 -1
  101. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +1 -1
  102. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -1
  103. package/lib/annotations/comment-set/comment/comment.component.d.ts +1 -1
  104. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -1
  105. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -1
  106. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -1
  107. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -1
  108. package/lib/annotations/comment-set/comment-set.component.d.ts +1 -1
  109. package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
  110. package/lib/annotations/tags/tags.component.d.ts +1 -1
  111. package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -1
  112. package/lib/icp/icp-session-api.service.d.ts +4 -1
  113. package/lib/icp/icp-session-api.service.d.ts.map +1 -1
  114. package/lib/icp/icp-update.service.d.ts.map +1 -1
  115. package/lib/icp/icp.interfaces.d.ts +1 -0
  116. package/lib/icp/icp.interfaces.d.ts.map +1 -1
  117. package/lib/icp/icp.service.d.ts +1 -0
  118. package/lib/icp/icp.service.d.ts.map +1 -1
  119. package/lib/icp/socket.service.d.ts +6 -6
  120. package/lib/icp/socket.service.d.ts.map +1 -1
  121. package/lib/media-viewer.component.d.ts +2 -1
  122. package/lib/media-viewer.component.d.ts.map +1 -1
  123. package/lib/redaction/components/redaction.component.d.ts +1 -1
  124. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +1 -1
  125. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
  126. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
  127. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +1 -1
  128. package/lib/store/actions/icp.actions.d.ts +8 -2
  129. package/lib/store/actions/icp.actions.d.ts.map +1 -1
  130. package/lib/store/bookmarks-store-utils.d.ts.map +1 -1
  131. package/lib/store/effects/icp.effects.d.ts.map +1 -1
  132. package/lib/toolbar/icp-event.service.d.ts +4 -4
  133. package/lib/toolbar/icp-event.service.d.ts.map +1 -1
  134. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -1
  135. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +1 -1
  136. package/lib/toolbar/toolbar-event.service.d.ts +6 -6
  137. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  138. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -1
  139. package/lib/viewers/grab-n-drag.directive.d.ts +1 -1
  140. package/lib/viewers/image-viewer/image-viewer.component.d.ts +1 -1
  141. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -1
  142. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -1
  143. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -1
  144. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +1 -1
  145. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +1 -1
  146. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +1 -1
  147. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -1
  148. package/lib/viewers/viewer-event.service.d.ts +1 -1
  149. package/lib/viewers/viewer-event.service.d.ts.map +1 -1
  150. package/package.json +23 -16
  151. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -116
  152. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -109
  153. package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
  154. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
  155. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
  156. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -118
  157. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
  158. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +0 -177
  159. package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
  160. package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
  161. package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
  162. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
  163. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -68
  164. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +0 -54
  165. package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +0 -123
  166. package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
  167. package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
  168. package/esm2022/lib/annotations/tags/tags.component.mjs +0 -53
  169. package/esm2022/lib/icp/icp-follower.service.mjs +0 -60
  170. package/esm2022/lib/icp/icp-presenter.service.mjs +0 -55
  171. package/esm2022/lib/icp/icp-session-api.service.mjs +0 -21
  172. package/esm2022/lib/icp/icp-update.service.mjs +0 -57
  173. package/esm2022/lib/icp/icp.service.mjs +0 -93
  174. package/esm2022/lib/icp/socket.service.mjs +0 -118
  175. package/esm2022/lib/media-viewer.component.mjs +0 -244
  176. package/esm2022/lib/redaction/components/redaction.component.mjs +0 -91
  177. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +0 -18
  178. package/esm2022/lib/store/actions/icp.actions.mjs +0 -56
  179. package/esm2022/lib/store/bookmarks-store-utils.mjs +0 -49
  180. package/esm2022/lib/store/effects/annotation.effects.mjs +0 -51
  181. package/esm2022/lib/store/effects/icp.effects.mjs +0 -26
  182. package/esm2022/lib/store/reducers/annotations.reducer.mjs +0 -208
  183. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +0 -116
  184. package/esm2022/lib/store/reducers/document.reducer.mjs +0 -135
  185. package/esm2022/lib/store/reducers/icp.reducer.mjs +0 -56
  186. package/esm2022/lib/store/reducers/redaction.reducer.mjs +0 -116
  187. package/esm2022/lib/store/reducers/tags.reducer.mjs +0 -93
  188. package/esm2022/lib/store/selectors/annotation.selectors.mjs +0 -81
  189. package/esm2022/lib/store/store-utils.mjs +0 -131
  190. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -44
  191. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -189
  192. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -236
  193. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -68
  194. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
  195. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
  196. package/esm2022/lib/toolbar/toolbar-event.service.mjs +0 -178
  197. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
  198. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +0 -57
  199. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
  200. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
  201. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -210
  202. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -236
  203. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -352
  204. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
  205. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
  206. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
  207. package/fesm2022/hmcts-media-viewer.mjs.map +0 -1
  208. /package/{esm2022 → esm2020}/hmcts-media-viewer.mjs +0 -0
  209. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-set.model.mjs +0 -0
  210. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -0
  211. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -0
  212. /package/{esm2022 → esm2020}/lib/annotations/comment-set/comment/comment.model.mjs +0 -0
  213. /package/{esm2022 → esm2020}/lib/annotations/models/api-persisted.model.mjs +0 -0
  214. /package/{esm2022 → esm2020}/lib/annotations/models/event-select.model.mjs +0 -0
  215. /package/{esm2022 → esm2020}/lib/annotations/models/tags.model.mjs +0 -0
  216. /package/{esm2022 → esm2020}/lib/annotations/models/user.model.mjs +0 -0
  217. /package/{esm2022 → esm2020}/lib/icp/icp.events.mjs +0 -0
  218. /package/{esm2022 → esm2020}/lib/redaction/services/redaction.model.mjs +0 -0
  219. /package/{esm2022 → esm2020}/lib/store/actions/annotation.actions.mjs +0 -0
  220. /package/{esm2022 → esm2020}/lib/store/actions/bookmark.actions.mjs +0 -0
  221. /package/{esm2022 → esm2020}/lib/store/actions/document.actions.mjs +0 -0
  222. /package/{esm2022 → esm2020}/lib/store/actions/redaction.actions.mjs +0 -0
  223. /package/{esm2022 → esm2020}/lib/store/actions/tag.actions.mjs +0 -0
  224. /package/{esm2022 → esm2020}/lib/store/effects/index.mjs +0 -0
  225. /package/{esm2022 → esm2020}/lib/store/models/bookmarks.interface.mjs +0 -0
  226. /package/{esm2022 → esm2020}/lib/store/models/filters.interface.mjs +0 -0
  227. /package/{esm2022 → esm2020}/lib/store/reducers/reducers.mjs +0 -0
  228. /package/{esm2022 → esm2020}/lib/store/selectors/document.selectors.mjs +0 -0
  229. /package/{esm2022 → esm2020}/lib/store/selectors/icp.selectors.mjs +0 -0
  230. /package/{esm2022 → esm2020}/lib/store/selectors/tag.selectors.mjs +0 -0
  231. /package/{esm2022 → esm2020}/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -0
  232. /package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -0
  233. /package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -0
  234. /package/{esm2022 → esm2020}/lib/viewers/rotation-persist/rotation.model.mjs +0 -0
  235. /package/{esm2022 → esm2020}/lib/viewers/viewer-exception.model.mjs +0 -0
  236. /package/{esm2022 → esm2020}/public_api.mjs +0 -0
@@ -31,6 +31,6 @@ export declare class SideBarComponent implements OnInit, OnChanges, OnDestroy {
31
31
  isViewedItem(current: Outline, next: Outline): boolean;
32
32
  findEndPage(next: Outline): number;
33
33
  static ɵfac: i0.ɵɵFactoryDeclaration<SideBarComponent, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<SideBarComponent, "mv-side-bar", never, { "annotationsEnabled": { "alias": "annotationsEnabled"; "required": false; }; "outline": { "alias": "outline"; "required": false; }; "url": { "alias": "url"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "rotate": { "alias": "rotate"; "required": false; }; "currentPageNumber": { "alias": "currentPageNumber"; "required": false; }; }, {}, never, never, false, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<SideBarComponent, "mv-side-bar", never, { "annotationsEnabled": "annotationsEnabled"; "outline": "outline"; "url": "url"; "zoom": "zoom"; "rotate": "rotate"; "currentPageNumber": "currentPageNumber"; }, {}, never, never, false, never>;
35
35
  }
36
36
  //# sourceMappingURL=side-bar.component.d.ts.map
@@ -18,6 +18,6 @@ export declare class UnsupportedViewerComponent implements OnInit, OnDestroy {
18
18
  ngOnInit(): void;
19
19
  ngOnDestroy(): void;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<UnsupportedViewerComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<UnsupportedViewerComponent, "mv-unsupported-viewer", never, { "url": { "alias": "url"; "required": false; }; "downloadFileName": { "alias": "downloadFileName"; "required": false; }; "typeException": { "alias": "typeException"; "required": false; }; }, { "loadStatus": "loadStatus"; "unsupportedViewerException": "unsupportedViewerException"; }, never, never, false, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<UnsupportedViewerComponent, "mv-unsupported-viewer", never, { "url": "url"; "downloadFileName": "downloadFileName"; "typeException": "typeException"; }, { "loadStatus": "loadStatus"; "unsupportedViewerException": "unsupportedViewerException"; }, never, never, false, never>;
22
22
  }
23
23
  //# sourceMappingURL=unsupported-viewer.component.d.ts.map
@@ -8,7 +8,7 @@ export interface Highlight {
8
8
  export declare class ViewerEventService {
9
9
  readonly textHighlight: Subject<Highlight>;
10
10
  readonly boxHighlight: Subject<Highlight>;
11
- readonly ctxToolbarCleared: Subject<void>;
11
+ readonly ctxToolbarCleared: Subject<unknown>;
12
12
  readonly navigationEvent: Subject<any[]>;
13
13
  constructor();
14
14
  textSelected(selectionData: Highlight): void;
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-event.service.d.ts","sourceRoot":"","sources":["../../../../projects/media-viewer/src/lib/viewers/viewer-event.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,yEAAyE,CAAC;;AAEpG,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,qBACa,kBAAkB;IAE7B,SAAgB,aAAa,qBAA4B;IACzD,SAAgB,YAAY,qBAA4B;IACxD,SAAgB,iBAAiB,gBAAuB;IACxD,SAAgB,eAAe,iBAAwB;;IAIhD,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI;IAI5C,WAAW,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI;IAI3C,eAAe,IAAI,IAAI;IAKvB,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE;yCAtB9B,kBAAkB;6CAAlB,kBAAkB;CAyB9B"}
1
+ {"version":3,"file":"viewer-event.service.d.ts","sourceRoot":"","sources":["../../../../projects/media-viewer/src/lib/viewers/viewer-event.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,yEAAyE,CAAC;;AAEpG,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,qBACa,kBAAkB;IAE7B,SAAgB,aAAa,qBAA4B;IACzD,SAAgB,YAAY,qBAA4B;IACxD,SAAgB,iBAAiB,mBAAiB;IAClD,SAAgB,eAAe,iBAAwB;;IAIhD,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI;IAI5C,WAAW,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI;IAI3C,eAAe,IAAI,IAAI;IAKvB,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE;yCAtB9B,kBAAkB;6CAAlB,kBAAkB;CAyB9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hmcts/media-viewer",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Media Viewer",
5
5
  "keywords": [
6
6
  "Angular",
@@ -18,26 +18,31 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@swimlane/ngx-datatable": "^20.0.0",
21
- "mutable-div": "^2.0.0",
21
+ "hammerjs": "^2.0.8",
22
+ "mutable-div": "^1.0.0",
22
23
  "pdfjs-dist": "2.5.207",
23
24
  "socket.io-client": "^3.1.1",
24
25
  "tslib": "^2.3.0",
25
26
  "uuid": "^3.4.0"
26
27
  },
27
28
  "peerDependencies": {
28
- "@angular/animations": "^17.3.8",
29
- "@angular/common": "^17.3.8",
30
- "@angular/core": "^17.3.8",
31
- "@angular/forms": "^17.3.8",
32
- "@angular/material": "^17.3.8",
33
- "@angular/platform-browser": "^17.3.8",
34
- "@ngrx/effects": "^17.0.0",
35
- "@ngrx/router-store": "^17.0.0",
36
- "@ngrx/store": "^17.0.0",
37
- "@ngrx/store-devtools": "^17.0.0"
29
+ "@angular/animations": "^15.2.9",
30
+ "@angular/common": "^15.2.9",
31
+ "@angular/core": "^15.2.9",
32
+ "@angular/forms": "^15.2.9",
33
+ "@angular/material": "^15.2.9",
34
+ "@angular/platform-browser": "^15.2.9",
35
+ "@ngrx/effects": "^15.0.0",
36
+ "@ngrx/router-store": "^15.0.0",
37
+ "@ngrx/store": "^15.0.0",
38
+ "@ngrx/store-devtools": "^15.0.0"
38
39
  },
39
40
  "packageManager": "yarn@3.8.1",
40
- "module": "fesm2022/hmcts-media-viewer.mjs",
41
+ "module": "fesm2015/hmcts-media-viewer.mjs",
42
+ "es2020": "fesm2020/hmcts-media-viewer.mjs",
43
+ "esm2020": "esm2020/hmcts-media-viewer.mjs",
44
+ "fesm2020": "fesm2020/hmcts-media-viewer.mjs",
45
+ "fesm2015": "fesm2015/hmcts-media-viewer.mjs",
41
46
  "typings": "index.d.ts",
42
47
  "exports": {
43
48
  "./package.json": {
@@ -45,9 +50,11 @@
45
50
  },
46
51
  ".": {
47
52
  "types": "./index.d.ts",
48
- "esm2022": "./esm2022/hmcts-media-viewer.mjs",
49
- "esm": "./esm2022/hmcts-media-viewer.mjs",
50
- "default": "./fesm2022/hmcts-media-viewer.mjs"
53
+ "esm2020": "./esm2020/hmcts-media-viewer.mjs",
54
+ "es2020": "./fesm2020/hmcts-media-viewer.mjs",
55
+ "es2015": "./fesm2015/hmcts-media-viewer.mjs",
56
+ "node": "./fesm2015/hmcts-media-viewer.mjs",
57
+ "default": "./fesm2020/hmcts-media-viewer.mjs"
51
58
  }
52
59
  },
53
60
  "sideEffects": false
@@ -1,116 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { v4 as uuid } from 'uuid';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../../../toolbar/toolbar.module";
5
- import * as i2 from "../highlight-create/highlight-create.service";
6
- export class BoxHighlightCreateComponent {
7
- constructor(toolbarEvents, highlightService) {
8
- this.toolbarEvents = toolbarEvents;
9
- this.highlightService = highlightService;
10
- this.saveSelection = new EventEmitter();
11
- this.drawStartX = -1;
12
- this.drawStartY = -1;
13
- this.backgroundColor = 'none';
14
- this.subscriptions = [];
15
- }
16
- ngOnInit() {
17
- this.subscriptions = [
18
- this.toolbarEvents.drawModeSubject.subscribe(drawMode => {
19
- this.defaultHeight = drawMode ? '100%' : '0px';
20
- this.defaultWidth = drawMode ? '100%' : '0px';
21
- }),
22
- this.toolbarEvents.redactWholePage.subscribe(() => {
23
- this.wholePage = true;
24
- })
25
- ];
26
- }
27
- ngOnDestroy() {
28
- this.subscriptions.forEach(subscription => {
29
- subscription.unsubscribe();
30
- });
31
- }
32
- initHighlight({ offsetX, offsetY }) {
33
- if (this.wholePage) {
34
- this.highlightPage();
35
- return;
36
- }
37
- this.position = 'absolute';
38
- this.backgroundColor = 'yellow';
39
- this.drawStartX = offsetX;
40
- this.drawStartY = offsetY;
41
- this.display = 'block';
42
- this.height = 50;
43
- this.width = 50;
44
- this.top = this.drawStartY;
45
- this.left = this.drawStartX;
46
- switch (this.rotate) {
47
- case 90:
48
- this.top = this.drawStartY - this.height;
49
- break;
50
- case 180:
51
- this.top = this.drawStartY - this.height;
52
- this.left = this.drawStartX - this.width;
53
- break;
54
- case 270:
55
- this.left = this.drawStartX - this.width;
56
- break;
57
- }
58
- }
59
- updateHighlight({ currentTarget, clientX, clientY }) {
60
- const rect = currentTarget.getBoundingClientRect(), offsetX = clientX - rect.left, offsetY = clientY - rect.top;
61
- if (this.drawStartX > 0 && this.drawStartY > 0) {
62
- this.height = Math.abs(offsetY - this.drawStartY);
63
- this.width = Math.abs(offsetX - this.drawStartX);
64
- this.top = Math.min(offsetY, this.drawStartY);
65
- this.left = Math.min(offsetX, this.drawStartX);
66
- }
67
- }
68
- createHighlight() {
69
- if (this.height / this.zoom > 5 || this.width / this.zoom > 5) {
70
- let rectangle = this.highlightService
71
- .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);
72
- rectangle = { id: uuid(), ...rectangle };
73
- this.saveSelection.emit({ rectangles: [rectangle], page: this.page });
74
- this.resetHighlight();
75
- }
76
- }
77
- resetHighlight() {
78
- this.drawStartX = -1;
79
- this.drawStartY = -1;
80
- this.display = 'none';
81
- this.width = 0;
82
- this.height = 0;
83
- this.wholePage = false;
84
- }
85
- highlightPage() {
86
- this.height = this.pageHeight;
87
- this.width = this.pageWidth;
88
- this.top = 0;
89
- this.left = 0;
90
- this.createHighlight();
91
- }
92
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BoxHighlightCreateComponent, deps: [{ token: i1.ToolbarEventService }, { token: i2.HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component }); }
93
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: { page: "page", pageHeight: "pageHeight", pageWidth: "pageWidth", rotate: "rotate", zoom: "zoom", container: "container" }, outputs: { saveSelection: "saveSelection" }, viewQueries: [{ propertyName: "highlight", first: true, predicate: ["boxHighlight"], descendants: true }], ngImport: i0, template: "<div [style.height]=\"defaultHeight\"\n [style.width]=\"defaultWidth\"\n (mousedown)=\"initHighlight($event)\"\n (mousemove)=\"updateHighlight($event)\"\n (mouseup)=\"createHighlight()\">\n <div #boxHighlight\n class=\"box-highlight\"\n [style.display]=\"display\"\n [style.position]=\"position\"\n [style.background-color]=\"backgroundColor\"\n [style.height]=\"height ? height + 'px' : '100%'\"\n [style.width]=\"width ? width + 'px' : '100%'\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\">\n </div>\n</div>\n" }); }
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BoxHighlightCreateComponent, decorators: [{
96
- type: Component,
97
- args: [{ selector: 'mv-box-highlight-create', template: "<div [style.height]=\"defaultHeight\"\n [style.width]=\"defaultWidth\"\n (mousedown)=\"initHighlight($event)\"\n (mousemove)=\"updateHighlight($event)\"\n (mouseup)=\"createHighlight()\">\n <div #boxHighlight\n class=\"box-highlight\"\n [style.display]=\"display\"\n [style.position]=\"position\"\n [style.background-color]=\"backgroundColor\"\n [style.height]=\"height ? height + 'px' : '100%'\"\n [style.width]=\"width ? width + 'px' : '100%'\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\">\n </div>\n</div>\n" }]
98
- }], ctorParameters: () => [{ type: i1.ToolbarEventService }, { type: i2.HighlightCreateService }], propDecorators: { page: [{
99
- type: Input
100
- }], pageHeight: [{
101
- type: Input
102
- }], pageWidth: [{
103
- type: Input
104
- }], rotate: [{
105
- type: Input
106
- }], zoom: [{
107
- type: Input
108
- }], container: [{
109
- type: Input
110
- }], saveSelection: [{
111
- type: Output
112
- }], highlight: [{
113
- type: ViewChild,
114
- args: ['boxHighlight', { static: false }]
115
- }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWhpZ2hsaWdodC1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBVWxDLE1BQU0sT0FBTywyQkFBMkI7SUE2QnRDLFlBQTZCLGFBQWtDLEVBQzVDLGdCQUF3QztRQUQ5QixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDNUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQXJCakQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNkMsQ0FBQztRQUl4RixlQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEIsZUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBVWhCLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBR2pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUdvQixDQUFDO0lBRWhFLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMs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QUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7aUlBdEhVLDJCQUEyQjtxSEFBM0IsMkJBQTJCLDJWQ1h4Qyxra0JBZ0JBOzsyRkRMYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UseUJBQXlCOzZIQUsxQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUV1QyxTQUFTO3NCQUF0RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdG9vbGJhci90b29sYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgeyBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vaGlnaGxpZ2h0LWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1ib3gtaGlnaGxpZ2h0LWNyZWF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib3gtaGlnaGxpZ2h0LWNyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEJveEhpZ2hsaWdodENyZWF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVdpZHRoOiBudW1iZXI7XG4gIEBJbnB1dCgpIHJvdGF0ZTogbnVtYmVyO1xuICBASW5wdXQoKSB6b29tOiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbnRhaW5lcjogeyB0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyIH07XG5cbiAgQE91dHB1dCgpIHNhdmVTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgcmVjdGFuZ2xlczogUmVjdGFuZ2xlW10sIHBhZ2U6IG51bWJlciB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2JveEhpZ2hsaWdodCcsIHsgc3RhdGljOiBmYWxzZSB9KSBoaWdobGlnaHQ6IEVsZW1lbnRSZWY7XG5cbiAgZHJhd1N0YXJ0WCA9IC0xO1xuICBkcmF3U3RhcnRZID0gLTE7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBkaXNwbGF5OiBzdHJpbmc7XG4gIGRyYXdNb2RlOiBib29sZWFuO1xuICBkZWZhdWx0SGVpZ2h0OiBzdHJpbmc7XG4gIGRlZmF1bHRXaWR0aDogc3RyaW5nO1xuICBwb3NpdGlvbjogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3IgPSAnbm9uZSc7XG4gIHdob2xlUGFnZTogYm9vbGVhbjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0U2VydmljZTogSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmRyYXdNb2RlU3ViamVjdC5zdWJzY3JpYmUoZHJhd01vZGUgPT4ge1xuICAgICAgICB0aGlzLmRlZmF1bHRIZWlnaHQgPSBkcmF3TW9kZSA/ICcxMDAlJyA6ICcwcHgnO1xuICAgICAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IGRyYXdNb2RlID8gJzEwMCUnIDogJzBweCc7XG4gICAgICB9KSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yZWRhY3RXaG9sZVBhZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy53aG9sZVBhZ2UgPSB0cnVlO1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdEhpZ2hsaWdodCh7IG9mZnNldFgsIG9mZnNldFkgfSkge1xuICAgIGlmICh0aGlzLndob2xlUGFnZSkge1xuICAgICAgdGhpcy5oaWdobGlnaHRQYWdlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gJ3llbGxvdyc7XG4gICAgdGhpcy5kcmF3U3RhcnRYID0gb2Zmc2V0WDtcbiAgICB0aGlzLmRyYXdTdGFydFkgPSBvZmZzZXRZO1xuXG4gICAgdGhpcy5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmhlaWdodCA9IDUwO1xuICAgIHRoaXMud2lkdGggPSA1MDtcblxuICAgIHRoaXMudG9wID0gdGhpcy5kcmF3U3RhcnRZO1xuICAgIHRoaXMubGVmdCA9IHRoaXMuZHJhd1N0YXJ0WDtcblxuICAgIHN3aXRjaCAodGhpcy5yb3RhdGUpIHtcbiAgICAgIGNhc2UgOTA6XG4gICAgICAgIHRoaXMudG9wID0gdGhpcy5kcmF3U3RhcnRZIC0gdGhpcy5oZWlnaHQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxODA6XG4gICAgICAgIHRoaXMudG9wID0gdGhpcy5kcmF3U3RhcnRZIC0gdGhpcy5oZWlnaHQ7XG4gICAgICAgIHRoaXMubGVmdCA9IHRoaXMuZHJhd1N0YXJ0WCAtIHRoaXMud2lkdGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNzA6XG4gICAgICAgIHRoaXMubGVmdCA9IHRoaXMuZHJhd1N0YXJ0WCAtIHRoaXMud2lkdGg7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUhpZ2hsaWdodCh7IGN1cnJlbnRUYXJnZXQsIGNsaWVudFgsIGNsaWVudFkgfSkge1xuICAgIGNvbnN0IHJlY3QgPSBjdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgb2Zmc2V0WCA9IGNsaWVudFggLSByZWN0LmxlZnQsXG4gICAgICBvZmZzZXRZID0gY2xpZW50WSAtIHJlY3QudG9wO1xuICAgIGlmICh0aGlzLmRyYXdTdGFydFggPiAwICYmIHRoaXMuZHJhd1N0YXJ0WSA+IDApIHtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gTWF0aC5hYnMob2Zmc2V0WSAtIHRoaXMuZHJhd1N0YXJ0WSk7XG4gICAgICB0aGlzLndpZHRoID0gTWF0aC5hYnMob2Zmc2V0WCAtIHRoaXMuZHJhd1N0YXJ0WCk7XG4gICAgICB0aGlzLnRvcCA9IE1hdGgubWluKG9mZnNldFksIHRoaXMuZHJhd1N0YXJ0WSk7XG4gICAgICB0aGlzLmxlZnQgPSBNYXRoLm1pbihvZmZzZXRYLCB0aGlzLmRyYXdTdGFydFgpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUhpZ2hsaWdodCgpIHtcbiAgICBpZiAodGhpcy5oZWlnaHQgLyB0aGlzLnpvb20gPiA1IHx8IHRoaXMud2lkdGggLyB0aGlzLnpvb20gPiA1KSB7XG4gICAgICBsZXQgcmVjdGFuZ2xlID0gdGhpcy5oaWdobGlnaHRTZXJ2aWNlXG4gICAgICAgIC5hcHBseVJvdGF0aW9uKHRoaXMucGFnZUhlaWdodCwgdGhpcy5wYWdlV2lkdGgsIHRoaXMuaGVpZ2h0LCB0aGlzLndpZHRoLCB0aGlzLnRvcCwgdGhpcy5sZWZ0LCB0aGlzLnJvdGF0ZSwgdGhpcy56b29tKTtcbiAgICAgIHJlY3RhbmdsZSA9IHsgaWQ6IHV1aWQoKSwgLi4ucmVjdGFuZ2xlIH0gYXMgYW55O1xuICAgICAgdGhpcy5zYXZlU2VsZWN0aW9uLmVtaXQoeyByZWN0YW5nbGVzOiBbcmVjdGFuZ2xlXSwgcGFnZTogdGhpcy5wYWdlIH0pO1xuICAgICAgdGhpcy5yZXNldEhpZ2hsaWdodCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRIaWdobGlnaHQoKSB7XG4gICAgdGhpcy5kcmF3U3RhcnRYID0gLTE7XG4gICAgdGhpcy5kcmF3U3RhcnRZID0gLTE7XG4gICAgdGhpcy5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIHRoaXMud2lkdGggPSAwO1xuICAgIHRoaXMuaGVpZ2h0ID0gMDtcbiAgICB0aGlzLndob2xlUGFnZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHRQYWdlKCkge1xuICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5wYWdlSGVpZ2h0O1xuICAgIHRoaXMud2lkdGggPSB0aGlzLnBhZ2VXaWR0aDtcbiAgICB0aGlzLnRvcCA9IDA7XG4gICAgdGhpcy5sZWZ0ID0gMDtcbiAgICB0aGlzLmNyZWF0ZUhpZ2hsaWdodCgpO1xuICB9XG59XG4iLCI8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiZGVmYXVsdEhlaWdodFwiXG4gICAgIFtzdHlsZS53aWR0aF09XCJkZWZhdWx0V2lkdGhcIlxuICAgICAobW91c2Vkb3duKT1cImluaXRIaWdobGlnaHQoJGV2ZW50KVwiXG4gICAgIChtb3VzZW1vdmUpPVwidXBkYXRlSGlnaGxpZ2h0KCRldmVudClcIlxuICAgICAobW91c2V1cCk9XCJjcmVhdGVIaWdobGlnaHQoKVwiPlxuICA8ZGl2ICNib3hIaWdobGlnaHRcbiAgICAgY2xhc3M9XCJib3gtaGlnaGxpZ2h0XCJcbiAgICAgW3N0eWxlLmRpc3BsYXldPVwiZGlzcGxheVwiXG4gICAgIFtzdHlsZS5wb3NpdGlvbl09XCJwb3NpdGlvblwiXG4gICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhY2tncm91bmRDb2xvclwiXG4gICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0ID8gaGVpZ2h0ICsgJ3B4JyA6ICcxMDAlJ1wiXG4gICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aCA/IHdpZHRoICsgJ3B4JyA6ICcxMDAlJ1wiXG4gICAgIFtzdHlsZS50b3BdPVwidG9wICsgJ3B4J1wiXG4gICAgIFtzdHlsZS5sZWZ0XT1cImxlZnQgKyAncHgnXCI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,109 +0,0 @@
1
- import { Directive, HostListener } from '@angular/core';
2
- import { v4 as uuid } from 'uuid';
3
- import * as fromDocument from '../../../../store/selectors/document.selectors';
4
- import * as fromAnnotationActions from '../../../../store/actions/annotation.actions';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../../toolbar/toolbar.module";
7
- import * as i2 from "../../../../viewers/viewer-event.service";
8
- import * as i3 from "./highlight-create.service";
9
- import * as i4 from "@ngrx/store";
10
- export class HighlightCreateDirective {
11
- constructor(element, toolbarEvents, viewerEvents, highlightService, store) {
12
- this.element = element;
13
- this.toolbarEvents = toolbarEvents;
14
- this.viewerEvents = viewerEvents;
15
- this.highlightService = highlightService;
16
- this.store = store;
17
- }
18
- ngOnInit() {
19
- this.$subscription = this.store.select(fromDocument.getPages).subscribe((pages) => {
20
- if (pages[1]) {
21
- this.allPages = pages;
22
- }
23
- });
24
- }
25
- ngOnDestroy() {
26
- if (this.$subscription) {
27
- this.$subscription.unsubscribe();
28
- }
29
- }
30
- onMouseUp(mouseEvent) {
31
- const pageElement = mouseEvent.target.offsetParent.offsetParent;
32
- const page = parseInt(pageElement.getAttribute('data-page-number'), 10);
33
- if (this.toolbarEvents.highlightModeSubject.getValue()) {
34
- const rectangles = this.getRectangles(mouseEvent, page);
35
- this.viewerEvents.textSelected({ page, rectangles });
36
- }
37
- }
38
- onPdfViewerClick(event) {
39
- this.store.dispatch(new fromAnnotationActions.SelectedAnnotation({
40
- annotationId: '',
41
- selected: false,
42
- editable: false,
43
- }));
44
- this.viewerEvents.clearCtxToolbar();
45
- }
46
- getRectangles(event, page) {
47
- this.pageHeight = this.allPages[page].styles.height;
48
- this.pageWidth = this.allPages[page].styles.width;
49
- this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);
50
- this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);
51
- const selection = window.getSelection();
52
- if (selection) {
53
- const localElement = event.target;
54
- this.removeEnhancedTextModeStyling(localElement);
55
- if (selection.rangeCount && !selection.isCollapsed) {
56
- const range = selection.getRangeAt(0).cloneRange();
57
- const clientRects = range.getClientRects();
58
- if (clientRects) {
59
- const parentRect = localElement.parentElement.getBoundingClientRect();
60
- const selectionRectangles = [];
61
- for (let i = 0; i < clientRects.length; i++) {
62
- const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
63
- const findSelecttionRectangle = selectionRectangles.find((rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x);
64
- if (!findSelecttionRectangle) {
65
- selectionRectangles.push(selectionRectangle);
66
- }
67
- }
68
- return selectionRectangles;
69
- }
70
- }
71
- }
72
- }
73
- createTextRectangle(rect, parentRect) {
74
- const height = rect.bottom - rect.top;
75
- const width = rect.right - rect.left;
76
- const top = rect.top - parentRect.top;
77
- const left = rect.left - parentRect.left;
78
- let rectangle = this.highlightService.applyRotation(this.pageHeight, this.pageWidth, height, width, top, left, this.rotate, this.zoom);
79
- rectangle = { id: uuid(), ...rectangle };
80
- return rectangle;
81
- }
82
- removeEnhancedTextModeStyling(element) {
83
- if (element.parentElement.children) {
84
- for (let i = 0; i < element.parentElement.children.length; i++) {
85
- const child = element.parentElement.children[i];
86
- child.style.padding = '0';
87
- // regex will be targeting the translate style in string
88
- // e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)
89
- const translateCSSRegex = /translate[XYZ]\(-?\d*(\.\d+)?(px)?\)/g;
90
- child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();
91
- }
92
- }
93
- }
94
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: HighlightCreateDirective, deps: [{ token: i0.ElementRef }, { token: i1.ToolbarEventService }, { token: i2.ViewerEventService }, { token: i3.HighlightCreateService }, { token: i4.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
95
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: HighlightCreateDirective, selector: "[mvCreateTextHighlight]", host: { listeners: { "mouseup": "onMouseUp($event)", "mousedown": "onPdfViewerClick($event)" } }, ngImport: i0 }); }
96
- }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: HighlightCreateDirective, decorators: [{
98
- type: Directive,
99
- args: [{
100
- selector: '[mvCreateTextHighlight]'
101
- }]
102
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ToolbarEventService }, { type: i2.ViewerEventService }, { type: i3.HighlightCreateService }, { type: i4.Store }], propDecorators: { onMouseUp: [{
103
- type: HostListener,
104
- args: ['mouseup', ['$event']]
105
- }], onPdfViewerClick: [{
106
- type: HostListener,
107
- args: ['mousedown', ['$event']]
108
- }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LWNyZWF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU9sQyxPQUFPLEtBQUssWUFBWSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7O0FBTXRGLE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsWUFDVSxPQUFnQyxFQUNoQyxhQUFrQyxFQUNsQyxZQUFnQyxFQUNoQyxnQkFBd0MsRUFDeEMsS0FBMEM7UUFKMUMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBQ3hDLFVBQUssR0FBTCxLQUFLLENBQXFDO0lBQ2hELENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEYsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFHRCxTQUFTLENBQUMsVUFBc0I7UUFDOUIsTUFBTSxXQUFXLEdBQWtCLFVBQVUsQ0FBQyxNQUFzQixDQUFDLFlBQWEsQ0FBQyxZQUFZLENBQUM7UUFDaEcsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN2RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBR0QsZ0JBQWdCLENBQUMsS0FBaUI7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLENBQUM7WUFDM0MsWUFBWSxFQUFFLEVBQUU7WUFDaEIsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFpQixFQUFFLElBQUk7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxZQUFZLEdBQWdCLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFFL0MsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRWpELElBQUksU0FBUyxDQUFDLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUUzQyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUVoQixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQ3RFLE1BQU0sbUJBQW1CLEdBQWdCLEVBQUUsQ0FBQztvQkFDNUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDNUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUNoRixNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDdEQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssa0JBQWtCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUNyRixDQUFDO3dCQUNGLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDOzRCQUM3QixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQztvQkFDSCxDQUFDO29CQUNELE9BQU8sbUJBQW1CLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFTLEVBQUUsVUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFFekMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FDakQsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsU0FBUyxFQUNkLE1BQU0sRUFDTixLQUFLLEVBQ0wsR0FBRyxFQUNILElBQUksRUFDSixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxJQUFJLENBQ1YsQ0FBQztRQUNGLFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRXpDLE9BQU8sU0FBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRU8sNkJBQTZCLENBQUMsT0FBb0I7UUFDeEQsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDL0QsTUFBTSxLQUFLLEdBQWdCLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3RCxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQzFCLHdEQUF3RDtnQkFDeEQsbUdBQW1HO2dCQUNuRyxNQUFNLGlCQUFpQixHQUFHLHVDQUF1QyxDQUFDO2dCQUNsRSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO2lJQXhIVSx3QkFBd0I7cUhBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO2lCQUNwQzsyTUFpQ0MsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFXbkMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdG9vbGJhci90b29sYmFyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgVmlld2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdmlld2Vycy92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub3RhdGlvbkFjdGlvbnMgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSB9IGZyb20gJy4vaGlnaGxpZ2h0LWNyZWF0ZS5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW212Q3JlYXRlVGV4dEhpZ2hsaWdodF0nXG59KVxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodENyZWF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcGFnZUhlaWdodDogbnVtYmVyO1xuICBwYWdlV2lkdGg6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xuICByb3RhdGU6IG51bWJlcjtcbiAgYWxsUGFnZXM6IG9iamVjdDtcblxuICAkc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGhpZ2hsaWdodFNlcnZpY2U6IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT5cbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb24gPSB0aGlzLnN0b3JlLnNlbGVjdChmcm9tRG9jdW1lbnQuZ2V0UGFnZXMpLnN1YnNjcmliZSgocGFnZXMpID0+IHtcbiAgICAgIGlmIChwYWdlc1sxXSkge1xuICAgICAgICB0aGlzLmFsbFBhZ2VzID0gcGFnZXM7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy4kc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLiRzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZVVwKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBwYWdlRWxlbWVudCA9ICg8SFRNTEVsZW1lbnQ+KG1vdXNlRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRQYXJlbnQpLm9mZnNldFBhcmVudDtcbiAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQocGFnZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXBhZ2UtbnVtYmVyJyksIDEwKTtcbiAgICBpZiAodGhpcy50b29sYmFyRXZlbnRzLmhpZ2hsaWdodE1vZGVTdWJqZWN0LmdldFZhbHVlKCkpIHtcbiAgICAgIGNvbnN0IHJlY3RhbmdsZXMgPSB0aGlzLmdldFJlY3RhbmdsZXMobW91c2VFdmVudCwgcGFnZSk7XG4gICAgICB0aGlzLnZpZXdlckV2ZW50cy50ZXh0U2VsZWN0ZWQoeyBwYWdlLCByZWN0YW5nbGVzIH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uUGRmVmlld2VyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgbmV3IGZyb21Bbm5vdGF0aW9uQWN0aW9ucy5TZWxlY3RlZEFubm90YXRpb24oe1xuICAgICAgICBhbm5vdGF0aW9uSWQ6ICcnLFxuICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIGVkaXRhYmxlOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnZpZXdlckV2ZW50cy5jbGVhckN0eFRvb2xiYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVjdGFuZ2xlcyhldmVudDogTW91c2VFdmVudCwgcGFnZSkge1xuICAgIHRoaXMucGFnZUhlaWdodCA9IHRoaXMuYWxsUGFnZXNbcGFnZV0uc3R5bGVzLmhlaWdodDtcbiAgICB0aGlzLnBhZ2VXaWR0aCA9IHRoaXMuYWxsUGFnZXNbcGFnZV0uc3R5bGVzLndpZHRoO1xuICAgIHRoaXMuem9vbSA9IHBhcnNlRmxvYXQodGhpcy5hbGxQYWdlc1twYWdlXS5zY2FsZVJvdGF0aW9uLnNjYWxlKTtcbiAgICB0aGlzLnJvdGF0ZSA9IHBhcnNlSW50KHRoaXMuYWxsUGFnZXNbcGFnZV0uc2NhbGVSb3RhdGlvbi5yb3RhdGlvbiwgMTApO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICBjb25zdCBsb2NhbEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+ZXZlbnQudGFyZ2V0O1xuXG4gICAgICB0aGlzLnJlbW92ZUVuaGFuY2VkVGV4dE1vZGVTdHlsaW5nKGxvY2FsRWxlbWVudCk7XG5cbiAgICAgIGlmIChzZWxlY3Rpb24ucmFuZ2VDb3VudCAmJiAhc2VsZWN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuY2xvbmVSYW5nZSgpO1xuICAgICAgICBjb25zdCBjbGllbnRSZWN0cyA9IHJhbmdlLmdldENsaWVudFJlY3RzKCk7XG5cbiAgICAgICAgaWYgKGNsaWVudFJlY3RzKSB7XG5cbiAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gbG9jYWxFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlczogUmVjdGFuZ2xlW10gPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsaWVudFJlY3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25SZWN0YW5nbGUgPSB0aGlzLmNyZWF0ZVRleHRSZWN0YW5nbGUoY2xpZW50UmVjdHNbaV0sIHBhcmVudFJlY3QpO1xuICAgICAgICAgICAgY29uc3QgZmluZFNlbGVjdHRpb25SZWN0YW5nbGUgPSBzZWxlY3Rpb25SZWN0YW5nbGVzLmZpbmQoXG4gICAgICAgICAgICAgIChyZWN0KSA9PiByZWN0LndpZHRoID09PSBzZWxlY3Rpb25SZWN0YW5nbGUud2lkdGggJiYgcmVjdC54ID09PSBzZWxlY3Rpb25SZWN0YW5nbGUueFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghZmluZFNlbGVjdHRpb25SZWN0YW5nbGUpIHtcbiAgICAgICAgICAgICAgc2VsZWN0aW9uUmVjdGFuZ2xlcy5wdXNoKHNlbGVjdGlvblJlY3RhbmdsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25SZWN0YW5nbGVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUZXh0UmVjdGFuZ2xlKHJlY3Q6IGFueSwgcGFyZW50UmVjdDogYW55KTogUmVjdGFuZ2xlIHtcbiAgICBjb25zdCBoZWlnaHQgPSByZWN0LmJvdHRvbSAtIHJlY3QudG9wO1xuICAgIGNvbnN0IHdpZHRoID0gcmVjdC5yaWdodCAtIHJlY3QubGVmdDtcbiAgICBjb25zdCB0b3AgPSByZWN0LnRvcCAtIHBhcmVudFJlY3QudG9wO1xuICAgIGNvbnN0IGxlZnQgPSByZWN0LmxlZnQgLSBwYXJlbnRSZWN0LmxlZnQ7XG5cbiAgICBsZXQgcmVjdGFuZ2xlID0gdGhpcy5oaWdobGlnaHRTZXJ2aWNlLmFwcGx5Um90YXRpb24oXG4gICAgICB0aGlzLnBhZ2VIZWlnaHQsXG4gICAgICB0aGlzLnBhZ2VXaWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHdpZHRoLFxuICAgICAgdG9wLFxuICAgICAgbGVmdCxcbiAgICAgIHRoaXMucm90YXRlLFxuICAgICAgdGhpcy56b29tXG4gICAgKTtcbiAgICByZWN0YW5nbGUgPSB7IGlkOiB1dWlkKCksIC4uLnJlY3RhbmdsZSB9O1xuXG4gICAgcmV0dXJuIHJlY3RhbmdsZSBhcyBSZWN0YW5nbGU7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUVuaGFuY2VkVGV4dE1vZGVTdHlsaW5nKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudC5jaGlsZHJlbikge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50LnBhcmVudEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSA8SFRNTEVsZW1lbnQ+ZWxlbWVudC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuW2ldO1xuXG4gICAgICAgIGNoaWxkLnN0eWxlLnBhZGRpbmcgPSAnMCc7XG4gICAgICAgIC8vIHJlZ2V4IHdpbGwgYmUgdGFyZ2V0aW5nIHRoZSB0cmFuc2xhdGUgc3R5bGUgaW4gc3RyaW5nXG4gICAgICAgIC8vIGUuZy4gc2NhbGVYKDAuOTY5OTE4KSB0cmFuc2xhdGVYKC0xMTAuNjg0cHgpIHRyYW5zbGF0ZVkoLTEwNS4yNzRweCkgd2lsbCBiZWNvbWUgc2NhbGVYKDAuOTY5OTE4KVxuICAgICAgICBjb25zdCB0cmFuc2xhdGVDU1NSZWdleCA9IC90cmFuc2xhdGVbWFlaXVxcKC0/XFxkKihcXC5cXGQrKT8ocHgpP1xcKS9nO1xuICAgICAgICBjaGlsZC5zdHlsZS50cmFuc2Zvcm0gPSBjaGlsZC5zdHlsZS50cmFuc2Zvcm0ucmVwbGFjZSh0cmFuc2xhdGVDU1NSZWdleCwgJycpLnRyaW0oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,50 +0,0 @@
1
- import { Component, Input } 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-set/comment/comment.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "./annotation-view/annotation-view.component";
10
- export class AnnotationSetComponent {
11
- constructor(store, commentService) {
12
- this.store = store;
13
- this.commentService = commentService;
14
- this.annotations = [];
15
- }
16
- ngOnInit() {
17
- this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation));
18
- }
19
- onAnnotationUpdate(annotation) {
20
- this.store.dispatch(new fromActions.SaveAnnotation(annotation));
21
- }
22
- onAnnotationDelete(annotation) {
23
- if (annotation.comments.length > 0) {
24
- this.commentService.updateUnsavedCommentsStatus(annotation, false);
25
- }
26
- this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id));
27
- }
28
- selectAnnotation(selectedAnnotation) {
29
- this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation));
30
- }
31
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: AnnotationSetComponent, deps: [{ token: i1.Store }, { token: i2.CommentService }], target: i0.ɵɵFactoryTarget.Component }); }
32
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: AnnotationSetComponent, selector: "mv-annotation-set", inputs: { page: "page", annotations: "annotations", zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth" }, ngImport: i0, template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.AnnotationViewComponent, selector: "mv-annotation", inputs: ["annotation", "zoom", "rotate", "selectedAnnoId", "pageHeight", "pageWidth"], outputs: ["update", "delete", "annotationClick"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: AnnotationSetComponent, decorators: [{
35
- type: Component,
36
- args: [{ selector: 'mv-annotation-set', template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n" }]
37
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.CommentService }], propDecorators: { page: [{
38
- type: Input
39
- }], annotations: [{
40
- type: Input
41
- }], zoom: [{
42
- type: Input
43
- }], rotate: [{
44
- type: Input
45
- }], pageHeight: [{
46
- type: Input
47
- }], pageWidth: [{
48
- type: Input
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLekQsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxhQUFhLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQU01RSxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBQ1UsS0FBMEMsRUFDakMsY0FBOEI7UUFEdkMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVnhDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztJQVdyQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU0sa0JBQWtCLENBQUMsVUFBc0I7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFVBQXNCO1FBQzlDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxrQkFBdUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7aUlBakNVLHNCQUFzQjtxSEFBdEIsc0JBQXNCLGlNQ2RuQyx5aUJBWUE7OzJGREVhLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxtQkFBbUI7dUdBS3BCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uIH0gZnJvbSAnLi9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Bbm5vdGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2V2ZW50LXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4uL2NvbW1lbnQtc2V0L2NvbW1lbnQvY29tbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFjdGlvbnMgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbVNlbGVjdG9ycyBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvYW5ub3RhdGlvbi5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1hbm5vdGF0aW9uLXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbm5vdGF0aW9uLXNldC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQW5ub3RhdGlvblNldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcGFnZTogbnVtYmVyO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uczogQW5ub3RhdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVdpZHRoOiBudW1iZXI7XG5cbiAgc2VsZWN0ZWRBbm5vdGF0aW9uJDogT2JzZXJ2YWJsZTxTZWxlY3Rpb25Bbm5vdGF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRTZXJ2aWNlOiBDb21tZW50U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEFubm90YXRpb24kID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldFNlbGVjdGVkQW5ub3RhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG9uQW5ub3RhdGlvblVwZGF0ZShhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2F2ZUFubm90YXRpb24oYW5ub3RhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG9uQW5ub3RhdGlvbkRlbGV0ZShhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKSB7XG4gICAgaWYgKGFubm90YXRpb24uY29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb21tZW50U2VydmljZS51cGRhdGVVbnNhdmVkQ29tbWVudHNTdGF0dXMoYW5ub3RhdGlvbiwgZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5EZWxldGVBbm5vdGF0aW9uKGFubm90YXRpb24uaWQpKTtcbiAgfVxuXG4gIHNlbGVjdEFubm90YXRpb24oc2VsZWN0ZWRBbm5vdGF0aW9uOiBTZWxlY3Rpb25Bbm5vdGF0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHNlbGVjdGVkQW5ub3RhdGlvbikpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbm5vdGF0aW9uIG9mIGFubm90YXRpb25zXCI+XG4gIDxtdi1hbm5vdGF0aW9uIFthbm5vdGF0aW9uXT1cImFubm90YXRpb25cIlxuICAgICAgICAgICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgICAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRBbm5vSWRdPVwic2VsZWN0ZWRBbm5vdGF0aW9uJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgW3BhZ2VIZWlnaHRdPVwicGFnZUhlaWdodFwiXG4gICAgICAgICAgICAgICAgIFtwYWdlV2lkdGhdPVwicGFnZVdpZHRoXCJcbiAgICAgICAgICAgICAgICAgKHVwZGF0ZSk9XCJvbkFubm90YXRpb25VcGRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIChkZWxldGUpPVwib25Bbm5vdGF0aW9uRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAoYW5ub3RhdGlvbkNsaWNrKT1cInNlbGVjdEFubm90YXRpb24oJGV2ZW50KVwiPlxuICA8L212LWFubm90YXRpb24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,94 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { v4 as uuid } from 'uuid';
3
- import moment from 'moment-timezone';
4
- import * as fromActions from '../../../store/actions/annotation.actions';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../toolbar/toolbar-event.service";
7
- import * as i2 from "@ngrx/store";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "./rectangle/rectangle.component";
10
- import * as i5 from "../ctx-toolbar/ctx-toolbar.component";
11
- export class AnnotationViewComponent {
12
- set annotation(value) {
13
- this.anno = { ...value };
14
- }
15
- set selectedAnnoId(selectedId) {
16
- if (selectedId) {
17
- const id = this.anno.id || this.anno.redactionId; // todo make it unique
18
- this.selected = selectedId.annotationId ? (selectedId.annotationId === id) : false;
19
- }
20
- }
21
- constructor(toolbarEvents, store) {
22
- this.toolbarEvents = toolbarEvents;
23
- this.store = store;
24
- this.update = new EventEmitter();
25
- this.delete = new EventEmitter();
26
- this.annotationClick = new EventEmitter();
27
- }
28
- onSelect() {
29
- const annotationId = this.anno.id || this.anno.redactionId;
30
- this.annotationClick.emit({ annotationId, editable: false, selected: true });
31
- }
32
- onRectangleUpdate(rectangle) {
33
- const annotation = { ...this.anno };
34
- annotation.rectangles = annotation.rectangles.filter(r => r.id !== rectangle.id);
35
- annotation.rectangles.push(rectangle);
36
- this.update.emit(annotation);
37
- }
38
- deleteHighlight() {
39
- this.delete.emit(this.anno);
40
- }
41
- addOrEditComment() {
42
- if (this.anno.comments.length === 0) {
43
- const comment = {
44
- annotationId: this.anno.id,
45
- content: '',
46
- createdBy: this.anno.createdBy,
47
- createdByDetails: undefined,
48
- createdDate: moment.utc().tz('Europe/London').toISOString(),
49
- id: uuid(),
50
- lastModifiedBy: '',
51
- lastModifiedByDetails: undefined,
52
- lastModifiedDate: '',
53
- tags: [],
54
- page: null,
55
- pages: {},
56
- pageHeight: null,
57
- selected: false,
58
- editable: false
59
- };
60
- this.store.dispatch(new fromActions.AddOrEditComment(comment));
61
- }
62
- this.selected = true;
63
- this.annotationClick.emit({ annotationId: this.anno.id, editable: true, selected: true });
64
- this.toolbarEvents.toggleCommentsPanel(true);
65
- }
66
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", 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: "17.3.8", 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
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: AnnotationViewComponent, decorators: [{
70
- type: Component,
71
- args: [{ selector: 'mv-annotation', 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" }]
72
- }], ctorParameters: () => [{ type: i1.ToolbarEventService }, { type: i2.Store }], propDecorators: { annotation: [{
73
- type: Input
74
- }], zoom: [{
75
- type: Input
76
- }], rotate: [{
77
- type: Input
78
- }], selectedAnnoId: [{
79
- type: Input
80
- }], pageHeight: [{
81
- type: Input
82
- }], pageWidth: [{
83
- type: Input
84
- }], update: [{
85
- type: Output
86
- }], delete: [{
87
- type: Output
88
- }], annotationClick: [{
89
- type: Output
90
- }], container: [{
91
- type: ViewChild,
92
- args: ['container', { static: false }]
93
- }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9hbm5vdGF0aW9uLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L2Fubm90YXRpb24tdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUdyQyxPQUFPLEtBQUssV0FBVyxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7O0FBU3pFLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsSUFBYSxVQUFVLENBQUMsS0FBSztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBS0QsSUFBYSxjQUFjLENBQUMsVUFBb0M7UUFDOUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsc0JBQXNCO1lBQ3hFLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxLQUFLLEVB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NEdBS1osVUFBVTtzQkFBdEIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFFb0MsU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbiB9IGZyb20gJy4vYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuL3JlY3RhbmdsZS9yZWN0YW5nbGUubW9kZWwnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFjdGlvbnMgZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQW5ub3RhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC1zZWxlY3QubW9kZWwnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1lbnQgfSBmcm9tICcuLi8uLi9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1hbm5vdGF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Fubm90YXRpb24tdmlldy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQW5ub3RhdGlvblZpZXdDb21wb25lbnQgeyAgLy8gdG9kbyByZW5hbWUgdGhpcyB0byBzZWxlY3Rpb24gdmV3IGNcblxuICBASW5wdXQoKSBzZXQgYW5ub3RhdGlvbih2YWx1ZSkge1xuICAgIHRoaXMuYW5ubyA9IHsgLi4udmFsdWUgfTtcbiAgfVxuICBhbm5vOiBBbm5vdGF0aW9uO1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkQW5ub0lkKHNlbGVjdGVkSWQ6IHsgYW5ub3RhdGlvbklkOiBzdHJpbmcgfSkge1xuICAgIGlmIChzZWxlY3RlZElkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuYW5uby5pZCB8fCB0aGlzLmFubm8ucmVkYWN0aW9uSWQ7IC8vIHRvZG8gbWFrZSBpdCB1bmlxdWVcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZElkLmFubm90YXRpb25JZCA/IChzZWxlY3RlZElkLmFubm90YXRpb25JZCA9PT0gaWQpIDogZmFsc2U7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVdpZHRoOiBudW1iZXI7XG4gIEBPdXRwdXQoKSB1cGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPEFubm90YXRpb24+KCk7XG4gIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPEFubm90YXRpb24+KCk7XG4gIEBPdXRwdXQoKSBhbm5vdGF0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkFubm90YXRpb24+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT5cbiAgKSB7IH1cblxuICBwdWJsaWMgb25TZWxlY3QoKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbklkID0gdGhpcy5hbm5vLmlkIHx8IHRoaXMuYW5uby5yZWRhY3Rpb25JZDtcbiAgICB0aGlzLmFubm90YXRpb25DbGljay5lbWl0KHsgYW5ub3RhdGlvbklkLCBlZGl0YWJsZTogZmFsc2UsIHNlbGVjdGVkOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIG9uUmVjdGFuZ2xlVXBkYXRlKHJlY3RhbmdsZTogUmVjdGFuZ2xlKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbiA9IHsgLi4udGhpcy5hbm5vIH07XG4gICAgYW5ub3RhdGlvbi5yZWN0YW5nbGVzID0gYW5ub3RhdGlvbi5yZWN0YW5nbGVzLmZpbHRlcihyID0+IHIuaWQgIT09IHJlY3RhbmdsZS5pZCk7XG4gICAgYW5ub3RhdGlvbi5yZWN0YW5nbGVzLnB1c2gocmVjdGFuZ2xlKTtcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KGFubm90YXRpb24pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMuYW5ubyk7XG4gIH1cblxuICBwdWJsaWMgYWRkT3JFZGl0Q29tbWVudCgpIHtcbiAgICBpZiAodGhpcy5hbm5vLmNvbW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgY29tbWVudDogQ29tbWVudCA9IHtcbiAgICAgICAgYW5ub3RhdGlvbklkOiB0aGlzLmFubm8uaWQsXG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICBjcmVhdGVkQnk6IHRoaXMuYW5uby5jcmVhdGVkQnksXG4gICAgICAgIGNyZWF0ZWRCeURldGFpbHM6IHVuZGVmaW5lZCxcbiAgICAgICAgY3JlYXRlZERhdGU6IG1vbWVudC51dGMoKS50eignRXVyb3BlL0xvbmRvbicpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIGxhc3RNb2RpZmllZEJ5OiAnJyxcbiAgICAgICAgbGFzdE1vZGlmaWVkQnlEZXRhaWxzOiB1bmRlZmluZWQsXG4gICAgICAgIGxhc3RNb2RpZmllZERhdGU6ICcnLFxuICAgICAgICB0YWdzOiBbXSxcbiAgICAgICAgcGFnZTogbnVsbCxcbiAgICAgICAgcGFnZXM6IHt9LFxuICAgICAgICBwYWdlSGVpZ2h0OiBudWxsLFxuICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIGVkaXRhYmxlOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21BY3Rpb25zLkFkZE9yRWRpdENvbW1lbnQoY29tbWVudCkpO1xuXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuYW5ub3RhdGlvbkNsaWNrLmVtaXQoeyBhbm5vdGF0aW9uSWQ6IHRoaXMuYW5uby5pZCwgZWRpdGFibGU6IHRydWUsIHNlbGVjdGVkOiB0cnVlIH0pO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVDb21tZW50c1BhbmVsKHRydWUpO1xuICB9XG59XG4iLCI8ZGl2ICNjb250YWluZXIgW3RhYmluZGV4XT1cImFubm8uaWRcIj5cbiAgPG12LWN0eC10b29sYmFyICpuZ0lmPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgW2NhbkRlbGV0ZV09XCJ0cnVlXCIgW2NhbkNvbW1lbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlc109XCJhbm5vLnJlY3RhbmdsZXNcIlxuICAgICAgICAgICAgICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAgICAgICAgICAgICBbcm90YXRlXT1cInJvdGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbcGFnZUhlaWdodF09XCJwYWdlSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIFtwYWdlV2lkdGhdPVwicGFnZVdpZHRoXCJcbiAgICAgICAgICAgICAgICAgIChkZWxldGVIaWdobGlnaHRFdmVudCk9XCJkZWxldGVIaWdobGlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAoYWRkT3JFZGl0Q29tbWVudEV2ZW50KT1cImFkZE9yRWRpdENvbW1lbnQoKVwiPlxuICA8L212LWN0eC10b29sYmFyPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZWN0YW5nbGUgb2YgYW5uby5yZWN0YW5nbGVzXCI+XG4gICAgPG12LWFubm8tcmVjdGFuZ2xlXG4gICAgICAoc2VsZWN0RXZlbnQpPVwib25TZWxlY3QoKVwiXG4gICAgICAodXBkYXRlRXZlbnQpPVwib25SZWN0YW5nbGVVcGRhdGUoJGV2ZW50KVwiXG4gICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICBbcm90YXRlXT1cInJvdGF0ZVwiXG4gICAgICBbcGFnZUhlaWdodF09XCJwYWdlSGVpZ2h0XCJcbiAgICAgIFtwYWdlV2lkdGhdPVwicGFnZVdpZHRoXCJcbiAgICAgIFtlZGl0YWJsZV09XCJhbm5vLnJlY3RhbmdsZXMubGVuZ3RoIDw9IDFcIlxuICAgICAgW2Fubm9SZWN0XT1cInJlY3RhbmdsZVwiXG4gICAgICBbY29sb3JdPVwiYW5uby5jb2xvclwiPlxuICAgIDwvbXYtYW5uby1yZWN0YW5nbGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=