@hmcts/media-viewer 2.9.5 → 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 (475) hide show
  1. package/assets/all.scss +1 -1
  2. package/assets/sass/tags.scss +1 -1
  3. package/esm2020/hmcts-media-viewer.mjs +5 -0
  4. package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
  5. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
  6. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +75 -0
  7. package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
  8. package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
  9. package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
  10. package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
  11. package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +87 -0
  12. package/esm2020/lib/annotations/annotations.module.mjs +158 -0
  13. package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +176 -0
  14. package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
  15. package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
  16. package/esm2020/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +31 -0
  17. package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
  18. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +61 -0
  19. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +53 -0
  20. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
  21. package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
  22. package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +123 -0
  23. package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +113 -0
  24. package/esm2020/lib/annotations/pipes/date/date.pipe.mjs +26 -0
  25. package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
  26. package/esm2020/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +16 -0
  27. package/esm2020/lib/annotations/services/annotation-api/annotation-api.service.mjs +58 -0
  28. package/esm2020/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +45 -0
  29. package/esm2020/lib/annotations/services/tags/tags.services.mjs +41 -0
  30. package/esm2020/lib/annotations/tags/tags.component.mjs +53 -0
  31. package/esm2020/lib/bookmark/components/bookmark-icons.component.mjs +25 -0
  32. package/esm2020/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +22 -0
  33. package/esm2020/lib/icp/icp-follower.service.mjs +60 -0
  34. package/esm2020/lib/icp/icp-presenter.service.mjs +55 -0
  35. package/esm2020/lib/icp/icp-session-api.service.mjs +21 -0
  36. package/esm2020/lib/icp/icp-update.service.mjs +57 -0
  37. package/esm2020/lib/icp/icp.service.mjs +93 -0
  38. package/esm2020/lib/icp/participants-list/participants-list.component.mjs +30 -0
  39. package/esm2020/lib/icp/socket.service.mjs +118 -0
  40. package/esm2020/lib/media-viewer.component.mjs +244 -0
  41. package/esm2020/lib/media-viewer.module.mjs +151 -0
  42. package/{esm2015/lib/print.service.js → esm2020/lib/print.service.mjs} +9 -7
  43. package/esm2020/lib/redaction/components/redaction.component.mjs +91 -0
  44. package/esm2020/lib/redaction/services/redaction-api.service.mjs +50 -0
  45. package/esm2020/lib/shared/gov-uk-date/gov-uk-date.component.mjs +28 -0
  46. package/esm2020/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +34 -0
  47. package/esm2020/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +63 -0
  48. package/esm2020/lib/shared/gov-uk-label/gov-uk-label.component.mjs +44 -0
  49. package/esm2020/lib/shared/shared.module.mjs +53 -0
  50. package/esm2020/lib/shared/util/services/number.helper.service.mjs +23 -0
  51. package/{esm2015/lib/store/bookmarks-store-utils.js → esm2020/lib/store/bookmarks-store-utils.mjs} +1 -3
  52. package/esm2020/lib/store/effects/annotation.effects.mjs +44 -0
  53. package/esm2020/lib/store/effects/bookmarks.effects.mjs +44 -0
  54. package/esm2020/lib/store/effects/document.effects.mjs +44 -0
  55. package/esm2020/lib/store/effects/icp.effects.mjs +26 -0
  56. package/esm2020/lib/store/effects/redaction.effects.mjs +67 -0
  57. package/esm2020/lib/store/reducers/annotations.reducer.mjs +183 -0
  58. package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +116 -0
  59. package/esm2020/lib/store/reducers/document.reducer.mjs +135 -0
  60. package/esm2020/lib/store/reducers/icp.reducer.mjs +56 -0
  61. package/esm2020/lib/store/reducers/redaction.reducer.mjs +116 -0
  62. package/esm2020/lib/store/reducers/tags.reducer.mjs +93 -0
  63. package/esm2020/lib/store/selectors/annotation.selectors.mjs +81 -0
  64. package/esm2020/lib/store/selectors/bookmark.selectors.mjs +36 -0
  65. package/{esm2015/lib/store/selectors/document.selectors.js → esm2020/lib/store/selectors/document.selectors.mjs} +3 -6
  66. package/esm2020/lib/store/selectors/icp.selectors.mjs +13 -0
  67. package/{esm2015/lib/store/selectors/redaction.selectors.js → esm2020/lib/store/selectors/redaction.selectors.mjs} +6 -10
  68. package/{esm2015/lib/store/selectors/tag.selectors.js → esm2020/lib/store/selectors/tag.selectors.mjs} +4 -7
  69. package/esm2020/lib/store/store-utils.mjs +131 -0
  70. package/esm2020/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +41 -0
  71. package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +188 -0
  72. package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +199 -0
  73. package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +66 -0
  74. package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +105 -0
  75. package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  76. package/{esm2015/lib/toolbar/toolbar-event.service.js → esm2020/lib/toolbar/toolbar-event.service.mjs} +7 -5
  77. package/esm2020/lib/toolbar/toolbar.module.mjs +67 -0
  78. package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +78 -0
  79. package/esm2020/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +22 -0
  80. package/esm2020/lib/viewers/grab-n-drag.directive.mjs +57 -0
  81. package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  82. package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +58 -0
  83. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +193 -0
  84. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +40 -0
  85. package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +230 -0
  86. package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +192 -0
  87. package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  88. package/esm2020/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +77 -0
  89. package/esm2020/lib/viewers/rotation-persist/rotation-api.service.mjs +27 -0
  90. package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +64 -0
  91. package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  92. package/esm2020/lib/viewers/viewer-event.service.mjs +30 -0
  93. package/esm2020/lib/viewers/viewer-util.service.mjs +20 -0
  94. package/esm2020/public_api.mjs +32 -0
  95. package/fesm2015/hmcts-media-viewer.mjs +6602 -0
  96. package/fesm2015/hmcts-media-viewer.mjs.map +1 -0
  97. package/fesm2020/hmcts-media-viewer.mjs +6893 -0
  98. package/fesm2020/hmcts-media-viewer.mjs.map +1 -0
  99. package/hmcts-media-viewer.d.ts.map +1 -1
  100. package/index.d.ts +6 -0
  101. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +3 -0
  102. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -1
  103. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +3 -0
  104. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -1
  105. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +3 -0
  106. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -1
  107. package/lib/annotations/annotation-set/annotation-set.component.d.ts +3 -0
  108. package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -1
  109. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +3 -0
  110. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -1
  111. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +5 -2
  112. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -1
  113. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +3 -0
  114. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -1
  115. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +3 -0
  116. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -1
  117. package/lib/annotations/annotations.module.d.ts +32 -0
  118. package/lib/annotations/annotations.module.d.ts.map +1 -1
  119. package/lib/annotations/comment-set/comment/comment.component.d.ts +3 -0
  120. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -1
  121. package/lib/annotations/comment-set/comment/comment.service.d.ts +5 -2
  122. package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -1
  123. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +3 -0
  124. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -1
  125. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +3 -0
  126. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +1 -1
  127. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +3 -0
  128. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -1
  129. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +6 -3
  130. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +1 -1
  131. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +3 -0
  132. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +1 -1
  133. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +3 -0
  134. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +1 -1
  135. package/lib/annotations/comment-set/comment-set-render.service.d.ts +3 -0
  136. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -1
  137. package/lib/annotations/comment-set/comment-set.component.d.ts +3 -0
  138. package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -1
  139. package/lib/annotations/comments-summary/comments-summary.component.d.ts +6 -3
  140. package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -1
  141. package/lib/annotations/pipes/date/date.pipe.d.ts +3 -0
  142. package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -1
  143. package/lib/annotations/pipes/filter/filter.pipe.d.ts +3 -0
  144. package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -1
  145. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +3 -0
  146. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -1
  147. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +3 -0
  148. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -1
  149. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +3 -0
  150. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -1
  151. package/lib/annotations/services/tags/tags.services.d.ts +3 -0
  152. package/lib/annotations/services/tags/tags.services.d.ts.map +1 -1
  153. package/lib/annotations/tags/tags.component.d.ts +6 -3
  154. package/lib/annotations/tags/tags.component.d.ts.map +1 -1
  155. package/lib/bookmark/components/bookmark-icons.component.d.ts +3 -0
  156. package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -1
  157. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +3 -0
  158. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -1
  159. package/lib/icp/icp-follower.service.d.ts +3 -0
  160. package/lib/icp/icp-follower.service.d.ts.map +1 -1
  161. package/lib/icp/icp-presenter.service.d.ts +3 -0
  162. package/lib/icp/icp-presenter.service.d.ts.map +1 -1
  163. package/lib/icp/icp-session-api.service.d.ts +3 -0
  164. package/lib/icp/icp-session-api.service.d.ts.map +1 -1
  165. package/lib/icp/icp-update.service.d.ts +3 -0
  166. package/lib/icp/icp-update.service.d.ts.map +1 -1
  167. package/lib/icp/icp.service.d.ts +3 -0
  168. package/lib/icp/icp.service.d.ts.map +1 -1
  169. package/lib/icp/participants-list/participants-list.component.d.ts +3 -0
  170. package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -1
  171. package/lib/icp/socket.service.d.ts +3 -0
  172. package/lib/icp/socket.service.d.ts.map +1 -1
  173. package/lib/media-viewer.component.d.ts +3 -0
  174. package/lib/media-viewer.component.d.ts.map +1 -1
  175. package/lib/media-viewer.module.d.ts +31 -0
  176. package/lib/media-viewer.module.d.ts.map +1 -1
  177. package/lib/print.service.d.ts +3 -0
  178. package/lib/print.service.d.ts.map +1 -1
  179. package/lib/redaction/components/redaction.component.d.ts +3 -0
  180. package/lib/redaction/components/redaction.component.d.ts.map +1 -1
  181. package/lib/redaction/services/redaction-api.service.d.ts +3 -0
  182. package/lib/redaction/services/redaction-api.service.d.ts.map +1 -1
  183. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +3 -0
  184. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -1
  185. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +3 -0
  186. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -1
  187. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +3 -0
  188. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -1
  189. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +3 -0
  190. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -1
  191. package/lib/shared/shared.module.d.ts +11 -0
  192. package/lib/shared/shared.module.d.ts.map +1 -1
  193. package/lib/shared/util/services/number.helper.service.d.ts +3 -0
  194. package/lib/shared/util/services/number.helper.service.d.ts.map +1 -1
  195. package/lib/store/actions/annotation.actions.d.ts +1 -1
  196. package/lib/store/actions/annotation.actions.d.ts.map +1 -1
  197. package/lib/store/actions/bookmark.actions.d.ts +1 -1
  198. package/lib/store/actions/bookmark.actions.d.ts.map +1 -1
  199. package/lib/store/actions/document.actions.d.ts +1 -1
  200. package/lib/store/actions/document.actions.d.ts.map +1 -1
  201. package/lib/store/actions/icp.actions.d.ts +1 -1
  202. package/lib/store/actions/icp.actions.d.ts.map +1 -1
  203. package/lib/store/actions/redaction.actions.d.ts +1 -1
  204. package/lib/store/actions/redaction.actions.d.ts.map +1 -1
  205. package/lib/store/actions/tag.actions.d.ts +1 -1
  206. package/lib/store/actions/tag.actions.d.ts.map +1 -1
  207. package/lib/store/effects/annotation.effects.d.ts +6 -3
  208. package/lib/store/effects/annotation.effects.d.ts.map +1 -1
  209. package/lib/store/effects/bookmarks.effects.d.ts +8 -5
  210. package/lib/store/effects/bookmarks.effects.d.ts.map +1 -1
  211. package/lib/store/effects/document.effects.d.ts +6 -3
  212. package/lib/store/effects/document.effects.d.ts.map +1 -1
  213. package/lib/store/effects/icp.effects.d.ts +5 -2
  214. package/lib/store/effects/icp.effects.d.ts.map +1 -1
  215. package/lib/store/effects/redaction.effects.d.ts +9 -6
  216. package/lib/store/effects/redaction.effects.d.ts.map +1 -1
  217. package/lib/store/selectors/annotation.selectors.d.ts +70 -27
  218. package/lib/store/selectors/annotation.selectors.d.ts.map +1 -1
  219. package/lib/store/selectors/bookmark.selectors.d.ts +18 -10
  220. package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -1
  221. package/lib/store/selectors/document.selectors.d.ts +13 -11
  222. package/lib/store/selectors/document.selectors.d.ts.map +1 -1
  223. package/lib/store/selectors/icp.selectors.d.ts +9 -8
  224. package/lib/store/selectors/icp.selectors.d.ts.map +1 -1
  225. package/lib/store/selectors/redaction.selectors.d.ts +17 -11
  226. package/lib/store/selectors/redaction.selectors.d.ts.map +1 -1
  227. package/lib/store/selectors/tag.selectors.d.ts +14 -12
  228. package/lib/store/selectors/tag.selectors.d.ts.map +1 -1
  229. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +3 -0
  230. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -1
  231. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +3 -0
  232. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -1
  233. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +5 -2
  234. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -1
  235. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +3 -0
  236. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -1
  237. package/lib/toolbar/search-bar/search-bar.component.d.ts +3 -0
  238. package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -1
  239. package/lib/toolbar/toolbar-button-visibility.service.d.ts +3 -0
  240. package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -1
  241. package/lib/toolbar/toolbar-event.service.d.ts +5 -2
  242. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  243. package/lib/toolbar/toolbar.module.d.ts +13 -0
  244. package/lib/toolbar/toolbar.module.d.ts.map +1 -1
  245. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +3 -0
  246. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -1
  247. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +3 -0
  248. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -1
  249. package/lib/viewers/grab-n-drag.directive.d.ts +3 -0
  250. package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -1
  251. package/lib/viewers/image-viewer/image-viewer.component.d.ts +3 -0
  252. package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -1
  253. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +3 -0
  254. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -1
  255. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +3 -0
  256. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -1
  257. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +3 -0
  258. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -1
  259. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +5 -2
  260. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -1
  261. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +3 -0
  262. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +1 -1
  263. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +3 -0
  264. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -1
  265. package/lib/viewers/rotation-persist/rotation-api.service.d.ts +3 -0
  266. package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -1
  267. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +3 -0
  268. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -1
  269. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +3 -0
  270. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -1
  271. package/lib/viewers/viewer-event.service.d.ts +3 -0
  272. package/lib/viewers/viewer-event.service.d.ts.map +1 -1
  273. package/lib/viewers/viewer-util.service.d.ts +3 -0
  274. package/lib/viewers/viewer-util.service.d.ts.map +1 -1
  275. package/package.json +34 -22
  276. package/public_api.d.ts +1 -0
  277. package/public_api.d.ts.map +1 -1
  278. package/bundles/hmcts-media-viewer.umd.js +0 -7552
  279. package/bundles/hmcts-media-viewer.umd.js.map +0 -1
  280. package/bundles/hmcts-media-viewer.umd.min.js +0 -2
  281. package/bundles/hmcts-media-viewer.umd.min.js.map +0 -1
  282. package/esm2015/hmcts-media-viewer.js +0 -64
  283. package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +0 -113
  284. package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +0 -111
  285. package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +0 -61
  286. package/esm2015/lib/annotations/annotation-set/annotation-set.component.js +0 -47
  287. package/esm2015/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +0 -86
  288. package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +0 -108
  289. package/esm2015/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +0 -107
  290. package/esm2015/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +0 -81
  291. package/esm2015/lib/annotations/annotations.module.js +0 -103
  292. package/esm2015/lib/annotations/comment-set/comment/comment.component.js +0 -162
  293. package/esm2015/lib/annotations/comment-set/comment/comment.service.js +0 -47
  294. package/esm2015/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.js +0 -48
  295. package/esm2015/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.js +0 -31
  296. package/esm2015/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +0 -95
  297. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.js +0 -60
  298. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.js +0 -53
  299. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +0 -68
  300. package/esm2015/lib/annotations/comment-set/comment-set-render.service.js +0 -51
  301. package/esm2015/lib/annotations/comment-set/comment-set.component.js +0 -110
  302. package/esm2015/lib/annotations/comments-summary/comments-summary.component.js +0 -106
  303. package/esm2015/lib/annotations/pipes/date/date.pipe.js +0 -22
  304. package/esm2015/lib/annotations/pipes/filter/filter.pipe.js +0 -28
  305. package/esm2015/lib/annotations/pipes/unsnake/unsnake.pipe.js +0 -12
  306. package/esm2015/lib/annotations/services/annotation-api/annotation-api.service.js +0 -59
  307. package/esm2015/lib/annotations/services/bookmarks-api/bookmarks-api.service.js +0 -46
  308. package/esm2015/lib/annotations/services/tags/tags.services.js +0 -36
  309. package/esm2015/lib/annotations/tags/tags.component.js +0 -52
  310. package/esm2015/lib/bookmark/components/bookmark-icons.component.js +0 -26
  311. package/esm2015/lib/icp/confirm-exit/confirm-action-dialog.component.js +0 -25
  312. package/esm2015/lib/icp/icp-follower.service.js +0 -63
  313. package/esm2015/lib/icp/icp-presenter.service.js +0 -57
  314. package/esm2015/lib/icp/icp-session-api.service.js +0 -22
  315. package/esm2015/lib/icp/icp-update.service.js +0 -56
  316. package/esm2015/lib/icp/icp.service.js +0 -98
  317. package/esm2015/lib/icp/participants-list/participants-list.component.js +0 -32
  318. package/esm2015/lib/icp/socket.service.js +0 -117
  319. package/esm2015/lib/media-viewer.component.js +0 -210
  320. package/esm2015/lib/media-viewer.module.js +0 -102
  321. package/esm2015/lib/redaction/components/redaction.component.js +0 -97
  322. package/esm2015/lib/redaction/services/redaction-api.service.js +0 -51
  323. package/esm2015/lib/shared/gov-uk-date/gov-uk-date.component.js +0 -21
  324. package/esm2015/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +0 -27
  325. package/esm2015/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -42
  326. package/esm2015/lib/shared/gov-uk-label/gov-uk-label.component.js +0 -32
  327. package/esm2015/lib/shared/shared.module.js +0 -34
  328. package/esm2015/lib/shared/util/services/number.helper.service.js +0 -23
  329. package/esm2015/lib/store/effects/annotation.effects.js +0 -58
  330. package/esm2015/lib/store/effects/bookmarks.effects.js +0 -66
  331. package/esm2015/lib/store/effects/document.effects.js +0 -59
  332. package/esm2015/lib/store/effects/icp.effects.js +0 -37
  333. package/esm2015/lib/store/effects/redaction.effects.js +0 -94
  334. package/esm2015/lib/store/reducers/annotations.reducer.js +0 -115
  335. package/esm2015/lib/store/reducers/bookmarks.reducer.js +0 -80
  336. package/esm2015/lib/store/reducers/document.reducer.js +0 -100
  337. package/esm2015/lib/store/reducers/icp.reducer.js +0 -40
  338. package/esm2015/lib/store/reducers/redaction.reducer.js +0 -75
  339. package/esm2015/lib/store/reducers/tags.reducer.js +0 -67
  340. package/esm2015/lib/store/selectors/annotation.selectors.js +0 -84
  341. package/esm2015/lib/store/selectors/bookmark.selectors.js +0 -41
  342. package/esm2015/lib/store/selectors/icp.selectors.js +0 -18
  343. package/esm2015/lib/store/store-utils.js +0 -105
  344. package/esm2015/lib/toolbar/icp-toolbar/icp-toolbar.component.js +0 -43
  345. package/esm2015/lib/toolbar/main-toolbar/main-toolbar.component.js +0 -175
  346. package/esm2015/lib/toolbar/redaction-search-bar/redaction-search-bar.component.js +0 -201
  347. package/esm2015/lib/toolbar/redaction-toolbar/redaction-toolbar.component.js +0 -70
  348. package/esm2015/lib/toolbar/search-bar/search-bar.component.js +0 -102
  349. package/esm2015/lib/toolbar/toolbar-button-visibility.service.js +0 -92
  350. package/esm2015/lib/toolbar/toolbar.module.js +0 -45
  351. package/esm2015/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.js +0 -72
  352. package/esm2015/lib/viewers/convertible-content-viewer/document-conversion-api.service.js +0 -23
  353. package/esm2015/lib/viewers/grab-n-drag.directive.js +0 -51
  354. package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +0 -164
  355. package/esm2015/lib/viewers/multimedia-player/multimedia-player.component.js +0 -54
  356. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +0 -203
  357. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +0 -43
  358. package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +0 -220
  359. package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +0 -179
  360. package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +0 -44
  361. package/esm2015/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +0 -72
  362. package/esm2015/lib/viewers/rotation-persist/rotation-api.service.js +0 -28
  363. package/esm2015/lib/viewers/rotation-persist/rotation-persist.directive.js +0 -67
  364. package/esm2015/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +0 -47
  365. package/esm2015/lib/viewers/viewer-event.service.js +0 -30
  366. package/esm2015/lib/viewers/viewer-util.service.js +0 -23
  367. package/esm2015/public_api.js +0 -31
  368. package/fesm2015/hmcts-media-viewer.js +0 -6585
  369. package/fesm2015/hmcts-media-viewer.js.map +0 -1
  370. package/hmcts-media-viewer.d.ts +0 -69
  371. package/hmcts-media-viewer.metadata.json +0 -1
  372. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ngfactory.d.ts.map +0 -1
  373. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ngfactory.d.ts.map +0 -1
  374. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ngfactory.d.ts.map +0 -1
  375. package/lib/annotations/annotation-set/annotation-set.component.ngfactory.d.ts.map +0 -1
  376. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.ngfactory.d.ts.map +0 -1
  377. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ngfactory.d.ts.map +0 -1
  378. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ngfactory.d.ts.map +0 -1
  379. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ngfactory.d.ts.map +0 -1
  380. package/lib/annotations/annotations.module.ngfactory.d.ts.map +0 -1
  381. package/lib/annotations/comment-set/comment/comment.component.ngfactory.d.ts.map +0 -1
  382. package/lib/annotations/comment-set/comment/comment.service.ngfactory.d.ts.map +0 -1
  383. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ngfactory.d.ts.map +0 -1
  384. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ngfactory.d.ts.map +0 -1
  385. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ngfactory.d.ts.map +0 -1
  386. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ngfactory.d.ts.map +0 -1
  387. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ngfactory.d.ts.map +0 -1
  388. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ngfactory.d.ts.map +0 -1
  389. package/lib/annotations/comment-set/comment-set-render.service.ngfactory.d.ts.map +0 -1
  390. package/lib/annotations/comment-set/comment-set.component.ngfactory.d.ts.map +0 -1
  391. package/lib/annotations/comments-summary/comments-summary.component.ngfactory.d.ts.map +0 -1
  392. package/lib/annotations/pipes/date/date.pipe.ngfactory.d.ts.map +0 -1
  393. package/lib/annotations/pipes/filter/filter.pipe.ngfactory.d.ts.map +0 -1
  394. package/lib/annotations/pipes/unsnake/unsnake.pipe.ngfactory.d.ts.map +0 -1
  395. package/lib/annotations/services/annotation-api/annotation-api.service.ngfactory.d.ts.map +0 -1
  396. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.ngfactory.d.ts.map +0 -1
  397. package/lib/annotations/services/tags/tags.services.ngfactory.d.ts.map +0 -1
  398. package/lib/annotations/tags/tags.component.ngfactory.d.ts.map +0 -1
  399. package/lib/bookmark/components/bookmark-icons.component.ngfactory.d.ts.map +0 -1
  400. package/lib/icp/confirm-exit/confirm-action-dialog.component.ngfactory.d.ts.map +0 -1
  401. package/lib/icp/icp-follower.service.ngfactory.d.ts.map +0 -1
  402. package/lib/icp/icp-presenter.service.ngfactory.d.ts.map +0 -1
  403. package/lib/icp/icp-session-api.service.ngfactory.d.ts.map +0 -1
  404. package/lib/icp/icp-update.service.ngfactory.d.ts.map +0 -1
  405. package/lib/icp/icp.service.ngfactory.d.ts.map +0 -1
  406. package/lib/icp/participants-list/participants-list.component.ngfactory.d.ts.map +0 -1
  407. package/lib/icp/socket.service.ngfactory.d.ts.map +0 -1
  408. package/lib/media-viewer.component.ngfactory.d.ts.map +0 -1
  409. package/lib/media-viewer.module.ngfactory.d.ts.map +0 -1
  410. package/lib/print.service.ngfactory.d.ts.map +0 -1
  411. package/lib/redaction/components/redaction.component.ngfactory.d.ts.map +0 -1
  412. package/lib/redaction/services/redaction-api.service.ngfactory.d.ts.map +0 -1
  413. package/lib/shared/gov-uk-date/gov-uk-date.component.ngfactory.d.ts.map +0 -1
  414. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ngfactory.d.ts.map +0 -1
  415. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ngfactory.d.ts.map +0 -1
  416. package/lib/shared/gov-uk-label/gov-uk-label.component.ngfactory.d.ts.map +0 -1
  417. package/lib/shared/shared.module.ngfactory.d.ts.map +0 -1
  418. package/lib/shared/util/services/number.helper.service.ngfactory.d.ts.map +0 -1
  419. package/lib/store/effects/annotation.effects.ngfactory.d.ts.map +0 -1
  420. package/lib/store/effects/bookmarks.effects.ngfactory.d.ts.map +0 -1
  421. package/lib/store/effects/document.effects.ngfactory.d.ts.map +0 -1
  422. package/lib/store/effects/icp.effects.ngfactory.d.ts.map +0 -1
  423. package/lib/store/effects/redaction.effects.ngfactory.d.ts.map +0 -1
  424. package/lib/toolbar/icp-toolbar/icp-toolbar.component.ngfactory.d.ts.map +0 -1
  425. package/lib/toolbar/main-toolbar/main-toolbar.component.ngfactory.d.ts.map +0 -1
  426. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.ngfactory.d.ts.map +0 -1
  427. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.scss.shim.ngstyle.d.ts.map +0 -1
  428. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ngfactory.d.ts.map +0 -1
  429. package/lib/toolbar/search-bar/search-bar.component.ngfactory.d.ts.map +0 -1
  430. package/lib/toolbar/toolbar-button-visibility.service.ngfactory.d.ts.map +0 -1
  431. package/lib/toolbar/toolbar-event.service.ngfactory.d.ts.map +0 -1
  432. package/lib/toolbar/toolbar.module.ngfactory.d.ts.map +0 -1
  433. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ngfactory.d.ts.map +0 -1
  434. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.ngfactory.d.ts.map +0 -1
  435. package/lib/viewers/grab-n-drag.directive.ngfactory.d.ts.map +0 -1
  436. package/lib/viewers/image-viewer/image-viewer.component.ngfactory.d.ts.map +0 -1
  437. package/lib/viewers/multimedia-player/multimedia-player.component.ngfactory.d.ts.map +0 -1
  438. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ngfactory.d.ts.map +0 -1
  439. package/lib/viewers/pdf-viewer/pdf-viewer.component.ngfactory.d.ts.map +0 -1
  440. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ngfactory.d.ts.map +0 -1
  441. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ngfactory.d.ts.map +0 -1
  442. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.ngfactory.d.ts.map +0 -1
  443. package/lib/viewers/rotation-persist/rotation-api.service.ngfactory.d.ts.map +0 -1
  444. package/lib/viewers/rotation-persist/rotation-persist.directive.ngfactory.d.ts.map +0 -1
  445. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.ngfactory.d.ts.map +0 -1
  446. package/lib/viewers/viewer-event.service.ngfactory.d.ts.map +0 -1
  447. package/lib/viewers/viewer-util.service.ngfactory.d.ts.map +0 -1
  448. /package/{esm2015/lib/annotations/annotation-set/annotation-set.model.js → esm2020/lib/annotations/annotation-set/annotation-set.model.mjs} +0 -0
  449. /package/{esm2015/lib/annotations/annotation-set/annotation-view/annotation.model.js → esm2020/lib/annotations/annotation-set/annotation-view/annotation.model.mjs} +0 -0
  450. /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
  451. /package/{esm2015/lib/annotations/comment-set/comment/comment.model.js → esm2020/lib/annotations/comment-set/comment/comment.model.mjs} +0 -0
  452. /package/{esm2015/lib/annotations/models/api-persisted.model.js → esm2020/lib/annotations/models/api-persisted.model.mjs} +0 -0
  453. /package/{esm2015/lib/annotations/models/event-select.model.js → esm2020/lib/annotations/models/event-select.model.mjs} +0 -0
  454. /package/{esm2015/lib/annotations/models/tags.model.js → esm2020/lib/annotations/models/tags.model.mjs} +0 -0
  455. /package/{esm2015/lib/annotations/models/user.model.js → esm2020/lib/annotations/models/user.model.mjs} +0 -0
  456. /package/{esm2015/lib/icp/icp.events.js → esm2020/lib/icp/icp.events.mjs} +0 -0
  457. /package/{esm2015/lib/icp/icp.interfaces.js → esm2020/lib/icp/icp.interfaces.mjs} +0 -0
  458. /package/{esm2015/lib/redaction/services/redaction.model.js → esm2020/lib/redaction/services/redaction.model.mjs} +0 -0
  459. /package/{esm2015/lib/shared/util/helpers/html-templates.helper.js → esm2020/lib/shared/util/helpers/html-templates.helper.mjs} +0 -0
  460. /package/{esm2015/lib/store/actions/annotation.actions.js → esm2020/lib/store/actions/annotation.actions.mjs} +0 -0
  461. /package/{esm2015/lib/store/actions/bookmark.actions.js → esm2020/lib/store/actions/bookmark.actions.mjs} +0 -0
  462. /package/{esm2015/lib/store/actions/document.actions.js → esm2020/lib/store/actions/document.actions.mjs} +0 -0
  463. /package/{esm2015/lib/store/actions/icp.actions.js → esm2020/lib/store/actions/icp.actions.mjs} +0 -0
  464. /package/{esm2015/lib/store/actions/redaction.actions.js → esm2020/lib/store/actions/redaction.actions.mjs} +0 -0
  465. /package/{esm2015/lib/store/actions/tag.actions.js → esm2020/lib/store/actions/tag.actions.mjs} +0 -0
  466. /package/{esm2015/lib/store/effects/index.js → esm2020/lib/store/effects/index.mjs} +0 -0
  467. /package/{esm2015/lib/store/models/bookmarks.interface.js → esm2020/lib/store/models/bookmarks.interface.mjs} +0 -0
  468. /package/{esm2015/lib/store/models/filters.interface.js → esm2020/lib/store/models/filters.interface.mjs} +0 -0
  469. /package/{esm2015/lib/store/reducers/reducers.js → esm2020/lib/store/reducers/reducers.mjs} +0 -0
  470. /package/{esm2015/lib/toolbar/icp-event.service.js → esm2020/lib/toolbar/icp-event.service.mjs} +0 -0
  471. /package/{esm2015/lib/toolbar/redaction-search-bar/redaction-search.model.js → esm2020/lib/toolbar/redaction-search-bar/redaction-search.model.mjs} +0 -0
  472. /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
  473. /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
  474. /package/{esm2015/lib/viewers/rotation-persist/rotation.model.js → esm2020/lib/viewers/rotation-persist/rotation.model.mjs} +0 -0
  475. /package/{esm2015/lib/viewers/viewer-exception.model.js → esm2020/lib/viewers/viewer-exception.model.mjs} +0 -0
