@hmcts/media-viewer 2.9.4-RC.8 → 2.10.0

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 (477) hide show
  1. package/assets/all.scss +1 -1
  2. package/assets/sass/tags.scss +1 -1
  3. package/assets/sass/toolbar/main-toolbar.scss +7 -6
  4. package/esm2020/hmcts-media-viewer.mjs +5 -0
  5. package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
  6. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
  7. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +75 -0
  8. package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
  9. package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
  10. package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
  11. package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
  12. package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +87 -0
  13. package/esm2020/lib/annotations/annotations.module.mjs +158 -0
  14. package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +176 -0
  15. package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
  16. package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
  17. package/esm2020/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +31 -0
  18. package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
  19. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +61 -0
  20. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +53 -0
  21. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
  22. package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
  23. package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +123 -0
  24. package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +113 -0
  25. package/esm2020/lib/annotations/pipes/date/date.pipe.mjs +26 -0
  26. package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
  27. package/esm2020/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +16 -0
  28. package/esm2020/lib/annotations/services/annotation-api/annotation-api.service.mjs +58 -0
  29. package/esm2020/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +45 -0
  30. package/esm2020/lib/annotations/services/tags/tags.services.mjs +41 -0
  31. package/esm2020/lib/annotations/tags/tags.component.mjs +53 -0
  32. package/esm2020/lib/bookmark/components/bookmark-icons.component.mjs +25 -0
  33. package/esm2020/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +22 -0
  34. package/esm2020/lib/icp/icp-follower.service.mjs +60 -0
  35. package/esm2020/lib/icp/icp-presenter.service.mjs +55 -0
  36. package/esm2020/lib/icp/icp-session-api.service.mjs +21 -0
  37. package/esm2020/lib/icp/icp-update.service.mjs +57 -0
  38. package/esm2020/lib/icp/icp.service.mjs +93 -0
  39. package/esm2020/lib/icp/participants-list/participants-list.component.mjs +30 -0
  40. package/esm2020/lib/icp/socket.service.mjs +118 -0
  41. package/esm2020/lib/media-viewer.component.mjs +244 -0
  42. package/esm2020/lib/media-viewer.module.mjs +151 -0
  43. package/esm2020/lib/print.service.mjs +30 -0
  44. package/esm2020/lib/redaction/components/redaction.component.mjs +91 -0
  45. package/esm2020/lib/redaction/services/redaction-api.service.mjs +50 -0
  46. package/esm2020/lib/shared/gov-uk-date/gov-uk-date.component.mjs +28 -0
  47. package/esm2020/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +34 -0
  48. package/esm2020/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +63 -0
  49. package/esm2020/lib/shared/gov-uk-label/gov-uk-label.component.mjs +44 -0
  50. package/esm2020/lib/shared/shared.module.mjs +53 -0
  51. package/esm2020/lib/shared/util/services/number.helper.service.mjs +23 -0
  52. package/{esm2015/lib/store/bookmarks-store-utils.js → esm2020/lib/store/bookmarks-store-utils.mjs} +1 -3
  53. package/esm2020/lib/store/effects/annotation.effects.mjs +44 -0
  54. package/esm2020/lib/store/effects/bookmarks.effects.mjs +44 -0
  55. package/esm2020/lib/store/effects/document.effects.mjs +44 -0
  56. package/esm2020/lib/store/effects/icp.effects.mjs +26 -0
  57. package/esm2020/lib/store/effects/redaction.effects.mjs +67 -0
  58. package/esm2020/lib/store/reducers/annotations.reducer.mjs +183 -0
  59. package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +116 -0
  60. package/esm2020/lib/store/reducers/document.reducer.mjs +135 -0
  61. package/esm2020/lib/store/reducers/icp.reducer.mjs +56 -0
  62. package/esm2020/lib/store/reducers/redaction.reducer.mjs +116 -0
  63. package/esm2020/lib/store/reducers/tags.reducer.mjs +93 -0
  64. package/esm2020/lib/store/selectors/annotation.selectors.mjs +81 -0
  65. package/esm2020/lib/store/selectors/bookmark.selectors.mjs +36 -0
  66. package/{esm2015/lib/store/selectors/document.selectors.js → esm2020/lib/store/selectors/document.selectors.mjs} +3 -6
  67. package/esm2020/lib/store/selectors/icp.selectors.mjs +13 -0
  68. package/{esm2015/lib/store/selectors/redaction.selectors.js → esm2020/lib/store/selectors/redaction.selectors.mjs} +6 -10
  69. package/{esm2015/lib/store/selectors/tag.selectors.js → esm2020/lib/store/selectors/tag.selectors.mjs} +4 -7
  70. package/esm2020/lib/store/store-utils.mjs +131 -0
  71. package/esm2020/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +41 -0
  72. package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +188 -0
  73. package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +199 -0
  74. package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +66 -0
  75. package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +105 -0
  76. package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  77. package/{esm2015/lib/toolbar/toolbar-event.service.js → esm2020/lib/toolbar/toolbar-event.service.mjs} +7 -5
  78. package/esm2020/lib/toolbar/toolbar.module.mjs +67 -0
  79. package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +78 -0
  80. package/esm2020/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +22 -0
  81. package/esm2020/lib/viewers/grab-n-drag.directive.mjs +57 -0
  82. package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  83. package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +58 -0
  84. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +193 -0
  85. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +40 -0
  86. package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +230 -0
  87. package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +192 -0
  88. package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  89. package/esm2020/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +77 -0
  90. package/esm2020/lib/viewers/rotation-persist/rotation-api.service.mjs +27 -0
  91. package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +64 -0
  92. package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  93. package/esm2020/lib/viewers/viewer-event.service.mjs +30 -0
  94. package/esm2020/lib/viewers/viewer-util.service.mjs +20 -0
  95. package/esm2020/public_api.mjs +32 -0
  96. package/fesm2015/hmcts-media-viewer.mjs +6602 -0
  97. package/fesm2015/hmcts-media-viewer.mjs.map +1 -0
  98. package/fesm2020/hmcts-media-viewer.mjs +6893 -0
  99. package/fesm2020/hmcts-media-viewer.mjs.map +1 -0
  100. package/hmcts-media-viewer.d.ts.map +1 -1
  101. package/index.d.ts +6 -0
  102. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +3 -0
  103. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -1
  104. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +3 -0
  105. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -1
  106. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +3 -0
  107. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -1
  108. package/lib/annotations/annotation-set/annotation-set.component.d.ts +3 -0
  109. package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -1
  110. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +3 -0
  111. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -1
  112. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +5 -2
  113. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -1
  114. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +3 -0
  115. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -1
  116. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +3 -0
  117. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -1
  118. package/lib/annotations/annotations.module.d.ts +32 -0
  119. package/lib/annotations/annotations.module.d.ts.map +1 -1
  120. package/lib/annotations/comment-set/comment/comment.component.d.ts +3 -0
  121. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -1
  122. package/lib/annotations/comment-set/comment/comment.service.d.ts +5 -2
  123. package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -1
  124. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +3 -0
  125. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -1
  126. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +3 -0
  127. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +1 -1
  128. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +3 -0
  129. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -1
  130. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +6 -3
  131. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +1 -1
  132. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +3 -0
  133. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +1 -1
  134. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +3 -0
  135. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +1 -1
  136. package/lib/annotations/comment-set/comment-set-render.service.d.ts +3 -0
  137. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -1
  138. package/lib/annotations/comment-set/comment-set.component.d.ts +3 -0
  139. package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -1
  140. package/lib/annotations/comments-summary/comments-summary.component.d.ts +6 -3
  141. package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -1
  142. package/lib/annotations/pipes/date/date.pipe.d.ts +3 -0
  143. package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -1
  144. package/lib/annotations/pipes/filter/filter.pipe.d.ts +3 -0
  145. package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -1
  146. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +3 -0
  147. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -1
  148. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +3 -0
  149. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -1
  150. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +3 -0
  151. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -1
  152. package/lib/annotations/services/tags/tags.services.d.ts +3 -0
  153. package/lib/annotations/services/tags/tags.services.d.ts.map +1 -1
  154. package/lib/annotations/tags/tags.component.d.ts +6 -3
  155. package/lib/annotations/tags/tags.component.d.ts.map +1 -1
  156. package/lib/bookmark/components/bookmark-icons.component.d.ts +3 -0
  157. package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -1
  158. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +3 -0
  159. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -1
  160. package/lib/icp/icp-follower.service.d.ts +3 -0
  161. package/lib/icp/icp-follower.service.d.ts.map +1 -1
  162. package/lib/icp/icp-presenter.service.d.ts +3 -0
  163. package/lib/icp/icp-presenter.service.d.ts.map +1 -1
  164. package/lib/icp/icp-session-api.service.d.ts +3 -0
  165. package/lib/icp/icp-session-api.service.d.ts.map +1 -1
  166. package/lib/icp/icp-update.service.d.ts +3 -0
  167. package/lib/icp/icp-update.service.d.ts.map +1 -1
  168. package/lib/icp/icp.service.d.ts +3 -0
  169. package/lib/icp/icp.service.d.ts.map +1 -1
  170. package/lib/icp/participants-list/participants-list.component.d.ts +3 -0
  171. package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -1
  172. package/lib/icp/socket.service.d.ts +3 -0
  173. package/lib/icp/socket.service.d.ts.map +1 -1
  174. package/lib/media-viewer.component.d.ts +3 -0
  175. package/lib/media-viewer.component.d.ts.map +1 -1
  176. package/lib/media-viewer.module.d.ts +31 -0
  177. package/lib/media-viewer.module.d.ts.map +1 -1
  178. package/lib/print.service.d.ts +3 -0
  179. package/lib/print.service.d.ts.map +1 -1
  180. package/lib/redaction/components/redaction.component.d.ts +3 -0
  181. package/lib/redaction/components/redaction.component.d.ts.map +1 -1
  182. package/lib/redaction/services/redaction-api.service.d.ts +3 -0
  183. package/lib/redaction/services/redaction-api.service.d.ts.map +1 -1
  184. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +3 -0
  185. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -1
  186. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +3 -0
  187. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -1
  188. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +3 -0
  189. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -1
  190. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +3 -0
  191. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -1
  192. package/lib/shared/shared.module.d.ts +11 -0
  193. package/lib/shared/shared.module.d.ts.map +1 -1
  194. package/lib/shared/util/services/number.helper.service.d.ts +3 -0
  195. package/lib/shared/util/services/number.helper.service.d.ts.map +1 -1
  196. package/lib/store/actions/annotation.actions.d.ts +1 -1
  197. package/lib/store/actions/annotation.actions.d.ts.map +1 -1
  198. package/lib/store/actions/bookmark.actions.d.ts +1 -1
  199. package/lib/store/actions/bookmark.actions.d.ts.map +1 -1
  200. package/lib/store/actions/document.actions.d.ts +1 -1
  201. package/lib/store/actions/document.actions.d.ts.map +1 -1
  202. package/lib/store/actions/icp.actions.d.ts +1 -1
  203. package/lib/store/actions/icp.actions.d.ts.map +1 -1
  204. package/lib/store/actions/redaction.actions.d.ts +1 -1
  205. package/lib/store/actions/redaction.actions.d.ts.map +1 -1
  206. package/lib/store/actions/tag.actions.d.ts +1 -1
  207. package/lib/store/actions/tag.actions.d.ts.map +1 -1
  208. package/lib/store/effects/annotation.effects.d.ts +6 -3
  209. package/lib/store/effects/annotation.effects.d.ts.map +1 -1
  210. package/lib/store/effects/bookmarks.effects.d.ts +8 -5
  211. package/lib/store/effects/bookmarks.effects.d.ts.map +1 -1
  212. package/lib/store/effects/document.effects.d.ts +6 -3
  213. package/lib/store/effects/document.effects.d.ts.map +1 -1
  214. package/lib/store/effects/icp.effects.d.ts +5 -2
  215. package/lib/store/effects/icp.effects.d.ts.map +1 -1
  216. package/lib/store/effects/redaction.effects.d.ts +9 -6
  217. package/lib/store/effects/redaction.effects.d.ts.map +1 -1
  218. package/lib/store/selectors/annotation.selectors.d.ts +70 -27
  219. package/lib/store/selectors/annotation.selectors.d.ts.map +1 -1
  220. package/lib/store/selectors/bookmark.selectors.d.ts +18 -10
  221. package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -1
  222. package/lib/store/selectors/document.selectors.d.ts +13 -11
  223. package/lib/store/selectors/document.selectors.d.ts.map +1 -1
  224. package/lib/store/selectors/icp.selectors.d.ts +9 -8
  225. package/lib/store/selectors/icp.selectors.d.ts.map +1 -1
  226. package/lib/store/selectors/redaction.selectors.d.ts +17 -11
  227. package/lib/store/selectors/redaction.selectors.d.ts.map +1 -1
  228. package/lib/store/selectors/tag.selectors.d.ts +14 -12
  229. package/lib/store/selectors/tag.selectors.d.ts.map +1 -1
  230. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +3 -0
  231. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -1
  232. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +4 -0
  233. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -1
  234. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +5 -2
  235. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -1
  236. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +3 -0
  237. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -1
  238. package/lib/toolbar/search-bar/search-bar.component.d.ts +3 -0
  239. package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -1
  240. package/lib/toolbar/toolbar-button-visibility.service.d.ts +3 -0
  241. package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -1
  242. package/lib/toolbar/toolbar-event.service.d.ts +5 -2
  243. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  244. package/lib/toolbar/toolbar.module.d.ts +13 -0
  245. package/lib/toolbar/toolbar.module.d.ts.map +1 -1
  246. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +3 -0
  247. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -1
  248. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +3 -0
  249. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -1
  250. package/lib/viewers/grab-n-drag.directive.d.ts +3 -0
  251. package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -1
  252. package/lib/viewers/image-viewer/image-viewer.component.d.ts +3 -0
  253. package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -1
  254. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +3 -0
  255. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -1
  256. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +3 -0
  257. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -1
  258. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +3 -0
  259. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -1
  260. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +5 -2
  261. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -1
  262. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +3 -0
  263. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +1 -1
  264. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +3 -0
  265. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -1
  266. package/lib/viewers/rotation-persist/rotation-api.service.d.ts +3 -0
  267. package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -1
  268. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +3 -0
  269. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -1
  270. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +3 -0
  271. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -1
  272. package/lib/viewers/viewer-event.service.d.ts +3 -0
  273. package/lib/viewers/viewer-event.service.d.ts.map +1 -1
  274. package/lib/viewers/viewer-util.service.d.ts +3 -0
  275. package/lib/viewers/viewer-util.service.d.ts.map +1 -1
  276. package/package.json +34 -22
  277. package/public_api.d.ts +1 -0
  278. package/public_api.d.ts.map +1 -1
  279. package/bundles/hmcts-media-viewer.umd.js +0 -7539
  280. package/bundles/hmcts-media-viewer.umd.js.map +0 -1
  281. package/bundles/hmcts-media-viewer.umd.min.js +0 -2
  282. package/bundles/hmcts-media-viewer.umd.min.js.map +0 -1
  283. package/esm2015/hmcts-media-viewer.js +0 -64
  284. package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +0 -113
  285. package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +0 -111
  286. package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +0 -61
  287. package/esm2015/lib/annotations/annotation-set/annotation-set.component.js +0 -47
  288. package/esm2015/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +0 -86
  289. package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +0 -108
  290. package/esm2015/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +0 -107
  291. package/esm2015/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +0 -81
  292. package/esm2015/lib/annotations/annotations.module.js +0 -103
  293. package/esm2015/lib/annotations/comment-set/comment/comment.component.js +0 -162
  294. package/esm2015/lib/annotations/comment-set/comment/comment.service.js +0 -47
  295. package/esm2015/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.js +0 -48
  296. package/esm2015/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.js +0 -31
  297. package/esm2015/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +0 -95
  298. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.js +0 -60
  299. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.js +0 -53
  300. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +0 -68
  301. package/esm2015/lib/annotations/comment-set/comment-set-render.service.js +0 -51
  302. package/esm2015/lib/annotations/comment-set/comment-set.component.js +0 -110
  303. package/esm2015/lib/annotations/comments-summary/comments-summary.component.js +0 -106
  304. package/esm2015/lib/annotations/pipes/date/date.pipe.js +0 -22
  305. package/esm2015/lib/annotations/pipes/filter/filter.pipe.js +0 -28
  306. package/esm2015/lib/annotations/pipes/unsnake/unsnake.pipe.js +0 -12
  307. package/esm2015/lib/annotations/services/annotation-api/annotation-api.service.js +0 -59
  308. package/esm2015/lib/annotations/services/bookmarks-api/bookmarks-api.service.js +0 -46
  309. package/esm2015/lib/annotations/services/tags/tags.services.js +0 -36
  310. package/esm2015/lib/annotations/tags/tags.component.js +0 -52
  311. package/esm2015/lib/bookmark/components/bookmark-icons.component.js +0 -26
  312. package/esm2015/lib/icp/confirm-exit/confirm-action-dialog.component.js +0 -25
  313. package/esm2015/lib/icp/icp-follower.service.js +0 -63
  314. package/esm2015/lib/icp/icp-presenter.service.js +0 -57
  315. package/esm2015/lib/icp/icp-session-api.service.js +0 -22
  316. package/esm2015/lib/icp/icp-update.service.js +0 -56
  317. package/esm2015/lib/icp/icp.service.js +0 -98
  318. package/esm2015/lib/icp/participants-list/participants-list.component.js +0 -32
  319. package/esm2015/lib/icp/socket.service.js +0 -117
  320. package/esm2015/lib/media-viewer.component.js +0 -210
  321. package/esm2015/lib/media-viewer.module.js +0 -102
  322. package/esm2015/lib/print.service.js +0 -25
  323. package/esm2015/lib/redaction/components/redaction.component.js +0 -97
  324. package/esm2015/lib/redaction/services/redaction-api.service.js +0 -51
  325. package/esm2015/lib/shared/gov-uk-date/gov-uk-date.component.js +0 -21
  326. package/esm2015/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +0 -27
  327. package/esm2015/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -42
  328. package/esm2015/lib/shared/gov-uk-label/gov-uk-label.component.js +0 -32
  329. package/esm2015/lib/shared/shared.module.js +0 -34
  330. package/esm2015/lib/shared/util/services/number.helper.service.js +0 -23
  331. package/esm2015/lib/store/effects/annotation.effects.js +0 -55
  332. package/esm2015/lib/store/effects/bookmarks.effects.js +0 -66
  333. package/esm2015/lib/store/effects/document.effects.js +0 -59
  334. package/esm2015/lib/store/effects/icp.effects.js +0 -37
  335. package/esm2015/lib/store/effects/redaction.effects.js +0 -94
  336. package/esm2015/lib/store/reducers/annotations.reducer.js +0 -115
  337. package/esm2015/lib/store/reducers/bookmarks.reducer.js +0 -80
  338. package/esm2015/lib/store/reducers/document.reducer.js +0 -100
  339. package/esm2015/lib/store/reducers/icp.reducer.js +0 -40
  340. package/esm2015/lib/store/reducers/redaction.reducer.js +0 -75
  341. package/esm2015/lib/store/reducers/tags.reducer.js +0 -67
  342. package/esm2015/lib/store/selectors/annotation.selectors.js +0 -84
  343. package/esm2015/lib/store/selectors/bookmark.selectors.js +0 -39
  344. package/esm2015/lib/store/selectors/icp.selectors.js +0 -18
  345. package/esm2015/lib/store/store-utils.js +0 -105
  346. package/esm2015/lib/toolbar/icp-toolbar/icp-toolbar.component.js +0 -43
  347. package/esm2015/lib/toolbar/main-toolbar/main-toolbar.component.js +0 -170
  348. package/esm2015/lib/toolbar/redaction-search-bar/redaction-search-bar.component.js +0 -201
  349. package/esm2015/lib/toolbar/redaction-toolbar/redaction-toolbar.component.js +0 -70
  350. package/esm2015/lib/toolbar/search-bar/search-bar.component.js +0 -102
  351. package/esm2015/lib/toolbar/toolbar-button-visibility.service.js +0 -92
  352. package/esm2015/lib/toolbar/toolbar.module.js +0 -45
  353. package/esm2015/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.js +0 -72
  354. package/esm2015/lib/viewers/convertible-content-viewer/document-conversion-api.service.js +0 -23
  355. package/esm2015/lib/viewers/grab-n-drag.directive.js +0 -51
  356. package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +0 -164
  357. package/esm2015/lib/viewers/multimedia-player/multimedia-player.component.js +0 -54
  358. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +0 -203
  359. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +0 -43
  360. package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +0 -220
  361. package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +0 -179
  362. package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +0 -44
  363. package/esm2015/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +0 -72
  364. package/esm2015/lib/viewers/rotation-persist/rotation-api.service.js +0 -28
  365. package/esm2015/lib/viewers/rotation-persist/rotation-persist.directive.js +0 -67
  366. package/esm2015/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +0 -47
  367. package/esm2015/lib/viewers/viewer-event.service.js +0 -30
  368. package/esm2015/lib/viewers/viewer-util.service.js +0 -23
  369. package/esm2015/public_api.js +0 -31
  370. package/fesm2015/hmcts-media-viewer.js +0 -6572
  371. package/fesm2015/hmcts-media-viewer.js.map +0 -1
  372. package/hmcts-media-viewer.d.ts +0 -69
  373. package/hmcts-media-viewer.metadata.json +0 -1
  374. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ngfactory.d.ts.map +0 -1
  375. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ngfactory.d.ts.map +0 -1
  376. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ngfactory.d.ts.map +0 -1
  377. package/lib/annotations/annotation-set/annotation-set.component.ngfactory.d.ts.map +0 -1
  378. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.ngfactory.d.ts.map +0 -1
  379. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ngfactory.d.ts.map +0 -1
  380. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ngfactory.d.ts.map +0 -1
  381. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ngfactory.d.ts.map +0 -1
  382. package/lib/annotations/annotations.module.ngfactory.d.ts.map +0 -1
  383. package/lib/annotations/comment-set/comment/comment.component.ngfactory.d.ts.map +0 -1
  384. package/lib/annotations/comment-set/comment/comment.service.ngfactory.d.ts.map +0 -1
  385. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ngfactory.d.ts.map +0 -1
  386. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ngfactory.d.ts.map +0 -1
  387. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ngfactory.d.ts.map +0 -1
  388. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ngfactory.d.ts.map +0 -1
  389. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ngfactory.d.ts.map +0 -1
  390. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ngfactory.d.ts.map +0 -1
  391. package/lib/annotations/comment-set/comment-set-render.service.ngfactory.d.ts.map +0 -1
  392. package/lib/annotations/comment-set/comment-set.component.ngfactory.d.ts.map +0 -1
  393. package/lib/annotations/comments-summary/comments-summary.component.ngfactory.d.ts.map +0 -1
  394. package/lib/annotations/pipes/date/date.pipe.ngfactory.d.ts.map +0 -1
  395. package/lib/annotations/pipes/filter/filter.pipe.ngfactory.d.ts.map +0 -1
  396. package/lib/annotations/pipes/unsnake/unsnake.pipe.ngfactory.d.ts.map +0 -1
  397. package/lib/annotations/services/annotation-api/annotation-api.service.ngfactory.d.ts.map +0 -1
  398. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.ngfactory.d.ts.map +0 -1
  399. package/lib/annotations/services/tags/tags.services.ngfactory.d.ts.map +0 -1
  400. package/lib/annotations/tags/tags.component.ngfactory.d.ts.map +0 -1
  401. package/lib/bookmark/components/bookmark-icons.component.ngfactory.d.ts.map +0 -1
  402. package/lib/icp/confirm-exit/confirm-action-dialog.component.ngfactory.d.ts.map +0 -1
  403. package/lib/icp/icp-follower.service.ngfactory.d.ts.map +0 -1
  404. package/lib/icp/icp-presenter.service.ngfactory.d.ts.map +0 -1
  405. package/lib/icp/icp-session-api.service.ngfactory.d.ts.map +0 -1
  406. package/lib/icp/icp-update.service.ngfactory.d.ts.map +0 -1
  407. package/lib/icp/icp.service.ngfactory.d.ts.map +0 -1
  408. package/lib/icp/participants-list/participants-list.component.ngfactory.d.ts.map +0 -1
  409. package/lib/icp/socket.service.ngfactory.d.ts.map +0 -1
  410. package/lib/media-viewer.component.ngfactory.d.ts.map +0 -1
  411. package/lib/media-viewer.module.ngfactory.d.ts.map +0 -1
  412. package/lib/print.service.ngfactory.d.ts.map +0 -1
  413. package/lib/redaction/components/redaction.component.ngfactory.d.ts.map +0 -1
  414. package/lib/redaction/services/redaction-api.service.ngfactory.d.ts.map +0 -1
  415. package/lib/shared/gov-uk-date/gov-uk-date.component.ngfactory.d.ts.map +0 -1
  416. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ngfactory.d.ts.map +0 -1
  417. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ngfactory.d.ts.map +0 -1
  418. package/lib/shared/gov-uk-label/gov-uk-label.component.ngfactory.d.ts.map +0 -1
  419. package/lib/shared/shared.module.ngfactory.d.ts.map +0 -1
  420. package/lib/shared/util/services/number.helper.service.ngfactory.d.ts.map +0 -1
  421. package/lib/store/effects/annotation.effects.ngfactory.d.ts.map +0 -1
  422. package/lib/store/effects/bookmarks.effects.ngfactory.d.ts.map +0 -1
  423. package/lib/store/effects/document.effects.ngfactory.d.ts.map +0 -1
  424. package/lib/store/effects/icp.effects.ngfactory.d.ts.map +0 -1
  425. package/lib/store/effects/redaction.effects.ngfactory.d.ts.map +0 -1
  426. package/lib/toolbar/icp-toolbar/icp-toolbar.component.ngfactory.d.ts.map +0 -1
  427. package/lib/toolbar/main-toolbar/main-toolbar.component.ngfactory.d.ts.map +0 -1
  428. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.ngfactory.d.ts.map +0 -1
  429. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.scss.shim.ngstyle.d.ts.map +0 -1
  430. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ngfactory.d.ts.map +0 -1
  431. package/lib/toolbar/search-bar/search-bar.component.ngfactory.d.ts.map +0 -1
  432. package/lib/toolbar/toolbar-button-visibility.service.ngfactory.d.ts.map +0 -1
  433. package/lib/toolbar/toolbar-event.service.ngfactory.d.ts.map +0 -1
  434. package/lib/toolbar/toolbar.module.ngfactory.d.ts.map +0 -1
  435. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ngfactory.d.ts.map +0 -1
  436. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.ngfactory.d.ts.map +0 -1
  437. package/lib/viewers/grab-n-drag.directive.ngfactory.d.ts.map +0 -1
  438. package/lib/viewers/image-viewer/image-viewer.component.ngfactory.d.ts.map +0 -1
  439. package/lib/viewers/multimedia-player/multimedia-player.component.ngfactory.d.ts.map +0 -1
  440. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ngfactory.d.ts.map +0 -1
  441. package/lib/viewers/pdf-viewer/pdf-viewer.component.ngfactory.d.ts.map +0 -1
  442. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ngfactory.d.ts.map +0 -1
  443. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ngfactory.d.ts.map +0 -1
  444. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.ngfactory.d.ts.map +0 -1
  445. package/lib/viewers/rotation-persist/rotation-api.service.ngfactory.d.ts.map +0 -1
  446. package/lib/viewers/rotation-persist/rotation-persist.directive.ngfactory.d.ts.map +0 -1
  447. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.ngfactory.d.ts.map +0 -1
  448. package/lib/viewers/viewer-event.service.ngfactory.d.ts.map +0 -1
  449. package/lib/viewers/viewer-util.service.ngfactory.d.ts.map +0 -1
  450. /package/{esm2015/lib/annotations/annotation-set/annotation-set.model.js → esm2020/lib/annotations/annotation-set/annotation-set.model.mjs} +0 -0
  451. /package/{esm2015/lib/annotations/annotation-set/annotation-view/annotation.model.js → esm2020/lib/annotations/annotation-set/annotation-view/annotation.model.mjs} +0 -0
  452. /package/{esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.js → esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs} +0 -0
  453. /package/{esm2015/lib/annotations/comment-set/comment/comment.model.js → esm2020/lib/annotations/comment-set/comment/comment.model.mjs} +0 -0
  454. /package/{esm2015/lib/annotations/models/api-persisted.model.js → esm2020/lib/annotations/models/api-persisted.model.mjs} +0 -0
  455. /package/{esm2015/lib/annotations/models/event-select.model.js → esm2020/lib/annotations/models/event-select.model.mjs} +0 -0
  456. /package/{esm2015/lib/annotations/models/tags.model.js → esm2020/lib/annotations/models/tags.model.mjs} +0 -0
  457. /package/{esm2015/lib/annotations/models/user.model.js → esm2020/lib/annotations/models/user.model.mjs} +0 -0
  458. /package/{esm2015/lib/icp/icp.events.js → esm2020/lib/icp/icp.events.mjs} +0 -0
  459. /package/{esm2015/lib/icp/icp.interfaces.js → esm2020/lib/icp/icp.interfaces.mjs} +0 -0
  460. /package/{esm2015/lib/redaction/services/redaction.model.js → esm2020/lib/redaction/services/redaction.model.mjs} +0 -0
  461. /package/{esm2015/lib/shared/util/helpers/html-templates.helper.js → esm2020/lib/shared/util/helpers/html-templates.helper.mjs} +0 -0
  462. /package/{esm2015/lib/store/actions/annotation.actions.js → esm2020/lib/store/actions/annotation.actions.mjs} +0 -0
  463. /package/{esm2015/lib/store/actions/bookmark.actions.js → esm2020/lib/store/actions/bookmark.actions.mjs} +0 -0
  464. /package/{esm2015/lib/store/actions/document.actions.js → esm2020/lib/store/actions/document.actions.mjs} +0 -0
  465. /package/{esm2015/lib/store/actions/icp.actions.js → esm2020/lib/store/actions/icp.actions.mjs} +0 -0
  466. /package/{esm2015/lib/store/actions/redaction.actions.js → esm2020/lib/store/actions/redaction.actions.mjs} +0 -0
  467. /package/{esm2015/lib/store/actions/tag.actions.js → esm2020/lib/store/actions/tag.actions.mjs} +0 -0
  468. /package/{esm2015/lib/store/effects/index.js → esm2020/lib/store/effects/index.mjs} +0 -0
  469. /package/{esm2015/lib/store/models/bookmarks.interface.js → esm2020/lib/store/models/bookmarks.interface.mjs} +0 -0
  470. /package/{esm2015/lib/store/models/filters.interface.js → esm2020/lib/store/models/filters.interface.mjs} +0 -0
  471. /package/{esm2015/lib/store/reducers/reducers.js → esm2020/lib/store/reducers/reducers.mjs} +0 -0
  472. /package/{esm2015/lib/toolbar/icp-event.service.js → esm2020/lib/toolbar/icp-event.service.mjs} +0 -0
  473. /package/{esm2015/lib/toolbar/redaction-search-bar/redaction-search.model.js → esm2020/lib/toolbar/redaction-search-bar/redaction-search.model.mjs} +0 -0
  474. /package/{esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.js → esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs} +0 -0
  475. /package/{esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js → esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs} +0 -0
  476. /package/{esm2015/lib/viewers/rotation-persist/rotation.model.js → esm2020/lib/viewers/rotation-persist/rotation.model.mjs} +0 -0
  477. /package/{esm2015/lib/viewers/viewer-exception.model.js → esm2020/lib/viewers/viewer-exception.model.mjs} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmcts-media-viewer.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.ts","../../../projects/media-viewer/src/lib/toolbar/icp-event.service.ts","../../../projects/media-viewer/src/lib/toolbar/toolbar-event.service.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ts","../../../projects/media-viewer/src/lib/print.service.ts","../../../projects/media-viewer/src/lib/viewers/viewer-exception.model.ts","../../../projects/media-viewer/src/lib/toolbar/toolbar-button-visibility.service.ts","../../../projects/media-viewer/src/lib/store/actions/document.actions.ts","../../../projects/media-viewer/src/lib/store/actions/tag.actions.ts","../../../projects/media-viewer/src/lib/store/actions/icp.actions.ts","../../../projects/media-viewer/src/lib/store/reducers/document.reducer.ts","../../../projects/media-viewer/src/lib/store/actions/annotation.actions.ts","../../../projects/media-viewer/src/lib/store/store-utils.ts","../../../projects/media-viewer/src/lib/store/reducers/annotations.reducer.ts","../../../projects/media-viewer/src/lib/store/reducers/tags.reducer.ts","../../../projects/media-viewer/src/lib/store/actions/bookmark.actions.ts","../../../projects/media-viewer/src/lib/store/bookmarks-store-utils.ts","../../../projects/media-viewer/src/lib/store/reducers/bookmarks.reducer.ts","../../../projects/media-viewer/src/lib/store/actions/redaction.actions.ts","../../../projects/media-viewer/src/lib/store/reducers/redaction.reducer.ts","../../../projects/media-viewer/src/lib/store/reducers/icp.reducer.ts","../../../projects/media-viewer/src/lib/store/reducers/reducers.ts","../../../projects/media-viewer/src/lib/store/selectors/document.selectors.ts","../../../projects/media-viewer/src/lib/viewers/viewer-event.service.ts","../../../projects/media-viewer/src/lib/icp/icp.events.ts","../../../projects/media-viewer/src/lib/icp/socket.service.ts","../../../projects/media-viewer/src/lib/icp/icp-update.service.ts","../../../projects/media-viewer/src/lib/store/selectors/icp.selectors.ts","../../../projects/media-viewer/src/lib/icp/icp-presenter.service.ts","../../../projects/media-viewer/src/lib/icp/icp-follower.service.ts","../../../projects/media-viewer/src/lib/icp/icp.service.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/pdf-viewer.component.ts","../../../projects/media-viewer/src/lib/viewers/viewer-util.service.ts","../../../projects/media-viewer/src/lib/viewers/image-viewer/image-viewer.component.ts","../../../projects/media-viewer/src/lib/viewers/unsupported-viewer/unsupported-viewer.component.ts","../../../projects/media-viewer/src/lib/annotations/services/annotation-api/annotation-api.service.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/comment.service.ts","../../../projects/media-viewer/src/lib/store/selectors/tag.selectors.ts","../../../projects/media-viewer/src/lib/store/selectors/annotation.selectors.ts","../../../projects/media-viewer/src/lib/media-viewer.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ts","../../../projects/media-viewer/src/lib/toolbar/redaction-search-bar/redaction-search-bar.component.ts","../../../projects/media-viewer/src/lib/shared/util/services/number.helper.service.ts","../../../projects/media-viewer/src/lib/toolbar/main-toolbar/main-toolbar.component.ts","../../../projects/media-viewer/src/lib/toolbar/search-bar/search-bar.component.ts","../../../projects/media-viewer/src/lib/store/selectors/redaction.selectors.ts","../../../projects/media-viewer/src/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ts","../../../projects/media-viewer/src/lib/toolbar/icp-toolbar/icp-toolbar.component.ts","../../../projects/media-viewer/src/lib/toolbar/toolbar.module.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-view/annotation-view.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-set.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ts","../../../projects/media-viewer/src/lib/annotations/services/tags/tags.services.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/comment.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-render.service.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ts","../../../projects/media-viewer/src/lib/annotations/comments-summary/comments-summary.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ts","../../../projects/media-viewer/src/lib/annotations/tags/tags.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ts","../../../projects/media-viewer/src/lib/annotations/pipes/date/date.pipe.ts","../../../projects/media-viewer/src/lib/annotations/services/bookmarks-api/bookmarks-api.service.ts","../../../projects/media-viewer/src/lib/annotations/pipes/filter/filter.pipe.ts","../../../projects/media-viewer/src/lib/annotations/pipes/unsnake/unsnake.pipe.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-date/gov-uk-date.component.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ts","../../../projects/media-viewer/src/lib/shared/util/helpers/html-templates.helper.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-label/gov-uk-label.component.ts","../../../projects/media-viewer/src/lib/shared/shared.module.ts","../../../projects/media-viewer/src/lib/store/selectors/bookmark.selectors.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ts","../../../projects/media-viewer/src/lib/annotations/annotations.module.ts","../../../projects/media-viewer/src/lib/viewers/grab-n-drag.directive.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/side-bar/side-bar.component.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ts","../../../projects/media-viewer/src/lib/redaction/components/redaction.component.ts","../../../projects/media-viewer/src/lib/icp/icp-session-api.service.ts","../../../projects/media-viewer/src/lib/store/effects/annotation.effects.ts","../../../projects/media-viewer/src/lib/store/effects/bookmarks.effects.ts","../../../projects/media-viewer/src/lib/redaction/services/redaction-api.service.ts","../../../projects/media-viewer/src/lib/store/effects/redaction.effects.ts","../../../projects/media-viewer/src/lib/viewers/convertible-content-viewer/document-conversion-api.service.ts","../../../projects/media-viewer/src/lib/viewers/rotation-persist/rotation-api.service.ts","../../../projects/media-viewer/src/lib/store/effects/document.effects.ts","../../../projects/media-viewer/src/lib/store/effects/icp.effects.ts","../../../projects/media-viewer/src/lib/store/effects/index.ts","../../../projects/media-viewer/src/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ts","../../../projects/media-viewer/src/lib/icp/confirm-exit/confirm-action-dialog.component.ts","../../../projects/media-viewer/src/lib/bookmark/components/bookmark-icons.component.ts","../../../projects/media-viewer/src/lib/viewers/rotation-persist/rotation-persist.directive.ts","../../../projects/media-viewer/src/lib/icp/participants-list/participants-list.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ts","../../../projects/media-viewer/src/lib/viewers/multimedia-player/multimedia-player.component.ts","../../../projects/media-viewer/src/lib/media-viewer.module.ts","../../../projects/media-viewer/src/public_api.ts","../../../projects/media-viewer/src/hmcts-media-viewer.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { RedactionSearch } from './../../../toolbar/redaction-search-bar/redaction-search.model';\nimport * as pdfjsLib from 'pdfjs-dist';\nimport { DownloadManager, PDFViewer } from 'pdfjs-dist/web/pdf_viewer';\nimport 'pdfjs-dist/build/pdf.worker';\nimport { Subject } from 'rxjs';\nimport { SearchOperation, ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\npdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';\n\n/**\n * Values of the state field returned by the find events\n */\nenum FindState {\n FOUND = 0,\n NOT_FOUND = 1,\n WRAPPED = 2,\n PENDING = 3,\n}\n\nexport class PdfJsWrapper {\n\n private zoomValue: number;\n private documentTitle: string;\n private documentOutline: Outline;\n\n constructor(\n private readonly pdfViewer: PDFViewer,\n private readonly downloadManager: DownloadManager,\n private readonly toolbarEvents: ToolbarEventService,\n public readonly documentLoadInit: Subject<string>,\n public readonly documentLoadProgress: Subject<DocumentLoadProgress>,\n public readonly documentLoaded: Subject<any>,\n public readonly outlineLoaded: Subject<Outline>,\n public readonly documentLoadFailed: Subject<Error>,\n public readonly pageRendered: Subject<PageEvent[]>,\n public readonly positionUpdated: Subject<{ location: PdfPosition }>\n ) {\n this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));\n this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));\n this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');\n\n this.pdfViewer.eventBus.on('pagerendered', e => { }); // not used left for future convenience\n this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));\n\n this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {\n this.sendSearchDetails(event);\n });\n this.pdfViewer.eventBus.on('updatefindmatchescount', event => {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n });\n this.zoomValue = 1;\n }\n\n sendSearchDetails(event: any) {\n if (event.state !== FindState.PENDING) {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n if (event?.source?.selected?.pageIdx !== -1 && event.matchesCount.total > 0) {\n this.toolbarEvents.redactionSerachSubject.next({\n page: event?.source?.selected?.pageIdx,\n matchedIndex: event?.source?.selected?.matchIdx,\n matchesCount: event.matchesCount.total\n } as RedactionSearch\n );\n }\n }\n }\n\n private emitDocumentInfo(e) {\n const allPages: PageEvent[] = [...this.pdfViewer._pages].map(page => {\n return {\n div: page.div,\n scale: page.scale,\n rotation: page.rotation,\n id: page.id,\n viewportScale: page.viewport.scale\n };\n });\n this.pageRendered.next(allPages);\n }\n\n public async loadDocument(documentUrl: string) {\n const loadingTask = this.createLoadingTask(documentUrl);\n\n loadingTask.onProgress = ({ loaded, total }) => {\n this.documentLoadProgress.next({ loaded, total });\n };\n\n this.documentLoadInit.next(documentUrl);\n\n try {\n const pdfDocument = await loadingTask.promise;\n this.documentLoaded.next(pdfDocument);\n this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);\n\n this.pdfViewer.setDocument(pdfDocument);\n this.pdfViewer.linkService.setDocument(pdfDocument, null);\n\n const outline = await pdfDocument.getOutline();\n\n if (outline) {\n await this.setOutlinePageNumbers(pdfDocument, outline);\n }\n\n this.documentOutline = outline;\n this.outlineLoaded.next(this.documentOutline);\n const pdfMetaData = await pdfDocument.getMetadata();\n this.setCurrentPDFTitle(pdfMetaData.info.Title);\n } catch (e) {\n this.documentLoadFailed.next(e);\n }\n }\n\n private createLoadingTask(documentUrl: string) {\n return pdfjsLib.getDocument({\n url: documentUrl,\n cMapUrl: 'assets/minified/cmaps',\n cMapPacked: true,\n withCredentials: true\n });\n }\n\n private async setOutlinePageNumbers(pdfDocument, outlineArray: Outline[]) {\n outlineArray.forEach(async (outline: Outline) => {\n await this.setNestedOutlinePageNumbers(pdfDocument, outline);\n });\n }\n\n private async setNestedOutlinePageNumbers(pdfDocument, outline: Outline) {\n outline.pageNumber = await this.getOutlinePageNumber(pdfDocument, outline);\n outline.items.forEach(async (outlineItem: Outline) => {\n outlineItem.pageNumber = await this.getOutlinePageNumber(pdfDocument, outlineItem);\n this.setNestedOutlinePageNumbers(pdfDocument, outlineItem);\n });\n }\n\n private async getOutlinePageNumber(pdfDocument, outline: Outline): Promise<number> {\n const dest = outline.dest;\n const pageIndex = await pdfDocument.getPageIndex(dest[0]);\n return Number(pageIndex) + 1;\n }\n\n public downloadFile(url: string, filename: string): void {\n this.downloadManager.downloadUrl(url, filename);\n }\n\n public setPageNumber(pageNumber: number): void {\n this.pdfViewer.currentPageNumber = pageNumber;\n }\n public getPageNumber(): number {\n return this.pdfViewer.currentPageNumber;\n }\n public changePageNumber(numPages: number): void {\n this.pdfViewer.currentPageNumber += numPages;\n }\n\n public search(operation: SearchOperation): void {\n const command = operation.reset ? 'find' : 'findagain';\n\n this.pdfViewer.findController.executeCommand(command, {\n query: operation.searchTerm,\n phraseSearch: true,\n caseSensitive: operation.matchCase,\n entireWord: operation.wholeWord,\n highlightAll: operation.highlightAll,\n findPrevious: operation.previous,\n });\n }\n\n public clearSearch(): void {\n this.pdfViewer.eventBus.dispatch('findbarclose');\n }\n\n public navigateTo(destination: object | number) {\n if (destination instanceof Object) {\n if (!destination[1].name.includes('XYZ')) {\n destination[1] = { name: 'XYZ' };\n destination[2] = destination[2] || null;\n destination[3] = destination[3] || null;\n }\n destination[4] = this.zoomValue;\n }\n this.pdfViewer.linkService.navigateTo(destination);\n }\n\n public setZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n public stepZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = +this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n private getZoomValue(zoomValue: number): number {\n if (isNaN(zoomValue)) { return this.zoomValue; }\n if (zoomValue > 5) { return 5; }\n if (zoomValue < 0.1) { return 0.1; }\n\n return +zoomValue.toFixed(2);\n }\n\n public rotate(rotation: number): number {\n return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;\n }\n\n public resetRotation(rotation: number): number {\n return this.pdfViewer.pagesRotation = rotation;\n }\n\n public getNormalisedPagesRotation(): number {\n return this.pdfViewer.pagesRotation;\n }\n\n public getCurrentPDFZoomValue(): number {\n return this.pdfViewer.currentScaleValue;\n }\n\n public setCurrentPDFTitle(title: string) {\n this.documentTitle = title;\n }\n\n public getCurrentPDFTitle(): string {\n return this.documentTitle;\n }\n}\n\nexport interface DocumentLoadProgress {\n loaded: number;\n total: number;\n}\n\nexport interface PageEvent {\n div: object;\n scale: number;\n rotation: number;\n id: string;\n viewportScale: number;\n}\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n export const enabled = new BehaviorSubject(false);\n export const sessionLaunch = new Subject();\n export const becomingPresenter = new Subject();\n export const stoppingPresenting = new Subject();\n export const leavingSession = new BehaviorSubject(false);\n export const sessionExitConfirmed = new Subject();\n export const participantsListVisible = new BehaviorSubject(false);\n\nexport const launchSession = () => {\n sessionLaunch.next();\n};\n\nexport const enable = () => {\n enabled.next(true);\n launchSession();\n};\n\nexport const becomePresenter = () => {\n becomingPresenter.next();\n};\n\nexport const stopPresenting = () => {\n stoppingPresenting.next();\n};\n\nexport const leaveSession = () => {\n leavingSession.next(true);\n};\n\nexport const confirmExit = () => {\n sessionExitConfirmed.next();\n participantsListVisible.next(false);\n enabled.next(false);\n};\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport * as icpEvents from './icp-event.service';\nimport { participantsListVisible } from './icp-event.service';\nimport { RedactionSearch } from './redaction-search-bar/redaction-search.model';\n\n// Toolbar Custom-Event Types\nexport type HighlightMode = boolean;\nexport type DrawMode = boolean;\nexport interface SearchOperation {\n searchTerm: string;\n highlightAll: boolean;\n matchCase: boolean;\n wholeWord: boolean;\n previous: boolean;\n reset: boolean;\n}\nexport interface SearchResultsCount {\n current: number;\n total: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToolbarEventService {\n\n public readonly highlightModeSubject = new BehaviorSubject<HighlightMode>(false);\n public readonly drawModeSubject = new BehaviorSubject<DrawMode>(false);\n public readonly rotateSubject = new Subject<number>();\n public readonly searchSubject = new Subject<SearchOperation>();\n public readonly searchResultsCountSubject = new Subject<SearchResultsCount>();\n public readonly zoomSubject = new Subject<number>();\n public readonly stepZoomSubject = new Subject<number>();\n public readonly zoomValueSubject = new BehaviorSubject<number>(1);\n public readonly pageCountSubject = new Subject<number>();\n public readonly printSubject = new Subject();\n public readonly downloadSubject = new Subject();\n public readonly setCurrentPageSubject = new Subject<number>();\n public readonly setCurrentPageInputValueSubject = new Subject<number>();\n public readonly changePageByDeltaSubject = new Subject<number>();\n public readonly showCommentSummary = new BehaviorSubject<boolean>(false);\n public readonly grabNDrag = new BehaviorSubject<boolean>(false);\n public readonly saveRotationSubject = new Subject();\n\n public readonly redactionMode = new BehaviorSubject(false);\n public readonly redactionPreview = new Subject<boolean>();\n public readonly applyRedactToDocument = new Subject();\n public readonly clearAllRedactMarkers = new Subject();\n public readonly redactWholePage = new Subject();\n public readonly redactionSerachSubject = new Subject<RedactionSearch>();\n public readonly redactAllInProgressSubject = new BehaviorSubject(false);\n public readonly openRedactionSearch = new Subject<boolean>();\n\n public readonly sidebarOpen = new BehaviorSubject(false);\n public readonly sidebarOutlineView = new BehaviorSubject(true);\n\n public readonly searchBarHidden = new BehaviorSubject(true);\n public readonly commentsPanelVisible = new BehaviorSubject(false);\n\n public readonly icp = icpEvents;\n\n\n /**\n * Reset the stateful behaviour subjects\n */\n public reset(): void {\n this.setCurrentPageSubject.next(1);\n this.zoomValueSubject.next(1);\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(false);\n this.showCommentSummary.next(false);\n this.grabNDrag.next(false);\n }\n\n // Function to inform Observers that highlightMode has been enabled\n public toggleHighlightMode(): void {\n // Highlight and Draw states are mutually exclusive\n if (this.highlightModeSubject.getValue() === false) {\n this.drawModeSubject.next(false);\n this.grabNDrag.next(false);\n this.highlightModeSubject.next(true);\n } else {\n this.highlightModeSubject.next(false);\n }\n }\n\n // Function to inform Observers that ToggleMode has been enabled\n public toggleDrawMode(): void {\n if (this.drawModeSubject.getValue() === false) {\n this.highlightModeSubject.next(false);\n this.grabNDrag.next(false);\n this.drawModeSubject.next(true);\n } else {\n this.drawModeSubject.next(false);\n }\n }\n\n public rotate(angle: number): void {\n this.rotateSubject.next(angle);\n }\n\n public search(phrase: SearchOperation): void {\n this.searchSubject.next(phrase);\n }\n\n public getSearchResultsCount(): Observable<SearchResultsCount> {\n return this.searchResultsCountSubject.asObservable();\n }\n\n public zoom(value: number): void {\n this.zoomSubject.next(value);\n }\n\n public stepZoom(value: number): void {\n this.stepZoomSubject.next(value);\n }\n\n public getZoomValue(): Observable<number> {\n return this.zoomValueSubject.asObservable();\n }\n\n public getPageCount(): Observable<number> {\n return this.pageCountSubject.asObservable();\n }\n\n public print(): void {\n this.printSubject.next();\n }\n\n public download(): void {\n this.downloadSubject.next();\n }\n\n public setPage(value: number): void {\n this.setCurrentPageSubject.next(value);\n }\n\n public incrementPage(value: number): void {\n this.changePageByDeltaSubject.next(value);\n }\n\n public getCurrentPageNumber(): Observable<number> {\n return this.setCurrentPageInputValueSubject.asObservable();\n }\n\n public getShowCommentSummary(): Observable<boolean> {\n return this.showCommentSummary.asObservable();\n }\n\n public toggleCommentsSummary(value: boolean): void {\n this.showCommentSummary.next(value);\n }\n\n public saveRotation(): void {\n this.saveRotationSubject.next();\n }\n\n public toggleGrabNDrag(): void {\n this.grabNDrag.next(!this.grabNDrag.getValue());\n }\n\n toggleSideBar(toggle: boolean) {\n this.sidebarOpen.next(toggle);\n }\n\n toggleSideBarView(toggle: boolean) {\n this.sidebarOutlineView.next(toggle);\n }\n\n public toggleRedactionMode(): void {\n if (this.redactionMode.getValue() === false) {\n this.drawModeSubject.next(false);\n this.grabNDrag.next(false);\n this.redactionMode.next(true);\n } else {\n this.redactionMode.next(false);\n }\n this.openRedactionSearch.next(false);\n }\n\n public toggleRedactionPreview(viewMode: boolean): void {\n this.redactionPreview.next(viewMode);\n }\n\n public unmarkAll(): void {\n this.clearAllRedactMarkers.next();\n }\n\n public applyRedactionToDocument(): void {\n this.applyRedactToDocument.next();\n }\n\n public redactPage(): void {\n this.redactWholePage.next();\n }\n\n public toggleCommentsPanel(isVisible: boolean) {\n if (isVisible) {\n this.toggleParticipantsList(!isVisible);\n }\n this.commentsPanelVisible.next(isVisible);\n }\n\n public toggleParticipantsList(isVisible: boolean) {\n if (isVisible) {\n this.toggleCommentsPanel(!isVisible);\n }\n this.icp.participantsListVisible.next(isVisible);\n }\n}\n","import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer';\nimport { ElementRef, Injectable } from '@angular/core';\nimport {DocumentLoadProgress, PageEvent, PdfJsWrapper} from './pdf-js-wrapper';\nimport { Subject } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\n@Injectable({providedIn: 'root'})\nexport class PdfJsWrapperFactory {\n\n private linkService: pdfjsViewer.PDFLinkService;\n private eventBus: pdfjsViewer.EventBus;\n private pdfJsWrapper: PdfJsWrapper;\n\n constructor(private readonly toolbarEvents: ToolbarEventService) {\n this.linkService = new pdfjsViewer.PDFLinkService();\n this.eventBus = new pdfjsViewer.EventBus();\n }\n\n public create(container: ElementRef): PdfJsWrapper {\n const pdfFindController = new pdfjsViewer.PDFFindController({\n linkService: this.linkService,\n eventBus: this.eventBus\n });\n\n const pdfViewer = new pdfjsViewer.PDFViewer({\n container: container.nativeElement,\n linkService: this.linkService,\n findController: pdfFindController,\n eventBus: this.eventBus,\n imageResourcesPath: '/assets/images/',\n textLayerMode: 2\n });\n\n this.linkService.setViewer(pdfViewer);\n\n this.pdfJsWrapper = new PdfJsWrapper(\n pdfViewer,\n new pdfjsViewer.DownloadManager({}),\n this.toolbarEvents,\n new Subject<string>(),\n new Subject<DocumentLoadProgress>(),\n new Subject<any>(),\n new Subject<Outline>(),\n new Subject(),\n new Subject<PageEvent[]>(),\n new Subject<{ location: PdfPosition }>()\n );\n\n return this.pdfJsWrapper;\n }\n\n pdfWrapper() {\n return this.pdfJsWrapper;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrintService {\n\n printDocumentNatively(url: string): void {\n const printWindow = window.open(url);\n printWindow.print();\n }\n\n printElementNatively(element: HTMLElement, width: number, height: number): void {\n const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);\n const documentHead = document.head;\n printWindow.document.body.appendChild(documentHead.cloneNode(true));\n printWindow.document.body.appendChild(element.cloneNode(true));\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n","export enum ResponseType {\n SUCCESS = 'SUCCESS',\n FAILURE = 'FAILURE',\n UNSUPPORTED = 'UNSUPPORTED'\n}\n\nexport interface ExceptionDetail {\n httpResponseCode?: string;\n message?: string;\n}\n\nexport class ViewerException {\n exceptionType?: string;\n detail?: ExceptionDetail;\n\n constructor(exceptionType?: string, detail?: ExceptionDetail) {\n this.exceptionType = exceptionType;\n this.detail = detail;\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n@Injectable({providedIn: 'root'})\nexport class ToolbarButtonVisibilityService {\n\n public showPrint = false;\n public showDownload = false;\n public showNavigation = false;\n public showZoom = false;\n public showRotate = false;\n public showPresentationMode = false;\n public showRedact = false;\n public showOpenFile = false;\n public showBookmark = false;\n public showHighlightButton = false;\n public showDrawButton = false;\n public showSearchBar = false;\n public showSidebar = false;\n public showCommentSummary = false;\n public showGrabNDragButton = false;\n public showSaveRotationButton = false;\n\n /**\n * Reset the visibility of all buttons to false then set the value from the options\n */\n public setup(options: Partial<ToolbarButtonVisibilityService>): void {\n this.showPrint = false;\n this.showDownload = false;\n this.showNavigation = false;\n this.showZoom = false;\n this.showRotate = false;\n this.showPresentationMode = false;\n this.showRedact = false;\n this.showOpenFile = false;\n this.showBookmark = false;\n this.showHighlightButton = false;\n this.showDrawButton = false;\n this.showSearchBar = false;\n this.showSidebar = false;\n this.showCommentSummary = false;\n this.showGrabNDragButton = false;\n this.showSaveRotationButton = false;\n\n for (const key in options) {\n this[key] = options[key];\n }\n }\n}\n\n/**\n * Default toolbar state for the PDF viewer\n */\nexport const defaultPdfOptions = {\n showPrint: true,\n showDownload: true,\n showNavigation: true,\n showZoom: true,\n showRotate: true,\n showSearchBar: true,\n showSidebar: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showPresentationMode: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for the image viewer\n */\nexport const defaultImageOptions = {\n showPrint: true,\n showDownload: true,\n showZoom: true,\n showRotate: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for multimedia\n */\nexport const defaultMultimediaOptions = {\n showDownload: true\n};\n\n/**\n * Default toolbar state for unsupported media\n */\nexport const defaultUnsupportedOptions = {\n showDownload: true,\n showPrint: true\n};\n","import { Action } from '@ngrx/store';\nimport { PageEvent } from '../../viewers/pdf-viewer/pdf-js/pdf-js-wrapper';\nimport { Rotation } from '../../viewers/rotation-persist/rotation.model';\nimport { PdfPosition } from '../reducers/document.reducer';\n\nexport const SET_DOCUMENT_ID = '[Document] Set Document Id';\nexport const POSITION_UPDATED = '[Document] Position Updated';\nexport const ADD_PAGES = '[Document] Add Pages';\nexport const CONVERT = '[Document] Convert';\nexport const CONVERT_SUCCESS = '[Document] Convert Success';\nexport const CONVERT_FAIL = '[Document] Convert Fail';\nexport const CLEAR_CONVERT_DOC_URL = '[Document] Clear Convert Doc Url';\n\nexport const LOAD_ROTATION = '[Document] Load Rotation';\nexport const LOAD_ROTATION_SUCCESS = '[Document] Load Rotation Success';\nexport const LOAD_ROTATION_FAIL = '[Document] Load Rotation Fail';\nexport const SAVE_ROTATION = '[Document] Save Rotation';\nexport const SAVE_ROTATION_SUCCESS = '[Document] Save Rotation Success';\nexport const SAVE_ROTATION_FAIL = '[Document] Save Rotation Fail';\n\nexport class SetDocumentId implements Action {\n readonly type = SET_DOCUMENT_ID;\n constructor(public payload: string) { }\n}\n\nexport class AddPages implements Action {\n readonly type = ADD_PAGES;\n constructor(public payload: PageEvent[]) { }\n}\n\nexport class PdfPositionUpdate implements Action {\n readonly type = POSITION_UPDATED;\n constructor(public payload: PdfPosition) {}\n}\n\nexport class Convert implements Action {\n readonly type = CONVERT;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertSuccess implements Action {\n readonly type = CONVERT_SUCCESS;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertFailure implements Action {\n readonly type = CONVERT_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class ClearConvertDocUrl implements Action {\n readonly type = CLEAR_CONVERT_DOC_URL;\n}\n\nexport class LoadRotation implements Action {\n readonly type = LOAD_ROTATION;\n constructor(public payload: string) {\n }\n}\n\nexport class LoadRotationSuccess implements Action {\n readonly type = LOAD_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class LoadRotationFailure implements Action {\n readonly type = LOAD_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport class SaveRotation implements Action {\n readonly type = SAVE_ROTATION;\n constructor(public payload: Rotation) {\n }\n}\n\nexport class SaveRotationSuccess implements Action {\n readonly type = SAVE_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class SaveRotationFailure implements Action {\n readonly type = SAVE_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport type DocumentActions =\n | AddPages | SetDocumentId | Convert\n | ConvertSuccess | ConvertFailure | ClearConvertDocUrl\n | PdfPositionUpdate | LoadRotation | LoadRotationSuccess\n | LoadRotationFailure | SaveRotation | SaveRotationSuccess\n | SaveRotationFailure;\n","import { Action } from '@ngrx/store';\nimport {TagsModel} from '../../annotations/models/tags.model';\nexport const UPDATE_TAGS = '[Tags] Update Tags';\nexport const ADD_FILTER_TAGS = '[Tags] Add Filter Tags';\nexport const CLEAR_FILTER_TAGS = '[Tags] Clear Filter Tags';\n\nexport class UpdateTags implements Action {\n readonly type = UPDATE_TAGS;\n constructor(public payload: {tags: TagsModel[]; annoId: string}) {}\n}\n\nexport class AddFilterTags implements Action {\n readonly type = ADD_FILTER_TAGS;\n constructor(public payload: {[id: string]: boolean}) {}\n}\n\nexport class ClearFilterTags implements Action {\n readonly type = CLEAR_FILTER_TAGS;\n}\n\n\nexport type TagsActions =\n | UpdateTags\n | AddFilterTags\n | ClearFilterTags;\n","import { Action } from '@ngrx/store';\nimport { IcpParticipant, IcpSession } from '../../icp/icp.interfaces';\n\nexport const SET_CASE_ID = '[Icp] Set Case Id';\nexport const LOAD_ICP_SESSION = '[Icp] Load Session';\nexport const LOAD_ICP_SESSION_FAIL = '[Icp] Load Session Failure';\nexport const JOIN_ICP_SOCKET_SESSION = '[Icp] Join Socket Session';\nexport const ICP_SOCKET_SESSION_JOINED = '[Icp] Socket Session Joined';\nexport const LEAVE_ICP_SOCKET_SESSION = '[Icp] Leave Socket Session';\nexport const ICP_PRESENTER_UPDATED = '[Icp] Presenter Updated';\nexport const ICP_PARTICIPANT_LIST_UPDATED = '[Icp] Participant List Updated';\n\nexport class SetCaseId implements Action {\n readonly type = SET_CASE_ID;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSession implements Action {\n readonly type = LOAD_ICP_SESSION;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSessionFailure implements Action {\n readonly type = LOAD_ICP_SESSION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class JoinIcpSocketSession implements Action {\n readonly type = JOIN_ICP_SOCKET_SESSION;\n constructor(public payload: { username: string, session: IcpSession }) {}\n}\n\nexport class IcpSocketSessionJoined implements Action {\n readonly type = ICP_SOCKET_SESSION_JOINED;\n constructor(public payload: { session: IcpSession, participantInfo: { client: IcpParticipant, presenter: IcpParticipant } }) {}\n}\n\nexport class LeaveIcpSocketSession implements Action {\n readonly type = LEAVE_ICP_SOCKET_SESSION;\n constructor() {}\n}\n\nexport class IcpPresenterUpdated implements Action {\n readonly type = ICP_PRESENTER_UPDATED;\n constructor(public payload: IcpParticipant) {}\n}\n\nexport class IcpParticipantListUpdated implements Action {\n readonly type = ICP_PARTICIPANT_LIST_UPDATED;\n constructor(public payload: any) {}\n}\n\nexport type IcpActions =\n | SetCaseId\n | LoadIcpSession\n | LoadIcpSessionFailure\n | JoinIcpSocketSession\n | IcpSocketSessionJoined\n | LeaveIcpSocketSession\n | IcpPresenterUpdated\n | IcpParticipantListUpdated;\n","import * as fromActions from '../actions/document.actions';\n\nexport interface DocumentState {\n convertedDocument: {\n url: string;\n error: string;\n };\n documentId: string;\n pdfPosition: PdfPosition;\n pages: {[id: string]: DocumentPages};\n hasDifferentPageSize: boolean;\n rotation: number;\n rotationLoaded: boolean;\n loaded: boolean;\n loading: boolean;\n}\n\nexport interface DocumentPages {\n numberOfPages: number;\n styles: { left: number, height: number, width: number };\n scaleRotation: { scale: string; rotation: string };\n viewportScale: number;\n}\n\nexport interface PdfPosition {\n pageNumber: number;\n scale: number;\n top: number;\n left: number;\n rotation: number;\n}\n\nexport const initialDocumentState: DocumentState = {\n convertedDocument: undefined,\n documentId: undefined,\n pdfPosition: undefined,\n pages: {},\n hasDifferentPageSize: false,\n rotation: undefined,\n rotationLoaded: false,\n loading: false,\n loaded: false\n};\n\nexport function docReducer (state = initialDocumentState,\n action: fromActions.DocumentActions): DocumentState {\n\n switch (action.type) {\n\n case fromActions.CONVERT_SUCCESS: {\n const convertedDocument = {\n url: action.payload,\n error: undefined\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CONVERT_FAIL: {\n const convertedDocument = {\n url: undefined,\n error: action.payload\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CLEAR_CONVERT_DOC_URL: {\n const convertedDocument = undefined;\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.LOAD_ROTATION: {\n return {\n ...state,\n rotationLoaded: false\n };\n }\n\n case fromActions.LOAD_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata ? metadata.rotationAngle : 0;\n return {\n ...state,\n rotation,\n rotationLoaded: true\n };\n }\n\n case fromActions.LOAD_ROTATION_FAIL: {\n return {\n ...state,\n rotation: 0,\n rotationLoaded: true\n };\n }\n\n case fromActions.SAVE_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata.rotationAngle;\n return {\n ...state,\n rotation\n };\n }\n\n case fromActions.SET_DOCUMENT_ID : {\n return {\n ...state,\n documentId: action.payload\n };\n }\n\n case fromActions.ADD_PAGES: {\n const payload = action.payload;\n let pages = {};\n let pageHeight;\n let pageWidth;\n let hasDifferentPageSize = state.hasDifferentPageSize;\n payload.forEach(page => {\n if (!hasDifferentPageSize && pageHeight && pageWidth &&\n (pageHeight !== page.div['scrollHeight'] || pageWidth !== page.div['scrollWidth'])) {\n hasDifferentPageSize = true;\n } else {\n pageHeight = page.div['scrollHeight'];\n pageWidth = page.div['scrollWidth'];\n }\n const styles = {\n left: page.div['offsetLeft'],\n height: page.div['scrollHeight'],\n width: page.div['scrollWidth']\n };\n\n const scaleRotation = {\n scale: page.scale,\n rotation: page.rotation\n };\n\n const p = {\n styles,\n scaleRotation,\n viewportScale: page.viewportScale\n };\n\n pages = {\n ...pages,\n [page.id]: p\n };\n\n });\n return {\n ...state,\n pages,\n hasDifferentPageSize\n };\n }\n\n case fromActions.POSITION_UPDATED: {\n const pdfPosition = action.payload;\n return {\n ...state,\n pdfPosition\n };\n }\n }\n return state;\n}\nexport const getDocPages = (state: DocumentState) => state.pages;\nexport const getDocId = (state: DocumentState) => state.documentId;\nexport const getPdfPos = (state: DocumentState) => state.pdfPosition;\nexport const getHasDifferentPageSizes = (state: DocumentState) => state.hasDifferentPageSize;\nexport const getRotation = (state: DocumentState) => state.rotation;\nexport const rotationLoaded = (state: DocumentState) => state.rotationLoaded;\nexport const getConvertedDocument = (state: DocumentState) => state.convertedDocument;\n","import { Action } from '@ngrx/store';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { Filters } from '../models/filters.interface';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\n\nexport const LOAD_ANNOTATION_SET = '[Annotations] Load Annotation Set';\nexport const LOAD_ANNOTATION_SET_SUCCESS = '[Annotations] Load Annotation Set Success';\nexport const LOAD_ANNOTATION_SET_FAIL = '[Annotations] Load Annotation Set Fail';\n\nexport const SAVE_ANNOTATION = '[Annotations] Save Annotation';\nexport const SAVE_ANNOTATION_SUCCESS = '[Annotations] Save Annotation Success';\nexport const SAVE_ANNOTATION_FAIL = '[Annotations] Save Annotation Fail';\nexport const ADD_OR_EDIT_COMMENT = '[Annotations] Add or Edit Comment';\n\nexport const DELETE_ANNOTATION = '[Annotations] Delete Annotation';\nexport const DELETE_ANNOTATION_SUCCESS = '[Annotations] Delete Annotation Success';\nexport const DELETE_ANNOTATION_FAIL = '[Annotations] Delete Annotation Fail';\n\nexport const SELECT_ANNOTATION = '[Annotations] Select Annotation';\nexport const SEARCH_COMMENT = '[Comments] Search Comments';\nexport const APPLY_COMMENT_SUMMARY_FILTER = '[Comments] Apply Comment Summary Filter';\nexport const CLEAR_COMMENT_SUMMARY_FILTER = '[Comments] Clear Comment Summary Filter';\n\nexport class LoadAnnotationSet implements Action {\n readonly type = LOAD_ANNOTATION_SET;\n constructor(public payload: string) { }\n}\n\nexport class LoadAnnotationSetSucess implements Action {\n readonly type = LOAD_ANNOTATION_SET_SUCCESS;\n constructor(public payload: { status: number, body: AnnotationSet }) { }\n}\n\nexport class LoadAnnotationSetFail implements Action {\n readonly type = LOAD_ANNOTATION_SET_FAIL;\n constructor(public payload: { status: number, body: any }) { }\n}\n\nexport class SaveAnnotation implements Action {\n readonly type = SAVE_ANNOTATION;\n constructor(public payload: Annotation) { }\n}\n\nexport class SaveAnnotationSuccess implements Action {\n readonly type = SAVE_ANNOTATION_SUCCESS;\n constructor(public payload: any) { }\n}\n\nexport class SaveAnnotationFail implements Action {\n readonly type = SAVE_ANNOTATION_FAIL;\n constructor(public payload: Error) { }\n}\n\nexport class AddOrEditComment implements Action {\n readonly type = ADD_OR_EDIT_COMMENT;\n constructor(public payload: Comment) { }\n}\n\nexport class DeleteAnnotation implements Action {\n readonly type = DELETE_ANNOTATION;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationSuccess implements Action {\n readonly type = DELETE_ANNOTATION_SUCCESS;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationFail implements Action {\n readonly type = DELETE_ANNOTATION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class SelectedAnnotation implements Action {\n readonly type = SELECT_ANNOTATION;\n constructor(public payload: SelectionAnnotation) {}\n}\n\nexport class SearchComment implements Action {\n readonly type = SEARCH_COMMENT;\n constructor(public payload: string) {}\n}\n\nexport class ApplyCommentSymmaryFilter implements Action {\n readonly type = APPLY_COMMENT_SUMMARY_FILTER;\n constructor(public payload: Filters) {}\n}\n\nexport class ClearCommentSummaryFilters implements Action {\n readonly type = CLEAR_COMMENT_SUMMARY_FILTER;\n}\n\nexport type AnnotationsActions =\n | LoadAnnotationSet\n | LoadAnnotationSetSucess\n | LoadAnnotationSetFail\n | SaveAnnotation\n | SaveAnnotationSuccess\n | SaveAnnotationFail\n | AddOrEditComment\n | DeleteAnnotation\n | DeleteAnnotationSuccess\n | DeleteAnnotationFail\n | SelectedAnnotation\n | SearchComment\n | ApplyCommentSymmaryFilter\n | ClearCommentSummaryFilters;\n","import { Annotation } from '../annotations/annotation-set/annotation-view/annotation.model';\nimport moment from 'moment-timezone';\nimport { Redaction } from '../redaction/services/redaction.model';\nimport { Filters } from './models/filters.interface';\nimport { Comment } from '../annotations/comment-set/comment/comment.model';\n\n/*\n @dynamic\n marking class as dynamic to stop compiler throwing error for lambda in static function\n see https://github.com/angular/angular/issues/19698#issuecomment-338340211\n */\nexport class StoreUtils {\n\n static groupByKeyEntities(annotations, key): {[id: string]: any[]} {\n return annotations.reduce((h, obj) =>\n Object.assign(h, { [obj[key]]: ( h[obj[key]] || [] ).concat(obj) }), {});\n }\n\n static generateCommentsEntities(annotations): {[id: string]: Comment} {\n return annotations.reduce(\n (commentEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n if (annotation.comments.length) {\n const comment = {\n ...annotation.comments[0] || '',\n tags: [...annotation.tags || []]\n };\n return {\n ...commentEntities,\n [annotation.id]: comment\n };\n }\n return {\n ...commentEntities\n };\n }, {});\n }\n\n static genTagNameEntities(annotations) {\n const filterAnnoWithoutCommentsTags = annotations.filter(a => (a.comments.length && a.tags.length));\n const allTags = filterAnnoWithoutCommentsTags.map(anno => this.groupByKeyEntities(anno.tags, 'name'));\n const groupedByName = allTags.reduce(\n (tagEntitiy: { [id: string]: Annotation }, tagItem) => {\n return {\n ...tagEntitiy,\n ...tagItem\n };\n }, {});\n\n return this.genNameEnt(annotations, groupedByName);\n }\n\n static genNameEnt(annos, groupedByName) {\n return Object.keys(groupedByName).reduce(\n (tagNameEnt, key) => {\n const readyAnno = annos.filter(anno => anno.tags.find(tag => tag.name === key))\n .map(anno => anno.id)\n .reduce((obj: {[id: string]: string}, anno: string) => ({ ...obj, [anno]: anno }), {});\n\n return {\n ...tagNameEnt,\n [key]: readyAnno\n };\n }, {});\n\n }\n\n static generateAnnotationEntities(anno): {[id: string]: Annotation} {\n return anno.reduce(\n (annoEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n const annot = {\n ...annotation,\n positionTop: annotation.rectangles[0].y // todo remove this\n };\n return {\n ...annoEntities,\n [annotation.id]: annot\n };\n }, {});\n }\n\n static generateRedactionEntities(redactions: Redaction[]): { [id: string]: Redaction } {\n return redactions.reduce(\n (redactEntities: { [id: string]: Redaction }, redaction: Redaction) => {\n return {\n ...redactEntities,\n [redaction.redactionId]: redaction\n };\n }, {});\n }\n\n static resetCommentEntSelect(ent: { [id: string]: Comment }) {\n return Object.keys(ent).reduce((object, key) => {\n object[key] = {\n ...ent[key],\n editable: false,\n selected: false\n };\n return object;\n }, {});\n }\n\n static filterCommentsSummary(comments: Array<Comment>, filters: Filters) {\n if (Object.keys(filters).length) {\n const tagFilterApplied = Object.keys(filters.tagFilters)\n .filter(key => filters.tagFilters[key] === true).length;\n const dateFilterApplied = (filters.dateRangeFrom || filters.dateRangeTo);\n const filteredComments = comments.filter(comment => {\n let hasTagFilter = false;\n let hasDateFilter = false;\n // check tags\n if (filters.hasOwnProperty('tagFilters')) {\n Object.keys(filters.tagFilters).forEach(filter => {\n const label = filters.tagFilters[filter];\n if (label) {\n return comment.tags.forEach(tag => {\n if (tag.name === filter && !hasTagFilter) {\n hasTagFilter = true;\n }\n });\n }});\n }\n // check for dates\n if (dateFilterApplied) {\n const commentDate = moment(comment.lastModifiedDate);\n const dateFrom = filters.dateRangeFrom !== null ? moment(filters.dateRangeFrom) : undefined;\n const dateTo = filters.dateRangeTo !== null ? moment(filters.dateRangeTo) : undefined;\n\n if (dateTo && dateFrom) {\n if (commentDate > dateFrom && commentDate < dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateTo && !dateFrom) {\n if (commentDate <= dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateFrom && !dateTo) {\n if (commentDate > dateFrom) {\n hasDateFilter = true;\n }\n }\n }\n\n return (hasTagFilter || hasDateFilter);\n });\n return (tagFilterApplied || dateFilterApplied) ? filteredComments : comments;\n } else {\n return comments;\n }\n }\n}\n","import uuid from 'uuid/v4';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\nimport { StoreUtils } from '../store-utils';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { Filters } from '../models/filters.interface';\n\nexport interface AnnotationSetState {\n annotationSet: any;\n annotationEntities: {[id: string]: any};\n annotationPageEntities: {[id: string]: Annotation[]};\n commentEntities: {[id: string]: Comment};\n selectedAnnotation: SelectionAnnotation;\n commentSearchQueries: { commentSearch: string };\n commentSummaryFilters: {hasFilter: boolean; filters: Filters};\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialState: AnnotationSetState = {\n annotationSet: {},\n annotationEntities: {},\n commentEntities: {},\n annotationPageEntities: {},\n selectedAnnotation: null,\n commentSearchQueries: {commentSearch: ''},\n commentSummaryFilters: {hasFilter: false, filters: {}},\n loading: false,\n loaded: false,\n};\n\nexport function reducer (\n state = initialState,\n action: fromAnnotations.AnnotationsActions\n): AnnotationSetState {\n switch (action.type) {\n\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n const annotationSet = {\n ...state.annotationSet,\n documentId: action.payload\n };\n return {\n ...initialState,\n annotationSet,\n loading: true\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS:\n case fromAnnotations.LOAD_ANNOTATION_SET_FAIL: {\n const annotationSet = action.payload.status === 200 ? action.payload.body :\n {\n ...state.annotationSet,\n annotations: [],\n id: uuid()\n };\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotationSet.annotations);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotationSet.annotations, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotationSet.annotations);\n return {\n ...state,\n annotationSet,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const anno = action.payload;\n const annEntities = {\n ...state.annotationEntities,\n [anno.id]: anno\n };\n const annotArray = Object.keys(annEntities).map(key => annEntities[key]);\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotArray);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotArray, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotArray);\n const selectedAnnotation = {\n ...state.selectedAnnotation,\n annotationId : anno.id,\n editable: false\n };\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n selectedAnnotation,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const page = state.annotationEntities[id].page;\n const annotationEntities = {\n ...state.annotationEntities\n };\n delete annotationEntities[id];\n const pageAnnotationsRemoved = [\n ...state.annotationPageEntities[page].filter(anno => anno.id !== id)\n ];\n const annotationPageEntities = {\n ...state.annotationPageEntities,\n [page]: pageAnnotationsRemoved\n };\n const commentEntities = {\n ...state.commentEntities\n };\n if (state.commentEntities[id]) {\n delete commentEntities[id];\n }\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities\n };\n }\n\n case fromAnnotations.ADD_OR_EDIT_COMMENT: {\n const comment = {\n [action.payload.annotationId]: action.payload\n };\n const comments = {\n ...state.commentEntities,\n ...comment\n };\n return {\n ...state,\n commentEntities: comments\n };\n }\n\n case fromAnnotations.SELECT_ANNOTATION: {\n const payload = action.payload;\n const commentEntity = {\n ...state.commentEntities[payload.annotationId],\n editable: payload.editable,\n selected: payload.selected\n };\n\n const resetCommentEntSelect = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n\n const commentEntities = payload.annotationId && state.commentEntities[payload.annotationId] ? {\n ...resetCommentEntSelect,\n [payload.annotationId]: commentEntity\n } : {...resetCommentEntSelect};\n\n return {\n ...state,\n commentEntities,\n selectedAnnotation: action.payload\n };\n }\n\n case fromAnnotations.SEARCH_COMMENT: {\n const commentSearchQueries = {\n ...state.commentSearchQueries,\n commentSearch: action.payload\n };\n\n const commentEntities = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n return {\n ...state,\n commentEntities,\n commentSearchQueries\n };\n }\n\n case fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER: {\n const payload = action.payload;\n const hasTagFilter = () => {\n let isFiltered = false;\n if (payload.tagFilters) {\n Object.keys(payload.tagFilters).map(filter => {\n if (payload.tagFilters[filter] && !isFiltered) {\n isFiltered = true;\n }\n });\n }\n return isFiltered;\n };\n const hasFilter = (hasTagFilter() || !!payload.dateRangeFrom || !!payload.dateRangeTo);\n const commentSummaryFilters = {\n hasFilter,\n filters: payload\n };\n return {\n ...state,\n commentSummaryFilters: commentSummaryFilters\n };\n }\n\n case fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER: {\n\n return {\n ...state,\n commentSummaryFilters : {...initialState.commentSummaryFilters}\n };\n }\n }\n\n\n return state;\n}\n\nexport const getAnnoSet = (state: AnnotationSetState) => state.annotationSet;\nexport const getCommentEnts = (state: AnnotationSetState) => state.commentEntities;\nexport const getAnnoPageEnt = (state: AnnotationSetState) => state.annotationPageEntities;\nexport const getAnnoEnt = (state: AnnotationSetState) => state.annotationEntities;\nexport const getSelectedAnno = (state: AnnotationSetState) => state.selectedAnnotation;\nexport const commentSearchQ = (state: AnnotationSetState) => state.commentSearchQueries;\nexport const getSummaryFilters = (state: AnnotationSetState) => state.commentSummaryFilters;\n","import * as fromAnnotations from '../actions/annotation.actions';\nimport * as fromTags from '../actions/tag.actions';\nimport {StoreUtils} from '../store-utils';\nimport {Annotation} from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport interface TagsState {\n tagNameEnt: {[id: string]: string[]};\n filteredComments: {[id: string]: string[]};\n filteredPageEntities: {[id: string]: Annotation[]};\n annotations: Annotation[];\n formFilterState: {[id: string]: boolean};\n filters: string[];\n}\n\nexport const initialTagState: TagsState = {\n tagNameEnt: {},\n annotations: [],\n filteredPageEntities: {},\n filteredComments: {},\n formFilterState: {},\n filters: []\n};\n\nexport function tagsReducer (\n state = initialTagState,\n action: fromAnnotations.AnnotationsActions | fromTags.TagsActions\n): TagsState {\n switch (action.type) {\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n\n return {\n ...state,\n ...initialTagState\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS: {\n const annotations = action.payload.body.annotations;\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n tagNameEnt,\n annotations\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const payload = action.payload;\n\n const anno = [...state.annotations].filter(a => a.id !== payload.id) || [];\n const annotations = [...anno, payload];\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n annotations,\n tagNameEnt\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const annotations = [...state.annotations].filter(a => a.id !== id);\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n const filteredComments = {\n ...state.filteredComments\n };\n delete filteredComments[id];\n return {\n ...state,\n annotations,\n tagNameEnt,\n filteredComments,\n filteredPageEntities,\n filters: []\n };\n }\n\n\n case fromTags.ADD_FILTER_TAGS: {\n const formFilterState = action.payload;\n\n const filters = Object.keys(formFilterState).reduce((arr: string[], key: string) => {\n return formFilterState[key] ? [...arr, key] : arr;\n }, []);\n\n const filteredComments = filters.reduce((obj: {[id: string]: any}, f) => {\n return {\n ...obj,\n ...state.tagNameEnt[f]\n };\n }, {});\n\n const annotations = Object.keys(filteredComments).map(key => state.annotations.filter(a => a.id === key)[0]);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n return {\n ...state,\n filters,\n filteredComments,\n filteredPageEntities,\n };\n }\n\n case fromTags.CLEAR_FILTER_TAGS: {\n return {\n ...state,\n filters: [],\n filteredComments: {},\n filteredPageEntities: {},\n };\n }\n\n }\n\n return state;\n}\n\nexport const getTagNameEnt = (state: TagsState) => state.tagNameEnt;\nexport const getFilters = (state: TagsState) => state.filters;\nexport const getFilteredComments = (state: TagsState) => state.filteredComments;\nexport const getFilteredPageEnt = (state: TagsState) => state.filteredPageEntities;\n","import { Action } from '@ngrx/store';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const LOAD_BOOKMARKS = '[Bookmarks] Load Bookmarks';\nexport const LOAD_BOOKMARKS_SUCCESS = '[Bookmarks] Load Bookmarks Success';\nexport const LOAD_BOOKMARKS_FAIL = '[Bookmarks] Load Bookmarks Failure';\nexport const CREATE_BOOKMARK = '[Bookmarks] Create Bookmark';\nexport const CREATE_BOOKMARK_SUCCESS = '[Bookmarks] Create Bookmark Success';\nexport const CREATE_BOOKMARK_FAIL = '[Bookmarks] Create Bookmark Failure';\nexport const DELETE_BOOKMARK = '[Bookmarks] Delete Bookmark';\nexport const DELETE_BOOKMARK_SUCCESS = '[Bookmarks] Delete Bookmark Success';\nexport const DELETE_BOOKMARK_FAIL = '[Bookmarks] Delete Bookmark Failure';\nexport const MOVE_BOOKMARK = '[Bookmarks] Move Bookmark';\nexport const MOVE_BOOKMARK_SUCCESS = '[Bookmarks] Move Bookmark Success';\nexport const MOVE_BOOKMARK_FAIL = '[Bookmarks] Move Bookmark Failure';\nexport const UPDATE_BOOKMARK = '[Bookmarks] Update Bookmark';\nexport const UPDATE_BOOKMARK_SUCCESS = '[Bookmarks] Update Bookmark Success';\nexport const UPDATE_BOOKMARK_FAIL = '[Bookmarks] Update Bookmark Failure';\n\nexport class LoadBookmarks implements Action {\n readonly type = LOAD_BOOKMARKS;\n constructor() {}\n}\n\nexport class LoadBookmarksSuccess implements Action {\n readonly type = LOAD_BOOKMARKS_SUCCESS;\n constructor(public payload: { body: Bookmark[], status: number}) { }\n}\n\nexport class LoadBookmarksFailure implements Action {\n readonly type = LOAD_BOOKMARKS_FAIL;\n constructor(public payload: { body: any, status: number }) { }\n}\n\nexport class CreateBookmark implements Action {\n readonly type = CREATE_BOOKMARK;\n constructor(public payload: Bookmark) { }\n}\n\nexport class CreateBookmarkSuccess implements Action {\n readonly type = CREATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class CreateBookmarkFailure implements Action {\n readonly type = CREATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\nexport class DeleteBookmark implements Action {\n readonly type = DELETE_BOOKMARK;\n constructor(public payload: { deleted: string[], updated: Bookmark }) {}\n}\n\nexport class DeleteBookmarkSuccess implements Action {\n readonly type = DELETE_BOOKMARK_SUCCESS;\n constructor(public payload: string[]) {}\n}\n\nexport class DeleteBookmarkFailure implements Action {\n readonly type = DELETE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class MoveBookmark implements Action {\n readonly type = MOVE_BOOKMARK;\n constructor(public payload: Bookmark[]) {}\n}\n\nexport class MoveBookmarkSuccess implements Action {\n readonly type = MOVE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark[]) { }\n}\n\nexport class MoveBookmarkFailure implements Action {\n readonly type = MOVE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class UpdateBookmark implements Action {\n readonly type = UPDATE_BOOKMARK;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkSuccess implements Action {\n readonly type = UPDATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkFailure implements Action {\n readonly type = UPDATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\n\nexport type BookmarksActions =\n | LoadBookmarks | LoadBookmarksSuccess | LoadBookmarksFailure\n | CreateBookmark | CreateBookmarkSuccess | CreateBookmarkFailure\n | DeleteBookmark | DeleteBookmarkSuccess | DeleteBookmarkFailure\n | UpdateBookmark | UpdateBookmarkSuccess | UpdateBookmarkFailure\n | MoveBookmark | MoveBookmarkSuccess | MoveBookmarkFailure;\n","import { Bookmark } from '../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const getBookmarkChildren = (bookmarks: Bookmark[]) => {\n if (bookmarks) {\n return bookmarks.reduce((childIds, bookmark) => {\n if (bookmark.children && bookmark.children.length > 0) {\n return [...childIds, bookmark.id, ...getBookmarkChildren(bookmark.children)];\n }\n return [...childIds, bookmark.id];\n }, []);\n } else {\n return [];\n }\n};\n\nexport const generateBookmarkEntities = (bookmarks: Bookmark[]): {[id: string]: Bookmark} => {\n return bookmarks.reduce(\n (bookmarkEntities, bookmark) =>\n Object.assign(bookmarkEntities, { [bookmark.id]: bookmark }),\n {});\n};\n\nconst indexEntities = (entities: { [id: string]: Bookmark }) => {\n const entityIds = Object.keys(entities);\n for (let index = 0; entityIds.length > 0; index++) {\n let keysToRemove = [];\n entityIds.forEach(key => {\n if (!entities[key].previous || !entityIds.includes(entities[key].previous.toString())) {\n entities[key].index = index;\n keysToRemove.push(key);\n }\n });\n keysToRemove.forEach(key => entityIds.splice(entityIds.indexOf(key), 1));\n keysToRemove = [];\n }\n};\n\nexport const generateBookmarkNodes = (entities: { [id: string]: Bookmark }) => {\n const bookmarkEntities = JSON.parse(JSON.stringify(entities));\n indexEntities(bookmarkEntities);\n return Object.keys(bookmarkEntities).reduce((nodes, bookmarkId) => {\n const bookmarkEntity = bookmarkEntities[bookmarkId];\n if (bookmarkEntity.parent) {\n const parentEntity = bookmarkEntities[bookmarkEntity.parent];\n if (!parentEntity.children) {\n parentEntity.children = [];\n }\n parentEntity.children[bookmarkEntity.index] = bookmarkEntity;\n } else {\n nodes[bookmarkEntity.index] = bookmarkEntity;\n }\n return nodes;\n }, []);\n};\n","import * as fromBookmarks from '../actions/bookmark.actions';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport { StoreUtils } from '../store-utils';\nimport { generateBookmarkEntities } from '../bookmarks-store-utils';\n\nexport interface BookmarksState {\n bookmarks: Bookmark[];\n bookmarkEntities: { [id: string]: Bookmark };\n bookmarkPageEntities: {[id: string]: any};\n editableBookmark: string;\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialBookmarksState: BookmarksState = {\n bookmarks: [],\n bookmarkEntities: {},\n bookmarkPageEntities: {},\n editableBookmark: undefined,\n loaded: false,\n loading: false\n};\n\nexport function bookmarksReducer (state = initialBookmarksState,\n action: fromBookmarks.BookmarksActions): BookmarksState {\n\n switch (action.type) {\n\n case fromBookmarks.LOAD_BOOKMARKS: {\n return {\n ...state,\n loading: true\n };\n }\n\n case fromBookmarks.LOAD_BOOKMARKS_SUCCESS:\n case fromBookmarks.LOAD_BOOKMARKS_FAIL: {\n const bookmarks = action.payload.status === 200 ? action.payload.body : [];\n const bookmarkEntities = generateBookmarkEntities(bookmarks);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarks, 'pageNumber');\n\n return {\n ...state,\n bookmarks,\n bookmarkEntities,\n bookmarkPageEntities,\n loaded: true\n };\n }\n\n case fromBookmarks.CREATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: bookmark,\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = bookmark.id;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.MOVE_BOOKMARK_SUCCESS: {\n const movedBookmarks = generateBookmarkEntities(action.payload);\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n ...movedBookmarks\n };\n return {\n ...state,\n bookmarkEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.DELETE_BOOKMARK_SUCCESS: {\n const bookmarkIds: string[] = action.payload;\n const bookmarkEntities = { ...state.bookmarkEntities };\n const bookmarkPageEntities = { ...state.bookmarkPageEntities };\n const removeBookmarksByPage: {[pageNumber: number]: string[]} = {};\n bookmarkIds.forEach(bookmarkId => {\n if (removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] !== undefined &&\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].length > 0) {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].push(bookmarkId);\n } else {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] = [bookmarkId];\n }\n delete bookmarkEntities[bookmarkId];\n });\n\n Object.entries(removeBookmarksByPage).forEach(\n ([pageNumber, bmrkIds]) => {\n bookmarkPageEntities[pageNumber]\n = bookmarkPageEntities[pageNumber].filter(bookmark => !bmrkIds.includes(bookmark.id));\n }\n );\n\n return {\n ...state,\n bookmarkEntities,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.UPDATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: { ...bookmark }\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = undefined;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n }\n return state;\n}\n\nexport const getBookmarks = (state: BookmarksState) => state.bookmarks;\nexport const getBookmarkEnts = (state: BookmarksState) => state.bookmarkEntities;\nexport const getBookmarkPageEnt = (state: BookmarksState) => state.bookmarkPageEntities;\nexport const getEditBookmark = (state: BookmarksState) => state.editableBookmark;\n","import { Action } from '@ngrx/store';\nimport { BulkRedaction, Redaction } from '../../redaction/services/redaction.model';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport const LOAD_REDACTIONS = '[Redaction] Load Redaction';\nexport const LOAD_REDACTION_SUCCESS = '[Redaction] Load Redaction Success';\nexport const LOAD_REDACTION_FAIL = '[Redaction] Load Redaction Fail';\n\nexport const SAVE_REDACTION = '[Redaction] Save Redaction';\nexport const SAVE_REDACTION_SUCCESS = '[Redaction] Save Redaction Success';\nexport const SAVE_REDACTION_FAIL = '[Redaction] Save Redaction Fail';\n\nexport const SAVE_BULK_REDACTION = '[Redaction] Save bulk Redaction';\nexport const SAVE_BULK_REDACTION_SUCCESS = '[Redaction] Save bulk Redaction Success';\nexport const SAVE_BULK_REDACTION_FAIL = '[Redaction] Save bulk Redaction Fail';\n\nexport const DELETE_REDACTION = '[Redaction] Delete Redaction';\nexport const DELETE_REDACTION_SUCCESS = '[Redaction] Delete Redaction Success';\nexport const DELETE_REDACTION_FAIL = '[Redaction] Delete Redaction Fail';\n\nexport const SELECT_REDACTION = '[Redaction] Select Redaction';\n\nexport const REDACT = '[Redaction] Redact';\nexport const REDACT_SUCCESS = '[Redaction] Redact Success';\nexport const REDACT_FAIL = '[Redaction] Redact Fail';\nexport const RESET_REDACTED_DOCUMENT = '[Redaction] Reset Redacted Document';\n\nexport const UNMARK_ALL = '[Redaction] Unmark All';\nexport const UNMARK_ALL_SUCCESS = '[Redaction] Unmark All Success';\n\n\nexport class LoadRedactions implements Action {\n readonly type = LOAD_REDACTIONS;\n constructor(public payload: any) { }\n}\n\nexport class LoadRedactionSuccess implements Action {\n readonly type = LOAD_REDACTION_SUCCESS;\n constructor(public payload: Redaction[]) { }\n}\n\nexport class LoadRedactionFailure implements Action {\n readonly type = LOAD_REDACTION_FAIL;\n constructor(public payload: any) { }\n}\n\nexport class SaveRedaction implements Action {\n readonly type = SAVE_REDACTION;\n constructor(public payload: Redaction) { }\n}\n\nexport class SaveRedactionSuccess implements Action {\n readonly type = SAVE_REDACTION_SUCCESS;\n constructor(public payload: Redaction) { }\n}\n\nexport class SaveRedactionFailure implements Action {\n readonly type = SAVE_REDACTION_FAIL;\n constructor(public payload: any) { }\n}\n\nexport class SaveBulkRedactionFailure implements Action {\n readonly type = SAVE_BULK_REDACTION_FAIL;\n constructor(public payload: any) { }\n}\n\nexport class SaveBulkRedaction implements Action {\n readonly type = SAVE_BULK_REDACTION;\n constructor(public payload: BulkRedaction) { }\n}\n\nexport class SaveBulkRedactionSuccess implements Action {\n readonly type = SAVE_BULK_REDACTION_SUCCESS;\n constructor(public payload: BulkRedaction) { }\n}\n\nexport class DeleteRedaction implements Action {\n readonly type = DELETE_REDACTION;\n constructor(public payload: Annotation) { }\n}\n\nexport class DeleteRedactionSuccess implements Action {\n readonly type = DELETE_REDACTION_SUCCESS;\n constructor(public payload: any) { }\n}\n\nexport class DeleteRedactionFailure implements Action {\n readonly type = DELETE_REDACTION_FAIL;\n constructor(public payload: any) { }\n}\n\nexport class SelectRedaction implements Action {\n readonly type = SELECT_REDACTION;\n constructor(public payload: any) { }\n}\n\nexport class Redact implements Action {\n readonly type = REDACT;\n constructor(public payload: { redactions: Redaction[], documentId: string }) { }\n}\n\nexport class RedactSuccess implements Action {\n readonly type = REDACT_SUCCESS;\n constructor(public payload: { blob: Blob, filename: string }) { }\n}\n\nexport class RedactFailure implements Action {\n readonly type = REDACT_FAIL;\n constructor(public payload: any) { }\n}\n\nexport class ResetRedactedDocument implements Action {\n readonly type = RESET_REDACTED_DOCUMENT;\n}\n\n\nexport class UnmarkAll implements Action {\n readonly type = UNMARK_ALL;\n constructor(public payload: string) { }\n}\n\nexport class UnmarkAllSuccess implements Action {\n readonly type = UNMARK_ALL_SUCCESS;\n}\n\nexport type RedactionActions =\n | LoadRedactions | LoadRedactionSuccess | LoadRedactionFailure\n | SaveRedaction | SaveRedactionSuccess | SaveRedactionFailure\n | DeleteRedaction | DeleteRedactionSuccess | DeleteRedactionFailure\n | SelectRedaction\n | Redact | RedactSuccess | RedactFailure | ResetRedactedDocument\n | UnmarkAll | UnmarkAllSuccess | SaveBulkRedactionSuccess;\n","import { map } from 'rxjs/operators';\nimport * as fromRedaction from '../actions/redaction.actions';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport { StoreUtils } from '../store-utils';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { Redaction } from '../../redaction/services/redaction.model'; // todo rename\n\n\nexport interface RedactionState {\n redactionEntities: { [id: string]: Redaction };\n redactionPageEntities: { [id: string]: any };\n selectedRedaction: SelectionAnnotation | {};\n redactedDocumentInfo: { blob: Blob, filename: string };\n documentId: string;\n}\n\nexport const initialRedactionState: RedactionState = {\n redactionEntities: {},\n redactionPageEntities: {},\n selectedRedaction: {},\n redactedDocumentInfo: undefined,\n documentId: undefined\n};\n\nexport function redactionReducer(\n state = initialRedactionState,\n action: fromRedaction.RedactionActions | fromAnnotations.AnnotationsActions\n): RedactionState {\n switch (action.type) {\n\n case fromRedaction.LOAD_REDACTIONS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n\n case fromRedaction.LOAD_REDACTION_SUCCESS: {\n const payload = action.payload;\n if (payload) {\n const redactionEntities = StoreUtils.generateRedactionEntities(payload);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(payload, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n return {\n ...state\n };\n }\n\n case fromRedaction.SAVE_REDACTION_SUCCESS: {\n const { payload } = action;\n const redactionEntities = {\n ...state.redactionEntities,\n [payload.redactionId]: payload\n };\n const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n case fromRedaction.SAVE_BULK_REDACTION_SUCCESS: {\n const payloadResult = Object.assign({}, ...action.payload.searchRedactions.map((x) => ({ [x.redactionId]: x })));\n const redactionEntities = {\n ...state.redactionEntities,\n ...payloadResult\n };\n const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n case fromRedaction.SELECT_REDACTION:\n case fromAnnotations.SELECT_ANNOTATION: {\n return {\n ...state,\n selectedRedaction: action.payload\n };\n }\n\n case fromRedaction.DELETE_REDACTION_SUCCESS: {\n const page = action.payload.page;\n const id = action.payload.redactionId;\n const redactionEntities = {\n ...state.redactionEntities\n };\n delete redactionEntities[id];\n const pageRedactionRemoved = [\n ...state.redactionPageEntities[page].filter(redaction => redaction.redactionId !== id)\n ];\n const redactionPageEntities = {\n ...state.redactionPageEntities,\n [page]: pageRedactionRemoved\n };\n\n return {\n ...state,\n redactionPageEntities,\n redactionEntities,\n };\n }\n\n case fromRedaction.REDACT_SUCCESS: {\n const redactedDocumentInfo = action.payload;\n return {\n ...state,\n ...initialRedactionState,\n redactedDocumentInfo\n };\n }\n\n case fromRedaction.RESET_REDACTED_DOCUMENT: {\n return {\n ...state,\n redactedDocumentInfo: undefined\n };\n }\n\n case fromRedaction.UNMARK_ALL_SUCCESS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n }\n\n return state;\n}\n\n\nexport const getRedactionEnt = (state: RedactionState) => state.redactionEntities;\nexport const getPageEnt = (state: RedactionState) => state.redactionPageEntities;\nexport const getSelectedRedaction = (state: RedactionState) => state.selectedRedaction;\nexport const getRedactedDocInfo = (state: RedactionState) => state.redactedDocumentInfo;\n","import * as fromIcpActions from '../actions/icp.actions';\nimport { IcpSession, IcpState } from '../../icp/icp.interfaces';\n\nexport const initialIcpSessionState: IcpState = {\n session: null,\n presenter: null,\n client: null,\n participants: []\n};\n\nexport function icpReducer (state = initialIcpSessionState,\n action: fromIcpActions.IcpActions): IcpState {\n\n switch (action.type) {\n\n case fromIcpActions.SET_CASE_ID: {\n const caseId = action.payload;\n const session = {...state.session, caseId};\n return {\n ...state,\n session\n };\n }\n\n case fromIcpActions.ICP_SOCKET_SESSION_JOINED: {\n const session: IcpSession = action.payload.session;\n const participantInfo = action.payload.participantInfo;\n return {\n ...state,\n session,\n client: participantInfo.client,\n presenter: participantInfo.presenter,\n };\n }\n\n case fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED: {\n const updatedParticipants: any = action.payload;\n const participants = Object.keys(updatedParticipants)\n .map(id => ({ id: id, username: updatedParticipants[id] }));\n return {\n ...state,\n participants\n };\n }\n\n case fromIcpActions.ICP_PRESENTER_UPDATED: {\n const presenter = action.payload;\n return {\n ...state, presenter\n };\n }\n\n case fromIcpActions.LEAVE_ICP_SOCKET_SESSION: {\n return {\n ...state,\n ...initialIcpSessionState\n };\n }\n }\n return state;\n}\n\nexport const getIcpSession = (state: IcpState) => state.session;\nexport const getPresenter = (state: IcpState) => state.presenter;\nexport const getClient = (state: IcpState) => state.client;\nexport const getParticipants = (state: IcpState) => state.participants;\n","import { ActionReducerMap, createFeatureSelector } from '@ngrx/store';\nimport * as fromDocument from './document.reducer';\nimport * as fromAnnotation from './annotations.reducer';\nimport * as fromTags from './tags.reducer';\nimport * as fromBookmarks from './bookmarks.reducer';\nimport * as fromRedaction from './redaction.reducer';\nimport * as fromIcp from './icp.reducer';\nimport { IcpState } from '../../icp/icp.interfaces';\n\nexport interface State {\n document: fromDocument.DocumentState;\n annotations: fromAnnotation.AnnotationSetState;\n tags: fromTags.TagsState;\n bookmarks: fromBookmarks.BookmarksState;\n redactions: fromRedaction.RedactionState;\n icp: IcpState;\n}\n\nexport const reducers: ActionReducerMap<State> = {\n document: fromDocument.docReducer,\n annotations: fromAnnotation.reducer,\n tags: fromTags.tagsReducer,\n bookmarks: fromBookmarks.bookmarksReducer,\n redactions: fromRedaction.redactionReducer,\n icp: fromIcp.icpReducer,\n};\n\nexport const getMVState = createFeatureSelector<State>('media-viewer');\n\nexport * from './document.reducer';\nexport * from './annotations.reducer';\nexport * from './tags.reducer';\nexport * from './bookmarks.reducer';\nexport * from './redaction.reducer';\nexport * from './icp.reducer';\n","import { createSelector } from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromDocument from '../reducers/document.reducer';\n\nexport const getDocumentState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.document\n);\n\nexport const getPages = createSelector(\n getDocumentState,\n fromDocument.getDocPages\n);\n\nexport const getPageList = createSelector(\n getPages,\n (pages) => Object.values(pages)\n);\n\nexport const getDocumentId = createSelector(\n getDocumentState,\n fromDocument.getDocId\n);\n\nexport const getPdfPosition = createSelector(\n getDocumentState,\n fromDocument.getPdfPos\n);\n\nexport const getPageDifference = createSelector(\n getDocumentState,\n fromDocument.getHasDifferentPageSizes\n);\n\nexport const getConvertedDocument = createSelector(\n getDocumentState,\n fromDocument.getConvertedDocument\n);\n\nexport const getRotation = createSelector(\n getDocumentState,\n fromDocument.getRotation\n);\n\nexport const rotationLoaded = createSelector(\n getDocumentState,\n fromDocument.rotationLoaded\n);\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Rectangle } from '../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\n\nexport interface Highlight {\n page: number;\n rectangles: Rectangle[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ViewerEventService {\n\n public readonly textHighlight = new Subject<Highlight>();\n public readonly boxHighlight = new Subject<Highlight>();\n public readonly ctxToolbarCleared = new Subject();\n public readonly navigationEvent = new Subject<any[]>();\n\n constructor() {}\n\n public textSelected(selectionData: Highlight): void {\n this.textHighlight.next(selectionData);\n }\n\n public boxSelected(selectionData: Highlight): void {\n this.boxHighlight.next(selectionData);\n }\n\n public clearCtxToolbar(): void {\n this.ctxToolbarCleared.next();\n }\n\n\n public goToDestination(destination: any[]) {\n this.navigationEvent.next(destination);\n }\n}\n","export enum IcpEvents {\n SESSION_JOINED = 'IcpClientJoinedSession',\n CLIENT_DISCONNECTED = 'IcpClientDisconnectedFromSession',\n NEW_PARTICIPANT_JOINED = 'IcpNewParticipantJoinedSession',\n REMOVE_PARTICIPANT = 'IcpRemoveParticipantFromList',\n PARTICIPANTS_UPDATED = 'IcpParticipantsListUpdated',\n UPDATE_PRESENTER = 'IcpNewPresenterStartsPresenting',\n PRESENTER_UPDATED = 'IcpPresenterUpdated',\n UPDATE_SCREEN = 'IcpUpdateScreen',\n SCREEN_UPDATED = 'IcpScreenUpdated',\n SESSION_JOIN = 'IcpClientJoinSession',\n SESSION_LEAVE = 'IcpClientLeaveSession',\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, from, Observable, of, Subject, Subscription } from 'rxjs';\nimport { IcpEvents } from './icp.events';\nimport { IcpParticipant } from './icp.interfaces';\n\n@Injectable()\nexport class SocketService implements OnDestroy {\n\n private socket: WebSocket;\n subscription: Subscription;\n connected$ = new BehaviorSubject<boolean>(false);\n sessionJoined$ = new Subject();\n presenterUpdated$ = new Subject();\n clientDisconnected$ = new Subject();\n participantUpdated$ = new Subject();\n newParticipantJoined$ = new Subject();\n screenUpdated$ = new Subject();\n\n constructor() { }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n connect(url: string) {\n return this.getSocketClient(url).subscribe((socket: WebSocket) => {\n\n socket.onopen = (event: Event) => {\n this.connected$.next(true);\n };\n\n socket.onmessage = (event: MessageEvent) => {\n console.log('onmessage');\n const eventData = JSON.parse(event.data);\n if (eventData.data && eventData.data.eventName) {\n this.messageEventHandller(eventData.data.eventName, eventData.data.data);\n }\n };\n\n socket.onerror = (event: Event) => {\n console.log('onerror');\n };\n\n socket.onclose = (event: CloseEvent) => {\n console.log('onclose');\n };\n });\n }\n\n connected(): Observable<boolean> {\n return this.connected$.asObservable();\n }\n\n join(session) {\n this.emit(IcpEvents.SESSION_JOIN, session);\n }\n\n leave(session) {\n this.emit(IcpEvents.SESSION_LEAVE, session);\n this.subscription.unsubscribe();\n }\n\n emit(event: string, data: any) {\n this.socket.send(JSON.stringify({\n type: 'event',\n event,\n data\n }));\n }\n\n listen(event: IcpEvents): Observable<any> {\n switch (event) {\n case IcpEvents.SESSION_JOINED: {\n return this.sessionJoined$.asObservable();\n }\n case IcpEvents.PRESENTER_UPDATED: {\n return this.presenterUpdated$.asObservable();\n }\n case IcpEvents.CLIENT_DISCONNECTED: {\n return this.clientDisconnected$.asObservable();\n }\n case IcpEvents.PARTICIPANTS_UPDATED: {\n return this.participantUpdated$.asObservable();\n }\n case IcpEvents.NEW_PARTICIPANT_JOINED: {\n return this.newParticipantJoined$.asObservable();\n }\n case IcpEvents.SCREEN_UPDATED: {\n return this.screenUpdated$.asObservable();\n }\n default: {\n break;\n }\n }\n }\n\n messageEventHandller(eventName: string, data: any) {\n switch (eventName) {\n case IcpEvents.SESSION_JOINED: {\n this.sessionJoined$.next(data);\n break;\n }\n case IcpEvents.PRESENTER_UPDATED: {\n this.presenterUpdated$.next(data);\n break;\n }\n case IcpEvents.CLIENT_DISCONNECTED: {\n this.clientDisconnected$.next();\n break;\n }\n case IcpEvents.PARTICIPANTS_UPDATED: {\n this.participantUpdated$.next(data);\n break;\n }\n case IcpEvents.NEW_PARTICIPANT_JOINED: {\n this.newParticipantJoined$.next();\n break;\n }\n case IcpEvents.SCREEN_UPDATED: {\n this.screenUpdated$.next(data);\n break;\n }\n }\n }\n\n getSocketClient(url: string): Observable<WebSocket> {\n this.socket = new WebSocket(url, 'json.webpubsub.azure.v1');\n return of(this.socket);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SocketService } from './socket.service';\nimport { IcpParticipant, IcpScreenUpdate, IcpSession } from './icp.interfaces';\nimport { IcpEvents } from './icp.events';\n\n@Injectable()\nexport class IcpUpdateService {\n\n session: IcpSession;\n\n constructor(private socket: SocketService) { }\n\n joinSession(username: string, session: IcpSession) {\n this.session = session;\n this.socket.connect(session.connectionUrl);\n this.socket.connected().subscribe(isConnected => {\n if (isConnected) {\n this.socket.join({ ...this.session, username });\n }\n });\n return this.socket.listen(IcpEvents.SESSION_JOINED);\n }\n\n leaveSession() {\n this.socket.leave(this.session);\n }\n\n newParticipantJoined() {\n return this.socket.listen(IcpEvents.NEW_PARTICIPANT_JOINED);\n }\n\n clientDisconnected() {\n return this.socket.listen(IcpEvents.CLIENT_DISCONNECTED);\n }\n\n removeParticipant(participantId) {\n this.socket.emit(IcpEvents.REMOVE_PARTICIPANT, {\n participantId: participantId, caseId: this.session.caseId\n });\n }\n\n participantListUpdated() {\n return this.socket.listen(IcpEvents.PARTICIPANTS_UPDATED);\n }\n\n updatePresenter(presenter: IcpParticipant) {\n this.socket.emit(IcpEvents.UPDATE_PRESENTER, {\n ...this.session, presenterId: presenter.id, presenterName: presenter.username\n });\n }\n\n presenterUpdated() {\n return this.socket.listen(IcpEvents.PRESENTER_UPDATED);\n }\n\n updateScreen(screen: IcpScreenUpdate) {\n const update = { body: screen, caseId: this.session.caseId };\n this.socket.emit(IcpEvents.UPDATE_SCREEN, update);\n }\n\n screenUpdated() {\n return this.socket.listen(IcpEvents.SCREEN_UPDATED);\n }\n}\n","import { createSelector } from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromIcp from '../reducers/icp.reducer';\n\nexport const getIcpState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.icp\n);\n\nexport const getIcpSession = createSelector(\n getIcpState,\n fromIcp.getIcpSession\n);\n\nexport const getCaseId = createSelector(\n getIcpSession,\n session => session === null ? null : session.caseId\n);\n\nexport const getPresenter = createSelector(\n getIcpState,\n fromIcp.getPresenter\n);\n\nexport const getPresenterName = createSelector(\n getPresenter,\n presenter => presenter === null ? null : presenter.username\n);\n\nexport const getClient = createSelector(\n getIcpState,\n fromIcp.getClient\n);\n\nexport const isPresenter = createSelector(\n getPresenter,\n getClient,\n (presenter, client) => presenter === null ? undefined : presenter.id === client.id // isPresenter is called when = false.\n);\n\nexport const getParticipants = createSelector(\n getIcpState,\n fromIcp.getParticipants\n);\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpState, IcpScreenUpdate, IcpSession, IcpParticipant } from './icp.interfaces';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { PdfPosition } from '../store/reducers/document.reducer';\n\n@Injectable()\nexport class IcpPresenterService {\n\n session: IcpSession;\n presenter: IcpParticipant;\n pdfPosition: PdfPosition;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n update(isPresenter: boolean) {\n if (isPresenter) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.store.pipe(select(fromDocSelectors.getPdfPosition)).subscribe(pdfPosition => {\n this.pdfPosition = pdfPosition;\n this.onPositionUpdate(pdfPosition);\n });\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => {\n this.presenter = presenter;\n }));\n this.$subscription.add(this.socketService.newParticipantJoined().subscribe(() => this.onNewParticipantJoined()));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n onPositionUpdate(pdfPosition: PdfPosition) {\n const screen: IcpScreenUpdate = { pdfPosition, document: undefined };\n this.socketService.updateScreen(screen);\n }\n\n onNewParticipantJoined() {\n this.onPositionUpdate(this.pdfPosition);\n this.socketService.updatePresenter(this.presenter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { take } from 'rxjs/operators';\nimport { IcpState, IcpSession } from './icp.interfaces';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\n\n@Injectable()\nexport class IcpFollowerService {\n\n session: IcpSession;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n\n update(isFollower: boolean) {\n if (isFollower) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.socketService.screenUpdated()\n .subscribe(screen => this.followScreenUpdate(screen));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n followScreenUpdate({ pdfPosition }) {\n if (pdfPosition) {\n this.viewerEvents.goToDestination([\n pdfPosition.pageNumber - 1,\n { 'name': 'XYZ' },\n pdfPosition.left,\n pdfPosition.top\n ]);\n }\n this.store.pipe(select(fromDocSelectors.getPdfPosition), take(1))\n .subscribe(position => {\n const rotationDelta = (pdfPosition.rotation - position.rotation) % 360;\n if (rotationDelta !== 0) {\n this.toolbarEvents.rotate(rotationDelta);\n }\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { IcpParticipant, IcpState } from './icp.interfaces';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpPresenterService } from './icp-presenter.service';\nimport { IcpFollowerService } from './icp-follower.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpActions from '../store/actions/icp.actions';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { filter, take } from 'rxjs/operators';\n\n@Injectable()\nexport class IcpService implements OnDestroy {\n\n caseId: string;\n client: IcpParticipant;\n presenter: IcpParticipant;\n isPresenter: boolean;\n\n subscription: Subscription;\n sessionSubscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private readonly presenterSubscriptions: IcpPresenterService,\n private readonly followerSubscriptions: IcpFollowerService,\n private store: Store<IcpState>) {\n this.subscription = this.store.pipe(select(fromIcpSelectors.getCaseId), filter(value => !!value)).subscribe(caseId => {\n this.caseId = caseId;\n });\n this.subscription.add(this.toolbarEvents.icp.sessionLaunch.subscribe(() => {\n if (this.caseId) { this.launchSession(); }\n }));\n }\n\n ngOnDestroy() {\n this.unsubscribeSession();\n this.subscription.unsubscribe();\n }\n\n launchSession() {\n this.store.dispatch(new fromIcpActions.LoadIcpSession(this.caseId));\n this.subscription.add(this.store.pipe(select(fromIcpSelectors.getIcpSession),\n filter(value => !!value && Object.keys(value).length > 1 ),\n take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));\n }\n\n setUpSessionSubscriptions() {\n this.sessionSubscription = this.toolbarEvents.icp.becomingPresenter.subscribe(() => this.becomePresenter());\n this.sessionSubscription.add(this.toolbarEvents.icp.stoppingPresenting.subscribe(() => this.stopPresenting()));\n this.sessionSubscription.add(this.toolbarEvents.icp.sessionExitConfirmed.subscribe(() => this.leavePresentation()));\n this.sessionSubscription.add(\n this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => this.presenter = presenter )\n );\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.getClient)).subscribe(client => this.client = client));\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.isPresenter)).subscribe(isPresenter => {\n this.isPresenter = isPresenter;\n this.presenterSubscriptions.update(isPresenter);\n this.followerSubscriptions.update(!isPresenter);\n }));\n this.sessionSubscription.add(this.socketService.clientDisconnected().subscribe(cli => this.clientDisconnected(cli)));\n this.sessionSubscription.add(this.socketService.presenterUpdated().subscribe(pres => {\n this.store.dispatch(new fromIcpActions.IcpPresenterUpdated(pres));\n }));\n this.sessionSubscription.add(this.socketService.participantListUpdated().subscribe(participants => {\n this.store.dispatch(new fromIcpActions.IcpParticipantListUpdated(participants));\n }));\n }\n\n unsubscribeSession() {\n this.presenterSubscriptions.update(false);\n this.followerSubscriptions.update(false);\n this.sessionSubscription.unsubscribe();\n }\n\n leavePresentation() {\n if (this.isPresenter) {\n this.stopPresenting();\n }\n this.removeParticipant(this.client.id);\n this.socketService.leaveSession();\n this.store.dispatch(new fromIcpActions.LeaveIcpSocketSession());\n this.unsubscribeSession();\n }\n\n stopPresenting() {\n const presenter: IcpParticipant = {username: '', id: ''};\n this.socketService.updatePresenter(presenter);\n }\n\n becomePresenter() {\n this.socketService.updatePresenter(this.client);\n }\n\n clientDisconnected(client) {\n if (client === this.presenter.id) {\n this.stopPresenting();\n }\n this.removeParticipant(client);\n }\n\n removeParticipant(participantId) {\n this.socketService.removeParticipant(participantId);\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { filter, tap, throttleTime } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\n\nimport { DocumentLoadProgress, PageEvent, PdfJsWrapper } from './pdf-js/pdf-js-wrapper';\nimport { PdfJsWrapperFactory } from './pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { PrintService } from '../../print.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { CommentSetComponent } from '../../annotations/comment-set/comment-set.component';\nimport { Outline } from './side-bar/outline-item/outline.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { PdfPositionUpdate } from '../../store/actions/document.actions';\nimport * as fromTagActions from '../../store/actions/tag.actions';\nimport { SetCaseId } from '../../store/actions/icp.actions';\nimport * as fromDocumentsSelector from '../../store/selectors/document.selectors';\nimport { IcpState } from '../../icp/icp.interfaces';\nimport { ViewerEventService } from '../viewer-event.service';\nimport { IcpService } from '../../icp/icp.service';\n\n@Component({\n selector: 'mv-pdf-viewer',\n templateUrl: './pdf-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class PdfViewerComponent implements AfterContentInit, OnChanges, OnDestroy {\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() pdfViewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n @Input() downloadUrl: string;\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() enableICP: boolean;\n @Input() annotationSet: AnnotationSet | null;\n @Input() enableRedactSearch: AnnotationSet | null;\n\n @Input() height: string;\n pageHeights = [];\n rotation = 0;\n zoom = 1;\n\n @Input() caseId: string;\n\n highlightMode: Observable<boolean>;\n drawMode: BehaviorSubject<boolean>;\n\n documentOutline: Outline;\n loadingDocument = false;\n loadingDocumentProgress: number;\n errorMessage: string;\n hasDifferentPageSize = false;\n\n @ViewChild('viewerContainer', {static: true}) viewerContainer: ElementRef<HTMLDivElement>;\n @ViewChild('pdfViewer', {static: false}) pdfViewer: ElementRef<HTMLDivElement>;\n\n private pdfWrapper: PdfJsWrapper;\n private $subscription: Subscription;\n private viewerException: ViewerException;\n showCommentsPanel: boolean;\n showIcpParticipantsList: boolean;\n enableGrabNDrag = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private icpStore: Store<IcpState>,\n private readonly pdfJsWrapperFactory: PdfJsWrapperFactory,\n private readonly printService: PrintService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private icpService: IcpService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n ) {\n this.highlightMode = toolbarEvents.highlightModeSubject.pipe(tap(() => {\n this.store.dispatch(new fromTagActions.ClearFilterTags());\n }));\n this.drawMode = toolbarEvents.drawModeSubject;\n }\n\n async ngAfterContentInit(): Promise<void> {\n this.pdfWrapper.documentLoadProgress.subscribe(v => this.onDocumentLoadProgress(v));\n this.pdfWrapper.documentLoaded.subscribe(() => this.onDocumentLoaded());\n this.pdfWrapper.documentLoadFailed.subscribe((error) => this.onDocumentLoadFailed(error));\n this.pdfWrapper.outlineLoaded.subscribe(outline => this.documentOutline = outline);\n this.pdfWrapper.pageRendered.subscribe((event) => this.updatePages(event));\n this.$subscription = this.toolbarEvents.printSubject\n .subscribe(() => this.printService.printDocumentNatively(this.url));\n this.$subscription.add(this.toolbarEvents.downloadSubject.subscribe(() =>\n this.pdfWrapper.downloadFile(this.downloadUrl || this.url, this.downloadFileName)\n ));\n this.$subscription.add(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument(rotate)));\n this.$subscription.add(this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.searchSubject.subscribe(search => this.pdfWrapper.search(search)));\n this.$subscription.add(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.pdfWrapper.setPageNumber(pageNumber))\n );\n this.$subscription.add(\n this.toolbarEvents.changePageByDeltaSubject.subscribe(pageNumber => this.pdfWrapper.changePageNumber(pageNumber))\n );\n this.$subscription.add(this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag));\n this.$subscription.add(this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.showCommentsPanel = toggle;\n })\n );\n this.$subscription.add(this.viewerEvents.navigationEvent.subscribe(dest => this.goToDestination(dest)));\n this.$subscription.add(\n this.toolbarEvents.icp.participantsListVisible.subscribe(toggle => this.showIcpParticipantsList = toggle)\n );\n this.$subscription.add(this.pdfWrapper.positionUpdated.asObservable()\n .pipe(throttleTime(500, asyncScheduler, { leading: true, trailing: true }))\n .subscribe(event => this.store.dispatch(new PdfPositionUpdate(event.location)))\n );\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (!this.pdfWrapper) {\n this.pdfWrapper = this.pdfJsWrapperFactory.create(this.viewerContainer);\n }\n if (changes.url && this.pdfWrapper) {\n await this.loadDocument();\n if (this.enableRedactions) {\n this.toolbarEvents.redactionMode.pipe(filter(value => !!value))\n .subscribe(() => this.resetRotation());\n }\n }\n if (changes.caseId) {\n this.icpStore.dispatch(new SetCaseId(this.caseId));\n }\n }\n\n resetRotation() {\n if (this.hasDifferentPageSize) {\n this.pdfWrapper.resetRotation(0);\n this.rotation = 0;\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n private async loadDocument() {\n this.initDocumentProgress();\n await this.pdfWrapper.loadDocument(this.url);\n this.documentTitle.emit(this.pdfWrapper.getCurrentPDFTitle());\n this.setPageHeights();\n this.$subscription.add(this.store.pipe(select(fromDocumentsSelector.getPageDifference))\n .subscribe(hasDifferentPageSie => this.hasDifferentPageSize = hasDifferentPageSie));\n }\n\n private onDocumentLoadProgress(progress: DocumentLoadProgress) {\n if (progress.total) {\n this.loadingDocumentProgress = Math.min(100, Math.ceil(progress.loaded / progress.total * 100));\n }\n }\n\n private onDocumentLoaded() {\n this.loadingDocument = false;\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n }\n\n private onDocumentLoadFailed(error: Error) {\n this.loadingDocument = false;\n this.viewerException = new ViewerException(error.name, { message: error.message });\n this.errorMessage = `Could not load the document \"${this.url}\"`;\n\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.pdfViewerException.emit(this.viewerException);\n }\n\n private updatePages(event: PageEvent[]) {\n if (this.enableAnnotations) {\n this.store.dispatch(new fromDocumentActions.AddPages(event));\n }\n }\n\n @Input()\n set searchBarHidden(hidden: boolean) {\n if (this.pdfWrapper && hidden) {\n this.pdfWrapper.clearSearch();\n }\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n\n private rotateDocument(rotation: number) {\n const pageNumber = this.pdfWrapper.getPageNumber();\n this.pdfWrapper.rotate(rotation);\n this.pdfWrapper.setPageNumber(pageNumber);\n this.rotation = (this.rotation + rotation) % 360;\n\n this.setPageHeights();\n }\n\n private initDocumentProgress() {\n this.loadingDocument = true;\n this.loadingDocumentProgress = null;\n this.errorMessage = null;\n }\n\n private setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.setZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(zoomFactor);\n this.setPageHeights();\n }\n }\n\n private stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.stepZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(this.zoom, zoomFactor);\n this.setPageHeights();\n }\n }\n\n setPageHeights() {\n this.pageHeights = [];\n const pdfViewerChildren = this.pdfViewer.nativeElement.children;\n for (let i = 0; i < pdfViewerChildren.length; i++) {\n this.pageHeights.push(pdfViewerChildren[i].clientHeight);\n }\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) {\n return 5;\n }\n if (newZoomValue < 0.1) {\n return 0.1;\n }\n return +newZoomValue.toFixed(2);\n }\n\n private goToDestination(destination: any[]) {\n this.pdfWrapper.navigateTo(destination);\n }\n\n getCurrentPageNumber(): number {\n return this.pdfWrapper.getPageNumber();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerUtilService {\n constructor(\n private http: HttpClient) {\n }\n\n public validateFile(url: string) {\n return this.http.head(url);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PrintService } from '../../print.service';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocument from '../../store/actions/document.actions';\nimport * as fromAnnotationActions from '../../store/actions/annotation.actions';\nimport { ViewerEventService } from '../viewer-event.service';\n\n@Component({\n selector: 'mv-image-viewer',\n templateUrl: './image-viewer.component.html'\n})\nexport class ImageViewerComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() imageViewerException = new EventEmitter<ViewerException>();\n\n errorMessage: string;\n\n @ViewChild('img', {static: false}) img: ElementRef;\n rotation = 0;\n zoom = 1;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n private response: Subscription;\n\n showCommentsPanel: boolean;\n enableGrabNDrag = false;\n imageHeight: number;\n imageWidth: number;\n imageLeft: number;\n imageTop: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly viewerUtilService: ViewerUtilService,\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private viewerEvents: ViewerEventService,\n ) { }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.rotateSubject.subscribe(rotation => this.rotateImage(rotation)),\n this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)),\n this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)),\n this.toolbarEvents.printSubject.subscribe(() => this.printService.printDocumentNatively(this.url)),\n this.toolbarEvents.downloadSubject.subscribe(() => this.download()),\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag),\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => this.showCommentsPanel = toggle)\n );\n }\n\n @HostListener('mousedown', ['$event'])\n onImageViewerClick(event: MouseEvent) {\n const classNme = (event.target as Element).className;\n if (classNme.startsWith('pageContainer')) {\n this.store.dispatch(\n new fromAnnotationActions.SelectedAnnotation({\n annotationId: '',\n selected: false,\n editable: false,\n })\n );\n this.viewerEvents.clearCtxToolbar();\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n if (this.response) {\n this.response.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.errorMessage = null;\n this.toolbarEvents.reset();\n }\n }\n\n private rotateImage(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.initAnnoPage(this.img.nativeElement);\n }\n\n private async setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private async stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(this.zoom, zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private download() {\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = this.url;\n a.download = this.downloadFileName;\n a.click();\n a.remove();\n }\n\n // the returned promise is a work-around\n setZoomValue(zoomValue) {\n return new Promise((resolve) => {\n this.zoom = zoomValue;\n this.toolbarEvents.zoomValueSubject.next(zoomValue);\n resolve(true);\n });\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) { return 5; }\n if (newZoomValue < 0.1) { return 0.1; }\n return +newZoomValue.toFixed(2);\n }\n\n onLoadError(url) {\n this.response = this.viewerUtilService.validateFile(url)\n .subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n { httpResponseCode: error.status, message: error.message });\n });\n\n this.errorMessage = `Could not load the image \"${this.url}\"`;\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.imageViewerException.emit(this.viewerException);\n }\n\n onLoad(img: any) {\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n this.initAnnoPage(img);\n }\n\n initAnnoPage(img: any) {\n this.imageHeight = this.rotation % 180 !== 0 ? img.offsetWidth : img.offsetHeight;\n this.imageWidth = this.rotation % 180 !== 0 ? img.offsetHeight : img.offsetWidth;\n this.imageLeft = this.rotation % 180 !== 0 ? img.offsetTop : img.offsetLeft;\n this.imageTop = this.rotation % 180 !== 0 ? img.offsetLeft : img.offsetTop;\n const payload: any = [{\n div: {\n scrollHeight: this.imageHeight,\n scrollWidth: this.imageWidth,\n offsetLeft: this.imageLeft,\n },\n pageNumber: 1,\n scale: this.zoom,\n rotation: this.rotation,\n id: 1\n }];\n\n this.store.dispatch(new fromDocument.AddPages(payload));\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\n\n@Component({\n selector: 'mv-unsupported-viewer',\n templateUrl: './unsupported-viewer.component.html'\n})\nexport class UnsupportedViewerComponent implements OnInit, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() typeException: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n @Output() unsupportedViewerException = new EventEmitter<ViewerException>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerUtilService: ViewerUtilService,\n ) {}\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.downloadSubject.subscribe(() => this.downloadLink.nativeElement.click()),\n this.viewerUtilService.validateFile(this.url).subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n { httpResponseCode: error.status, message: error.message });\n }\n )\n );\n\n this.loadStatus.emit(ResponseType.UNSUPPORTED);\n\n if (!this.typeException) {\n this.unsupportedViewerException.emit(this.viewerException);\n }\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Injectable()\nexport class AnnotationApiService {\n\n public annotationApiUrl = '/em-anno';\n\n private annotationSetBaseUrl = '/annotation-sets';\n private annotationBaseUrl = '/annotations';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getAnnotationSet(documentId: string): Observable<any> { // todo add model\n const fixedUrl = `${this.annotationSetsFullUrl}/filter?documentId=${documentId}`;\n return this.httpClient\n .get<AnnotationSet>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public postAnnotationSet(body: Partial<AnnotationSet>): Observable<AnnotationSet> {\n return this.httpClient\n .post<AnnotationSet>(this.annotationSetsFullUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public getComments(annotationSet: Observable<AnnotationSet>): Observable<Comment[]> {\n return annotationSet\n .pipe(\n map(this.sortAnnotations),\n map(this.extractComments)\n );\n }\n\n /**\n * Sort the annotations in the response by page and then y position of their first rectangle\n */\n private sortAnnotations(r: AnnotationSet): Annotation[] {\n return r.annotations.sort((a, b) => a.page !== b.page ? a.page - b.page : a.rectangles[0].y - b.rectangles[0].y);\n }\n\n private extractComments(annotations: Annotation[]) {\n return [].concat(...annotations.map(a => a.comments));\n }\n\n public deleteAnnotation(annotationId: string): Observable<null> {\n const url = `${this.annotationFullsUrl}/${annotationId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public postAnnotation(annotation: Partial<Annotation>): Observable<Annotation> {\n return this.httpClient\n .post<Annotation>(this.annotationFullsUrl, annotation, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n get annotationSetsFullUrl() {\n return this.annotationApiUrl + this.annotationSetBaseUrl;\n }\n\n get annotationFullsUrl() {\n return this.annotationApiUrl + this.annotationBaseUrl;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { CommentSetComponent } from '../comment-set.component';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { CommentComponent } from './comment.component';\n\n// TODO: replace by NgRx\n@Injectable()\nexport class CommentService {\n\n public readonly unsavedChanges = new Subject<boolean>();\n public readonly marginToCommentEmitter = new BehaviorSubject<boolean>(false);\n commentSetComponent: CommentSetComponent;\n\n setCommentSet(commentSetComponent) {\n this.commentSetComponent = commentSetComponent;\n }\n\n onCommentChange(changes: boolean): void {\n this.unsavedChanges.next(changes);\n }\n\n getUnsavedChanges(): Observable<boolean> {\n return this.unsavedChanges.asObservable();\n }\n\n hasUnsavedComments(annotation: Annotation): boolean {\n if (annotation.comments.length > 0) {\n const comment = this.getComment(annotation);\n return comment.hasUnsavedChanges;\n }\n return false;\n }\n\n updateUnsavedCommentsStatus(annotation: Annotation, hasUnsavedChanges: boolean): void {\n const comment = this.getComment(annotation);\n comment.hasUnsavedChanges = hasUnsavedChanges;\n this.allCommentsSaved();\n }\n\n getComment(annotation: Annotation): CommentComponent {\n return this.commentSetComponent.commentComponents\n .find(c => c.comment.annotationId === annotation.comments[0].annotationId);\n }\n\n resetCommentSet(): void {\n this.commentSetComponent = null;\n }\n\n allCommentsSaved(): void {\n this.onCommentChange(this.commentSetComponent.commentComponents.some(comment => comment.hasUnsavedChanges === true));\n }\n\n createMarginToCommentEvent(margin: boolean) {\n this.marginToCommentEmitter.next(margin);\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromTags from '../reducers/tags.reducer';\n\nexport const getTagsRootState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.tags\n);\n\nexport const getTagEntities = createSelector(\n getTagsRootState,\n fromTags.getTagNameEnt\n);\n\nexport const getTagFilters = createSelector(\n getTagsRootState,\n fromTags.getFilters\n);\n\nexport const getTagFiltered = createSelector(\n getTagsRootState,\n fromTags.getFilteredComments\n);\n\nexport const getFilteredPageEntities = createSelector(\n getTagsRootState,\n fromTags.getFilteredPageEnt\n);\n\nexport const getAllTagsArr = createSelector(\n getTagEntities,\n (tagEnt) => Object.keys(tagEnt).map(key => {\n return {\n key,\n length: Object.keys(tagEnt[key]).length\n };\n })\n);\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromAnnotations from '../reducers/annotations.reducer';\nimport * as fromTags from './tag.selectors';\nimport * as fromDocument from './document.selectors';\nimport {StoreUtils} from '../store-utils';\nimport moment from 'moment-timezone';\nexport const getAnnotationsSetState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.annotations\n);\n\nexport const getAnnotationEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoEnt\n);\n\nexport const getSet = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoSet\n);\n\nexport const getDocumentIdSetId = createSelector(\n getSet,\n (annoSet) => {\n return {\n documentId: annoSet.documentId,\n annotationSetId: annoSet.id\n };\n }\n);\n\nexport const getAnnotationSet = createSelector(\n getAnnotationEntities,\n getSet,\n (entities, set) => {\n return {\n ...set,\n annotations: Object.keys(entities).map(key => entities[key])\n };\n }\n);\n\nexport const getSelectedAnnotation = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSelectedAnno\n);\n\nexport const getCommentEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getCommentEnts\n);\n\n\nexport const getPageEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoPageEnt\n);\n\nexport const getComponentSearchQueries = createSelector(\n getAnnotationsSetState,\n fromAnnotations.commentSearchQ\n);\n\nexport const getComponentSearchText = createSelector(\n getComponentSearchQueries,\n (queries) => queries.commentSearch\n);\n\nexport const getCommentSummaryFilters = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSummaryFilters\n);\n\nexport const getAnnoPerPage = createSelector(\n fromDocument.getPages,\n getPageEntities,\n fromTags.getFilteredPageEntities,\n (pages, pageEnt, filteredPageEnt) => {\n const isFiltered: boolean = !!Object.keys(filteredPageEnt).length;\n const entities = isFiltered ? filteredPageEnt : pageEnt;\n if (pages) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: entities[key] ? entities[key] : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n\nexport const getCommentsArray = createSelector(\n getCommentEntities,\n fromDocument.getPages,\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (commentEnts, pages, annoEnts, filtered) => {\n if (commentEnts && annoEnts && pages[1]) {\n const isFiltered: boolean = !!Object.keys(filtered).length;\n const com = isFiltered ? filtered : commentEnts;\n return Object.keys(com).map(key => {\n const page = annoEnts[key].page;\n return {\n ...commentEnts[key],\n page,\n pages\n };\n });\n }\n }\n);\n\nexport const getCommentSummary = createSelector(\n getCommentsArray,\n getCommentSummaryFilters,\n (commentSummary = [], filters) => {\n const comments = StoreUtils.filterCommentsSummary(commentSummary, filters.filters);\n if (comments.length) {\n const savedComments = comments.filter((comment) => {\n return comment.createdByDetails !== undefined;\n }\n );\n return savedComments.map((comment) => {\n return {\n page: comment.page,\n user: comment.createdByDetails.forename.concat(' ').concat(comment.createdByDetails.surname),\n date: moment(comment.lastModifiedDate).format('D MMMM YYYY'),\n tags: comment.tags,\n comment: comment.content\n };\n });\n }\n return [''];\n }\n);\n\n\nexport const getFilteredAnnotations = createSelector(\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (annoEnt, filters) => {\n const isFiltered: boolean = !!Object.keys(filters).length;\n const anno = isFiltered ? filters : annoEnt;\n return Object.keys(anno).map(key => annoEnt[key])\n .filter(annotation => annotation.comments && annotation.comments.length > 0);\n }\n);\n","import {\n AfterContentInit, AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport {\n defaultImageOptions, defaultMultimediaOptions,\n defaultPdfOptions,\n defaultUnsupportedOptions,\n ToolbarButtonVisibilityService\n} from './toolbar/toolbar-button-visibility.service';\nimport { AnnotationSet } from './annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from './toolbar/toolbar-event.service';\nimport { AnnotationApiService } from './annotations/services/annotation-api/annotation-api.service';\nimport { ResponseType, ViewerException } from './viewers/viewer-exception.model';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport 'hammerjs';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from './store/reducers/reducers';\nimport * as fromAnnoSelectors from './store/selectors/annotation.selectors';\nimport * as fromDocumentsSelector from './store/selectors/document.selectors';\nimport * as fromAnnoActions from './store/actions/annotation.actions';\nimport * as fromRedactActions from './store/actions/redaction.actions';\nimport * as fromDocumentActions from './store/actions/document.actions';\n\nenum CoreContentTypes {\n PDF = 'pdf',\n IMAGE = 'image'\n}\n\nenum MultimediaContentTypes {\n MP4 = 'mp4',\n MP3 = 'mp3',\n}\n\nenum ConvertibleContentTypes {\n EXCEL = 'excel',\n WORD = 'word',\n POWERPOINT = 'powerpoint',\n TXT = 'txt',\n RTF = 'rtf'\n}\n\n@Component({\n selector: 'mv-media-viewer',\n templateUrl: './media-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MediaViewerComponent implements OnChanges, OnDestroy, AfterContentInit, AfterViewChecked {\n\n @ViewChild('viewerRef', {static: false}) viewerRef: ElementRef;\n\n @Input() url;\n @Input() downloadFileName: string;\n @Input() contentType: string;\n\n @Input() showToolbar = true;\n @Input() toolbarButtonOverrides: any = {};\n\n @Input()\n public height: string;\n public viewerHeight: string;\n\n @Input() width = '100%';\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() toolbarEventsOutput = new EventEmitter<ToolbarEventService>();\n @Output() unsavedChanges = new EventEmitter<boolean>();\n\n @Input() enableAnnotations = false;\n @Input() annotationApiUrl;\n\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() multimediaPlayerEnabled = false;\n @Input() enableRedactSearch = false;\n\n\n @Input() caseId: string;\n\n multimediaContent = false;\n convertibleContent = false;\n unsupportedContent = false;\n\n documentTitle: string;\n showCommentSummary: boolean;\n annotationSet$: Observable<AnnotationSet | {}>;\n hasScrollBar: boolean;\n typeException = false;\n hasDifferentPageSize$: Observable<boolean>;\n documentId: string;\n\n private $subscriptions: Subscription;\n private prevOffset: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly api: AnnotationApiService,\n private readonly commentService: CommentService,\n private elRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n if (this.annotationApiUrl) {\n api.annotationApiUrl = this.annotationApiUrl;\n }\n }\n\n ngAfterContentInit() {\n this.annotationSet$ = this.store.pipe(select(fromAnnoSelectors.getAnnotationSet));\n this.hasDifferentPageSize$ = this.store.pipe(select(fromDocumentsSelector.getPageDifference));\n this.setToolbarButtons();\n this.toolbarEventsOutput.emit(this.toolbarEvents);\n this.$subscriptions = this.commentService.getUnsavedChanges()\n .subscribe(changes => this.onCommentChange(changes));\n this.$subscriptions.add(this.toolbarEvents.getShowCommentSummary()\n .subscribe(changes => this.showCommentSummary = changes));\n }\n\n ngAfterViewChecked(): void {\n if (this.height && this.viewerHeight !== this.height) {\n this.viewerHeight = this.height;\n this.cdr.detectChanges();\n return;\n }\n\n if (!this.height) {\n const compOffsetTop = this.elRef.nativeElement.getBoundingClientRect().top;\n const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;\n const offset = compOffsetTop + viewerOffsetTop;\n\n if (this.prevOffset !== offset) {\n this.viewerHeight = `calc(100vh - ${offset}px)`;\n this.prevOffset = offset;\n this.cdr.detectChanges();\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.annotationApiUrl) {\n this.api.annotationApiUrl = this.annotationApiUrl;\n }\n\n if (changes.url) {\n this.toolbarEvents.reset();\n this.commentService.resetCommentSet();\n this.documentId = this.extractDMStoreDocId(this.url);\n this.store.dispatch(new fromDocumentActions.SetDocumentId(this.documentId));\n if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(this.documentId));\n }\n if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent) && this.documentId) {\n this.store.dispatch(new fromRedactActions.LoadRedactions(this.documentId));\n }\n if (this.contentType === 'image') {\n this.documentTitle = null;\n }\n }\n\n if (changes.contentType) {\n this.convertibleContent = this.needsConverting();\n this.multimediaContent = this.isMultimedia();\n this.unsupportedContent = !this.isSupported();\n }\n\n this.setToolbarButtons();\n this.detectOs();\n this.typeException = false;\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n needsConverting(): boolean {\n return this.contentType !== null && Object.keys(ConvertibleContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isMultimedia(): boolean {\n return this.contentType !== null && Object.keys(MultimediaContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isSupported(): boolean {\n const supportedTypes = Object.assign({}, MultimediaContentTypes, ConvertibleContentTypes, CoreContentTypes);\n return this.contentType !== null && Object.keys(supportedTypes).includes(this.contentType.toUpperCase());\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n setToolbarButtons() {\n if (this.contentType === CoreContentTypes.PDF || this.needsConverting()) {\n this.toolbarButtons.setup({\n ...defaultPdfOptions, showHighlightButton: this.enableAnnotations, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.contentType === CoreContentTypes.IMAGE) {\n this.toolbarButtons.setup({\n ...defaultImageOptions, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.isMultimedia()) {\n this.toolbarButtons.setup({\n ...defaultMultimediaOptions,\n ...this.toolbarButtonOverrides\n });\n } else {\n this.toolbarButtons.setup({\n ...defaultUnsupportedOptions,\n ...this.toolbarButtonOverrides\n });\n }\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n if (!this.isSupported()) {\n this.typeException = false;\n } else {\n this.typeException = true;\n this.contentType = null;\n this.setToolbarButtons();\n }\n }\n\n onCommentChange(changes: boolean) {\n this.unsavedChanges.emit(changes);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle = title;\n }\n\n // If secure mode is enabled (which adds \"documentsv2\" to the documentId), get rid of it\n private extractDMStoreDocId(url: string): string {\n url = url.includes('/documents/') ? url.split('/documents/')[1] : url;\n url = url.includes('/documentsv2/') ? url.split('/documentsv2/')[1] : url;\n return url.replace('/binary', '');\n }\n\n detectOs() {\n this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport { v4 as uuid } from 'uuid';\nimport moment from 'moment-timezone';\n\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/annotation.selectors';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\nimport { Annotation } from '../../annotation-view/annotation.model';\n\n@Injectable()\nexport class HighlightCreateService {\n\n constructor(private toolBarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>) { }\n\n saveAnnotation(rectangles: Rectangle[], page: number) {\n this.store.pipe(select(fromSelectors.getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {\n const anno: Annotation = {\n id: uuid(),\n color: 'FFFF00',\n comments: [],\n page: page,\n rectangles: rectangles,\n type: 'highlight',\n ...anoSetDocId,\n createdBy: '',\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n };\n this.store.dispatch(new fromActions.SaveAnnotation(anno));\n });\n }\n\n applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom) {\n const { x, y, width, height } = {\n x: +(offsetLeft / zoom).toFixed(2),\n y: +(offsetTop / zoom).toFixed(2),\n width: +(offsetWidth / zoom).toFixed(2),\n height: +(offsetHeight / zoom).toFixed(2)\n };\n const rectangle = { x, y, width, height };\n switch (rotate) {\n case 90:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = y;\n rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);\n break;\n case 180:\n rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);\n rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);\n break;\n case 270:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);\n rectangle.y = x;\n break;\n }\n return rectangle as any;\n }\n\n resetHighlight() {\n window.getSelection().removeAllRanges();\n this.toolBarEvents.highlightModeSubject.next(false);\n }\n}\n","import { BulkRedaction, Redaction } from './../../redaction/services/redaction.model';\nimport { SearchResultsCount } from './../toolbar-event.service';\nimport { RedactionSearch, RedactRectangle } from './redaction-search.model';\nimport { Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { Store, select } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { Rectangle } from '../../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\nimport * as fromDocument from '../../store/selectors/document.selectors';\nimport * as fromRedactionActions from '../../store/actions/redaction.actions';\nimport uuid from 'uuid';\nimport { HighlightCreateService } from '../../annotations/annotation-set/annotation-create/highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-redaction-search-bar',\n templateUrl: './redaction-search-bar.component.html',\n styleUrls: ['./redaction-search-bar.component.scss']\n})\nexport class RedactionSearchBarComponent implements OnInit {\n\n @ViewChild('findInput', { static: true }) findInput: ElementRef<HTMLInputElement>;\n\n highlightAll = true;\n matchCase = false;\n wholeWord = false;\n resultsText = '';\n searchText = '';\n resultCount = 0;\n redactElements: RedactRectangle[] = [];\n pageHeight: number;\n pageWidth: number;\n zoom: number;\n rotate: number;\n allPages: object;\n redactAll: boolean;\n openSearchModal: boolean;\n redactAllInProgress: boolean;\n redactAllText?: string;\n\n\n private subscription: Subscription;\n private documentId: string;\n public advancedSearchVisible = false;\n\n constructor(\n private store: Store<fromStore.State>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService,\n public readonly highlightService: HighlightCreateService,\n ) { }\n\n public ngOnInit(): void {\n this.subscription = this.toolbarEvents.redactionSerachSubject.subscribe((results: RedactionSearch) => this.redactAllSearched(results));\n this.subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));\n this.subscription.add(this.store.pipe(select(fromDocument.getPages)).subscribe((pages) => {\n if (pages[1]) {\n this.allPages = pages;\n }\n }));\n this.subscription.add(\n this.toolbarEvents.searchResultsCountSubject.subscribe(results => this.setSearchResultsCount(results))\n );\n this.subscription.add(this.toolbarEvents.openRedactionSearch.subscribe(isOpen => this.openSearchModal = isOpen));\n this.subscription.add(this.toolbarEvents.redactAllInProgressSubject\n .subscribe(inProgress => this.redactAllInProgress = inProgress));\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n @HostListener('window:keydown', ['$event'])\n public onWindowKeyDown(e: KeyboardEvent): void {\n if (e.code === 'F3' || (e.ctrlKey && e.code === 'KeyF')) {\n e.preventDefault();\n this.toolbarEvents.searchBarHidden.next(false);\n setTimeout(() => this.findInput.nativeElement.focus(), 200);\n }\n }\n\n search(reset: boolean = true): void {\n this.redactAll = !reset;\n if (this.redactAll) {\n this.toolbarEvents.redactAllInProgressSubject.next(true);\n }\n if (reset) {\n this.redactElements = [];\n }\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset\n });\n }\n\n private saveRedaction(redactRectangle: RedactRectangle[]) {\n const redaction = redactRectangle.map(ele => {\n return { page: ele.page, rectangles: ele.rectangles, redactionId: uuid(), documentId: this.documentId } as Redaction;\n });\n this.store.dispatch(new fromRedactionActions.SaveBulkRedaction({ searchRedactions: redaction } as BulkRedaction));\n }\n\n private existInRedactElements(pageNumber: number, matechedIndex: number, rectangles: Rectangle[]): boolean {\n if (this.redactElements && this.redactElements.length > 0) {\n const pagesFound = this.redactElements.find(re => re.page === pageNumber && re.matchedIndex === matechedIndex);\n const pageRectangles = pagesFound?.rectangles;\n if (!pageRectangles || pageRectangles.length <= 0) {\n return false;\n }\n let matchesRectangles = 0;\n for (let rectIndx = 0; rectIndx < pageRectangles.length; rectIndx++) {\n const rectangle = pageRectangles[rectIndx];\n const foundRectangle = rectangles.find(re => re.width === rectangle.width &&\n re.height === rectangle.height && re.x === rectangle.x && re.y === rectangle.y);\n if (foundRectangle) {\n matchesRectangles++;\n }\n }\n return pageRectangles.length === matchesRectangles;\n }\n return false;\n }\n\n onCloseSearchModal() {\n this.toolbarEvents.openRedactionSearch.next(false);\n }\n\n\n private setSearchResultsCount(results: SearchResultsCount): void {\n this.resultCount = results.total;\n this.resultsText = this.resultCount > 0\n ? `${results.total} results founds`\n : 'No results found';\n }\n\n private redactAllSearched(results: RedactionSearch): void {\n const $this = this;\n const intervalId = setInterval(() => {\n const highlightElement = document.getElementsByClassName('highlight selected');\n if (highlightElement && highlightElement.length > 0) {\n clearInterval(intervalId);\n $this.redactAllSearchedTick(results);\n }\n }, 100);\n }\n\n\n private redactAllSearchedTick(results: RedactionSearch): void {\n const highlightElement = document.getElementsByClassName('highlight selected');\n if (highlightElement && highlightElement.length > 0) {\n this.resultCount = results.matchesCount;\n const pageNumber = results.page + 1;\n const rectangles = this.getRectangles(pageNumber);\n if (rectangles && this.redactElements.length <= this.resultCount\n && !this.existInRedactElements(pageNumber, results.matchedIndex, rectangles)) {\n this.redactElements.push({ page: pageNumber, matchedIndex: results?.matchedIndex, rectangles } as RedactRectangle);\n this.CreateRedactAllText();\n }\n if (this.redactAll && this.resultCount && this.resultCount > 0\n && rectangles && this.redactElements.length < this.resultCount) {\n this.search(false);\n }\n\n if (this.redactAll && this.resultCount && this.redactElements.length === this.resultCount) {\n this.redactAll = false;\n this.redactAllText = null;\n this.saveRedaction(this.redactElements);\n }\n }\n }\n\n private CreateRedactAllText() {\n this.redactAllText = `${this.redactElements.length} of ${this.resultCount}`;\n }\n\n public onEscapeKeyPress(e: KeyboardEvent): void {\n this.toolbarEvents.searchBarHidden.next(true);\n }\n\n public onEnterKeyPress(e: KeyboardEvent): void {\n this.search();\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n\n private getRectangles(page: number): Rectangle[] {\n this.pageHeight = this.allPages[page].styles.height;\n this.pageWidth = this.allPages[page].styles.width;\n this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);\n this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);\n const selectedHighLightedElements = document.getElementsByClassName('highlight selected');\n if (selectedHighLightedElements && selectedHighLightedElements.length > 0) {\n const docRange = document.createRange();\n docRange.selectNodeContents(selectedHighLightedElements[0] as HTMLElement);\n const selection = window.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(docRange);\n if (selection.rangeCount && !selection.isCollapsed) {\n const range = selection.getRangeAt(0).cloneRange();\n const clientRects = range.getClientRects();\n\n if (clientRects) {\n const parentRect = selectedHighLightedElements[0].parentElement.parentElement.getBoundingClientRect();\n const selectionRectangles: Rectangle[] = [];\n for (let i = 0; i < clientRects.length; i++) {\n const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);\n const findSelecttionRectangle = selectionRectangles.find(\n (rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x\n );\n if (!findSelecttionRectangle) {\n selectionRectangles.push(selectionRectangle);\n }\n }\n\n return selectionRectangles;\n }\n }\n }\n }\n\n private createTextRectangle(rect: DOMRect, parentRect: any): Rectangle {\n const height = rect.bottom - rect.top;\n const width = rect.right - rect.left;\n const top = rect.top - parentRect.top;\n const left = rect.left - parentRect.left;\n\n let rectangle = this.highlightService.applyRotation(\n this.pageHeight,\n this.pageWidth,\n height,\n width,\n top,\n left,\n this.rotate,\n this.zoom\n );\n rectangle = { id: uuid(), ...rectangle };\n\n return rectangle as Rectangle;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Number Helper Service\n * */\n@Injectable({\n providedIn: 'root'\n})\n\nexport class NumberHelperService {\n constructor() { }\n\n public isNumber(value: string | number): boolean {\n return (\n value !== null\n && value !== undefined\n && value !== ''\n && !isNaN(Number(value.toString()))\n );\n }\n }\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { NumberHelperService } from '../../../lib/shared/util/services/number.helper.service';\n\n@Component({\n selector: 'mv-main-toolbar',\n templateUrl: './main-toolbar.component.html'\n})\nexport class MainToolbarComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @Input() enableAnnotations = false;\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() contentType = null;\n\n @ViewChild('zoomSelect', { static: false }) public zoomSelect: ElementRef;\n @ViewChild('mvToolbarMain', { static: false }) public mvToolbarMain: ElementRef<HTMLElement>;\n @ViewChild('dropdownMenu', { static: false }) public mvMenuItems: ElementRef<HTMLElement>;\n\n private readonly subscriptions: Subscription[] = [];\n\n public icpEnabled = false;\n public redactionEnabled = false;\n public showCommentsPanel: boolean;\n public redactAllInProgress: boolean;\n\n public pageNumber = 1;\n public pageCount = 0;\n public isDropdownMenuOpen = false;\n public dropdownMenuPositions = [\n new ConnectionPositionPair(\n {\n originX: 'end',\n originY: 'bottom'\n },\n {\n overlayX: 'end',\n overlayY: 'top'\n },\n 0,\n 3)\n ];\n\n public zoomScales = [0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2.5, 3, 5];\n\n allButtonsWidth = 0;\n widthRequiredForBtn: { [id: string]: number } = {};\n\n public constructor(\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private readonly cdr: ChangeDetectorRef,\n private readonly numberHelper: NumberHelperService\n ) {\n }\n\n public ngOnInit() {\n this.subscriptions.push(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.setCurrentPage(pageNumber)),\n this.toolbarEvents.setCurrentPageInputValueSubject.subscribe(pageNumber => this.pageNumber = pageNumber),\n this.toolbarEvents.getPageCount().subscribe(count => this.pageCount = count),\n this.toolbarEvents.icp.enabled.subscribe(enabled => {\n this.icpEnabled = enabled;\n if (this.icpEnabled) {\n this.toolbarEvents.toggleCommentsPanel(!enabled);\n this.toolbarEvents.sidebarOpen.next(false);\n }\n }),\n this.toolbarEvents.redactionMode.subscribe(enabled => {\n this.redactionEnabled = enabled;\n }),\n this.toolbarEvents.redactAllInProgressSubject.subscribe(disable => {\n this.redactAllInProgress = disable;\n }),\n );\n }\n\n public ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n public ngAfterViewInit() {\n Array.from(this.mvToolbarMain.nativeElement.children).forEach(button => {\n this.allButtonsWidth += button.getBoundingClientRect().width;\n this.widthRequiredForBtn[button.id] = this.allButtonsWidth;\n });\n this.cdr.detectChanges();\n }\n\n @HostListener('window:resize', [])\n public onResize() {\n this.cdr.detectChanges();\n }\n\n public onClickHighlightToggle() {\n this.toolbarEvents.toggleHighlightMode();\n }\n public onClickDrawToggle() {\n this.toolbarEvents.toggleDrawMode();\n }\n\n public toggleIndexSideBar() {\n const sidebarOpen = this.toolbarEvents.sidebarOpen.getValue();\n const sidebarView = this.toolbarEvents.sidebarOutlineView.getValue();\n if (!(sidebarOpen && !sidebarView)) {\n this.toolbarEvents.toggleSideBar(!sidebarOpen);\n }\n this.toolbarEvents.toggleSideBarView(true);\n }\n\n public toggleBookmarksSideBar() {\n const sidebarOpen = this.toolbarEvents.sidebarOpen.getValue();\n const sidebarView = this.toolbarEvents.sidebarOutlineView.getValue();\n if (!(sidebarOpen && sidebarView)) {\n this.toolbarEvents.toggleSideBar(!sidebarOpen);\n }\n this.toolbarEvents.toggleSideBarView(false);\n }\n\n public togglePresentBar() {\n this.toolbarEvents.searchBarHidden.next(true);\n this.toolbarEvents.icp.enable();\n }\n\n public increasePageNumber() {\n this.toolbarEvents.incrementPage(1);\n }\n\n public decreasePageNumber() {\n this.toolbarEvents.incrementPage(-1);\n }\n\n public onPageNumberInputChange(pageNumber: string) {\n if (Number(pageNumber) < 1) {\n pageNumber = '1';\n }\n if (Number(pageNumber) > this.pageCount) {\n pageNumber = this.pageCount.toString();\n }\n\n this.toolbarEvents.setPage(Number.parseInt(pageNumber, 10));\n }\n\n private setCurrentPage(pageNumber: number) {\n this.pageNumber = pageNumber;\n }\n\n public rotate(rotation: number) {\n this.toolbarEvents.rotate(rotation);\n }\n\n public printFile() {\n this.toolbarEvents.print();\n }\n\n public downloadFile() {\n this.toolbarEvents.download();\n }\n\n public zoom(zoomFactor: string) {\n this.toolbarEvents.zoom(+zoomFactor);\n }\n\n public stepZoom(zoomFactor: number) {\n this.toolbarEvents.stepZoom(zoomFactor);\n this.zoomSelect.nativeElement.selected = 'selected';\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n public toggleRedactBar() {\n this.toolbarEvents.toggleRedactionMode();\n }\n\n public toggleGrabNDrag() {\n this.toolbarEvents.toggleGrabNDrag();\n }\n\n public isPdf() {\n return this.contentType === 'pdf';\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n\n public toggleMoreOptions() {\n this.isDropdownMenuOpen = !this.isDropdownMenuOpen;\n setTimeout(() => {\n if (this.mvMenuItems) {\n this.mvMenuItems.nativeElement.focus();\n }\n }, 100);\n }\n}\n","import { Component, ElementRef, HostListener, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { SearchResultsCount, ToolbarEventService } from '../toolbar-event.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'mv-search-bar',\n templateUrl: './search-bar.component.html'\n})\nexport class SearchBarComponent implements OnInit, OnDestroy {\n\n @ViewChild('findInput', { static: true }) findInput: ElementRef<HTMLInputElement>;\n @ViewChild('findNext', { static: false }) findNext: ElementRef<HTMLAnchorElement>;\n\n highlightAll = true;\n matchCase = false;\n wholeWord = false;\n resultsText = '';\n searchText = '';\n resultCount = 0;\n\n private subscriptions: Subscription[] = [];\n\n public advancedSearchVisible = false;\n\n constructor(\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService\n ) { }\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.searchResultsCountSubject.subscribe(results => this.setSearchResultsCount(results))\n );\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n public onWindowKeyDown(e: KeyboardEvent): void {\n if (e.code === 'F3' || (e.ctrlKey && e.code === 'KeyF')) {\n e.preventDefault();\n\n this.toolbarEvents.searchBarHidden.next(false);\n setTimeout(() => this.findInput.nativeElement.focus(), 200);\n }\n }\n\n public searchNext(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: false\n });\n }\n\n public searchPrev(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: true,\n reset: false\n });\n }\n\n public search(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: true\n });\n }\n\n private setSearchResultsCount(results: SearchResultsCount): void {\n this.resultCount = results.total;\n this.resultsText = this.resultCount > 0\n ? `Found ${results.current} of ${results.total}`\n : 'No results found';\n if (this.resultCount && this.resultCount > 0) {\n setTimeout(() => {\n this.findNext.nativeElement.focus();\n }, 1000);\n }\n }\n\n public onEscapeKeyPress(e: KeyboardEvent): void {\n this.toolbarEvents.searchBarHidden.next(true);\n }\n\n public onEnterKeyPress(e: KeyboardEvent): void {\n this.search();\n }\n\n\n public toggleAdvancedSearch(): void {\n this.advancedSearchVisible = !this.advancedSearchVisible;\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromRedactions from '../reducers/redaction.reducer';\nimport * as fromDocument from './document.selectors';\n\nexport const getRedactionState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.redactions\n);\n\nexport const getRedactionPages = createSelector(\n getRedactionState,\n fromRedactions.getPageEnt\n);\n\nexport const getSelected = createSelector(\n getRedactionState,\n fromRedactions.getSelectedRedaction\n);\n\nexport const getRedactedDocumentInfo = createSelector(\n getRedactionState,\n fromRedactions.getRedactedDocInfo\n);\n\nexport const getRedactionEnt = createSelector(\n getRedactionState,\n fromRedactions.getRedactionEnt\n);\n\nexport const getRedactionArray = createSelector(\n getRedactionEnt,\n fromDocument.getDocumentId,\n (ent, documentId) => {\n const redactions = Object.keys(ent).map(key => ent[key]);\n return { redactions, documentId };\n }\n);\n\nexport const getRedactionsPerPage = createSelector(\n fromDocument.getPages,\n getRedactionPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: pageEnt[key] ? pageEnt[key] : [],\n styles: pages[key].styles\n });\n });\n\n return arr;\n }\n }\n);\n\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRedactSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { Subscription } from 'rxjs';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { ThisReceiver } from '@angular/compiler';\n\n@Component({\n selector: 'mv-redaction-toolbar',\n templateUrl: './redaction-toolbar.component.html'\n})\nexport class RedactionToolbarComponent implements OnInit, OnDestroy {\n\n @Input() showRedactSearch: boolean;\n\n preview = false;\n hasRedactions = false;\n\n private subscriptions: Subscription[] = [];\n redactionAllInProgress: boolean;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private store: Store<fromStore.AnnotationSetState>) { }\n\n ngOnInit(): void {\n this.subscriptions.push(this.store.pipe(select(fromRedactSelectors.getRedactionArray)).subscribe(redactions => {\n this.hasRedactions = !!redactions.redactions.length;\n }));\n this.subscriptions.push(this.toolbarEventService.redactAllInProgressSubject.subscribe(inprogress => {\n this.redactionAllInProgress = inprogress;\n }));\n }\n\n onRedactAllSearch() {\n this.toolbarEventService.openRedactionSearch.next(true);\n }\n\n toggleTextRedactionMode() {\n this.toolbarEventService.highlightModeSubject.next(true);\n }\n\n toggleDrawMode() {\n this.toolbarEventService.drawModeSubject.next(true);\n }\n\n togglePreview() {\n this.preview = !this.preview;\n this.toolbarEventService.toggleRedactionPreview(this.preview);\n }\n\n unmarkAll() {\n this.toolbarEventService.unmarkAll();\n }\n\n redact() {\n this.toolbarEventService.applyRedactionToDocument();\n }\n\n toggleRedactBar() {\n this.toolbarEventService.toggleRedactionMode();\n }\n\n redactPage() {\n this.toolbarEventService.drawModeSubject.next(true);\n this.toolbarEventService.redactPage();\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpSelectors from '../../store/selectors/icp.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpState } from '../../icp/icp.interfaces';\n\n@Component({\n selector: 'mv-icp-toolbar',\n templateUrl: './icp-toolbar.component.html'\n})\nexport class IcpToolbarComponent implements OnInit, OnDestroy {\n\n presenterName: string;\n isPresenter: boolean;\n\n private $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.pipe(select(fromIcpSelectors.isPresenter))\n .subscribe(isPresenter => this.isPresenter = isPresenter);\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenterName))\n .subscribe(name => this.presenterName = name));\n }\n\n ngOnDestroy() {\n this.$subscription.unsubscribe();\n }\n\n present() {\n this.toolbarEventService.icp.becomePresenter();\n }\n\n stopPresenting() {\n this.toolbarEventService.icp.stopPresenting();\n }\n\n leaveIcpSession() {\n this.toolbarEventService.icp.leaveSession();\n }\n\n showParticipantsList() {\n this.toolbarEventService.toggleParticipantsList(!this.toolbarEventService.icp.participantsListVisible.getValue());\n }\n}\n","import { RedactionSearchBarComponent } from './redaction-search-bar/redaction-search-bar.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MainToolbarComponent } from './main-toolbar/main-toolbar.component';\nimport { SearchBarComponent } from './search-bar/search-bar.component';\nimport { FormsModule } from '@angular/forms';\nimport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nimport { ToolbarEventService } from './toolbar-event.service';\nimport { RedactionToolbarComponent } from './redaction-toolbar/redaction-toolbar.component';\nimport { IcpToolbarComponent } from './icp-toolbar/icp-toolbar.component';\nexport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nexport { ToolbarEventService } from './toolbar-event.service';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [\n SearchBarComponent,\n MainToolbarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent,\n RedactionSearchBarComponent\n ],\n providers: [\n ToolbarButtonVisibilityService,\n ToolbarEventService\n ],\n exports: [\n MainToolbarComponent,\n SearchBarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent,\n RedactionSearchBarComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n RouterModule\n ]\n})\nexport class ToolbarModule { }\n","import { Component, EventEmitter, Input, Output, ViewChild, ElementRef } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { Annotation } from './annotation.model';\nimport { Rectangle } from './rectangle/rectangle.model';\nimport moment from 'moment-timezone';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport { SelectionAnnotation } from '../../models/event-select.model';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Component({\n selector: 'mv-annotation',\n templateUrl: './annotation-view.component.html'\n})\nexport class AnnotationViewComponent { // todo rename this to selection vew c\n\n @Input() set annotation(value) {\n this.anno = { ...value };\n }\n anno: Annotation;\n selected: boolean;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() set selectedAnnoId(selectedId: { annotationId: string }) {\n if (selectedId) {\n const id = this.anno.id || this.anno.redactionId; // todo make it unique\n this.selected = selectedId.annotationId ? (selectedId.annotationId === id) : false;\n }\n }\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Output() update = new EventEmitter<Annotation>();\n @Output() delete = new EventEmitter<Annotation>();\n @Output() annotationClick = new EventEmitter<SelectionAnnotation>();\n\n @ViewChild('container', { static: false }) container: ElementRef;\n\n constructor(\n private readonly toolbarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>\n ) { }\n\n public onSelect() {\n const annotationId = this.anno.id || this.anno.redactionId;\n this.annotationClick.emit({ annotationId, editable: false, selected: true });\n }\n\n public onRectangleUpdate(rectangle: Rectangle) {\n const annotation = { ...this.anno };\n annotation.rectangles = annotation.rectangles.filter(r => r.id !== rectangle.id);\n annotation.rectangles.push(rectangle);\n this.update.emit(annotation);\n }\n\n public deleteHighlight() {\n this.delete.emit(this.anno);\n }\n\n public addOrEditComment() {\n if (this.anno.comments.length === 0) {\n const comment: Comment = {\n annotationId: this.anno.id,\n content: '',\n createdBy: this.anno.createdBy,\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n id: uuid(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n page: null,\n pages: {},\n pageHeight: null,\n selected: false,\n editable: false\n };\n this.store.dispatch(new fromActions.AddOrEditComment(comment));\n\n }\n this.selected = true;\n this.annotationClick.emit({ annotationId: this.anno.id, editable: true, selected: true });\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Annotation } from './annotation-view/annotation.model';\nimport { Observable } from 'rxjs';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { CommentService } from '../comment-set/comment/comment.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\n\n@Component({\n selector: 'mv-annotation-set',\n templateUrl: './annotation-set.component.html'\n})\nexport class AnnotationSetComponent implements OnInit {\n\n @Input() page: number;\n @Input() annotations: Annotation[] = [];\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n selectedAnnotation$: Observable<SelectionAnnotation>;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService\n ) {}\n\n ngOnInit(): void {\n this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation));\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n public onAnnotationDelete(annotation: Annotation) {\n if (annotation.comments.length > 0) {\n this.commentService.updateUnsavedCommentsStatus(annotation, false);\n }\n this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id));\n }\n\n selectAnnotation(selectedAnnotation: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation));\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { Rectangle } from './rectangle.model';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar-event.service';\nimport { HighlightCreateService } from '../../annotation-create/highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-anno-rectangle',\n templateUrl: './rectangle.component.html'\n})\nexport class RectangleComponent implements OnChanges, AfterViewInit, OnDestroy {\n\n @Input() color: String;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() editable: boolean;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Output() select = new EventEmitter<Rectangle>();\n @Output() update = new EventEmitter<Rectangle>();\n\n @ViewChild('rectElement', {static: false}) viewRect: ElementRef;\n\n private subscriptions: Subscription[] = [];\n _selected: boolean;\n enableGrabNDrag = false;\n\n height: number;\n width: number;\n top: number;\n left: number;\n\n _annoRect: Rectangle;\n @Input()\n set annoRect(annoRect: Rectangle) {\n this._annoRect = { ...annoRect };\n this.height = +(annoRect.height * this.zoom).toFixed(2);\n this.width = +(annoRect.width * this.zoom).toFixed(2);\n this.left = +(annoRect.x * this.zoom).toFixed(2);\n this.top = +(annoRect.y * this.zoom).toFixed(2);\n }\n\n get annoRect() {\n return this._annoRect;\n }\n\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.rotate) {\n this.adjustForRotation(this.rotate);\n }\n }\n\n ngAfterViewInit() {\n this.subscriptions.push(\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n }\n\n @Input()\n set selected(selected: boolean) {\n this._selected = selected;\n if (this._selected && this.viewRect) {\n this.viewRect.nativeElement.focus();\n }\n }\n\n get selected() {\n return this._selected;\n }\n\n onClick() {\n this.select.emit(this.annoRect);\n }\n\n onUpdate(viewRect: any) {\n const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = viewRect;\n if (this.hasRectangleChanged(viewRect)) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, this.rotate, this.zoom);\n rectangle = { ...this.annoRect, ...rectangle };\n this.update.emit({ ...rectangle });\n }\n }\n\n adjustForRotation(rotation: number) {\n const { top, left, height, width } = this;\n switch (rotation) {\n case 90:\n this.width = height;\n this.height = width;\n this.left = this.pageWidth - top - height;\n this.top = left;\n break;\n case 180:\n this.left = this.pageWidth - left - width;\n this.top = this.pageHeight - top - height;\n break;\n case 270:\n this.width = height;\n this.height = width;\n this.left = top;\n this.top = this.pageHeight - left - width;\n break;\n }\n }\n\n hasRectangleChanged(viewRect): boolean {\n return this.left !== viewRect.offsetLeft ||\n this.top !== viewRect.offsetTop ||\n this.width !== viewRect.offsetWidth ||\n this.height !== viewRect.offsetHeight;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TagsModel } from '../../models/tags.model';\n\n@Injectable()\nexport class TagsServices {\n\n public tagItems: {[id: string]: TagsModel[]};\n\n constructor(private http: HttpClient) {}\n\n public getAllTags(createdBy: string): Observable<TagsModel[]> {\n const url = `/em-anno/tags/${createdBy}`;\n return this.http.get<TagsModel[]>(url);\n }\n\n // @TODO: Move everything below this to NgRx store\n getNewTags(annoid: string): TagsModel[] {\n return this.tagItems ? this.tagItems[annoid] : [];\n }\n\n updateTagItems(items: Array<TagsModel>, annoId: string) {\n const snakeCased = items.map(item => {\n return {\n ...item,\n name: this.snakeCase(item.name)\n };\n });\n\n this.tagItems = {\n ...this.tagItems,\n [annoId]: snakeCased\n };\n }\n\n private snakeCase = string => {\n // transform string_to_snake_case\n return string.replace(/ +/g, ' ') // find space\n .split(/ |\\B(?=[A-Z])/) // split it into array\n .map(word => word.toLowerCase()) // transform to lover case\n .join('_'); // trun array into sting using _\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {Comment} from './comment.model';\nimport {User} from '../../models/user.model';\nimport {Rectangle} from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {CommentService} from './comment.service';\nimport {TagsModel} from '../../models/tags.model';\nimport {TagsServices} from '../../services/tags/tags.services';\nimport { Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromSelector from '../../../store/selectors/annotation.selectors';\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\n\n@Component({\n selector: 'mv-anno-comment',\n templateUrl: './comment.component.html'\n})\nexport class CommentComponent implements OnInit, OnDestroy, AfterContentInit {\n\n CHAR_LIMIT = 5000;\n lastUpdate: string;\n originalComment: string;\n fullComment: string;\n author: User;\n createdBy: string;\n editor: User;\n _comment: Comment;\n _editable: boolean;\n _rectangle;\n totalPrevPagesHeight = 0;\n rectTop;\n rectLeft;\n pageHeight: number;\n hasUnsavedChanges = false;\n selected: boolean;\n searchString: string;\n public tagItems: TagsModel[];\n marginToComment$: Observable<boolean> ;\n\n\n\n @Output() commentClick = new EventEmitter<SelectionAnnotation>();\n @Output() renderComments = new EventEmitter<Comment>();\n @Output() delete = new EventEmitter<Comment>();\n @Output() updated = new EventEmitter<{comment: Comment, tags: TagsModel[]}>();\n @Output() changes = new EventEmitter<boolean>();\n @Input() rotate = 0;\n @Input() zoom = 1;\n @Input() index: number;\n @Input() page: number;\n\n @ViewChild('form', {static: false}) form: ElementRef;\n @ViewChild('editableComment', {static: false}) editableComment: ElementRef<HTMLElement>;\n\n private subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private tagsServices: TagsServices\n ) {}\n\n\n ngOnInit(): void {\n this.subscriptions = this.store.select(fromSelector.getComponentSearchText)\n .pipe(distinctUntilChanged()).subscribe(searchString => this.searchString = searchString);\n this.reRenderComments();\n this.marginToComment$ = this.commentService.marginToCommentEmitter.asObservable();\n }\n\n ngAfterContentInit(): void {\n if (this.tagItems && this.tagItems.length) {\n this.tagsServices.updateTagItems(this.tagItems, this._comment.annotationId);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n @Input()\n set comment(comment: Comment) {\n this._comment = {...comment};\n this.page = this._comment.page;\n this.lastUpdate = comment.lastModifiedDate ? comment.lastModifiedDate : comment.createdDate;\n this.author = comment.createdByDetails;\n this.createdBy = comment.createdBy;\n this.editor = comment.lastModifiedByDetails;\n this.originalComment = comment.content;\n this.fullComment = this.originalComment;\n this.selected = this._comment.selected;\n this._editable = this._comment.editable;\n this.tagItems = this._comment.tags;\n const pageMarginBottom = 10;\n this.totalPrevPagesHeight = 0;\n for (let i = 0; i < this.page - 1; i++) {\n const height = this._comment.pages[i + 1] ? this._comment.pages[i + 1].styles.height : undefined;\n if (height) {\n this.totalPrevPagesHeight += height + pageMarginBottom;\n }\n }\n\n }\n\n get comment() {\n return this._comment;\n }\n\n @Input()\n set annotation(annotation: Annotation) {\n this._rectangle = annotation.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n const actualHeight = this._comment.pages[this.page].styles.height / this.zoom;\n switch (this.rotate) {\n case 90: this.rectTop = this._rectangle.x;\n break;\n case 180: this.rectTop = actualHeight - (this._rectangle.y + this._rectangle.height);\n break;\n case 270: this.rectTop = actualHeight - (this._rectangle.x + this._rectangle.width);\n break;\n default: this.rectTop = this._rectangle.y;\n }\n this.rectLeft = this._rectangle.x;\n }\n\n get editable(): boolean {\n return this._editable;\n }\n\n onCommentChange(updatedComment) {\n this.hasUnsavedChanges =\n this.originalComment.substring(0, this.CHAR_LIMIT) !== updatedComment.substring(0, this.CHAR_LIMIT);\n this.commentService.onCommentChange(this.hasUnsavedChanges);\n }\n\n deleteOrCancel() {\n if (!this.editable) {\n this.delete.emit(this._comment);\n } else {\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.fullComment = this.originalComment;\n this.changes.emit(false);\n if (!this.author && !this.fullComment) {\n this.delete.emit(this._comment);\n }\n }\n }\n\n public editOrSave() {\n if (!this.editable) {\n this._editable = true;\n } else {\n this._comment.content = this.fullComment.substring(0, this.CHAR_LIMIT);\n const tags = this.tagsServices.getNewTags(this._comment.annotationId);\n const payload = {\n comment: this._comment,\n tags\n };\n this.updated.emit(payload);\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.changes.emit(false);\n }\n }\n\n onCommentClick() {\n if (!this.selected) {\n this.selected = true;\n this._editable = false;\n this.commentClick.emit({ annotationId: this._comment.annotationId, editable: this._editable, selected: true });\n }\n }\n\n reRenderComments() {\n this.renderComments.emit(this._comment);\n }\n\n get commentTop(): number {\n return this.totalPrevPagesHeight + (this.rectTop * this.zoom);\n }\n\n\n get height() {\n return this.form.nativeElement.getBoundingClientRect().height / this.zoom;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\n\n@Component({\n selector: 'mv-ctx-toolbar',\n templateUrl: './ctx-toolbar.component.html'\n})\nexport class CtxToolbarComponent implements OnChanges {\n\n readonly defaultHeight;\n readonly defaultWidth;\n\n @Input() zoom;\n @Input() rotate;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Input() canHighlight: boolean;\n @Input() canBookmark: boolean;\n @Input() canComment: boolean;\n @Input() canDelete: boolean;\n\n @Output() createHighlightEvent = new EventEmitter();\n @Output() deleteHighlightEvent = new EventEmitter();\n @Output() addOrEditCommentEvent = new EventEmitter();\n @Output() createBookmarkEvent = new EventEmitter<Rectangle>();\n\n rectangle: Rectangle;\n _rectangles: Rectangle[];\n top: number;\n left: number;\n\n constructor() {\n this.defaultHeight = 70;\n this.defaultWidth = 300;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.setRectangle();\n this.top = this.popupTop();\n this.left = this.popupLeft();\n }\n\n @Input() set rectangles(rectangles: Rectangle[]) {\n if (rectangles) {\n this._rectangles = rectangles;\n this.setRectangle();\n }\n }\n\n get rectangles() {\n return this._rectangles;\n }\n\n createHighlight() {\n this.createHighlightEvent.emit();\n this.rectangle = undefined;\n }\n\n deleteHighlight() {\n this.deleteHighlightEvent.emit();\n }\n\n addOrEditComment() {\n this.addOrEditCommentEvent.emit();\n setTimeout(() => {\n if (!location.hash) {\n document.getElementById('viewerContainer').scrollBy(0, 1);\n }\n }, 10);\n }\n\n createBookmark() {\n this.createBookmarkEvent.emit(this.rectangle);\n this.rectangle = undefined;\n }\n\n setRectangle() {\n const rectangle = this.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n this.rectangle = { ...rectangle };\n switch (this.rotate) {\n case 90:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;\n this.rectangle.y = rectangle.x;\n break;\n case 180:\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.x - rectangle.width;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.y - rectangle.height;\n break;\n case 270:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = rectangle.y;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.x - rectangle.width;\n break;\n }\n }\n\n popupTop() {\n const popupTop = this.rectangle.y * this.zoom - this.defaultHeight;\n return popupTop <= 0 ? this.defaultHeight : popupTop;\n }\n\n popupLeft() {\n const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);\n if (popupLeft <= 0) {\n return 0;\n } else if (popupLeft >= this.pageWidth - this.defaultWidth) {\n return this.pageWidth - this.defaultWidth;\n } else {\n return popupLeft;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CommentComponent } from './comment/comment.component';\n\n@Injectable()\nexport class CommentSetRenderService {\n\n redrawComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n let prevComment: CommentComponent;\n this.sortComponents(commentComponents, pageHeights, rotate, zoom).forEach((comment: CommentComponent) => {\n this.adjustIfOverlapping(comment, prevComment, zoom);\n prevComment = comment;\n });\n }\n\n sortComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n return commentComponents.sort((a: CommentComponent, b: CommentComponent) => {\n a.rectTop = this.top(a._rectangle, pageHeights[a.page - 1], rotate, zoom);\n b.rectTop = this.top(b._rectangle, pageHeights[b.page - 1], rotate, zoom);\n return this.processSort(a, b);\n });\n }\n\n private adjustIfOverlapping(comment: CommentComponent, prevComment: CommentComponent, zoom: number): void {\n if (prevComment) {\n const endOfPrevComment = prevComment.commentTop + this.height(prevComment);\n if (comment.commentTop <= endOfPrevComment) {\n comment.rectTop = (endOfPrevComment - comment.totalPrevPagesHeight) / zoom;\n }\n }\n }\n\n private processSort(a: CommentComponent, b: CommentComponent): number {\n if (this.onSameLine(a, b)) {\n return a.rectLeft >= b.rectLeft ? 1 : -1;\n }\n return a.commentTop >= b.commentTop ? 1 : -1;\n }\n\n private onSameLine(a: CommentComponent, b: CommentComponent): boolean {\n return this.difference(a.commentTop, b.commentTop) === 0;\n }\n\n private top(rectangle: { x, y, height, width }, height: number, rotate: number, zoom: number) {\n const actualHeight = height / zoom;\n switch (rotate) {\n case 90: return rectangle.x;\n case 180: return actualHeight - (rectangle.y + rectangle.height);\n case 270: return actualHeight - (rectangle.x + rectangle.width);\n default: return rectangle.y;\n }\n }\n\n private height(element: any) {\n return element.form.nativeElement.getBoundingClientRect().height;\n }\n\n private difference(a: number, b: number): number { return Math.abs(a - b); }\n}\n","import {\n Component,\n ElementRef,\n Input, OnChanges,\n OnDestroy,\n OnInit,\n QueryList, SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\n\nimport { AnnotationSet } from '../annotation-set/annotation-set.model';\nimport { Annotation } from '../annotation-set/annotation-view/annotation.model';\nimport { Comment } from './comment/comment.model';\nimport { CommentComponent } from './comment/comment.component';\nimport { CommentService } from './comment/comment.service';\nimport { CommentSetRenderService } from './comment-set-render.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport { TagsModel } from '../models/tags.model';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set',\n templateUrl: './comment-set.component.html',\n })\nexport class CommentSetComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() annotationSet: AnnotationSet;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() height: number;\n @Input() pageHeights = [];\n @Input() contentScrollTop: number;\n\n comments: Comment[];\n tags: TagsModel[];\n private subscriptions: Subscription[] = [];\n public comments$: Observable<Annotation[]>;\n public annoEntities$: Observable<{ [id: string]: Annotation }>;\n\n @ViewChild('container', {static: false}) container: ElementRef<HTMLDivElement>;\n @ViewChild('panel', {static: false}) panel: ElementRef<HTMLDivElement>;\n @ViewChildren('commentComponent') commentComponents: QueryList<CommentComponent>;\n\n showCommentsPanel: boolean;\n\n constructor(private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private readonly renderService: CommentSetRenderService,\n private readonly toolbarEvents: ToolbarEventService) {\n this.clearSelection();\n }\n\n ngOnInit() {\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentsArray));\n this.annoEntities$ = this.store.pipe(select(fromSelectors.getAnnotationEntities));\n this.subscriptions.push(\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.redrawComments();\n this.showCommentsPanel = toggle;\n })\n );\n this.subscriptions.push(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument()));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationSet) {\n this.commentService.setCommentSet(this);\n }\n if (changes.contentScrollTop) {\n if (this.container) {\n this.container.nativeElement.scrollTo(0, this.contentScrollTop);\n }\n }\n }\n\n ngOnDestroy() {\n if (this.subscriptions.length > 0) {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n }\n\n public onSelect(annotationId: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(annotationId));\n }\n\n public onCommentDelete(comment: Comment) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === comment.annotationId);\n const comments = [];\n const annot = {\n ...annotation,\n comments\n };\n this.onAnnotationUpdate(annot);\n this.redrawComments();\n }\n\n redrawComments() {\n setTimeout(() => {\n const componentList: CommentComponent[] = this.commentComponents.map(comment => comment);\n this.renderService.redrawComponents(componentList, this.pageHeights, this.rotate, this.zoom);\n }, 0);\n }\n\n private rotateDocument() {\n if (this.panel) {\n this.panel.nativeElement.style.height = '0';\n }\n }\n\n public onCommentUpdate(payload: {comment: Comment, tags: TagsModel[]} ) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === payload.comment.annotationId);\n const comments = [payload.comment];\n const tags = payload.tags;\n const annot = {\n ...annotation,\n comments,\n tags\n };\n this.onAnnotationUpdate(annot);\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n onContainerClick(e) {\n if (e.path && e.path[0] === this.panel.nativeElement) {\n this.clearSelection();\n }\n }\n\n clearSelection() {\n this.store.dispatch(new fromActions.SelectedAnnotation({ annotationId: '', editable: false, selected: false}));\n }\n\n allCommentsSaved() {\n this.commentService.allCommentsSaved();\n }\n}\n","import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[mvTextAreaAutoExpand]'\n})\nexport class TextareaAutoExpandDirective implements AfterContentChecked {\n\n constructor(private el: ElementRef) {\n }\n\n ngAfterContentChecked(): void {\n this.adjustHeight();\n }\n\n @HostListener('input') onMouseDown() {\n this.adjustHeight();\n }\n\n adjustHeight(): void {\n const nativeElement = this.el.nativeElement;\n nativeElement.style.overflow = 'hidden';\n nativeElement.style.height = 'auto';\n nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';\n }\n\n}\n","import {Component, Input, ViewChild, ElementRef, OnInit, OnDestroy} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport {select, Store} from '@ngrx/store';\n\nimport { PrintService } from '../../print.service';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromAnnoActions from '../../store/actions/annotation.actions';\nimport * as fromTagSelectors from '../../store/selectors/tag.selectors';\n\n@Component({\n selector: 'mv-comments-summary',\n templateUrl: './comments-summary.component.html',\n})\nexport class CommentsSummaryComponent implements OnInit, OnDestroy {\n\n @Input() title: string;\n @Input() contentType: string;\n @ViewChild('outerContainer', {static: true}) container: ElementRef;\n @ViewChild('commentContainer', {static: false}) commentsTable: ElementRef;\n public comments$: Observable<any>;\n public filtersFg: FormGroup;\n private $subscriptions: Subscription;\n allTags$: Observable<{key: string; length: number}[]>;\n showFilters = false;\n hasFilter = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly toolbarEvents: ToolbarEventService,\n private fb: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.filtersFg = this.fb.group({\n dateRangeFrom: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n dateRangeTo: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n tagFilters: this.fb.group({}),\n });\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentSummary));\n this.buildCheckBoxForm();\n this.container.nativeElement.focus();\n }\n\n buildCheckBoxForm() {\n this.filtersFg.reset();\n const checkboxes = <FormGroup>this.filtersFg.get('tagFilters');\n const filters$ = this.store.pipe(select(fromSelectors.getCommentSummaryFilters));\n this.allTags$ = this.store.pipe(select(fromTagSelectors.getAllTagsArr));\n this.$subscriptions = combineLatest([this.allTags$, filters$]).subscribe(([tags, filters]) => {\n this.hasFilter = filters.hasFilter;\n tags.forEach((val) => {\n const checkBoxValue = (filters.filters.tagFilters &&\n filters.filters.tagFilters.hasOwnProperty(val.key)) ?\n filters.filters.tagFilters[val.key] : false;\n checkboxes.addControl(val.key, new FormControl(checkBoxValue));\n });\n this.filtersFg.updateValueAndValidity();\n });\n }\n\n onClearFilters() {\n this.store.dispatch(new fromAnnoActions.ClearCommentSummaryFilters());\n this.buildCheckBoxForm();\n }\n\n onFilter() {\n const { value } = this.filtersFg;\n const hasDateFrom = (value.dateRangeFrom.year && value.dateRangeFrom.month && value.dateRangeFrom.day);\n const hasDateTo = (value.dateRangeTo.year && value.dateRangeTo.month && value.dateRangeTo.day);\n const dateRangeFrom = hasDateFrom ?\n new Date(value.dateRangeFrom.year, value.dateRangeFrom.month - 1, value.dateRangeFrom.day).getTime() : null;\n const dateRangeTo = hasDateTo ?\n new Date(value.dateRangeTo.year, value.dateRangeTo.month - 1, value.dateRangeTo.day).getTime() : null;\n this.store.dispatch(new fromAnnoActions.ApplyCommentSymmaryFilter({...value, dateRangeFrom, dateRangeTo}));\n }\n\n onFiltersToggle() {\n this.showFilters = !this.showFilters;\n }\n\n public onClose(): void {\n this.toolbarEvents.toggleCommentsSummary(false);\n }\n\n public onPrint(): void {\n this.printService.printElementNatively(this.commentsTable.nativeElement, 1000, 900);\n }\n\n navigateToPage(pageNumber: number) {\n if (this.contentType === 'pdf') {\n this.toolbarEvents.setPage(pageNumber);\n }\n this.toolbarEvents.toggleCommentsSummary(false);\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { HighlightCreateService } from '../highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-box-highlight-create',\n templateUrl: './box-highlight-create.component.html',\n})\nexport class BoxHighlightCreateComponent implements OnInit, OnDestroy {\n\n @Input() page: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Input() rotate: number;\n @Input() zoom: number;\n @Input() container: { top: number, left: number };\n\n @Output() saveSelection = new EventEmitter<{ rectangles: Rectangle[], page: number }>();\n\n @ViewChild('boxHighlight', { static: false }) highlight: ElementRef;\n\n drawStartX = -1;\n drawStartY = -1;\n top: number;\n left: number;\n height: number;\n width: number;\n display: string;\n drawMode: boolean;\n defaultHeight: string;\n defaultWidth: string;\n position: string;\n backgroundColor = 'none';\n wholePage: boolean;\n\n private subscriptions: Subscription[] = [];\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) { }\n\n ngOnInit(): void {\n this.subscriptions = [\n this.toolbarEvents.drawModeSubject.subscribe(drawMode => {\n this.defaultHeight = drawMode ? '100%' : '0px';\n this.defaultWidth = drawMode ? '100%' : '0px';\n }),\n this.toolbarEvents.redactWholePage.subscribe(() => {\n this.wholePage = true;\n })\n ];\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n\n initHighlight({ offsetX, offsetY }) {\n if (this.wholePage) {\n this.highlightPage();\n return;\n }\n this.position = 'absolute';\n this.backgroundColor = 'yellow';\n this.drawStartX = offsetX;\n this.drawStartY = offsetY;\n\n this.display = 'block';\n this.height = 50;\n this.width = 50;\n\n this.top = this.drawStartY;\n this.left = this.drawStartX;\n\n switch (this.rotate) {\n case 90:\n this.top = this.drawStartY - this.height;\n break;\n case 180:\n this.top = this.drawStartY - this.height;\n this.left = this.drawStartX - this.width;\n break;\n case 270:\n this.left = this.drawStartX - this.width;\n break;\n }\n }\n\n updateHighlight({ currentTarget, clientX, clientY }) {\n const rect = currentTarget.getBoundingClientRect(),\n offsetX = clientX - rect.left,\n offsetY = clientY - rect.top;\n if (this.drawStartX > 0 && this.drawStartY > 0) {\n this.height = Math.abs(offsetY - this.drawStartY);\n this.width = Math.abs(offsetX - this.drawStartX);\n this.top = Math.min(offsetY, this.drawStartY);\n this.left = Math.min(offsetX, this.drawStartX);\n }\n }\n\n createHighlight() {\n if (this.height / this.zoom > 5 || this.width / this.zoom > 5) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle } as any;\n this.saveSelection.emit({ rectangles: [rectangle], page: this.page });\n this.resetHighlight();\n }\n }\n\n private resetHighlight() {\n this.drawStartX = -1;\n this.drawStartY = -1;\n this.display = 'none';\n this.width = 0;\n this.height = 0;\n this.wholePage = false;\n }\n\n private highlightPage() {\n this.height = this.pageHeight;\n this.width = this.pageWidth;\n this.top = 0;\n this.left = 0;\n this.createHighlight();\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromTagSelectors from '../../../store/selectors/tag.selectors';\nimport * as fromAnnoSelector from '../../../store/selectors/annotation.selectors';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { CommentService } from '../comment/comment.service';\n\n@Component({\n selector: 'mv-comment-set-header',\n templateUrl: './comment-set-header.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class CommentSetHeaderComponent implements OnInit, OnDestroy {\n\n @Input() public showCommentSummary: boolean;\n @Output() public readonly showCommentSummaryDialog = new EventEmitter();\n\n marginToComment: boolean;\n tabs: {isFiltered?: boolean; label: string}[] = [];\n tabSelected = '';\n isFiltered: boolean;\n navigationList: Annotation[];\n $subscriptions: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n private commentService: CommentService,\n public toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n const tagFilter$ = this.store.pipe(select(fromTagSelectors.getTagFilters));\n const filteredAnnotation$ = this.store.pipe(select(fromAnnoSelector.getFilteredAnnotations));\n\n this.$subscriptions = combineLatest([tagFilter$, filteredAnnotation$]).subscribe(([formData, filteredAnno]) => {\n this.navigationList = filteredAnno;\n this.tabs = this.navigationList.length > 0 ?\n [{label: 'comments'}, {label: 'filter'}, {label: 'search'}] : [{label: 'comments'}];\n this.isFiltered = !formData.length;\n this.tabs = [...this.tabs].map((tab) => {\n return !this.isFiltered && tab.label === 'filter' ? {...tab, isFiltered: true} : {...tab, isFiltered: false};\n });\n });\n }\n\n public toggleCommentsSummary(): void {\n this.showCommentSummaryDialog.emit();\n }\n\n selectTab(tab: string) {\n this.tabSelected = tab !== this.tabSelected ? tab : undefined;\n if (this.tabSelected) {\n this.marginToComment = true;\n this.commentService.createMarginToCommentEvent(this.marginToComment);\n } else {\n this.marginToComment = false;\n this.commentService.createMarginToCommentEvent(this.marginToComment);\n }\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../../annotation-set/annotation-view/annotation.model';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\n\n@Component({\n selector: 'mv-comment-search',\n templateUrl: './comment-search.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSearchComponent implements AfterViewInit, OnDestroy {\n\n @Input() public readonly annotations: Annotation[];\n\n @ViewChild('searchInput', {static: false}) searchInput: ElementRef<HTMLInputElement>;\n\n searchString: string;\n searchResults: Annotation[] = [];\n searchIndex = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>) {}\n\n ngAfterViewInit(): void {\n if (this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n }\n\n ngOnDestroy(): void {\n // TODO workaround for tab error\n setTimeout(() => {this.store.dispatch(new fromActions.SearchComment('')); }, 250);\n }\n\n searchComments(searchText: string): void {\n this.clearSearch();\n if (searchText.length > 2) {\n this.searchString = searchText;\n this.searchResults = this.annotations\n .filter(annotation => annotation.comments.length > 0)\n .filter(annotation =>\n annotation.comments[0].content.toLowerCase().includes(this.searchString.toLowerCase()));\n if (this.searchResults.length > 0) {\n this.store.dispatch(new fromActions.SearchComment(searchText));\n }\n }\n }\n\n clearSearch() {\n this.searchString = undefined;\n this.searchResults = [];\n this.searchIndex = 0;\n this.store.dispatch(new fromActions.SearchComment(''));\n }\n}\n","import { AfterViewChecked, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[mvTextHighlight]'\n})\nexport class TextHighlightDirective implements AfterViewChecked {\n\n @Input() textToHighlight: string;\n\n constructor(private element: ElementRef<HTMLElement>) {}\n\n ngAfterViewChecked(): void {\n if (this.textToHighlight) {\n this.highlightInputText(this.textToHighlight);\n }\n }\n\n highlightInputText(textToHighlight: string) {\n this.resetHighlight();\n this.textToHighlight = textToHighlight;\n const searchPattern = new RegExp(textToHighlight, 'gi');\n const hostElement = this.element.nativeElement;\n if (hostElement.innerHTML.match(searchPattern)) {\n hostElement.innerHTML = hostElement.innerHTML\n .replace(searchPattern, this.highlightPattern('$&'));\n }\n this.textToHighlight = undefined;\n }\n\n resetHighlight() {\n const hostElement = this.element.nativeElement;\n const searchPattern = new RegExp(this.highlightPattern('(.*?)'), 'gi');\n while (hostElement.innerHTML.match(searchPattern)) {\n const matchGroups = searchPattern.exec(hostElement.innerHTML);\n if (matchGroups) {\n hostElement.innerHTML = hostElement.innerHTML.replace(matchGroups[0], matchGroups[1]);\n }\n }\n }\n\n private highlightPattern(dynamicText: string) {\n return '<span class=\"mvTextHighlight\">' + dynamicText + '</span>';\n }\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {TagsModel} from '../models/tags.model';\nimport {TagsServices} from '../services/tags/tags.services';\nimport {FormControl} from '@angular/forms';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'mv-tags',\n templateUrl: './tags.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TagsComponent {\n @Input() tagItems: TagsModel[];\n @Input() userId: string;\n @Input() editable: boolean;\n @Input() annoId: string;\n\n public validators = [this.minLength, this.maxLength20];\n public errorMessages: {[id: string]: string} = {\n 'minLength': 'Minimum of 2 characters',\n 'maxLength20': 'Maximum of 20 characters'\n };\n\n constructor(private tagsServices: TagsServices) {}\n\n onUpdateTags(value) {\n this.tagsServices.updateTagItems(value, this.annoId);\n }\n\n public requestAutocompleteItems = (text: string): Observable<any[]> => {\n return this.tagsServices.getAllTags(this.userId);\n }\n\n private minLength(control: FormControl) {\n if (control.value.length < 2) {\n return {\n 'minLength': true\n };\n }\n return null;\n }\n\n private maxLength20(control: FormControl) {\n if (control.value.length >= 20) {\n return {\n 'maxLength20': true\n };\n }\n return null;\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { Rectangle } from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comments-navigate',\n templateUrl: './comments-navigate.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentsNavigateComponent implements OnChanges {\n\n @Input() public annotationList: Annotation[];\n @Input() autoSelect = false;\n\n navigationList: any[] = [];\n index = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>, public readonly toolbarEvents: ToolbarEventService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationList) {\n this.initNavigationList();\n }\n }\n\n initNavigationList(): void {\n this.index = 0;\n this.navigationList = [...this.annotationList || []]\n .map(annotation => ({\n content: annotation.comments[0].content,\n annotationId: annotation.id,\n page: annotation.page,\n rectangle: this.upperRectangle(annotation.rectangles),\n }))\n .sort(this.sortComments);\n\n if (this.autoSelect) {\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[0].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[0].annotationId,\n editable: false,\n selected: true\n }));\n }\n }\n\n sortComments(mappedCommentA, mappedCommentB) {\n if (mappedCommentA.page !== mappedCommentB.page) {\n return mappedCommentA.page - mappedCommentB.page;\n } else {\n const rectA = mappedCommentA.rectangle;\n const rectB = mappedCommentB.rectangle;\n if (rectA.y !== rectB.y) {\n return rectA.y - rectB.y;\n } else {\n return rectA.x - rectB.x;\n }\n }\n }\n\n nextItem() {\n this.index += 1;\n if (this.index === this.annotationList.length) {\n this.index = 0;\n }\n\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId, editable: false, selected: true\n }));\n }\n\n\n prevItem() {\n this.index -= 1;\n if (this.index < 0) {\n this.index = this.navigationList.length - 1;\n }\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId,\n editable: false,\n selected: true\n }));\n }\n\n upperRectangle(rectangles: Rectangle[]) {\n [...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);\n return { x: rectangles[0].x, y: rectangles[0].y };\n }\n}\n","import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\n\nimport {select, Store} from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/tag.selectors';\nimport * as fromActions from '../../../../store/actions/tag.actions';\nimport {Observable, Subscription} from 'rxjs';\nimport {FormGroup, FormBuilder, FormControl} from '@angular/forms';\nimport {auditTime, tap} from 'rxjs/operators';\n\n\n@Component({\n selector: 'mv-comment-filter',\n templateUrl: './comment-filter.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentFilterComponent implements OnInit, OnDestroy {\n tagGroup: FormGroup;\n $subscriptions: Subscription;\n filter$: Observable<string[]>;\n allTags$: Observable<any>;\n searchValue: string;\n isPreview = false;\n constructor(\n private store: Store<fromStore.State>,\n private fb: FormBuilder) {}\n\n ngOnInit(): void {\n this.tagGroup = this.fb.group({\n 'tagFilters': this.fb.group({}),\n });\n this.filter$ = this.store.pipe(select(fromSelectors.getTagFilters));\n this.$subscriptions = this.tagGroup.valueChanges.pipe(auditTime(5)).subscribe(value => {\n const tagFilters = value['tagFilters'];\n this.store.dispatch(new fromActions.AddFilterTags(tagFilters));\n });\n this.buildFrom();\n\n }\n\n buildFrom() {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n this.allTags$ = this.store.pipe(select(fromSelectors.getAllTagsArr)).pipe(tap(tags => {\n this.tagGroup.reset();\n tags.forEach((value) => {\n checkboxes.addControl(value.key, new FormControl(false));\n });\n }));\n }\n\n onClearFilters() {\n this.tagGroup.reset();\n this.store.dispatch(new fromActions.ClearFilterTags());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n onRemoveFilter(tagName) {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n checkboxes.controls[tagName].setValue(false);\n }\n\n onToggleFilterView() {\n this.isPreview = !this.isPreview;\n }\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport moment from 'moment-timezone';\n/**\n * A moment timezone pipe to support parsing based on time zone abbreviations\n * covers all cases of offset variation due to daylight saving.\n *\n * Same API as DatePipe with additional timezone abbreviation support\n * Official date pipe dropped support for abbreviations names from Angular V5\n */\n@Pipe({\n name: 'momentDate'\n})\nexport class MomentDatePipe extends DatePipe implements PipeTransform {\n\n transform(\n value: string | Date,\n format: string = 'mediumDate',\n timezone: string = 'Europe/London'\n ): any {\n const timezoneOffset = moment(value).tz(timezone).format('Z');\n return super.transform(value, format, timezoneOffset);\n }\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { Bookmark } from '../../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\n@Injectable()\nexport class BookmarksApiService {\n\n private readonly ANNOTATIONS_API = '/em-anno';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getBookmarks(documentId: string): Observable<any> {\n return this.httpClient\n .get(`${this.ANNOTATIONS_API}/${documentId}/bookmarks`,\n { observe: 'response' , withCredentials: true });\n }\n\n public createBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .post<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .put<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateMultipleBookmarks(bookmarks: Partial<Bookmark[]>): Observable<Bookmark[]> {\n return this.httpClient\n .put<Bookmark[]>(`${this.ANNOTATIONS_API}/bookmarks_multiple`,\n bookmarks, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteBookmark(bookmarkId: string): Observable<void> {\n return this.httpClient\n .delete<void>(`${this.ANNOTATIONS_API}/bookmarks/${bookmarkId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteMultipleBookmarks(payload: { deleted: string[], updated: Bookmark }): Observable<void> {\n return this.httpClient\n .request<void>('DELETE', `${this.ANNOTATIONS_API}/bookmarks_multiple`,\n { body: payload, observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchText: string, fieldName: string): any[] {\n\n if (!items) {\n return [];\n }\n\n if (!searchText) {\n return items;\n }\n\n return items.filter(item => {\n if (item) {\n if (item[fieldName]) {\n return item[fieldName].toLowerCase().includes(searchText.toLowerCase());\n } else {\n return item.toLowerCase().includes(searchText.toLowerCase());\n }\n }\n return false;\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'unsnake'\n})\nexport class UnsnakePipe implements PipeTransform {\n\n transform(items: string): string {\n return items.split('_').join(' ');\n }\n\n}\n","import {Component, Input} from '@angular/core';\n/*\n* Gov UK Date Component\n* Responsible for displaying 3 input fields:\n* day / month / year\n* displaying errorMessage messages\n* */\n@Component({\n selector: 'mv-gov-uk-date',\ntemplateUrl: './gov-uk-date.component.html'\n})\nexport class GovUkDateComponent {\n @Input() config: { id: string; legend: string };\n @Input() errorMessage: {isInvalid: boolean; messages: string[]};\n @Input() formGroup;\n}\n","import {Component, Directive, Input} from '@angular/core';\n/*\n* Gov UK Error Message\n* Responsible for displaying in-line error messages\n* @prop config - obj with properties\n* @prop errorMessage - all error bject with messages property that is arry of strings.\n* */\n@Component({\n selector: ' mv-gov-uk-error-message',\n template: `\n <span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{message}}\n </span>\n `\n})\nexport class GovUkErrorMessageComponent {\n constructor () { }\n @Input() config: { id: string };\n @Input() errorMessage;\n}\n","/**\n * Helper Class\n * Used for dynamic templates manipulation\n * */\n\nexport class HtmlTemplatesHelper {\n\n static setDescribedBy(errorMessage, config) {\n if (!errorMessage) {\n return config.hint ? `${config.id}-hint` : null;\n } else if (errorMessage && errorMessage.isInvalid) {\n return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;\n } else {\n return config.hint ? `${config.id}-hint` : null;\n }\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {HtmlTemplatesHelper} from '../util/helpers/html-templates.helper';\n/*\n* Gov Uk Fieldset Component\n* Used to wrap group fieldset elements\n* it can conditionally display h1 tag\n* @param config\n* @param isHeading\n* @param errorMessage - used for aria tag\n* */\n@Component({\n selector: 'mv-gov-uk-fieldset',\n template: `\n <fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!isHeading\">\n {{config.legend}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"isHeading\">\n <h1>{{config.legend}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint}}\n </span>\n <ng-content></ng-content>\n </fieldset>\n `\n})\nexport class GovUkFieldsetComponent {\n @Input() config: {legend: string; classes: string, id: string, hint: string, key: string};\n @Input() isHeading: boolean;\n @Input() errorMessage: string[];\n\n setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input} from '@angular/core';\n\n/*\n* Gov UK Label component\n* Responsible for displaying label tag\n* @prop isPageHading - boolean to display h1\n* @prop config - obj with properties\n* */\n@Component({\n selector: 'mv-gov-label',\n template: `<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </h1>\n <ng-template #noHeading>\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </ng-template>\n `\n})\nexport class GovUkLabelComponent {\n constructor () { }\n @Input() config: { label: string, name: string; id: string, isPageHeading, classes: string };\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {GovUkDateComponent} from './gov-uk-date/gov-uk-date.component';\nimport {GovUkErrorMessageComponent} from './gov-uk-error-message/gov-uk-error-message.component';\nimport {GovUkFieldsetComponent} from './gov-uk-fieldset/gov-uk-fieldset.component';\nimport {GovUkLabelComponent} from './gov-uk-label/gov-uk-label.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n RouterModule\n ],\n declarations: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n\n ],\n exports: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n ]\n})\nexport class SharedModule {}\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport { generateBookmarkNodes } from '../bookmarks-store-utils';\nimport * as fromDocument from './document.selectors';\n\nexport const getBookmarkState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.bookmarks\n);\n\nexport const getBookmarkPages = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkPageEnt\n);\n\nexport const getBookmarkEntities = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkEnts\n);\n\nexport const getBookmarkNodes = createSelector(\n getBookmarkEntities,\n (entities) => generateBookmarkNodes(entities)\n);\n\nexport const getEditableBookmark = createSelector(\n getBookmarkState,\n fromBookmarks.getEditBookmark\n);\n\nexport const getBookmarkInfo = createSelector(\n getBookmarkNodes,\n fromDocument.getDocumentId,\n fromDocument.getPdfPosition,\n fromDocument.getPages,\n (bookmarkNodes, docId, pdfPosition, pages) => {\n return {\n pageNumber: pdfPosition.pageNumber - 1,\n xCoordinate: pdfPosition.left,\n yCoordinate: pages[pdfPosition.pageNumber].styles.height - (pdfPosition.top * pages[pdfPosition.pageNumber].viewportScale),\n previous: bookmarkNodes.length > 0 ? bookmarkNodes.sort((a, b) => a.index - b.index)[bookmarkNodes.length - 1].id : undefined,\n documentId: docId\n };\n }\n);\n\nexport const getBookmarksPerPage = createSelector(\n fromDocument.getPages,\n getBookmarkPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n const pageIdx = Number(key) - 1; // -1 as the thisPages array is 0 indexed\n const thisPage = pageEnt[pageIdx];\n arr.push({\n bookmark: thisPage ? thisPage : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport { v4 as uuid } from 'uuid';\n\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromDocument from '../../../store/selectors/document.selectors';\nimport * as fromSelectors from '../../../store/selectors/annotation.selectors';\nimport { HighlightCreateService } from '../annotation-create/highlight-create/highlight-create.service';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\nimport { CreateBookmark } from '../../../store/actions/bookmark.actions';\nimport * as fromBookmarks from '../../../store/selectors/bookmark.selectors';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Highlight, ViewerEventService } from '../../../viewers/viewer-event.service';\n\n@Component({\n selector: 'mv-metadata-layer',\n templateUrl: './metadata-layer.component.html'\n})\nexport class MetadataLayerComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n pages: any[] = []; // todo add type\n annoPages$: Observable<any>; // todo add type\n\n drawMode = false;\n highlightPage: number;\n rectangles: Rectangle[];\n\n private $subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly highlightService: HighlightCreateService,\n private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService) { }\n\n ngOnInit(): void {\n this.$subscriptions = this.store.pipe(select(fromDocument.getPages))\n .subscribe(pages => this.pages = Object.values(pages));\n this.annoPages$ = this.store.pipe(select(fromSelectors.getPageEntities));\n\n this.$subscriptions\n .add(this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode))\n .add(this.viewerEvents.textHighlight.subscribe(highlight => this.showContextToolbar(highlight)))\n .add(this.viewerEvents.ctxToolbarCleared.subscribe(() => this.clearContextToolbar()));\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n showContextToolbar(highlight: Highlight) {\n this.highlightPage = highlight.page;\n this.rectangles = highlight.rectangles;\n if (this.rectangles) {\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n }\n\n clearContextToolbar() {\n this.rectangles = undefined;\n }\n\n createHighlight() {\n this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n }\n\n createBookmark(rectangle: Rectangle) {\n this.store.pipe(select(fromBookmarks.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n const selection = window.getSelection().toString();\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo,\n name: selection.length > 0 ? selection.substr(0, 30) : 'new bookmark',\n id: uuid(),\n pageNumber: this.highlightPage - 1,\n xCoordinate: rectangle.x,\n yCoordinate: rectangle.y\n } as any));\n this.toolbarEvents.toggleSideBar(true);\n this.toolbarEvents.toggleSideBarView(false);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n\n });\n }\n\n saveAnnotation({ rectangles, page }: { rectangles: Rectangle[], page: any }) {\n this.highlightService.saveAnnotation(rectangles, page);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { RouterModule } from '@angular/router';\n\nimport { MutableDivModule } from 'mutable-div';\nimport { TagInputModule } from 'ngx-chips';\nimport {NgxDatatableModule} from '@swimlane/ngx-datatable';\n\nimport { AnnotationApiService } from './services/annotation-api/annotation-api.service';\nimport { AnnotationViewComponent } from './annotation-set/annotation-view/annotation-view.component';\nimport { AnnotationSetComponent } from './annotation-set/annotation-set.component';\nimport { RectangleComponent } from './annotation-set/annotation-view/rectangle/rectangle.component';\nimport { CommentComponent } from './comment-set/comment/comment.component';\nimport { CtxToolbarComponent } from './annotation-set/ctx-toolbar/ctx-toolbar.component';\nimport { CommentSetComponent } from './comment-set/comment-set.component';\nimport { TextareaAutoExpandDirective } from './comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';\nimport { CommentsSummaryComponent } from './comments-summary/comments-summary.component';\nimport { CommentSetRenderService } from './comment-set/comment-set-render.service';\nimport { BoxHighlightCreateComponent } from './annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';\nimport { HighlightCreateService } from './annotation-set/annotation-create/highlight-create/highlight-create.service';\nimport { CommentSetHeaderComponent } from './comment-set/comment-set-header/comment-set-header.component';\nimport { CommentSearchComponent } from './comment-set/comment-set-header/comment-search/comment-search.component';\nimport { TextHighlightDirective } from './comment-set/comment/text-highlight/text-highlight.directive';\nimport { TagsComponent } from './tags/tags.component';\nimport { TagsServices } from './services/tags/tags.services';\nimport { CommentsNavigateComponent } from './comment-set/comment-navigate/comments-navigate.component';\nimport {CommentFilterComponent} from './comment-set/comment-set-header/comment-filter/comment-filter.component';\nimport {MomentDatePipe} from './pipes/date/date.pipe';\nimport { BookmarksApiService } from './services/bookmarks-api/bookmarks-api.service';\nimport {FilterPipe} from './pipes/filter/filter.pipe';\nimport {UnsnakePipe} from './pipes/unsnake/unsnake.pipe';\nimport {SharedModule} from '../shared/shared.module';\nimport { MetadataLayerComponent } from './annotation-set/metadata-layer/metadata-layer.component';\nimport { CommentService } from './comment-set/comment/comment.service';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n HttpClientModule,\n MutableDivModule,\n TagInputModule,\n RouterModule,\n ReactiveFormsModule,\n NgxDatatableModule,\n SharedModule\n ],\n declarations: [\n MetadataLayerComponent,\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n RectangleComponent,\n CommentComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n TextHighlightDirective,\n CtxToolbarComponent,\n CommentSetComponent,\n CommentsNavigateComponent,\n TextareaAutoExpandDirective,\n CommentsSummaryComponent,\n TagsComponent,\n MomentDatePipe,\n CommentFilterComponent,\n FilterPipe,\n UnsnakePipe\n ],\n entryComponents: [\n AnnotationViewComponent,\n AnnotationSetComponent,\n CommentSetComponent\n ],\n providers: [\n AnnotationApiService,\n BookmarksApiService,\n CommentSetRenderService,\n HighlightCreateService,\n CommentService,\n TagsServices\n ],\n exports: [\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n CommentSetComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n CommentsSummaryComponent,\n TagsComponent,\n CommentFilterComponent,\n MomentDatePipe,\n FilterPipe,\n UnsnakePipe,\n MetadataLayerComponent\n ]\n})\nexport class AnnotationsModule { }\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n\n@Directive({\n selector: '[mvGrabNDrag]'\n})\nexport class GrabNDragDirective {\n\n originalPosition: { left: number; top: number };\n private pointerDown = false;\n\n @Input() dragEnabled = false;\n @Input() dragX: Element;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('pointerdown', ['$event'])\n onPointerDown(event: PointerEvent) {\n if (this.dragEnabled) {\n event.preventDefault();\n this.pointerDown = true;\n this.originalPosition = {\n left: event.clientX + this.el.nativeElement.scrollLeft,\n top: event.clientY + this.el.nativeElement.scrollTop,\n };\n }\n }\n\n @HostListener('window:pointermove', ['$event'])\n onPointerMove(event: PointerEvent) {\n if (this.pointerDown && this.dragEnabled) {\n event.preventDefault();\n const scrollDiff = {\n left: this.originalPosition.left - (event.clientX + this.el.nativeElement.scrollLeft),\n top: this.originalPosition.top - (event.clientY + this.el.nativeElement.scrollTop)\n };\n if (this.dragEnabled) {\n this.dragX.scrollLeft += scrollDiff.left;\n this.el.nativeElement.scrollTop += scrollDiff.top;\n }\n }\n }\n\n @HostListener('window:pointerup') onWindowPointerUp() {\n this.pointerDown = false;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { TreeComponent, TreeNode } from '@circlon/angular-tree-component';\n\nimport { CreateBookmark, DeleteBookmark, MoveBookmark, UpdateBookmark } from '../../../../store/actions/bookmark.actions';\nimport { Bookmark } from '../../../../store/models/bookmarks.interface';\nimport * as bookmarksSelectors from '../../../../store/selectors/bookmark.selectors';\nimport { AnnotationSetState } from '../../../../store/reducers/annotations.reducer';\nimport { DocumentPages } from '../../../../store/reducers/document.reducer';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport * as fromBookmarks from '../../../../store/reducers/bookmarks.reducer';\nimport { getBookmarkChildren } from '../../../../store/bookmarks-store-utils';\nimport { take } from 'rxjs/operators';\nimport uuid from 'uuid';\n\n@Component({\n selector: 'mv-bookmarks',\n templateUrl: './bookmarks.component.html'\n})\nexport class BookmarksComponent implements OnInit, OnDestroy {\n\n @Input() bookmarkNodes: Bookmark[];\n @Input() zoom: number;\n @Input() rotate: number;\n @Output() goToDestination = new EventEmitter<any[]>();\n\n pageLookup: { [pageId: number]: DocumentPages } = {};\n editableBookmark: string;\n BOOKMARK_CHAR_LIMIT = 30;\n\n options = {\n allowDrag: true,\n allowDrop: true\n };\n\n $subscription: Subscription;\n\n @ViewChild(TreeComponent)\n tree: TreeComponent;\n\n private sortMode: string;\n\n private readonly _customSort = 'CUSTOM';\n private readonly _positionSort = 'POSITION';\n\n constructor(private store: Store<fromBookmarks.BookmarksState | AnnotationSetState>) { }\n\n ngOnInit(): void {\n this.sortMode = this.customSort;\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editableId => this.editableBookmark = editableId);\n this.$subscription.add(this.store.select(fromDocument.getPages)\n .subscribe(pages => {\n\n Object.keys(pages).map(key => {\n this.pageLookup[key] = pages[key];\n });\n\n }));\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.bookmarkNodes && this.sortMode !== this.customSort) {\n this.sortBookmarks();\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n editBookmark(id) {\n this.editableBookmark = id;\n }\n\n onAddBookmarkClick() {\n this.store.pipe(select(bookmarksSelectors.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo, name: '', id: uuid()\n } as any));\n });\n }\n\n onBookmarkMove({ node, from, to }: any) {\n let movedBookmarks = [{\n ...node,\n previous: to.index > 0 ? to.parent.children[to.index - 1].id : undefined,\n parent: to.parent.documentId ? to.parent.id : undefined\n }];\n let fromNext = this.getSibling(from, from.index);\n fromNext = fromNext && fromNext.id === node.previous ? this.getSibling(from, from.index + 1) : fromNext;\n if (fromNext) {\n movedBookmarks = [...movedBookmarks, { ...fromNext, previous: node.previous }];\n }\n const toNext = this.getSibling(to, to.index + 1);\n if (toNext) {\n movedBookmarks = [...movedBookmarks, { ...toNext, previous: node.id }];\n }\n this.store.dispatch(new MoveBookmark(movedBookmarks));\n }\n\n deleteBookmark(node: TreeNode) {\n this.customSortBookmarks();\n let next: Bookmark;\n node = this.tree.treeModel.getNodeById(node.id);\n if (!node.parent) {\n node.parent = this.tree.treeModel.virtualRoot;\n }\n const siblings = node.parent.children;\n if (siblings.length > node.index + 1) {\n next = siblings[node.index + 1].data;\n next.previous = node.data.previous;\n }\n this.store.dispatch(new DeleteBookmark({\n deleted: [node.data.id, ...getBookmarkChildren(node.data.children)], updated: next\n }));\n }\n\n updateBookmark(bookmark: Bookmark, name) {\n const editedBookmark = {\n ...bookmark,\n name\n };\n if (name) {\n this.store.dispatch(new UpdateBookmark(editedBookmark));\n this.editableBookmark = undefined;\n }\n }\n\n goToBookmark(bookmark: Bookmark) {\n const thisPage = this.pageLookup[bookmark.pageNumber + 1];\n const defaultHeight = thisPage.styles.height;\n const defaultScaleY = this.scaledY(bookmark.yCoordinate, defaultHeight, thisPage);\n\n let top = 0, left = 0;\n switch (this.rotate) {\n case 90:\n left = - defaultScaleY;\n break;\n case 180:\n top = this.scaledY(bookmark.yCoordinate, (defaultHeight - (24 * this.zoom)), thisPage);\n break;\n case 270:\n left = defaultScaleY;\n break;\n default:\n top = defaultScaleY;\n }\n\n this.goToDestination.emit([\n bookmark.pageNumber,\n { 'name': 'XYZ' },\n left,\n top\n ]);\n }\n\n get customSort() {\n return this._customSort;\n }\n\n get positionSort() {\n return this._positionSort;\n }\n\n sort(mode: string) {\n this.sortMode = mode;\n this.sortBookmarks();\n }\n\n private sortBookmarks() {\n switch (this.sortMode) {\n case this.customSort: {\n this.customSortBookmarks();\n break;\n }\n case this.positionSort: {\n this.positionSortBookmarks();\n break;\n }\n default: {\n this.customSortBookmarks();\n break;\n }\n }\n }\n\n private positionSortBookmarks() {\n this.bookmarkNodes.sort((a, b) => a.pageNumber === b.pageNumber ? a.yCoordinate - b.yCoordinate : a.pageNumber - b.pageNumber);\n this.tree.treeModel.update();\n this.setDragNDrop(false);\n }\n\n private customSortBookmarks() {\n this.bookmarkNodes.sort((a, b) => a.index - b.index);\n this.tree.treeModel.update();\n this.setDragNDrop(true);\n }\n\n private setDragNDrop(enabled: boolean) {\n this.options = {\n allowDrag: enabled,\n allowDrop: enabled\n };\n }\n\n\n private getSibling(node, index) {\n return node.parent.children.length > index ? node.parent.children[index] : undefined;\n }\n\n private scaledY(yCoordinate: number, height: number, page: DocumentPages): number {\n const viewportScale = page.viewportScale / this.zoom;\n return ((height / this.zoom) - yCoordinate) / viewportScale;\n }\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { Outline } from './outline-item/outline.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport * as bookmarksSelectors from '../../../store/selectors/bookmark.selectors';\nimport { BookmarkNode } from '../../../store/models/bookmarks.interface';\nimport { CreateBookmark, LoadBookmarks } from '../../../store/actions/bookmark.actions';\nimport { take } from 'rxjs/operators';\nimport { v4 as uuid } from 'uuid';\nimport { ViewerEventService } from '../../viewer-event.service';\nimport { BookmarksState } from '../../../store/reducers/bookmarks.reducer';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { BookmarksComponent } from './bookmarks/bookmarks.component';\n\n@Component({\n selector: 'mv-side-bar',\n templateUrl: './side-bar.component.html'\n})\nexport class SideBarComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() annotationsEnabled: boolean;\n @Input() outline: Outline;\n @Input() url: string;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() currentPageNumber: number;\n\n @ViewChild(BookmarksComponent)\n bookmarks: BookmarksComponent;\n\n selectedView = 'outline';\n bookmarkNodes$: Observable<BookmarkNode[]>;\n\n private subscriptions: Subscription[] = [];\n\n constructor(private viewerEvents: ViewerEventService,\n private store: Store<BookmarksState>,\n private readonly toolbarEvents: ToolbarEventService\n ) { }\n\n ngOnInit(): void {\n this.bookmarkNodes$ = this.store.pipe(select(bookmarksSelectors.getBookmarkNodes));\n this.subscriptions.push(this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editable => this.selectedView = editable ? 'bookmarks' : this.selectedView));\n this.subscriptions.push(\n this.toolbarEvents.sidebarOutlineView.subscribe(toggle => {\n this.selectedView = toggle ? 'outline' : 'bookmarks';\n })\n ); }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.url && this.url) {\n this.store.dispatch(new LoadBookmarks());\n }\n }\n\n ngOnDestroy(): void {\n if (this.subscriptions.length > 0) {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n }\n\n goToDestination(destination: any[]) {\n this.viewerEvents.goToDestination(destination);\n }\n\n toggleSidebarView(sidebarView: string) {\n this.selectedView = sidebarView;\n }\n\n isViewedItem(current: Outline, next: Outline): boolean {\n if (current.pageNumber === this.currentPageNumber) {\n return true;\n }\n return next === undefined ? current.pageNumber <= this.currentPageNumber :\n current.pageNumber <= this.currentPageNumber && (next.pageNumber > this.currentPageNumber);\n }\n\n findEndPage(next: Outline): number {\n return next === undefined ? Number.MAX_SAFE_INTEGER : next.pageNumber;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Outline } from './outline.model';\n\n@Component({\n selector: 'mv-outline-item',\n templateUrl: './outline-item.component.html'\n})\nexport class OutlineItemComponent implements OnInit {\n\n @Input() outline: Outline;\n @Input() currentPageNumber: Number;\n @Input() isCurrentSection: boolean;\n @Input() endPage: Number;\n @Output() navigationEvent = new EventEmitter();\n\n showOutlineItems: boolean;\n\n ngOnInit() {\n this.showOutlineItems = true;\n }\n\n goToDestination(destination: any) {\n if (destination) {\n this.navigationEvent.emit(destination);\n }\n }\n\n toggleOutline() {\n this.showOutlineItems = !this.showOutlineItems;\n }\n\n isViewedItem(current: Outline, next: Outline): boolean {\n if (current.pageNumber === this.currentPageNumber) {\n return true;\n }\n return next === undefined ? current.pageNumber <= this.currentPageNumber && this.endPage > this.currentPageNumber :\n current.pageNumber <= this.currentPageNumber && (next.pageNumber > this.currentPageNumber);\n }\n\n findEndPage(next: Outline): number {\n return next === undefined ? Number.MAX_SAFE_INTEGER : next.pageNumber;\n }\n\n showHighlightOutlineCss() {\n return this.isCurrentSection ? 'highlightedOutlineItem' : 'outlineItem';\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport { v4 as uuid } from 'uuid';\nimport { filter, take } from 'rxjs/operators';\n\nimport { Rectangle } from '../../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromRedaSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromDocument from '../../store/selectors/document.selectors';\nimport * as fromActions from '../../store/actions/redaction.actions';\nimport * as fromRedactionActions from '../../store/actions/redaction.actions';\nimport * as fromRedaActions from '../../store/actions/redaction.actions';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\nimport { ViewerEventService } from '../../viewers/viewer-event.service';\nimport { Redaction } from '../services/redaction.model';\n\n@Component({\n selector: 'mv-redactions',\n templateUrl: './redaction.component.html'\n})\nexport class RedactionComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n redactionsPerPage$: Observable<any>; // todo add type\n selectedRedaction$: Observable<SelectionAnnotation | {}>;\n rectangles: Rectangle[];\n drawMode: boolean;\n documentId: string;\n\n private $subscription: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n private readonly viewerEvents: ViewerEventService,\n private toolbarEvents: ToolbarEventService) { }\n\n ngOnInit(): void {\n this.redactionsPerPage$ = this.store.pipe(select(fromSelectors.getRedactionsPerPage));\n this.selectedRedaction$ = this.store.pipe(select(fromSelectors.getSelected));\n this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);\n this.$subscription.add(this.store.pipe(select(fromSelectors.getRedactedDocumentInfo), filter(value => !!value))\n .subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));\n this.$subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));\n this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));\n this.toolbarEvents.applyRedactToDocument.subscribe(() => {\n this.store.pipe(select(fromRedaSelectors.getRedactionArray), take(1)).subscribe(redactions => {\n this.store.dispatch(new fromRedaActions.Redact(redactions));\n });\n });\n this.toolbarEvents.clearAllRedactMarkers.subscribe(() => {\n this.store.dispatch(new fromRedaActions.UnmarkAll(this.documentId));\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n markTextRedaction(highlight) {\n const redactionHighlight = highlight.rectangles;\n if (redactionHighlight && redactionHighlight.length) {\n this.saveRedaction(highlight.page, [...redactionHighlight]);\n }\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n\n markBoxRedaction({ rectangles, page }) {\n this.saveRedaction(page, rectangles);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n\n saveRedaction(page: number, rectangles: Rectangle[]) {\n const redaction = { page, rectangles, redactionId: uuid(), documentId: this.documentId };\n this.store.dispatch(new fromRedactionActions.SaveRedaction(redaction));\n }\n\n onMarkerDelete(event) {\n this.store.dispatch(new fromActions.DeleteRedaction(event));\n }\n\n selectRedaction(event) {\n this.store.dispatch(new fromActions.SelectRedaction(event));\n }\n\n onMarkerUpdate(redaction: Redaction) {\n this.store.dispatch(new fromActions.SaveRedaction(redaction));\n }\n\n downloadDocument({ blob, filename }) {\n if (navigator && navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = filename;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n }\n this.store.dispatch(new fromRedactionActions.ResetRedactedDocument());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpSessionApiService {\n\n public ICP_SESSION_API = '/icp/sessions';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public loadSession(caseId: string): Observable<any> {\n return this.httpClient\n .get<{username: string, session: IcpSession}>(`${this.ICP_SESSION_API}/${caseId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport {catchError, exhaustMap, map, switchMap} from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport {AnnotationApiService} from '../../annotations/services/annotation-api/annotation-api.service';\nimport * as annotationsActions from '../actions/annotation.actions';\n\n@Injectable()\nexport class AnnotationEffects {\n constructor(\n private actions$: Actions,\n private annotationApiService: AnnotationApiService,\n ) { }\n\n @Effect()\n loadAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.LOAD_ANNOTATION_SET),\n map((action: annotationsActions.LoadAnnotationSet) => action.payload),\n switchMap((documentId) => {\n return this.annotationApiService.getAnnotationSet(documentId).pipe(\n map(res => {\n return new annotationsActions.LoadAnnotationSetSucess(res);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n postAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.SAVE_ANNOTATION),\n map((action: annotationsActions.SaveAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.postAnnotation(annotation).pipe(\n map(annotations => {\n return new annotationsActions.SaveAnnotationSuccess(annotations);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n deleteAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.DELETE_ANNOTATION),\n map((action: annotationsActions.DeleteAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.deleteAnnotation(annotation).pipe(\n map(result => {\n return new annotationsActions.DeleteAnnotationSuccess(annotation);\n }),\n catchError(error => {\n return of(new annotationsActions.DeleteAnnotationFail(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { BookmarksApiService } from '../../annotations/services/bookmarks-api/bookmarks-api.service';\nimport * as bookmarksActions from '../actions/bookmark.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocument from '../selectors/document.selectors';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport * as fromStore from '../reducers/reducers';\n\n@Injectable()\nexport class BookmarksEffects {\n\n constructor(private actions$: Actions,\n private store: Store<fromStore.AnnotationSetState|fromBookmarks.BookmarksState>,\n private bookmarksApiService: BookmarksApiService) {}\n\n @Effect()\n loadBookmarks$ = this.actions$.pipe(\n ofType(bookmarksActions.LOAD_BOOKMARKS),\n withLatestFrom(this.store.pipe(select(fromDocument.getDocumentId))),\n map(([, documentId]) => documentId),\n exhaustMap((documentId) =>\n this.bookmarksApiService.getBookmarks(documentId)\n .pipe(\n map(res => new bookmarksActions.LoadBookmarksSuccess(res)),\n catchError(err => of(new bookmarksActions.LoadBookmarksFailure(err)))\n )\n ));\n\n @Effect()\n createBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.CREATE_BOOKMARK),\n map((action: bookmarksActions.CreateBookmark) => action.payload),\n exhaustMap((bookmark) =>\n this.bookmarksApiService.createBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.CreateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.CreateBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n moveBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.MOVE_BOOKMARK),\n map((action: bookmarksActions.MoveBookmark) => action.payload),\n exhaustMap((bookmarks) =>\n this.bookmarksApiService.updateMultipleBookmarks(bookmarks)\n .pipe(\n map(bmrks => new bookmarksActions.MoveBookmarkSuccess(bmrks)),\n catchError(error => of(new bookmarksActions.MoveBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n deleteBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.DELETE_BOOKMARK),\n map((action: bookmarksActions.DeleteBookmark) => action.payload),\n exhaustMap(({ deleted, updated }) =>\n this.bookmarksApiService.deleteMultipleBookmarks({ deleted, updated })\n .pipe(\n switchMap(() => {\n if (updated) {\n return [\n new bookmarksActions.DeleteBookmarkSuccess(deleted),\n new bookmarksActions.UpdateBookmarkSuccess(updated)\n ];\n } else {\n return [new bookmarksActions.DeleteBookmarkSuccess(deleted)];\n }\n }),\n catchError(error => of(new bookmarksActions.DeleteBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n updateBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.UPDATE_BOOKMARK),\n map((action: bookmarksActions.UpdateBookmark) => action.payload),\n switchMap((bookmark) =>\n this.bookmarksApiService.updateBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.UpdateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.UpdateBookmarkFailure(error)))\n )\n ));\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, map } from 'rxjs/operators';\nimport { BulkRedaction, Redaction } from './redaction.model';\n\n@Injectable()\nexport class RedactionApiService {\n\n private markupsApiUrl = '/api/markups';\n private redactApiUrl = '/api/redaction';\n private markupsSearchApiUrl = '/api/markups/search';\n constructor(\n private readonly httpClient: HttpClient\n ) { }\n\n public getRedactions(documentId: string): Observable<HttpResponse<Redaction[]>> {\n const fixedUrl = `${this.markupsApiUrl}/${documentId}`;\n return this.httpClient\n .get<Redaction[]>(fixedUrl, { observe: 'response', withCredentials: true });\n }\n\n public saveRedaction(body): Observable<Redaction> {\n return this.httpClient\n .post<Redaction>(this.markupsApiUrl, body, { observe: 'response', withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public saveBulkRedaction(body): Observable<BulkRedaction> {\n return this.httpClient\n .post<BulkRedaction>(this.markupsSearchApiUrl, body, { observe: 'response', withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public deleteRedaction(payload): Observable<null> {\n const url = `${this.markupsApiUrl}/${payload.documentId}/${payload.redactionId}`;\n return this.httpClient\n .delete<null>(url, { observe: 'response', withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteAllMarkers(documentId): Observable<null> {\n const url = `${this.markupsApiUrl}/${documentId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response', withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public redact(payload): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(this.redactApiUrl, payload, { observe: 'response', withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap, tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { RedactionApiService } from '../../redaction/services/redaction-api.service';\nimport * as redactionActions from '../actions/redaction.actions';\nimport { HttpResponse } from '@angular/common/http';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\n\n@Injectable()\nexport class RedactionEffects {\n constructor(\n private actions$: Actions,\n private redactionApiService: RedactionApiService,\n private toolbarEvents: ToolbarEventService\n ) { }\n\n @Effect()\n loadRedactions$ = this.actions$.pipe(\n ofType(redactionActions.LOAD_REDACTIONS),\n map((action: redactionActions.LoadRedactions) => action.payload),\n switchMap((documentId) => {\n return this.redactionApiService.getRedactions(documentId).pipe(\n map(resp => {\n return new redactionActions.LoadRedactionSuccess(resp.body);\n }),\n catchError(error => {\n return of(new redactionActions.LoadRedactionFailure(error));\n }));\n }));\n\n @Effect()\n saveRedaction$ = this.actions$.pipe(\n ofType(redactionActions.SAVE_REDACTION),\n map((action: redactionActions.SaveRedaction) => action.payload),\n exhaustMap((redaction) => {\n return this.redactionApiService.saveRedaction(redaction).pipe(\n map(resp => {\n return new redactionActions.SaveRedactionSuccess(resp);\n }),\n catchError(error => {\n return of(new redactionActions.SaveRedactionFailure(error));\n }));\n }));\n\n @Effect()\n saveBulkRedaction$ = this.actions$.pipe(\n ofType(redactionActions.SAVE_BULK_REDACTION),\n map((action: redactionActions.SaveRedaction) => action.payload),\n exhaustMap((redaction) => {\n return this.redactionApiService.saveBulkRedaction(redaction).pipe(\n tap(() => this.toolbarEvents.redactAllInProgressSubject.next(false))).pipe(map(resp => {\n return new redactionActions.SaveBulkRedactionSuccess(resp);\n }),\n catchError(error => {\n return of(new redactionActions.SaveBulkRedactionFailure(error));\n }));\n }));\n\n @Effect()\n deleteRedaction$ = this.actions$.pipe(\n ofType(redactionActions.DELETE_REDACTION),\n map((action: redactionActions.DeleteRedaction) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.deleteRedaction(redactionPayload).pipe(\n map(() => {\n return new redactionActions.DeleteRedactionSuccess(redactionPayload);\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n\n @Effect()\n redact$ = this.actions$.pipe(\n ofType(redactionActions.REDACT),\n map((action: redactionActions.Redact) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.redact(redactionPayload).pipe(\n map((result: HttpResponse<Blob>) => {\n const header = result.headers.get('content-disposition').split('filename=');\n const filename = header.length > 1 ? header[1].replace(/\"/g, '')\n : `redacted-document-${redactionPayload.documentId}`;\n return new redactionActions.RedactSuccess({ blob: result.body, filename });\n }),\n catchError(error => {\n return of(new redactionActions.RedactFailure(error));\n }));\n }));\n\n @Effect()\n unmarkAll$ = this.actions$.pipe(\n ofType(redactionActions.UNMARK_ALL),\n map((action: redactionActions.UnmarkAll) => action.payload),\n exhaustMap((documentId) => {\n return this.redactionApiService.deleteAllMarkers(documentId).pipe(\n map(result => {\n return new redactionActions.UnmarkAllSuccess();\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class DocumentConversionApiService {\n\n private documentConversionUrl = '/doc-assembly/convert';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public convert(documentId): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(`${this.documentConversionUrl}/${documentId}`, {},\n { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(error => of(error))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\n\n@Injectable()\nexport class RotationApiService {\n\n public rotationApiUrl = '/em-anno/metadata';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRotation(documentId: string): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/${documentId}`;\n return this.httpClient\n .get<Rotation>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRotation(payload: Rotation): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/`;\n return this.httpClient\n .post<any>(fixedUrl, payload, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Injectable } from '@angular/core';\nimport { HttpResponse } from '@angular/common/http';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { DocumentConversionApiService } from '../../viewers/convertible-content-viewer/document-conversion-api.service';\nimport { RotationApiService } from '../../viewers/rotation-persist/rotation-api.service';\nimport { of } from 'rxjs';\nimport * as documentActions from '../actions/document.actions';\n\n@Injectable()\nexport class DocumentEffects {\n constructor(\n private actions$: Actions,\n private documentConversionService: DocumentConversionApiService,\n private rotationApiService: RotationApiService,\n ) { }\n\n @Effect()\n convert$ = this.actions$.pipe(\n ofType(documentActions.CONVERT),\n map((action: documentActions.Convert) => action.payload),\n exhaustMap((documentId) => {\n return this.documentConversionService.convert(documentId).pipe(\n map((result: HttpResponse<Blob>) => {\n const url = URL.createObjectURL(result.body);\n return new documentActions.ConvertSuccess(url);\n }),\n catchError(error => {\n return of(new documentActions.ConvertFailure(error));\n }));\n }));\n\n @Effect()\n loadRotation$ = this.actions$.pipe(\n ofType(documentActions.LOAD_ROTATION),\n map((action: documentActions.LoadRotation) => action.payload),\n switchMap((documentId) => {\n return this.rotationApiService.getRotation(documentId).pipe(\n map(resp => {\n return new documentActions.LoadRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.LoadRotationFailure(error));\n }));\n }));\n\n @Effect()\n saveRotation$ = this.actions$.pipe(\n ofType(documentActions.SAVE_ROTATION),\n map((action: documentActions.SaveRotation) => action.payload),\n switchMap((payload) => {\n return this.rotationApiService.saveRotation(payload).pipe(\n map(resp => {\n return new documentActions.SaveRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.SaveRotationFailure(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { IcpSessionApiService } from '../../icp/icp-session-api.service';\nimport { IcpUpdateService } from '../../icp/icp-update.service';\nimport * as icpActions from '../actions/icp.actions' ;\nimport { IcpSession } from '../../icp/icp.interfaces';\n\n@Injectable()\nexport class IcpEffects {\n\n constructor(private actions$: Actions,\n private icpApiService: IcpSessionApiService,\n private icpUpdateService: IcpUpdateService) {}\n\n @Effect()\n loadIcpSession$ = this.actions$.pipe(\n ofType(icpActions.LOAD_ICP_SESSION),\n map((action: icpActions.LoadIcpSession) => action.payload),\n exhaustMap((caseId: string) =>\n this.icpApiService.loadSession(caseId)\n .pipe(\n map(res => new icpActions.JoinIcpSocketSession(res)),\n catchError(error => of(new icpActions.LoadIcpSessionFailure(error)))\n )\n ));\n\n\n @Effect()\n joinIcpSocketSession$ = this.actions$.pipe(\n ofType(icpActions.JOIN_ICP_SOCKET_SESSION),\n map((action: icpActions.JoinIcpSocketSession) => action.payload),\n switchMap((res: {username: string, session: IcpSession}) =>\n this.icpUpdateService.joinSession(res.username, res.session)\n .pipe(map(participants => new icpActions.IcpSocketSessionJoined({session: res.session, participantInfo: participants})))\n ));\n}\n","import { AnnotationEffects } from './annotation.effects';\nimport { BookmarksEffects } from './bookmarks.effects';\nimport { RedactionEffects } from './redaction.effects';\nimport { DocumentEffects } from './document.effects';\nimport { IcpEffects } from './icp.effects';\n\nexport const effects: any[] = [AnnotationEffects, BookmarksEffects, RedactionEffects, DocumentEffects, IcpEffects];\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/document.reducer';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { Subscription } from 'rxjs';\nimport * as fromSelectors from '../../store/selectors/document.selectors';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'mv-conversion-viewer',\n templateUrl: './convertible-content-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ConvertibleContentViewerComponent implements OnInit, OnDestroy {\n\n @Input() originalUrl;\n @Input() downloadFileName: string;\n\n @Input() height;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n private $subscription: Subscription;\n convertedUrl: string;\n\n constructor(private store: Store<fromStore.DocumentState>) {\n }\n\n ngOnInit(): void {\n this.store.dispatch(new fromDocumentActions.Convert(this.extractDMStoreDocId(this.originalUrl)));\n this.$subscription = this.store.pipe(select(fromSelectors.getConvertedDocument), filter(value => !!value))\n .subscribe((docInfo) => {\n if (docInfo.url) {\n this.convertedUrl = docInfo.url;\n this.store.dispatch(new fromDocumentActions.ClearConvertDocUrl());\n } else {\n this.onLoadException(new ViewerException(docInfo.error));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle.emit(title);\n }\n\n // todo move this to common place for media viewer and pdf\n private extractDMStoreDocId(url: string): string {\n\n if (url.includes('/documents/')) {\n url = url.split('/documents/')[1];\n } else if (url.includes('/documentsv2/')) {\n url = url.split('/documentsv2/')[1];\n }\n return url.replace('/binary', '');\n }\n}\n","import { Component } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\n\n@Component({\n selector: 'mv-confirm-action',\n templateUrl: './confirm-action-dialog.component.html',\n})\nexport class ConfirmActionDialogComponent {\n\n constructor(private toolbarEvents: ToolbarEventService) {}\n\n onCancel() {\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n\n onConfirm() {\n this.toolbarEvents.icp.confirmExit();\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n}\n","import {Bookmark, BookmarksPerPage} from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport {Component, Input, OnInit} from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/bookmark.selectors';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'mv-bookmark-icons',\n templateUrl: './bookmark-icons.component.html'\n})\nexport class BookmarkIconsComponent implements OnInit {\n\n @Input() zoom: number;\n @Input() rotate: number;\n bookmarksPerPage$: Observable<BookmarksPerPage[]>;\n bookmarks: Bookmark[];\n documentId: string;\n\n constructor(private store: Store<fromStore.State>) {}\n\n ngOnInit(): void {\n this.bookmarksPerPage$ = this.store.pipe(select(fromSelectors.getBookmarksPerPage));\n }\n\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocuments from '../../store/selectors/document.selectors';\nimport { filter, take } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\nimport { ResponseType } from '../viewer-exception.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Subscription } from 'rxjs';\n\n\n@Directive({\n selector: '[mvRotationPersist]'\n})\nexport class RotationPersistDirective implements OnInit, OnDestroy {\n\n documentId: string;\n rotation = 0;\n savedRotation = 0;\n\n $subscriptions: Subscription;\n\n constructor(private el: ElementRef,\n private store: Store<fromStore.DocumentState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private toolbarEvents: ToolbarEventService) {\n }\n\n ngOnInit() {\n this.$subscriptions = this.toolbarEvents.rotateSubject.subscribe(rotation => this.onRotate(rotation));\n this.$subscriptions\n .add(this.toolbarEvents.saveRotationSubject.subscribe(() => this.saveRotation()))\n .add(this.store.pipe(select(fromDocuments.getRotation))\n .subscribe(rotation => this.savedRotation = rotation))\n .add(this.store.pipe(select(fromDocuments.getDocumentId))\n .subscribe(documentId => this.documentId = documentId));\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n @HostListener('mediaLoadStatus', ['$event'])\n onMediaLoad(status: ResponseType) {\n this.rotation = 0;\n this.store.dispatch(new fromDocumentActions.LoadRotation(this.documentId));\n this.store.pipe(select(fromDocuments.rotationLoaded),\n filter(value => !!value),\n take(1))\n .subscribe(() => {\n if (this.savedRotation) {\n this.toolbarEvents.rotateSubject.next(this.savedRotation);\n }\n });\n }\n\n private onRotate(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.toolbarButtons.showSaveRotationButton = this.savedRotation !== this.rotation;\n }\n\n private saveRotation() {\n const payload: Rotation = {\n documentId: this.documentId,\n rotationAngle: this.rotation\n };\n this.store.dispatch(new fromDocumentActions.SaveRotation(payload));\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { IcpParticipant, IcpState } from '../icp.interfaces';\nimport { select, Store } from '@ngrx/store';\nimport * as fromSelectors from '../../store/selectors/icp.selectors';\n\n@Component({\n selector: 'mv-participants-list',\n templateUrl: './participants-list.component.html'\n})\nexport class ParticipantsListComponent implements OnInit, OnDestroy {\n\n subscription: Subscription;\n participants$: Observable<IcpParticipant[]>;\n presenter$: Observable<IcpParticipant>;\n isPresenter$: Observable<boolean>;\n\n showParticipantsList = false;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.participants$ = this.store.pipe(select(fromSelectors.getParticipants));\n this.presenter$ = this.store.pipe(select(fromSelectors.getPresenter));\n this.isPresenter$ = this.store.pipe(select(fromSelectors.isPresenter));\n\n this.subscription = this.toolbarEvents.icp.participantsListVisible.subscribe(isVisible => this.showParticipantsList = isVisible);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport { ViewerEventService } from '../../../../viewers/viewer-event.service';\nimport * as fromAnnotationActions from '../../../../store/actions/annotation.actions';\nimport { HighlightCreateService } from './highlight-create.service';\n\n@Directive({\n selector: '[mvCreateTextHighlight]'\n})\nexport class HighlightCreateDirective implements OnInit, OnDestroy {\n pageHeight: number;\n pageWidth: number;\n zoom: number;\n rotate: number;\n allPages: object;\n\n $subscription: Subscription;\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private toolbarEvents: ToolbarEventService,\n private viewerEvents: ViewerEventService,\n private highlightService: HighlightCreateService,\n private store: Store<fromStore.AnnotationSetState>\n ) { }\n\n ngOnInit() {\n this.$subscription = this.store.select(fromDocument.getPages).subscribe((pages) => {\n if (pages[1]) {\n this.allPages = pages;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n }\n }\n\n @HostListener('mouseup', ['$event'])\n onMouseUp(mouseEvent: MouseEvent) {\n const pageElement = (<HTMLElement>(mouseEvent.target as HTMLElement).offsetParent).offsetParent;\n const page = parseInt(pageElement.getAttribute('data-page-number'), 10);\n if (this.toolbarEvents.highlightModeSubject.getValue()) {\n const rectangles = this.getRectangles(mouseEvent, page);\n this.viewerEvents.textSelected({ page, rectangles });\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onPdfViewerClick(event: MouseEvent) {\n this.store.dispatch(\n new fromAnnotationActions.SelectedAnnotation({\n annotationId: '',\n selected: false,\n editable: false,\n })\n );\n this.viewerEvents.clearCtxToolbar();\n }\n\n private getRectangles(event: MouseEvent, page) {\n this.pageHeight = this.allPages[page].styles.height;\n this.pageWidth = this.allPages[page].styles.width;\n this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);\n this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);\n const selection = window.getSelection();\n if (selection) {\n const localElement = <HTMLElement>event.target;\n\n this.removeEnhancedTextModeStyling(localElement);\n\n if (selection.rangeCount && !selection.isCollapsed) {\n const range = selection.getRangeAt(0).cloneRange();\n const clientRects = range.getClientRects();\n\n if (clientRects) {\n\n const parentRect = localElement.parentElement.getBoundingClientRect();\n const selectionRectangles: Rectangle[] = [];\n for (let i = 0; i < clientRects.length; i++) {\n const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);\n const findSelecttionRectangle = selectionRectangles.find(\n (rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x\n );\n if (!findSelecttionRectangle) {\n selectionRectangles.push(selectionRectangle);\n }\n }\n return selectionRectangles;\n }\n }\n }\n }\n\n private createTextRectangle(rect: any, parentRect: any): Rectangle {\n const height = rect.bottom - rect.top;\n const width = rect.right - rect.left;\n const top = rect.top - parentRect.top;\n const left = rect.left - parentRect.left;\n\n let rectangle = this.highlightService.applyRotation(\n this.pageHeight,\n this.pageWidth,\n height,\n width,\n top,\n left,\n this.rotate,\n this.zoom\n );\n rectangle = { id: uuid(), ...rectangle };\n\n return rectangle as Rectangle;\n }\n\n private removeEnhancedTextModeStyling(element: HTMLElement) {\n if (element.parentElement.children) {\n for (let i = 0; i < element.parentElement.children.length; i++) {\n const child = <HTMLElement>element.parentElement.children[i];\n\n child.style.padding = '0';\n // regex will be targeting the translate style in string\n // e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)\n const translateCSSRegex = /translate[XYZ]\\(-?\\d*(\\.\\d+)?(px)?\\)/g;\n child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType } from '../viewer-exception.model';\n\n@Component({\n selector: 'mv-multimedia-player',\n templateUrl: './multimedia-player.component.html'\n})\nexport class MultimediaPlayerComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() multimediaOn: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n @ViewChild('videoPlayer', {static: false}) videoPlayer: ElementRef;\n\n playbackMsg = 'loading';\n\n private subscription: Subscription;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n ) {}\n\n public ngOnInit(): void {\n this.subscription = this.toolbarEvents.downloadSubject\n .subscribe(() => this.downloadLink.nativeElement.click());\n this.loadStatus.emit(ResponseType.SUCCESS);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.reloadVideo();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n reloadVideo() {\n if (this.videoPlayer) {\n this.playbackMsg = 'loading';\n this.videoPlayer.nativeElement.load();\n }\n }\n\n onSuccess() {\n this.playbackMsg = 'success';\n }\n\n onError() {\n this.playbackMsg = 'error';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';\nimport { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';\nimport { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';\nimport { MediaViewerComponent } from './media-viewer.component';\nimport { ToolbarModule } from './toolbar/toolbar.module';\nimport { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationsModule } from './annotations/annotations.module';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport { GrabNDragDirective } from './viewers/grab-n-drag.directive';\nimport { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';\nimport { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule} from '@ngrx/store';\nimport { RedactionComponent } from './redaction/components/redaction.component';\nimport { IcpSessionApiService } from './icp/icp-session-api.service';\nimport { IcpUpdateService } from './icp/icp-update.service';\nimport { IcpService } from './icp/icp.service';\nimport { SocketService } from './icp/socket.service';\nimport { reducers} from './store/reducers/reducers';\nimport { effects } from './store/effects/index';\nimport { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';\nimport { RedactionApiService } from './redaction/services/redaction-api.service';\nimport { MutableDivModule } from 'mutable-div';\nimport { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';\nimport { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';\nimport { IcpPresenterService } from './icp/icp-presenter.service';\nimport { IcpFollowerService } from './icp/icp-follower.service';\nimport { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';\nimport { TreeModule } from '@circlon/angular-tree-component';\nimport { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';\nimport { RotationApiService } from './viewers/rotation-persist/rotation-api.service';\nimport { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';\nimport { ParticipantsListComponent } from './icp/participants-list/participants-list.component';\nimport { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';\nimport {MultimediaPlayerComponent} from './viewers/multimedia-player/multimedia-player.component';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n ToolbarModule,\n AnnotationsModule,\n TagInputModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n StoreModule.forFeature('media-viewer', reducers),\n EffectsModule.forFeature(effects),\n TreeModule,\n MutableDivModule\n ],\n declarations: [\n PdfViewerComponent,\n SideBarComponent,\n BookmarksComponent,\n OutlineItemComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent,\n MultimediaPlayerComponent,\n MediaViewerComponent,\n ConvertibleContentViewerComponent,\n GrabNDragDirective,\n RotationPersistDirective,\n HighlightCreateDirective,\n ConfirmActionDialogComponent,\n RedactionComponent, // todo made put this into module\n BookmarkIconsComponent,\n ParticipantsListComponent\n ],\n entryComponents: [\n PdfViewerComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent\n ],\n providers: [\n PdfJsWrapperFactory,\n CommentService,\n RedactionApiService,\n IcpSessionApiService,\n IcpUpdateService,\n SocketService,\n IcpService,\n IcpPresenterService,\n IcpFollowerService,\n RedactionApiService,\n DocumentConversionApiService,\n RotationApiService,\n ],\n exports: [\n MediaViewerComponent\n ]\n})\nexport class MediaViewerModule { }\n","/*\n * Public API Surface of media-viewer\n */\n\nexport * from './lib/media-viewer.module';\nexport * from './lib/toolbar/toolbar.module';\nexport * from './lib/annotations/services/annotation-api/annotation-api.service';\nexport * from './lib/annotations/annotations.module';\nexport * from './lib/viewers/viewer-exception.model';\nexport * from './lib/store/reducers/annotations.reducer';\nexport * from './lib/store/selectors/annotation.selectors';\nexport * from './lib/store/actions/annotation.actions';\nexport * from './lib/store/effects/annotation.effects';\nexport * from './lib/media-viewer.component';\nexport * from './lib/toolbar/main-toolbar/main-toolbar.component';\nexport * from './lib/toolbar/search-bar/search-bar.component';\nexport * from './lib/toolbar/redaction-toolbar/redaction-toolbar.component';\nexport * from './lib/toolbar/icp-toolbar/icp-toolbar.component';\nexport * from './lib/annotations/annotation-set/annotation-view/annotation-view.component';\nexport * from './lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';\nexport * from './lib/annotations/annotation-set/annotation-set.component';\nexport * from './lib/annotations/comment-set/comment-set.component';\nexport * from './lib/annotations/comment-set/comment-set-header/comment-set-header.component';\nexport * from './lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component';\nexport * from './lib/annotations/comments-summary/comments-summary.component';\nexport * from './lib/annotations/tags/tags.component';\nexport * from './lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component';\nexport * from './lib/annotations/annotation-set/metadata-layer/metadata-layer.component';\nexport * from './lib/annotations/pipes/filter/filter.pipe';\nexport * from './lib/annotations/pipes/unsnake/unsnake.pipe';\nexport * from './lib/annotations/pipes/date/date.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {HighlightCreateDirective as ɵci} from './lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';\nexport {HighlightCreateService as ɵq} from './lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service';\nexport {Annotation as ɵcs} from './lib/annotations/annotation-set/annotation-view/annotation.model';\nexport {RectangleComponent as ɵy} from './lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component';\nexport {CtxToolbarComponent as ɵbc} from './lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component';\nexport {CommentsNavigateComponent as ɵbe} from './lib/annotations/comment-set/comment-navigate/comments-navigate.component';\nexport {CommentSetRenderService as ɵbd} from './lib/annotations/comment-set/comment-set-render.service';\nexport {CommentComponent as ɵz} from './lib/annotations/comment-set/comment/comment.component';\nexport {Comment as ɵct} from './lib/annotations/comment-set/comment/comment.model';\nexport {CommentService as ɵx} from './lib/annotations/comment-set/comment/comment.service';\nexport {TextHighlightDirective as ɵbb} from './lib/annotations/comment-set/comment/text-highlight/text-highlight.directive';\nexport {TextareaAutoExpandDirective as ɵbf} from './lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';\nexport {SelectionAnnotation as ɵcu} from './lib/annotations/models/event-select.model';\nexport {BookmarksApiService as ɵbh} from './lib/annotations/services/bookmarks-api/bookmarks-api.service';\nexport {TagsServices as ɵba} from './lib/annotations/services/tags/tags.services';\nexport {BookmarkIconsComponent as ɵcl} from './lib/bookmark/components/bookmark-icons.component';\nexport {ConfirmActionDialogComponent as ɵcj} from './lib/icp/confirm-exit/confirm-action-dialog.component';\nexport {IcpFollowerService as ɵbx} from './lib/icp/icp-follower.service';\nexport {IcpPresenterService as ɵbw} from './lib/icp/icp-presenter.service';\nexport {IcpSessionApiService as ɵbq} from './lib/icp/icp-session-api.service';\nexport {IcpUpdateService as ɵbr} from './lib/icp/icp-update.service';\nexport {IcpState as ɵo} from './lib/icp/icp.interfaces';\nexport {IcpService as ɵbv} from './lib/icp/icp.service';\nexport {ParticipantsListComponent as ɵcm} from './lib/icp/participants-list/participants-list.component';\nexport {SocketService as ɵbs} from './lib/icp/socket.service';\nexport {PrintService as ɵbg} from './lib/print.service';\nexport {RedactionComponent as ɵck} from './lib/redaction/components/redaction.component';\nexport {RedactionApiService as ɵbl} from './lib/redaction/services/redaction-api.service';\nexport {GovUkDateComponent as ɵs} from './lib/shared/gov-uk-date/gov-uk-date.component';\nexport {GovUkErrorMessageComponent as ɵt} from './lib/shared/gov-uk-error-message/gov-uk-error-message.component';\nexport {GovUkFieldsetComponent as ɵu} from './lib/shared/gov-uk-fieldset/gov-uk-fieldset.component';\nexport {GovUkLabelComponent as ɵv} from './lib/shared/gov-uk-label/gov-uk-label.component';\nexport {SharedModule as ɵr} from './lib/shared/shared.module';\nexport {NumberHelperService as ɵa} from './lib/shared/util/services/number.helper.service';\nexport {BookmarksEffects as ɵbj} from './lib/store/effects/bookmarks.effects';\nexport {DocumentEffects as ɵbm} from './lib/store/effects/document.effects';\nexport {IcpEffects as ɵbp} from './lib/store/effects/icp.effects';\nexport {effects as ɵbi} from './lib/store/effects/index';\nexport {RedactionEffects as ɵbk} from './lib/store/effects/redaction.effects';\nexport {Filters as ɵcv} from './lib/store/models/filters.interface';\nexport {BookmarksState as ɵk,bookmarksReducer as ɵl} from './lib/store/reducers/bookmarks.reducer';\nexport {DocumentState as ɵe,docReducer as ɵf,getDocPages as ɵg} from './lib/store/reducers/document.reducer';\nexport {icpReducer as ɵn} from './lib/store/reducers/icp.reducer';\nexport {redactionReducer as ɵm} from './lib/store/reducers/redaction.reducer';\nexport {State as ɵb,getMVState as ɵd,reducers as ɵc} from './lib/store/reducers/reducers';\nexport {getFilteredComments as ɵi,getFilteredPageEnt as ɵj,tagsReducer as ɵh} from './lib/store/reducers/tags.reducer';\nexport {getDocumentState as ɵcn,getPages as ɵco} from './lib/store/selectors/document.selectors';\nexport {getFilteredPageEntities as ɵcr,getTagFiltered as ɵcq,getTagsRootState as ɵcp} from './lib/store/selectors/tag.selectors';\nexport {RedactionSearchBarComponent as ɵp} from './lib/toolbar/redaction-search-bar/redaction-search-bar.component';\nexport {ConvertibleContentViewerComponent as ɵcf} from './lib/viewers/convertible-content-viewer/convertible-content-viewer.component';\nexport {DocumentConversionApiService as ɵbn} from './lib/viewers/convertible-content-viewer/document-conversion-api.service';\nexport {GrabNDragDirective as ɵcg} from './lib/viewers/grab-n-drag.directive';\nexport {ImageViewerComponent as ɵcb} from './lib/viewers/image-viewer/image-viewer.component';\nexport {MultimediaPlayerComponent as ɵce} from './lib/viewers/multimedia-player/multimedia-player.component';\nexport {PdfJsWrapperFactory as ɵbu} from './lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';\nexport {PdfViewerComponent as ɵbt} from './lib/viewers/pdf-viewer/pdf-viewer.component';\nexport {BookmarksComponent as ɵbz} from './lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';\nexport {OutlineItemComponent as ɵca} from './lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component';\nexport {SideBarComponent as ɵby} from './lib/viewers/pdf-viewer/side-bar/side-bar.component';\nexport {RotationApiService as ɵbo} from './lib/viewers/rotation-persist/rotation-api.service';\nexport {RotationPersistDirective as ɵch} from './lib/viewers/rotation-persist/rotation-persist.directive';\nexport {UnsupportedViewerComponent as ɵcd} from './lib/viewers/unsupported-viewer/unsupported-viewer.component';\nexport {ViewerEventService as ɵw} from './lib/viewers/viewer-event.service';\nexport {ViewerUtilService as ɵcc} from './lib/viewers/viewer-util.service';"],"names":["pdfjsLib","BehaviorSubject","Subject","Injectable","pdfjsViewer","ResponseType","fromActions.CONVERT_SUCCESS","fromActions.CONVERT_FAIL","fromActions.CLEAR_CONVERT_DOC_URL","fromActions.LOAD_ROTATION","fromActions.LOAD_ROTATION_SUCCESS","fromActions.LOAD_ROTATION_FAIL","fromActions.SAVE_ROTATION_SUCCESS","fromActions.SET_DOCUMENT_ID","fromActions.ADD_PAGES","fromActions.POSITION_UPDATED","getRotation","rotationLoaded","getConvertedDocument","moment","fromAnnotations.LOAD_ANNOTATION_SET","fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS","fromAnnotations.LOAD_ANNOTATION_SET_FAIL","uuid","fromAnnotations.SAVE_ANNOTATION_SUCCESS","fromAnnotations.DELETE_ANNOTATION_SUCCESS","fromAnnotations.ADD_OR_EDIT_COMMENT","fromAnnotations.SELECT_ANNOTATION","fromAnnotations.SEARCH_COMMENT","fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER","fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER","fromTags.ADD_FILTER_TAGS","fromTags.CLEAR_FILTER_TAGS","fromBookmarks.LOAD_BOOKMARKS","fromBookmarks.LOAD_BOOKMARKS_SUCCESS","fromBookmarks.LOAD_BOOKMARKS_FAIL","fromBookmarks.CREATE_BOOKMARK_SUCCESS","fromBookmarks.MOVE_BOOKMARK_SUCCESS","fromBookmarks.DELETE_BOOKMARK_SUCCESS","fromBookmarks.UPDATE_BOOKMARK_SUCCESS","fromRedaction.LOAD_REDACTIONS","fromRedaction.LOAD_REDACTION_SUCCESS","fromRedaction.SAVE_REDACTION_SUCCESS","fromRedaction.SAVE_BULK_REDACTION_SUCCESS","fromRedaction.SELECT_REDACTION","fromRedaction.DELETE_REDACTION_SUCCESS","fromRedaction.REDACT_SUCCESS","fromRedaction.RESET_REDACTED_DOCUMENT","fromRedaction.UNMARK_ALL_SUCCESS","getRedactionEnt","fromIcpActions.SET_CASE_ID","fromIcpActions.ICP_SOCKET_SESSION_JOINED","fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED","fromIcpActions.ICP_PRESENTER_UPDATED","fromIcpActions.LEAVE_ICP_SOCKET_SESSION","getIcpSession","getPresenter","getClient","getParticipants","fromDocument.docReducer","fromAnnotation.reducer","fromTags.tagsReducer","fromBookmarks.bookmarksReducer","fromRedaction.redactionReducer","fromIcp.icpReducer","createFeatureSelector","ɵ0","createSelector","fromFeature.getMVState","fromDocument.getDocPages","fromDocument.getDocId","fromDocument.getPdfPos","fromDocument.getHasDifferentPageSizes","fromDocument.getConvertedDocument","fromDocument.getRotation","fromDocument.rotationLoaded","of","fromIcp.getIcpSession","ɵ1","fromIcp.getPresenter","ɵ2","fromIcp.getClient","ɵ3","fromIcp.getParticipants","select","fromDocSelectors.getPdfPosition","fromIcpSelectors.getPresenter","Store","take","store","fromIcpSelectors.getCaseId","filter","fromIcpActions.LoadIcpSession","fromIcpSelectors.getIcpSession","fromIcpSelectors.getClient","fromIcpSelectors.isPresenter","fromIcpActions.IcpPresenterUpdated","fromIcpActions.IcpParticipantListUpdated","fromIcpActions.LeaveIcpSocketSession","EventEmitter","tap","fromTagActions.ClearFilterTags","throttleTime","asyncScheduler","fromDocumentsSelector.getPageDifference","fromDocumentActions.AddPages","Component","ViewEncapsulation","Output","Input","ViewChild","HttpClient","fromAnnotationActions.SelectedAnnotation","fromDocument.AddPages","HostListener","map","catchError","fromTags.getTagNameEnt","fromTags.getFilters","fromTags.getFilteredComments","fromTags.getFilteredPageEnt","fromAnnotations.getAnnoEnt","fromAnnotations.getAnnoSet","fromAnnotations.getSelectedAnno","fromAnnotations.getCommentEnts","fromAnnotations.getAnnoPageEnt","fromAnnotations.commentSearchQ","fromAnnotations.getSummaryFilters","fromDocument.getPages","fromTags.getFilteredPageEntities","fromTags.getTagFiltered","fromAnnoSelectors.getAnnotationSet","fromDocumentActions.SetDocumentId","fromAnnoActions.LoadAnnotationSet","fromRedactActions.LoadRedactions","ElementRef","ChangeDetectorRef","fromSelectors.getDocumentIdSetId","fromActions.SaveAnnotation","fromDocument.getDocumentId","fromRedactionActions.SaveBulkRedaction","ConnectionPositionPair","fromRedactions.getPageEnt","fromRedactions.getSelectedRedaction","fromRedactions.getRedactedDocInfo","fromRedactions.getRedactionEnt","fromRedactSelectors.getRedactionArray","fromIcpSelectors.getPresenterName","NgModule","CommonModule","FormsModule","OverlayModule","RouterModule","fromActions.AddOrEditComment","fromSelectors.getSelectedAnnotation","fromActions.DeleteAnnotation","fromActions.SelectedAnnotation","fromSelector.getComponentSearchText","distinctUntilChanged","fromSelectors.getCommentsArray","fromSelectors.getAnnotationEntities","ViewChildren","Directive","FormGroup","FormControl","fromSelectors.getCommentSummary","fromSelectors.getCommentSummaryFilters","fromTagSelectors.getAllTagsArr","combineLatest","fromAnnoActions.ClearCommentSummaryFilters","fromAnnoActions.ApplyCommentSymmaryFilter","FormBuilder","fromTagSelectors.getTagFilters","fromAnnoSelector.getFilteredAnnotations","fromActions.SearchComment","fromSelectors.getTagFilters","auditTime","fromActions.AddFilterTags","fromSelectors.getAllTagsArr","fromActions.ClearFilterTags","DatePipe","Pipe","ReactiveFormsModule","fromBookmarks.getBookmarkPageEnt","fromBookmarks.getBookmarkEnts","fromBookmarks.getEditBookmark","fromDocument.getPdfPosition","fromSelectors.getPageEntities","fromBookmarks.getBookmarkInfo","A11yModule","HttpClientModule","MutableDivModule","TagInputModule","NgxDatatableModule","bookmarksSelectors.getEditableBookmark","bookmarksSelectors.getBookmarkInfo","TreeComponent","bookmarksSelectors.getBookmarkNodes","fromSelectors.getRedactionsPerPage","fromSelectors.getSelected","fromSelectors.getRedactedDocumentInfo","fromRedaSelectors.getRedactionArray","fromRedaActions.Redact","fromRedaActions.UnmarkAll","fromRedactionActions.SaveRedaction","fromActions.DeleteRedaction","fromActions.SelectRedaction","fromActions.SaveRedaction","fromRedactionActions.ResetRedactedDocument","ofType","annotationsActions.LOAD_ANNOTATION_SET","switchMap","annotationsActions.LoadAnnotationSetSucess","annotationsActions.LoadAnnotationSetFail","annotationsActions.SAVE_ANNOTATION","exhaustMap","annotationsActions.SaveAnnotationSuccess","annotationsActions.DELETE_ANNOTATION","annotationsActions.DeleteAnnotationSuccess","annotationsActions.DeleteAnnotationFail","Actions","Effect","bookmarksActions.LOAD_BOOKMARKS","withLatestFrom","bookmarksActions.LoadBookmarksSuccess","bookmarksActions.LoadBookmarksFailure","bookmarksActions.CREATE_BOOKMARK","bookmarksActions.CreateBookmarkSuccess","bookmarksActions.CreateBookmarkFailure","bookmarksActions.MOVE_BOOKMARK","bookmarksActions.MoveBookmarkSuccess","bookmarksActions.MoveBookmarkFailure","bookmarksActions.DELETE_BOOKMARK","bookmarksActions.DeleteBookmarkSuccess","bookmarksActions.UpdateBookmarkSuccess","bookmarksActions.DeleteBookmarkFailure","bookmarksActions.UPDATE_BOOKMARK","bookmarksActions.UpdateBookmarkFailure","redactionActions.LOAD_REDACTIONS","redactionActions.LoadRedactionSuccess","redactionActions.LoadRedactionFailure","redactionActions.SAVE_REDACTION","redactionActions.SaveRedactionSuccess","redactionActions.SaveRedactionFailure","redactionActions.SAVE_BULK_REDACTION","redactionActions.SaveBulkRedactionSuccess","redactionActions.SaveBulkRedactionFailure","redactionActions.DELETE_REDACTION","redactionActions.DeleteRedactionSuccess","redactionActions.DeleteRedactionFailure","redactionActions.REDACT","redactionActions.RedactSuccess","redactionActions.RedactFailure","redactionActions.UNMARK_ALL","redactionActions.UnmarkAllSuccess","documentActions.CONVERT","documentActions.ConvertSuccess","documentActions.ConvertFailure","documentActions.LOAD_ROTATION","documentActions.LoadRotationSuccess","documentActions.LoadRotationFailure","documentActions.SAVE_ROTATION","documentActions.SaveRotationSuccess","documentActions.SaveRotationFailure","icpActions.LOAD_ICP_SESSION","icpActions.JoinIcpSocketSession","icpActions.LoadIcpSessionFailure","icpActions.JOIN_ICP_SOCKET_SESSION","icpActions.IcpSocketSessionJoined","fromDocumentActions.Convert","fromSelectors.getConvertedDocument","fromDocumentActions.ClearConvertDocUrl","fromSelectors.getBookmarksPerPage","fromDocuments.getRotation","fromDocuments.getDocumentId","fromDocumentActions.LoadRotation","fromDocuments.rotationLoaded","fromDocumentActions.SaveRotation","fromSelectors.getParticipants","fromSelectors.getPresenter","fromSelectors.isPresenter","StoreModule","EffectsModule","TreeModule"],"mappings":"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"}