@@ -1,117 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, of, Subject } from 'rxjs';
3
- import { IcpEvents } from './icp.events';
4
- export class SocketService {
5
- constructor() {
6
- this.connected$ = new BehaviorSubject(false);
7
- this.sessionJoined$ = new Subject();
8
- this.presenterUpdated$ = new Subject();
9
- this.clientDisconnected$ = new Subject();
10
- this.participantUpdated$ = new Subject();
11
- this.newParticipantJoined$ = new Subject();
12
- this.screenUpdated$ = new Subject();
13
- }
14
- ngOnDestroy() {
15
- this.subscription.unsubscribe();
16
- }
17
- connect(url) {
18
- return this.getSocketClient(url).subscribe((socket) => {
19
- socket.onopen = (event) => {
20
- this.connected$.next(true);
21
- };
22
- socket.onmessage = (event) => {
23
- console.log('onmessage');
24
- const eventData = JSON.parse(event.data);
25
- if (eventData.data && eventData.data.eventName) {
26
- this.messageEventHandller(eventData.data.eventName, eventData.data.data);
27
- }
28
- };
29
- socket.onerror = (event) => {
30
- console.log('onerror');
31
- };
32
- socket.onclose = (event) => {
33
- console.log('onclose');
34
- };
35
- });
36
- }
37
- connected() {
38
- return this.connected$.asObservable();
39
- }
40
- join(session) {
41
- this.emit(IcpEvents.SESSION_JOIN, session);
42
- }
43
- leave(session) {
44
- this.emit(IcpEvents.SESSION_LEAVE, session);
45
- this.subscription.unsubscribe();
46
- }
47
- emit(event, data) {
48
- this.socket.send(JSON.stringify({
49
- type: 'event',
50
- event,
51
- data
52
- }));
53
- }
54
- listen(event) {
55
- switch (event) {
56
- case IcpEvents.SESSION_JOINED: {
57
- return this.sessionJoined$.asObservable();
58
- }
59
- case IcpEvents.PRESENTER_UPDATED: {
60
- return this.presenterUpdated$.asObservable();
61
- }
62
- case IcpEvents.CLIENT_DISCONNECTED: {
63
- return this.clientDisconnected$.asObservable();
64
- }
65
- case IcpEvents.PARTICIPANTS_UPDATED: {
66
- return this.participantUpdated$.asObservable();
67
- }
68
- case IcpEvents.NEW_PARTICIPANT_JOINED: {
69
- return this.newParticipantJoined$.asObservable();
70
- }
71
- case IcpEvents.SCREEN_UPDATED: {
72
- return this.screenUpdated$.asObservable();
73
- }
74
- default: {
75
- break;
76
- }
77
- }
78
- }
79
- messageEventHandller(eventName, data) {
80
- switch (eventName) {
81
- case IcpEvents.SESSION_JOINED: {
82
- this.sessionJoined$.next(data);
83
- break;
84
- }
85
- case IcpEvents.PRESENTER_UPDATED: {
86
- this.presenterUpdated$.next(data);
87
- break;
88
- }
89
- case IcpEvents.CLIENT_DISCONNECTED: {
90
- this.clientDisconnected$.next();
91
- break;
92
- }
93
- case IcpEvents.PARTICIPANTS_UPDATED: {
94
- this.participantUpdated$.next(data);
95
- break;
96
- }
97
- case IcpEvents.NEW_PARTICIPANT_JOINED: {
98
- this.newParticipantJoined$.next();
99
- break;
100
- }
101
- case IcpEvents.SCREEN_UPDATED: {
102
- this.screenUpdated$.next(data);
103
- break;
104
- }
105
- }
106
- }
107
- getSocketClient(url) {
108
- this.socket = new WebSocket(url, 'json.webpubsub.azure.v1');
109
- return of(this.socket);
110
- }
111
- }
112
- SocketService.decorators = [
113
- { type: Injectable }
114
- ];
115
- /** @nocollapse */
116
- SocketService.ctorParameters = () => [];
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9pY3Avc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE1BQU0sT0FBTyxhQUFhO0lBWXhCO1FBUkEsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQixzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2xDLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNwQywwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVmLENBQUM7SUFFakIsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFpQixFQUFFLEVBQUU7WUFFL0QsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUM7WUFFRixNQUFNLENBQUMs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RCxLQUFLLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO2FBQ1A7WUFDRCxLQUFLLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELEtBQUssU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU07YUFDUDtZQUNELEtBQUssU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsTUFBTTthQUNQO1lBQ0QsS0FBSyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixNQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDOzs7WUEzSEYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJY3BFdmVudHMgfSBmcm9tICcuL2ljcC5ldmVudHMnO1xuaW1wb3J0IHsgSWNwUGFydGljaXBhbnQgfSBmcm9tICcuL2ljcC5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNvY2tldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc29ja2V0OiBXZWJTb2NrZXQ7XG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBjb25uZWN0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHNlc3Npb25Kb2luZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJlc2VudGVyVXBkYXRlZCQgPSBuZXcgU3ViamVjdCgpO1xuICBjbGllbnREaXNjb25uZWN0ZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgcGFydGljaXBhbnRVcGRhdGVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIG5ld1BhcnRpY2lwYW50Sm9pbmVkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIHNjcmVlblVwZGF0ZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjb25uZWN0KHVybDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U29ja2V0Q2xpZW50KHVybCkuc3Vic2NyaWJlKChzb2NrZXQ6IFdlYlNvY2tldCkgPT4ge1xuXG4gICAgICBzb2NrZXQub25vcGVuID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLmNvbm5lY3RlZCQubmV4dCh0cnVlKTtcbiAgICAgIH07XG5cbiAgICAgIHNvY2tldC5vbm1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnb25tZXNzYWdlJyk7XG4gICAgICAgIGNvbnN0IGV2ZW50RGF0YSA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSk7XG4gICAgICAgIGlmIChldmVudERhdGEuZGF0YSAmJiBldmVudERhdGEuZGF0YS5ldmVudE5hbWUpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VFdmVudEhhbmRsbGVyKGV2ZW50RGF0YS5kYXRhLmV2ZW50TmFtZSwgZXZlbnREYXRhLmRhdGEuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHNvY2tldC5vbmVycm9yID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnb25lcnJvcicpO1xuICAgICAgfTtcblxuICAgICAgc29ja2V0Lm9uY2xvc2UgPSAoZXZlbnQ6IENsb3NlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ29uY2xvc2UnKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBjb25uZWN0ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGpvaW4oc2Vzc2lvbikge1xuICAgIHRoaXMuZW1pdChJY3BFdmVudHMuU0VTU0lPTl9KT0lOLCBzZXNzaW9uKTtcbiAgfVxuXG4gIGxlYXZlKHNlc3Npb24pIHtcbiAgICB0aGlzLmVtaXQoSWNwRXZlbnRzLlNFU1NJT05fTEVBVkUsIHNlc3Npb24pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBlbWl0KGV2ZW50OiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdHlwZTogJ2V2ZW50JyxcbiAgICAgIGV2ZW50LFxuICAgICAgZGF0YVxuICAgIH0pKTtcbiAgfVxuXG4gIGxpc3RlbihldmVudDogSWNwRXZlbnRzKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlIEljcEV2ZW50cy5TRVNTSU9OX0pPSU5FRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uSm9pbmVkJC5hc09ic2VydmFibGUoKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgSWNwRXZlbnRzLlBSRVNFTlRFUl9VUERBVEVEOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXNlbnRlclVwZGF0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuQ0xJRU5UX0RJU0NPTk5FQ1RFRDoge1xuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnREaXNjb25uZWN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuUEFSVElDSVBBTlRTX1VQREFURUQ6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFydGljaXBhbnRVcGRhdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgSWNwRXZlbnRzLk5FV19QQVJUSUNJUEFOVF9KT0lORUQ6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmV3UGFydGljaXBhbnRKb2luZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuU0NSRUVOX1VQREFURUQ6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NyZWVuVXBkYXRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1lc3NhZ2VFdmVudEhhbmRsbGVyKGV2ZW50TmFtZTogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgICBzd2l0Y2ggKGV2ZW50TmFtZSkge1xuICAgICAgY2FzZSBJY3BFdmVudHMuU0VTU0lPTl9KT0lORUQ6IHtcbiAgICAgICAgdGhpcy5zZXNzaW9uSm9pbmVkJC5uZXh0KGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgSWNwRXZlbnRzLlBSRVNFTlRFUl9VUERBVEVEOiB7XG4gICAgICAgIHRoaXMucHJlc2VudGVyVXBkYXRlZCQubmV4dChkYXRhKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEljcEV2ZW50cy5DTElFTlRfRElTQ09OTkVDVEVEOiB7XG4gICAgICAgIHRoaXMuY2xpZW50RGlzY29ubmVjdGVkJC5uZXh0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuUEFSVElDSVBBTlRTX1VQREFURUQ6IHtcbiAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFVwZGF0ZWQkLm5leHQoZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuTkVXX1BBUlRJQ0lQQU5UX0pPSU5FRDoge1xuICAgICAgICB0aGlzLm5ld1BhcnRpY2lwYW50Sm9pbmVkJC5uZXh0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJY3BFdmVudHMuU0NSRUVOX1VQREFURUQ6IHtcbiAgICAgICAgdGhpcy5zY3JlZW5VcGRhdGVkJC5uZXh0KGRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRTb2NrZXRDbGllbnQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdlYlNvY2tldD4ge1xuICAgIHRoaXMuc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwsICdqc29uLndlYnB1YnN1Yi5henVyZS52MScpO1xuICAgIHJldHVybiBvZih0aGlzLnNvY2tldCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,210 +0,0 @@
1
- import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { defaultImageOptions, defaultMultimediaOptions, defaultPdfOptions, defaultUnsupportedOptions, ToolbarButtonVisibilityService } from './toolbar/toolbar-button-visibility.service';
3
- import { ToolbarEventService } from './toolbar/toolbar-event.service';
4
- import { AnnotationApiService } from './annotations/services/annotation-api/annotation-api.service';
5
- import { CommentService } from './annotations/comment-set/comment/comment.service';
6
- import 'hammerjs';
7
- import { select, Store } from '@ngrx/store';
8
- import * as fromAnnoSelectors from './store/selectors/annotation.selectors';
9
- import * as fromDocumentsSelector from './store/selectors/document.selectors';
10
- import * as fromAnnoActions from './store/actions/annotation.actions';
11
- import * as fromRedactActions from './store/actions/redaction.actions';
12
- import * as fromDocumentActions from './store/actions/document.actions';
13
- var CoreContentTypes;
14
- (function (CoreContentTypes) {
15
- CoreContentTypes["PDF"] = "pdf";
16
- CoreContentTypes["IMAGE"] = "image";
17
- })(CoreContentTypes || (CoreContentTypes = {}));
18
- var MultimediaContentTypes;
19
- (function (MultimediaContentTypes) {
20
- MultimediaContentTypes["MP4"] = "mp4";
21
- MultimediaContentTypes["MP3"] = "mp3";
22
- })(MultimediaContentTypes || (MultimediaContentTypes = {}));
23
- var ConvertibleContentTypes;
24
- (function (ConvertibleContentTypes) {
25
- ConvertibleContentTypes["EXCEL"] = "excel";
26
- ConvertibleContentTypes["WORD"] = "word";
27
- ConvertibleContentTypes["POWERPOINT"] = "powerpoint";
28
- ConvertibleContentTypes["TXT"] = "txt";
29
- ConvertibleContentTypes["RTF"] = "rtf";
30
- })(ConvertibleContentTypes || (ConvertibleContentTypes = {}));
31
- export class MediaViewerComponent {
32
- constructor(store, toolbarButtons, toolbarEvents, api, commentService, elRef, cdr) {
33
- this.store = store;
34
- this.toolbarButtons = toolbarButtons;
35
- this.toolbarEvents = toolbarEvents;
36
- this.api = api;
37
- this.commentService = commentService;
38
- this.elRef = elRef;
39
- this.cdr = cdr;
40
- this.showToolbar = true;
41
- this.toolbarButtonOverrides = {};
42
- this.width = '100%';
43
- this.mediaLoadStatus = new EventEmitter();
44
- this.viewerException = new EventEmitter();
45
- this.toolbarEventsOutput = new EventEmitter();
46
- this.unsavedChanges = new EventEmitter();
47
- this.enableAnnotations = false;
48
- this.enableRedactions = false;
49
- this.enableICP = false;
50
- this.multimediaPlayerEnabled = false;
51
- this.enableRedactSearch = false;
52
- this.multimediaContent = false;
53
- this.convertibleContent = false;
54
- this.unsupportedContent = false;
55
- this.typeException = false;
56
- if (this.annotationApiUrl) {
57
- api.annotationApiUrl = this.annotationApiUrl;
58
- }
59
- }
60
- ngAfterContentInit() {
61
- this.annotationSet$ = this.store.pipe(select(fromAnnoSelectors.getAnnotationSet));
62
- this.hasDifferentPageSize$ = this.store.pipe(select(fromDocumentsSelector.getPageDifference));
63
- this.setToolbarButtons();
64
- this.toolbarEventsOutput.emit(this.toolbarEvents);
65
- this.$subscriptions = this.commentService.getUnsavedChanges()
66
- .subscribe(changes => this.onCommentChange(changes));
67
- this.$subscriptions.add(this.toolbarEvents.getShowCommentSummary()
68
- .subscribe(changes => this.showCommentSummary = changes));
69
- }
70
- ngAfterViewChecked() {
71
- if (this.height && this.viewerHeight !== this.height) {
72
- this.viewerHeight = this.height;
73
- this.cdr.detectChanges();
74
- return;
75
- }
76
- if (!this.height) {
77
- const compOffsetTop = this.elRef.nativeElement.getBoundingClientRect().top;
78
- const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;
79
- const offset = compOffsetTop + viewerOffsetTop;
80
- if (this.prevOffset !== offset) {
81
- this.viewerHeight = `calc(100vh - ${offset}px)`;
82
- this.prevOffset = offset;
83
- this.cdr.detectChanges();
84
- }
85
- }
86
- }
87
- ngOnChanges(changes) {
88
- if (changes.annotationApiUrl) {
89
- this.api.annotationApiUrl = this.annotationApiUrl;
90
- }
91
- if (changes.url) {
92
- this.toolbarEvents.reset();
93
- this.commentService.resetCommentSet();
94
- this.documentId = this.extractDMStoreDocId(this.url);
95
- this.store.dispatch(new fromDocumentActions.SetDocumentId(this.documentId));
96
- if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {
97
- this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(this.documentId));
98
- }
99
- if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent) && this.documentId) {
100
- this.store.dispatch(new fromRedactActions.LoadRedactions(this.documentId));
101
- }
102
- if (this.contentType === 'image') {
103
- this.documentTitle = null;
104
- }
105
- }
106
- if (changes.contentType) {
107
- this.convertibleContent = this.needsConverting();
108
- this.multimediaContent = this.isMultimedia();
109
- this.unsupportedContent = !this.isSupported();
110
- }
111
- this.setToolbarButtons();
112
- this.detectOs();
113
- this.typeException = false;
114
- }
115
- ngOnDestroy() {
116
- this.$subscriptions.unsubscribe();
117
- }
118
- needsConverting() {
119
- return this.contentType !== null && Object.keys(ConvertibleContentTypes).includes(this.contentType.toUpperCase());
120
- }
121
- isMultimedia() {
122
- return this.contentType !== null && Object.keys(MultimediaContentTypes).includes(this.contentType.toUpperCase());
123
- }
124
- isSupported() {
125
- const supportedTypes = Object.assign({}, MultimediaContentTypes, ConvertibleContentTypes, CoreContentTypes);
126
- return this.contentType !== null && Object.keys(supportedTypes).includes(this.contentType.toUpperCase());
127
- }
128
- onMediaLoad(status) {
129
- this.mediaLoadStatus.emit(status);
130
- }
131
- setToolbarButtons() {
132
- if (this.contentType === CoreContentTypes.PDF || this.needsConverting()) {
133
- this.toolbarButtons.setup(Object.assign(Object.assign(Object.assign({}, defaultPdfOptions), { showHighlightButton: this.enableAnnotations, showDrawButton: this.enableAnnotations }), this.toolbarButtonOverrides));
134
- }
135
- else if (this.contentType === CoreContentTypes.IMAGE) {
136
- this.toolbarButtons.setup(Object.assign(Object.assign(Object.assign({}, defaultImageOptions), { showDrawButton: this.enableAnnotations }), this.toolbarButtonOverrides));
137
- }
138
- else if (this.isMultimedia()) {
139
- this.toolbarButtons.setup(Object.assign(Object.assign({}, defaultMultimediaOptions), this.toolbarButtonOverrides));
140
- }
141
- else {
142
- this.toolbarButtons.setup(Object.assign(Object.assign({}, defaultUnsupportedOptions), this.toolbarButtonOverrides));
143
- }
144
- }
145
- onLoadException(exception) {
146
- this.viewerException.emit(exception);
147
- if (!this.isSupported()) {
148
- this.typeException = false;
149
- }
150
- else {
151
- this.typeException = true;
152
- this.contentType = null;
153
- this.setToolbarButtons();
154
- }
155
- }
156
- onCommentChange(changes) {
157
- this.unsavedChanges.emit(changes);
158
- }
159
- onDocumentTitleChange(title) {
160
- this.documentTitle = title;
161
- }
162
- // If secure mode is enabled (which adds "documentsv2" to the documentId), get rid of it
163
- extractDMStoreDocId(url) {
164
- url = url.includes('/documents/') ? url.split('/documents/')[1] : url;
165
- url = url.includes('/documentsv2/') ? url.split('/documentsv2/')[1] : url;
166
- return url.replace('/binary', '');
167
- }
168
- detectOs() {
169
- this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;
170
- }
171
- }
172
- MediaViewerComponent.decorators = [
173
- { type: Component, args: [{
174
- selector: 'mv-media-viewer',
175
- template: "<div\n id=\"outerContainer\"\n [ngClass]=\"{\n 'has-redact-bar': toolbarEvents.redactionMode | async,\n 'icp-mode': toolbarEvents.icp.enabled | async,\n 'is-redaction-preview': toolbarEvents.redactionPreview | async,\n sidebarOpen: toolbarEvents.sidebarOpen | async,\n 'has-scroll-bar': hasScrollBar,\n 'has-different-page-size': hasDifferentPageSize$ | async\n }\"\n [ngStyle]=\"{ width: width }\"\n>\n <mv-comments-summary\n *ngIf=\"showCommentSummary\"\n [title]=\"documentTitle || 'Comment Summary'\"\n [contentType]=\"contentType\"\n >\n </mv-comments-summary>\n\n <mv-confirm-action\n *ngIf=\"toolbarEvents.icp.leavingSession | async\"\n ></mv-confirm-action>\n\n <div id=\"mainContainer\">\n <mv-main-toolbar\n *ngIf=\"showToolbar\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableICP]=\"enableICP\"\n [enableRedactions]=\"enableRedactions\"\n [contentType]=\"contentType\"\n >\n </mv-main-toolbar>\n <mv-redaction-toolbar\n [showRedactSearch]=\"enableRedactSearch\"\n *ngIf=\"toolbarEvents.redactionMode | async\"\n ></mv-redaction-toolbar>\n <mv-icp-toolbar *ngIf=\"toolbarEvents.icp.enabled | async\"></mv-icp-toolbar>\n\n <div #viewerRef>\n <mv-conversion-viewer\n *ngIf=\"convertibleContent\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (viewerException)=\"onLoadException($event)\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [originalUrl]=\"url\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n mvRotationPersist\n >\n </mv-conversion-viewer>\n <mv-pdf-viewer\n *ngIf=\"contentType === 'pdf'\"\n #pdfViewer\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (pdfViewerException)=\"onLoadException($event)\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n [url]=\"url\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [enableICP]=\"enableICP\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n [caseId]=\"caseId\"\n mvRotationPersist\n >\n </mv-pdf-viewer>\n <mv-image-viewer\n *ngIf=\"contentType === 'image'\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (imageViewerException)=\"onLoadException($event)\"\n [url]=\"url\"\n [enableAnnotations]=\"enableAnnotations\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n mvRotationPersist\n >\n </mv-image-viewer>\n <mv-multimedia-player\n *ngIf=\"multimediaContent\"\n [multimediaOn]=\"multimediaPlayerEnabled\"\n [url]=\"url\"\n [downloadFileName]=\"downloadFileName\"\n (loadStatus)=\"onMediaLoad($event)\"\n >\n </mv-multimedia-player>\n <mv-unsupported-viewer\n *ngIf=\"unsupportedContent\"\n [url]=\"url\"\n [typeException]=\"typeException\"\n [downloadFileName]=\"downloadFileName\"\n (loadStatus)=\"onMediaLoad($event)\"\n (unsupportedViewerException)=\"onLoadException($event)\"\n >\n </mv-unsupported-viewer>\n </div>\n </div>\n</div>\n",
176
- encapsulation: ViewEncapsulation.None
177
- },] }
178
- ];
179
- /** @nocollapse */
180
- MediaViewerComponent.ctorParameters = () => [
181
- { type: Store },
182
- { type: ToolbarButtonVisibilityService },
183
- { type: ToolbarEventService },
184
- { type: AnnotationApiService },
185
- { type: CommentService },
186
- { type: ElementRef },
187
- { type: ChangeDetectorRef }
188
- ];
189
- MediaViewerComponent.propDecorators = {
190
- viewerRef: [{ type: ViewChild, args: ['viewerRef', { static: false },] }],
191
- url: [{ type: Input }],
192
- downloadFileName: [{ type: Input }],
193
- contentType: [{ type: Input }],
194
- showToolbar: [{ type: Input }],
195
- toolbarButtonOverrides: [{ type: Input }],
196
- height: [{ type: Input }],
197
- width: [{ type: Input }],
198
- mediaLoadStatus: [{ type: Output }],
199
- viewerException: [{ type: Output }],
200
- toolbarEventsOutput: [{ type: Output }],
201
- unsavedChanges: [{ type: Output }],
202
- enableAnnotations: [{ type: Input }],
203
- annotationApiUrl: [{ type: Input }],
204
- enableRedactions: [{ type: Input }],
205
- enableICP: [{ type: Input }],
206
- multimediaPlayerEnabled: [{ type: Input }],
207
- enableRedactSearch: [{ type: Input }],
208
- caseId: [{ type: Input }]
209
- };
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL21lZGlhLXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLG1CQUFtQixFQUFFLHdCQUF3QixFQUM3QyxpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUMvQixNQUFNLDZDQUE2QyxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXBHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxLQUFLLHFCQUFxQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxlQUFlLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RSxJQUFLLGdCQUdKO0FBSEQsV0FBSyxnQkFBZ0I7SUFDbkIsK0JBQVcsQ0FBQTtJQUNYLG1DQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhJLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHcEI7QUFFRCxJ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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdEUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMxRSxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7O1lBM01GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQiwyakhBQTRDO2dCQUM1QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7OztZQTlCZ0IsS0FBSztZQVJwQiw4QkFBOEI7WUFHdkIsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUVwQixjQUFjO1lBckJyQixVQUFVO1lBRlYsaUJBQWlCOzs7d0JBMERoQixTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztrQkFFdEMsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBRUwsS0FBSztxQ0FDTCxLQUFLO3FCQUVMLEtBQUs7b0JBSUwsS0FBSzs4QkFFTCxNQUFNOzhCQUNOLE1BQU07a0NBQ04sTUFBTTs2QkFDTixNQUFNO2dDQUVOLEtBQUs7K0JBQ0wsS0FBSzsrQkFFTCxLQUFLO3dCQUNMLEtBQUs7c0NBQ0wsS0FBSztpQ0FDTCxLQUFLO3FCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWZhdWx0SW1hZ2VPcHRpb25zLCBkZWZhdWx0TXVsdGltZWRpYU9wdGlvbnMsXG4gIGRlZmF1bHRQZGZPcHRpb25zLFxuICBkZWZhdWx0VW5zdXBwb3J0ZWRPcHRpb25zLFxuICBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2Vcbn0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXItYnV0dG9uLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uU2V0IH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uQXBpU2VydmljZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvc2VydmljZXMvYW5ub3RhdGlvbi1hcGkvYW5ub3RhdGlvbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zZVR5cGUsIFZpZXdlckV4Y2VwdGlvbiB9IGZyb20gJy4vdmlld2Vycy92aWV3ZXItZXhjZXB0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuc2VydmljZSc7XG5pbXBvcnQgJ2hhbW1lcmpzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub1NlbGVjdG9ycyBmcm9tICcuL3N0b3JlL3NlbGVjdG9ycy9hbm5vdGF0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnRzU2VsZWN0b3IgZnJvbSAnLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vQWN0aW9ucyBmcm9tICcuL3N0b3JlL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21SZWRhY3RBY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9yZWRhY3Rpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnRBY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcblxuZW51bSBDb3JlQ29udGVudFR5cGVzIHtcbiAgUERGID0gJ3BkZicsXG4gIElNQUdFID0gJ2ltYWdlJ1xufVxuXG5lbnVtIE11bHRpbWVkaWFDb250ZW50VHlwZXMge1xuICBNUDQgPSAnbXA0JyxcbiAgTVAzID0gJ21wMycsXG59XG5cbmVudW0gQ29udmVydGlibGVDb250ZW50VHlwZXMge1xuICBFWENFTCA9ICdleGNlbCcsXG4gIFdPUkQgPSAnd29yZCcsXG4gIFBPV0VSUE9JTlQgPSAncG93ZXJwb2ludCcsXG4gIFRYVCA9ICd0eHQnLFxuICBSVEYgPSAncnRmJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1tZWRpYS12aWV3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYVZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBAVmlld0NoaWxkKCd2aWV3ZXJSZWYnLCB7c3RhdGljOiBmYWxzZX0pIHZpZXdlclJlZjogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSB1cmw7XG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZU5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgY29udGVudFR5cGU6IHN0cmluZztcblxuICBASW5wdXQoKSBzaG93VG9vbGJhciA9IHRydWU7XG4gIEBJbnB1dCgpIHRvb2xiYXJCdXR0b25PdmVycmlkZXM6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWlnaHQ6IHN0cmluZztcbiAgcHVibGljIHZpZXdlckhlaWdodDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHdpZHRoID0gJzEwMCUnO1xuXG4gIEBPdXRwdXQoKSBtZWRpYUxvYWRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPFJlc3BvbnNlVHlwZT4oKTtcbiAgQE91dHB1dCgpIHZpZXdlckV4Y2VwdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld2VyRXhjZXB0aW9uPigpO1xuICBAT3V0cHV0KCkgdG9vbGJhckV2ZW50c091dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8VG9vbGJhckV2ZW50U2VydmljZT4oKTtcbiAgQE91dHB1dCgpIHVuc2F2ZWRDaGFuZ2VzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBJbnB1dCgpIGVuYWJsZUFubm90YXRpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFubm90YXRpb25BcGlVcmw7XG5cbiAgQElucHV0KCkgZW5hYmxlUmVkYWN0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVJQ1AgPSBmYWxzZTtcbiAgQElucHV0KCkgbXVsdGltZWRpYVBsYXllckVuYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlUmVkYWN0U2VhcmNoID0gZmFsc2U7XG5cblxuICBASW5wdXQoKSBjYXNlSWQ6IHN0cmluZztcblxuICBtdWx0aW1lZGlhQ29udGVudCA9IGZhbHNlO1xuICBjb252ZXJ0aWJsZUNvbnRlbnQgPSBmYWxzZTtcbiAgdW5zdXBwb3J0ZWRDb250ZW50ID0gZmFsc2U7XG5cbiAgZG9jdW1lbnRUaXRsZTogc3RyaW5nO1xuICBzaG93Q29tbWVudFN1bW1hcnk6IGJvb2xlYW47XG4gIGFubm90YXRpb25TZXQkOiBPYnNlcnZhYmxlPEFubm90YXRpb25TZXQgfCB7fT47XG4gIGhhc1Njcm9sbEJhcjogYm9vbGVhbjtcbiAgdHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICBoYXNEaWZmZXJlbnRQYWdlU2l6ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGRvY3VtZW50SWQ6IHN0cmluZztcblxuICBwcml2YXRlICRzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcHJldk9mZnNldDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBpOiBBbm5vdGF0aW9uQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRTZXJ2aWNlOiBDb21tZW50U2VydmljZSxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBpZiAodGhpcy5hbm5vdGF0aW9uQXBpVXJsKSB7XG4gICAgICBhcGkuYW5ub3RhdGlvbkFwaVVybCA9IHRoaXMuYW5ub3RhdGlvbkFwaVVybDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5hbm5vdGF0aW9uU2V0JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUFubm9TZWxlY3RvcnMuZ2V0QW5ub3RhdGlvblNldCkpO1xuICAgIHRoaXMuaGFzRGlmZmVyZW50UGFnZVNpemUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jdW1lbnRzU2VsZWN0b3IuZ2V0UGFnZURpZmZlcmVuY2UpKTtcbiAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzT3V0cHV0LmVtaXQodGhpcy50b29sYmFyRXZlbnRzKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zID0gdGhpcy5jb21tZW50U2VydmljZS5nZXRVbnNhdmVkQ2hhbmdlcygpXG4gICAgICAuc3Vic2NyaWJlKGNoYW5nZXMgPT4gdGhpcy5vbkNvbW1lbnRDaGFuZ2UoY2hhbmdlcykpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudG9vbGJhckV2ZW50cy5nZXRTaG93Q29tbWVudFN1bW1hcnkoKVxuICAgICAgLnN1YnNjcmliZShjaGFuZ2VzID0+IHRoaXMuc2hvd0NvbW1lbnRTdW1tYXJ5ID0gY2hhbmdlcykpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlaWdodCAmJiB0aGlzLnZpZXdlckhlaWdodCAhPT0gdGhpcy5oZWlnaHQpIHtcbiAgICAgIHRoaXMudmlld2VySGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhlaWdodCkge1xuICAgICAgY29uc3QgY29tcE9mZnNldFRvcCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgICBjb25zdCB2aWV3ZXJPZmZzZXRUb3AgPSB0aGlzLnZpZXdlclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIGNvbnN0IG9mZnNldCA9IGNvbXBPZmZzZXRUb3AgKyB2aWV3ZXJPZmZzZXRUb3A7XG5cbiAgICAgIGlmICh0aGlzLnByZXZPZmZzZXQgIT09IG9mZnNldCkge1xuICAgICAgICB0aGlzLnZpZXdlckhlaWdodCA9IGBjYWxjKDEwMHZoIC0gJHtvZmZzZXR9cHgpYDtcbiAgICAgICAgdGhpcy5wcmV2T2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmFubm90YXRpb25BcGlVcmwpIHtcbiAgICAgIHRoaXMuYXBpLmFubm90YXRpb25BcGlVcmwgPSB0aGlzLmFubm90YXRpb25BcGlVcmw7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMudXJsKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVzZXQoKTtcbiAgICAgIHRoaXMuY29tbWVudFNlcnZpY2UucmVzZXRDb21tZW50U2V0KCk7XG4gICAgICB0aGlzLmRvY3VtZW50SWQgPSB0aGlzLmV4dHJhY3RETVN0b3JlRG9jSWQodGhpcy51cmwpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbURvY3VtZW50QWN0aW9ucy5TZXREb2N1bWVudElkKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgaWYgKHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMgJiYgISh0aGlzLm11bHRpbWVkaWFDb250ZW50IHx8IHRoaXMudW5zdXBwb3J0ZWRDb250ZW50KSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQW5ub0FjdGlvbnMuTG9hZEFubm90YXRpb25TZXQodGhpcy5kb2N1bWVudElkKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbmFibGVSZWRhY3Rpb25zICYmICEodGhpcy5tdWx0aW1lZGlhQ29udGVudCB8fCB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCkgJiYgdGhpcy5kb2N1bWVudElkKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3RBY3Rpb25zLkxvYWRSZWRhY3Rpb25zKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udGVudFR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFRpdGxlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5jb250ZW50VHlwZSkge1xuICAgICAgdGhpcy5jb252ZXJ0aWJsZUNvbnRlbnQgPSB0aGlzLm5lZWRzQ29udmVydGluZygpO1xuICAgICAgdGhpcy5tdWx0aW1lZGlhQ29udGVudCA9IHRoaXMuaXNNdWx0aW1lZGlhKCk7XG4gICAgICB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCA9ICF0aGlzLmlzU3VwcG9ydGVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIHRoaXMuZGV0ZWN0T3MoKTtcbiAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5lZWRzQ29udmVydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhDb252ZXJ0aWJsZUNvbnRlbnRUeXBlcykuaW5jbHVkZXModGhpcy5jb250ZW50VHlwZS50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIGlzTXVsdGltZWRpYSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhNdWx0aW1lZGlhQ29udGVudFR5cGVzKS5pbmNsdWRlcyh0aGlzLmNvbnRlbnRUeXBlLnRvVXBwZXJDYXNlKCkpO1xuICB9XG5cbiAgaXNTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3VwcG9ydGVkVHlwZXMgPSBPYmplY3QuYXNzaWduKHt9LCBNdWx0aW1lZGlhQ29udGVudFR5cGVzLCBDb252ZXJ0aWJsZUNvbnRlbnRUeXBlcywgQ29yZUNvbnRlbnRUeXBlcyk7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXMoc3VwcG9ydGVkVHlwZXMpLmluY2x1ZGVzKHRoaXMuY29udGVudFR5cGUudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICBvbk1lZGlhTG9hZChzdGF0dXM6IFJlc3BvbnNlVHlwZSkge1xuICAgIHRoaXMubWVkaWFMb2FkU3RhdHVzLmVtaXQoc3RhdHVzKTtcbiAgfVxuXG4gIHNldFRvb2xiYXJCdXR0b25zKCkge1xuICAgIGlmICh0aGlzLmNvbnRlbnRUeXBlID09PSBDb3JlQ29udGVudFR5cGVzLlBERiB8fCB0aGlzLm5lZWRzQ29udmVydGluZygpKSB7XG4gICAgICB0aGlzLnRvb2xiYXJCdXR0b25zLnNldHVwKHtcbiAgICAgICAgLi4uZGVmYXVsdFBkZk9wdGlvbnMsIHNob3dIaWdobGlnaHRCdXR0b246IHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMsIHNob3dEcmF3QnV0dG9uOiB0aGlzLmVuYWJsZUFubm90YXRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gQ29yZUNvbnRlbnRUeXBlcy5JTUFHRSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRJbWFnZU9wdGlvbnMsIHNob3dEcmF3QnV0dG9uOiB0aGlzLmVuYWJsZUFubm90YXRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc011bHRpbWVkaWEoKSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRNdWx0aW1lZGlhT3B0aW9ucyxcbiAgICAgICAgLi4udGhpcy50b29sYmFyQnV0dG9uT3ZlcnJpZGVzXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRVbnN1cHBvcnRlZE9wdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Mb2FkRXhjZXB0aW9uKGV4Y2VwdGlvbjogVmlld2VyRXhjZXB0aW9uKSB7XG4gICAgdGhpcy52aWV3ZXJFeGNlcHRpb24uZW1pdChleGNlcHRpb24pO1xuICAgIGlmICghdGhpcy5pc1N1cHBvcnRlZCgpKSB7XG4gICAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlRXhjZXB0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29udGVudFR5cGUgPSBudWxsO1xuICAgICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29tbWVudENoYW5nZShjaGFuZ2VzOiBib29sZWFuKSB7XG4gICAgdGhpcy51bnNhdmVkQ2hhbmdlcy5lbWl0KGNoYW5nZXMpO1xuICB9XG5cbiAgb25Eb2N1bWVudFRpdGxlQ2hhbmdlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIC8vIElmIHNlY3VyZSBtb2RlIGlzIGVuYWJsZWQgKHdoaWNoIGFkZHMgXCJkb2N1bWVudHN2MlwiIHRvIHRoZSBkb2N1bWVudElkKSwgZ2V0IHJpZCBvZiBpdFxuICBwcml2YXRlIGV4dHJhY3RETVN0b3JlRG9jSWQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHVybCA9IHVybC5pbmNsdWRlcygnL2RvY3VtZW50cy8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50cy8nKVsxXSA6IHVybDtcbiAgICB1cmwgPSB1cmwuaW5jbHVkZXMoJy9kb2N1bWVudHN2Mi8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50c3YyLycpWzFdIDogdXJsO1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgnL2JpbmFyeScsICcnKTtcbiAgfVxuXG4gIGRldGVjdE9zKCkge1xuICAgIHRoaXMuaGFzU2Nyb2xsQmFyID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignV2luJykgIT09IC0xO1xuICB9XG59XG4iXX0=
@@ -1,102 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { HttpClientModule } from '@angular/common/http';
5
- import { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';
6
- import { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';
7
- import { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';
8
- import { MediaViewerComponent } from './media-viewer.component';
9
- import { ToolbarModule } from './toolbar/toolbar.module';
10
- import { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';
11
- import { AnnotationsModule } from './annotations/annotations.module';
12
- import { CommentService } from './annotations/comment-set/comment/comment.service';
13
- import { GrabNDragDirective } from './viewers/grab-n-drag.directive';
14
- import { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';
15
- import { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';
16
- import { TagInputModule } from 'ngx-chips';
17
- import { RouterModule } from '@angular/router';
18
- import { EffectsModule } from '@ngrx/effects';
19
- import { StoreModule } from '@ngrx/store';
20
- import { RedactionComponent } from './redaction/components/redaction.component';
21
- import { IcpSessionApiService } from './icp/icp-session-api.service';
22
- import { IcpUpdateService } from './icp/icp-update.service';
23
- import { IcpService } from './icp/icp.service';
24
- import { SocketService } from './icp/socket.service';
25
- import { reducers } from './store/reducers/reducers';
26
- import { effects } from './store/effects/index';
27
- import { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';
28
- import { RedactionApiService } from './redaction/services/redaction-api.service';
29
- import { MutableDivModule } from 'mutable-div';
30
- import { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';
31
- import { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';
32
- import { IcpPresenterService } from './icp/icp-presenter.service';
33
- import { IcpFollowerService } from './icp/icp-follower.service';
34
- import { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';
35
- import { TreeModule } from '@circlon/angular-tree-component';
36
- import { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';
37
- import { RotationApiService } from './viewers/rotation-persist/rotation-api.service';
38
- import { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';
39
- import { ParticipantsListComponent } from './icp/participants-list/participants-list.component';
40
- import { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';
41
- import { MultimediaPlayerComponent } from './viewers/multimedia-player/multimedia-player.component';
42
- export class MediaViewerModule {
43
- }
44
- MediaViewerModule.decorators = [
45
- { type: NgModule, args: [{
46
- imports: [
47
- CommonModule,
48
- HttpClientModule,
49
- ToolbarModule,
50
- AnnotationsModule,
51
- TagInputModule,
52
- FormsModule,
53
- ReactiveFormsModule,
54
- RouterModule,
55
- StoreModule.forFeature('media-viewer', reducers),
56
- EffectsModule.forFeature(effects),
57
- TreeModule,
58
- MutableDivModule
59
- ],
60
- declarations: [
61
- PdfViewerComponent,
62
- SideBarComponent,
63
- BookmarksComponent,
64
- OutlineItemComponent,
65
- ImageViewerComponent,
66
- UnsupportedViewerComponent,
67
- MultimediaPlayerComponent,
68
- MediaViewerComponent,
69
- ConvertibleContentViewerComponent,
70
- GrabNDragDirective,
71
- RotationPersistDirective,
72
- HighlightCreateDirective,
73
- ConfirmActionDialogComponent,
74
- RedactionComponent,
75
- BookmarkIconsComponent,
76
- ParticipantsListComponent
77
- ],
78
- entryComponents: [
79
- PdfViewerComponent,
80
- ImageViewerComponent,
81
- UnsupportedViewerComponent
82
- ],
83
- providers: [
84
- PdfJsWrapperFactory,
85
- CommentService,
86
- RedactionApiService,
87
- IcpSessionApiService,
88
- IcpUpdateService,
89
- SocketService,
90
- IcpService,
91
- IcpPresenterService,
92
- IcpFollowerService,
93
- RedactionApiService,
94
- DocumentConversionApiService,
95
- RotationApiService,
96
- ],
97
- exports: [
98
- MediaViewerComponent
99
- ]
100
- },] }
101
- ];
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL21lZGlhLXZpZXdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxF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LG1CQUFtQjtvQkFDbkIsNEJBQTRCO29CQUM1QixrQkFBa0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxvQkFBb0I7aUJBQ3JCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFBkZlZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL2ltYWdlLXZpZXdlci9pbWFnZS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVuc3VwcG9ydGVkVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL3Vuc3VwcG9ydGVkLXZpZXdlci91bnN1cHBvcnRlZC12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lZGlhVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tZWRpYS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJNb2R1bGUgfSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci5tb2R1bGUnO1xuaW1wb3J0IHsgUGRmSnNXcmFwcGVyRmFjdG9yeSB9IGZyb20gJy4vdmlld2Vycy9wZGYtdmlld2VyL3BkZi1qcy9wZGYtanMtd3JhcHBlci5wcm92aWRlcic7XG5pbXBvcnQgeyBBbm5vdGF0aW9uc01vZHVsZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvYW5ub3RhdGlvbnMubW9kdWxlJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHcmFiTkRyYWdEaXJlY3RpdmUgfSBmcm9tICcuL3ZpZXdlcnMvZ3JhYi1uLWRyYWcuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpZGVCYXJDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3V0bGluZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9vdXRsaW5lLWl0ZW0vb3V0bGluZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdJbnB1dE1vZHVsZSB9IGZyb20gJ25neC1jaGlwcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmVNb2R1bGV9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFJlZGFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcmVkYWN0aW9uL2NvbXBvbmVudHMvcmVkYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY3BTZXNzaW9uQXBpU2VydmljZSB9IGZyb20gJy4vaWNwL2ljcC1zZXNzaW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFVwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2ljcC9pY3AtdXBkYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwU2VydmljZSB9IGZyb20gJy4vaWNwL2ljcC5zZXJ2aWNlJztcbmltcG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tICcuL2ljcC9zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyByZWR1Y2Vyc30gZnJvbSAnLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgeyBlZmZlY3RzIH0gZnJvbSAnLi9zdG9yZS9lZmZlY3RzL2luZGV4JztcbmltcG9ydCB7IEJvb2ttYXJrc0NvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL2Jvb2ttYXJrcy9ib29rbWFya3MuY29tcG9uZW50JztcbmltcG9ydCB7IFJlZGFjdGlvbkFwaVNlcnZpY2UgfSBmcm9tICcuL3JlZGFjdGlvbi9zZXJ2aWNlcy9yZWRhY3Rpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXV0YWJsZURpdk1vZHVsZSB9IGZyb20gJ211dGFibGUtZGl2JztcbmltcG9ydCB7IENvbnZlcnRpYmxlQ29udGVudFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9jb252ZXJ0aWJsZS1jb250ZW50LXZpZXdlci9jb252ZXJ0aWJsZS1jb250ZW50LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb252ZXJzaW9uQXBpU2VydmljZSB9IGZyb20gJy4vdmlld2Vycy9jb252ZXJ0aWJsZS1jb250ZW50LXZpZXdlci9kb2N1bWVudC1jb252ZXJzaW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFByZXNlbnRlclNlcnZpY2UgfSBmcm9tICcuL2ljcC9pY3AtcHJlc2VudGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwRm9sbG93ZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY3AvaWNwLWZvbGxvd2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybUFjdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaWNwL2NvbmZpcm0tZXhpdC9jb25maXJtLWFjdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVNb2R1bGUgfSBmcm9tICdAY2lyY2xvbi9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IEJvb2ttYXJrSWNvbnNDb21wb25lbnQgfSBmcm9tICcuL2Jvb2ttYXJrL2NvbXBvbmVudHMvYm9va21hcmstaWNvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFJvdGF0aW9uQXBpU2VydmljZSB9IGZyb20gJy4vdmlld2Vycy9yb3RhdGlvbi1wZXJzaXN0L3JvdGF0aW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdGF0aW9uUGVyc2lzdERpcmVjdGl2ZSB9IGZyb20gJy4vdmlld2Vycy9yb3RhdGlvbi1wZXJzaXN0L3JvdGF0aW9uLXBlcnNpc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBhcnRpY2lwYW50c0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2ljcC9wYXJ0aWNpcGFudHMtbGlzdC9wYXJ0aWNpcGFudHMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q3JlYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7TXVsdGltZWRpYVBsYXllckNvbXBvbmVudH0gZnJvbSAnLi92aWV3ZXJzL211bHRpbWVkaWEtcGxheWVyL211bHRpbWVkaWEtcGxheWVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBUb29sYmFyTW9kdWxlLFxuICAgIEFubm90YXRpb25zTW9kdWxlLFxuICAgIFRhZ0lucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoJ21lZGlhLXZpZXdlcicsIHJlZHVjZXJzKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoZWZmZWN0cyksXG4gICAgVHJlZU1vZHVsZSxcbiAgICBNdXRhYmxlRGl2TW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFBkZlZpZXdlckNvbXBvbmVudCxcbiAgICBTaWRlQmFyQ29tcG9uZW50LFxuICAgIEJvb2ttYXJrc0NvbXBvbmVudCxcbiAgICBPdXRsaW5lSXRlbUNvbXBvbmVudCxcbiAgICBJbWFnZVZpZXdlckNvbXBvbmVudCxcbiAgICBVbnN1cHBvcnRlZFZpZXdlckNvbXBvbmVudCxcbiAgICBNdWx0aW1lZGlhUGxheWVyQ29tcG9uZW50LFxuICAgIE1lZGlhVmlld2VyQ29tcG9uZW50LFxuICAgIENvbnZlcnRpYmxlQ29udGVudFZpZXdlckNvbXBvbmVudCxcbiAgICBHcmFiTkRyYWdEaXJlY3RpdmUsXG4gICAgUm90YXRpb25QZXJzaXN0RGlyZWN0aXZlLFxuICAgIEhpZ2hsaWdodENyZWF0ZURpcmVjdGl2ZSxcbiAgICBDb25maXJtQWN0aW9uRGlhbG9nQ29tcG9uZW50LFxuICAgIFJlZGFjdGlvbkNvbXBvbmVudCwgLy8gdG9kbyBtYWRlIHB1dCB0aGlzIGludG8gbW9kdWxlXG4gICAgQm9va21hcmtJY29uc0NvbXBvbmVudCxcbiAgICBQYXJ0aWNpcGFudHNMaXN0Q29tcG9uZW50XG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIFBkZlZpZXdlckNvbXBvbmVudCxcbiAgICBJbWFnZVZpZXdlckNvbXBvbmVudCxcbiAgICBVbnN1cHBvcnRlZFZpZXdlckNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBQZGZKc1dyYXBwZXJGYWN0b3J5LFxuICAgIENvbW1lbnRTZXJ2aWNlLFxuICAgIFJlZGFjdGlvbkFwaVNlcnZpY2UsXG4gICAgSWNwU2Vzc2lvbkFwaVNlcnZpY2UsXG4gICAgSWNwVXBkYXRlU2VydmljZSxcbiAgICBTb2NrZXRTZXJ2aWNlLFxuICAgIEljcFNlcnZpY2UsXG4gICAgSWNwUHJlc2VudGVyU2VydmljZSxcbiAgICBJY3BGb2xsb3dlclNlcnZpY2UsXG4gICAgUmVkYWN0aW9uQXBpU2VydmljZSxcbiAgICBEb2N1bWVudENvbnZlcnNpb25BcGlTZXJ2aWNlLFxuICAgIFJvdGF0aW9uQXBpU2VydmljZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1lZGlhVmlld2VyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFWaWV3ZXJNb2R1bGUgeyB9XG4iXX0=
@@ -1,97 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { select, Store } from '@ngrx/store';
3
- import { v4 as uuid } from 'uuid';
4
- import { filter, take } from 'rxjs/operators';
5
- import * as fromSelectors from '../../store/selectors/redaction.selectors';
6
- import * as fromRedaSelectors from '../../store/selectors/redaction.selectors';
7
- import * as fromDocument from '../../store/selectors/document.selectors';
8
- import * as fromActions from '../../store/actions/redaction.actions';
9
- import * as fromRedactionActions from '../../store/actions/redaction.actions';
10
- import * as fromRedaActions from '../../store/actions/redaction.actions';
11
- import { ToolbarEventService } from '../../toolbar/toolbar.module';
12
- import { ViewerEventService } from '../../viewers/viewer-event.service';
13
- export class RedactionComponent {
14
- constructor(store, viewerEvents, toolbarEvents) {
15
- this.store = store;
16
- this.viewerEvents = viewerEvents;
17
- this.toolbarEvents = toolbarEvents;
18
- }
19
- ngOnInit() {
20
- this.redactionsPerPage$ = this.store.pipe(select(fromSelectors.getRedactionsPerPage));
21
- this.selectedRedaction$ = this.store.pipe(select(fromSelectors.getSelected));
22
- this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);
23
- this.$subscription.add(this.store.pipe(select(fromSelectors.getRedactedDocumentInfo), filter(value => !!value))
24
- .subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));
25
- this.$subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));
26
- this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));
27
- this.toolbarEvents.applyRedactToDocument.subscribe(() => {
28
- this.store.pipe(select(fromRedaSelectors.getRedactionArray), take(1)).subscribe(redactions => {
29
- this.store.dispatch(new fromRedaActions.Redact(redactions));
30
- });
31
- });
32
- this.toolbarEvents.clearAllRedactMarkers.subscribe(() => {
33
- this.store.dispatch(new fromRedaActions.UnmarkAll(this.documentId));
34
- });
35
- }
36
- ngOnDestroy() {
37
- this.$subscription.unsubscribe();
38
- }
39
- markTextRedaction(highlight) {
40
- const redactionHighlight = highlight.rectangles;
41
- if (redactionHighlight && redactionHighlight.length) {
42
- this.saveRedaction(highlight.page, [...redactionHighlight]);
43
- }
44
- this.toolbarEvents.highlightModeSubject.next(false);
45
- }
46
- markBoxRedaction({ rectangles, page }) {
47
- this.saveRedaction(page, rectangles);
48
- this.toolbarEvents.drawModeSubject.next(false);
49
- }
50
- saveRedaction(page, rectangles) {
51
- const redaction = { page, rectangles, redactionId: uuid(), documentId: this.documentId };
52
- this.store.dispatch(new fromRedactionActions.SaveRedaction(redaction));
53
- }
54
- onMarkerDelete(event) {
55
- this.store.dispatch(new fromActions.DeleteRedaction(event));
56
- }
57
- selectRedaction(event) {
58
- this.store.dispatch(new fromActions.SelectRedaction(event));
59
- }
60
- onMarkerUpdate(redaction) {
61
- this.store.dispatch(new fromActions.SaveRedaction(redaction));
62
- }
63
- downloadDocument({ blob, filename }) {
64
- if (navigator && navigator.msSaveBlob) {
65
- navigator.msSaveBlob(blob, filename);
66
- }
67
- else {
68
- const url = URL.createObjectURL(blob);
69
- const a = document.createElement('a');
70
- document.body.appendChild(a);
71
- a.setAttribute('style', 'display: none');
72
- a.href = url;
73
- a.download = filename;
74
- a.click();
75
- a.remove();
76
- URL.revokeObjectURL(url);
77
- }
78
- this.store.dispatch(new fromRedactionActions.ResetRedactedDocument());
79
- }
80
- }
81
- RedactionComponent.decorators = [
82
- { type: Component, args: [{
83
- selector: 'mv-redactions',
84
- template: "<div class=\"pageContainer\">\n <div *ngFor=\"let redaction of (redactionsPerPage$ | async); index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': redaction.styles.width,\n 'height.px': redaction.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"markBoxRedaction($event)\">\n </mv-box-highlight-create>\n <div class=\"pageContainer__page-item\">\n <ng-container *ngFor=\"let anno of redaction.anno\">\n <!-- TODO rename this to selection -->\n <mv-annotation [annotation]=\"anno\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedRedaction$ | async\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n (update)=\"onMarkerUpdate($event)\"\n (delete)=\"onMarkerDelete($event)\"\n (annotationClick)=\"selectRedaction($event)\">\n </mv-annotation>\n </ng-container>\n </div>\n </div>\n</div>\n"
85
- },] }
86
- ];
87
- /** @nocollapse */
88
- RedactionComponent.ctorParameters = () => [
89
- { type: Store },
90
- { type: ViewerEventService },
91
- { type: ToolbarEventService }
92
- ];
93
- RedactionComponent.propDecorators = {
94
- zoom: [{ type: Input }],
95
- rotate: [{ type: Input }]
96
- };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3JlZGFjdGlvbi9jb21wb25lbnRzL3JlZGFjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJOUMsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEtBQUssaUJBQWlCLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxLQUFLLFlBQVksTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RSxPQUFPLEtBQUssV0FBVyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxvQkFBb0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEtBQUssZUFBZSxNQUFNLHVDQUF1QyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBT3hFLE1BQU0sT0FBTyxrQkFBa0I7SUFhN0IsWUFBb0IsS0FBNkIsRUFDOUIsWUFBZ0MsRUFDekMsYUFBa0M7UUFGeEIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ3pDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtJQUFJLENBQUM7SUFFakQsUUFBUTtRQUNOLElBQUksQ0FB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QVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNWLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNYLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDOzs7WUF4RkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QiwwMkNBQXlDO2FBQzFDOzs7O1lBcEJnQixLQUFLO1lBY2Isa0JBQWtCO1lBRGxCLG1CQUFtQjs7O21CQVV6QixLQUFLO3FCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbVNlbGVjdG9ycyBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvcmVkYWN0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tUmVkYVNlbGVjdG9ycyBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvcmVkYWN0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuLi8uLi9zdG9yZS9hY3Rpb25zL3JlZGFjdGlvbi5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21SZWRhY3Rpb25BY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvcmVkYWN0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbVJlZGFBY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvcmVkYWN0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQW5ub3RhdGlvbiB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL21vZGVscy9ldmVudC1zZWxlY3QubW9kZWwnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3Rvb2xiYXIvdG9vbGJhci5tb2R1bGUnO1xuaW1wb3J0IHsgVmlld2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdmlld2Vycy92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZWRhY3Rpb24gfSBmcm9tICcuLi9zZXJ2aWNlcy9yZWRhY3Rpb24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1yZWRhY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZGFjdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVkYWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG5cbiAgcmVkYWN0aW9uc1BlclBhZ2UkOiBPYnNlcnZhYmxlPGFueT47IC8vIHRvZG8gYWRkIHR5cGVcbiAgc2VsZWN0ZWRSZWRhY3Rpb24kOiBPYnNlcnZhYmxlPFNlbGVjdGlvbkFubm90YXRpb24gfCB7fT47XG4gIHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdO1xuICBkcmF3TW9kZTogYm9vbGVhbjtcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgJHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5TdGF0ZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVkYWN0aW9uc1BlclBhZ2UkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldFJlZGFjdGlvbnNQZXJQYWdlKSk7XG4gICAgdGhpcy5zZWxlY3RlZFJlZGFjdGlvbiQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0U2VsZWN0ZWQpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb24gPSB0aGlzLnRvb2xiYXJFdmVudHMuZHJhd01vZGVTdWJqZWN0LnN1YnNjcmliZShkcmF3TW9kZSA9PiB0aGlzLmRyYXdNb2RlID0gZHJhd01vZGUpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldFJlZGFjdGVkRG9jdW1lbnRJbmZvKSwgZmlsdGVyKHZhbHVlID0+ICEhdmFsdWUpKVxuICAgICAgLnN1YnNjcmliZShyZWRhY3RlZERvY0luZm8gPT4gdGhpcy5kb3dubG9hZERvY3VtZW50KHJlZGFjdGVkRG9jSW5mbykpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldERvY3VtZW50SWQpKS5zdWJzY3JpYmUoZG9jSWQgPT4gdGhpcy5kb2N1bWVudElkID0gZG9jSWQpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMudmlld2VyRXZlbnRzLnRleHRIaWdobGlnaHQuc3Vic2NyaWJlKGhpZ2hsaWdodCA9PiB0aGlzLm1hcmtUZXh0UmVkYWN0aW9uKGhpZ2hsaWdodCkpKTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuYXBwbHlSZWRhY3RUb0RvY3VtZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21SZWRhU2VsZWN0b3JzLmdldFJlZGFjdGlvbkFycmF5KSwgdGFrZSgxKSkuc3Vic2NyaWJlKHJlZGFjdGlvbnMgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tUmVkYUFjdGlvbnMuUmVkYWN0KHJlZGFjdGlvbnMpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5jbGVhckFsbFJlZGFjdE1hcmtlcnMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhQWN0aW9ucy5Vbm1hcmtBbGwodGhpcy5kb2N1bWVudElkKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG1hcmtUZXh0UmVkYWN0aW9uKGhpZ2hsaWdodCkge1xuICAgIGNvbnN0IHJlZGFjdGlvbkhpZ2hsaWdodCA9IGhpZ2hsaWdodC5yZWN0YW5nbGVzO1xuICAgIGlmIChyZWRhY3Rpb25IaWdobGlnaHQgJiYgcmVkYWN0aW9uSGlnaGxpZ2h0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5zYXZlUmVkYWN0aW9uKGhpZ2hsaWdodC5wYWdlLCBbLi4ucmVkYWN0aW9uSGlnaGxpZ2h0XSk7XG4gICAgfVxuICAgIHRoaXMudG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtCb3hSZWRhY3Rpb24oeyByZWN0YW5nbGVzLCBwYWdlIH0pIHtcbiAgICB0aGlzLnNhdmVSZWRhY3Rpb24ocGFnZSwgcmVjdGFuZ2xlcyk7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLmRyYXdNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHNhdmVSZWRhY3Rpb24ocGFnZTogbnVtYmVyLCByZWN0YW5nbGVzOiBSZWN0YW5nbGVbXSkge1xuICAgIGNvbnN0IHJlZGFjdGlvbiA9IHsgcGFnZSwgcmVjdGFuZ2xlcywgcmVkYWN0aW9uSWQ6IHV1aWQoKSwgZG9jdW1lbnRJZDogdGhpcy5kb2N1bWVudElkIH07XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbVJlZGFjdGlvbkFjdGlvbnMuU2F2ZVJlZGFjdGlvbihyZWRhY3Rpb24pKTtcbiAgfVxuXG4gIG9uTWFya2VyRGVsZXRlKGV2ZW50KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuRGVsZXRlUmVkYWN0aW9uKGV2ZW50KSk7XG4gIH1cblxuICBzZWxlY3RSZWRhY3Rpb24oZXZlbnQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TZWxlY3RSZWRhY3Rpb24oZXZlbnQpKTtcbiAgfVxuXG4gIG9uTWFya2VyVXBkYXRlKHJlZGFjdGlvbjogUmVkYWN0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2F2ZVJlZGFjdGlvbihyZWRhY3Rpb24pKTtcbiAgfVxuXG4gIGRvd25sb2FkRG9jdW1lbnQoeyBibG9iLCBmaWxlbmFtZSB9KSB7XG4gICAgaWYgKG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IubXNTYXZlQmxvYikge1xuICAgICAgbmF2aWdhdG9yLm1zU2F2ZUJsb2IoYmxvYiwgZmlsZW5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZScpO1xuICAgICAgYS5ocmVmID0gdXJsO1xuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xuICAgICAgYS5jbGljaygpO1xuICAgICAgYS5yZW1vdmUoKTtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbVJlZGFjdGlvbkFjdGlvbnMuUmVzZXRSZWRhY3RlZERvY3VtZW50KCkpO1xuICB9XG59XG4iXX0=