@hmcts/media-viewer 4.1.10-exui-3053-1 → 4.2.0-exui-3682

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 (376) hide show
  1. package/fesm2022/hmcts-media-viewer.mjs +369 -841
  2. package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
  3. package/index.d.ts +2316 -4
  4. package/index.d.ts.map +1 -0
  5. package/package.json +10 -12
  6. package/esm2022/hmcts-media-viewer.mjs +0 -5
  7. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -122
  8. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -120
  9. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +0 -101
  10. package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
  11. package/esm2022/lib/annotations/annotation-set/annotation-set.model.mjs +0 -2
  12. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
  13. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -2
  14. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
  15. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -2
  16. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -119
  17. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
  18. package/esm2022/lib/annotations/annotations.module.mjs +0 -162
  19. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +0 -178
  20. package/esm2022/lib/annotations/comment-set/comment/comment.model.mjs +0 -2
  21. package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
  22. package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
  23. package/esm2022/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +0 -31
  24. package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
  25. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +0 -62
  26. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
  27. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -72
  28. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +0 -55
  29. package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +0 -123
  30. package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
  31. package/esm2022/lib/annotations/models/api-persisted.model.mjs +0 -2
  32. package/esm2022/lib/annotations/models/event-select.model.mjs +0 -2
  33. package/esm2022/lib/annotations/models/tags.model.mjs +0 -2
  34. package/esm2022/lib/annotations/models/user.model.mjs +0 -2
  35. package/esm2022/lib/annotations/pipes/date/date.pipe.mjs +0 -26
  36. package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
  37. package/esm2022/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +0 -16
  38. package/esm2022/lib/annotations/services/annotation-api/annotation-api.service.mjs +0 -58
  39. package/esm2022/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +0 -45
  40. package/esm2022/lib/annotations/services/tags/tags.services.mjs +0 -41
  41. package/esm2022/lib/annotations/tags/tags.component.mjs +0 -53
  42. package/esm2022/lib/bookmark/components/bookmark-icons.component.mjs +0 -25
  43. package/esm2022/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +0 -30
  44. package/esm2022/lib/icp/icp-follower.service.mjs +0 -65
  45. package/esm2022/lib/icp/icp-presenter.service.mjs +0 -56
  46. package/esm2022/lib/icp/icp-session-api.service.mjs +0 -28
  47. package/esm2022/lib/icp/icp-update.service.mjs +0 -73
  48. package/esm2022/lib/icp/icp.events.mjs +0 -15
  49. package/esm2022/lib/icp/icp.interfaces.mjs +0 -2
  50. package/esm2022/lib/icp/icp.service.mjs +0 -98
  51. package/esm2022/lib/icp/participants-list/participants-list.component.mjs +0 -32
  52. package/esm2022/lib/icp/socket.service.mjs +0 -128
  53. package/esm2022/lib/media-viewer.component.mjs +0 -341
  54. package/esm2022/lib/media-viewer.module.mjs +0 -139
  55. package/esm2022/lib/print.service.mjs +0 -32
  56. package/esm2022/lib/redaction/components/redaction.component.mjs +0 -91
  57. package/esm2022/lib/redaction/services/redaction-api.service.mjs +0 -50
  58. package/esm2022/lib/redaction/services/redaction.model.mjs +0 -2
  59. package/esm2022/lib/shared/directives/keyboard-nav.directive.mjs +0 -243
  60. package/esm2022/lib/shared/directives/tooltip-dismiss.directive.mjs +0 -36
  61. package/esm2022/lib/shared/gov-uk-date/gov-uk-date.component.mjs +0 -28
  62. package/esm2022/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +0 -34
  63. package/esm2022/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +0 -63
  64. package/esm2022/lib/shared/gov-uk-label/gov-uk-label.component.mjs +0 -44
  65. package/esm2022/lib/shared/shared.module.mjs +0 -58
  66. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +0 -29
  67. package/esm2022/lib/shared/util/services/number.helper.service.mjs +0 -23
  68. package/esm2022/lib/store/actions/annotation.actions.mjs +0 -119
  69. package/esm2022/lib/store/actions/bookmark.actions.mjs +0 -112
  70. package/esm2022/lib/store/actions/document.actions.mjs +0 -91
  71. package/esm2022/lib/store/actions/icp.actions.mjs +0 -56
  72. package/esm2022/lib/store/actions/redaction.actions.mjs +0 -132
  73. package/esm2022/lib/store/actions/tag.actions.mjs +0 -21
  74. package/esm2022/lib/store/bookmarks-store-utils.mjs +0 -49
  75. package/esm2022/lib/store/effects/annotation.effects.mjs +0 -51
  76. package/esm2022/lib/store/effects/bookmarks.effects.mjs +0 -44
  77. package/esm2022/lib/store/effects/document.effects.mjs +0 -44
  78. package/esm2022/lib/store/effects/icp.effects.mjs +0 -26
  79. package/esm2022/lib/store/effects/index.mjs +0 -7
  80. package/esm2022/lib/store/effects/redaction.effects.mjs +0 -67
  81. package/esm2022/lib/store/models/bookmarks.interface.mjs +0 -2
  82. package/esm2022/lib/store/models/filters.interface.mjs +0 -2
  83. package/esm2022/lib/store/reducers/annotations.reducer.mjs +0 -208
  84. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +0 -125
  85. package/esm2022/lib/store/reducers/document.reducer.mjs +0 -158
  86. package/esm2022/lib/store/reducers/icp.reducer.mjs +0 -56
  87. package/esm2022/lib/store/reducers/redaction.reducer.mjs +0 -116
  88. package/esm2022/lib/store/reducers/reducers.mjs +0 -23
  89. package/esm2022/lib/store/reducers/tags.reducer.mjs +0 -93
  90. package/esm2022/lib/store/selectors/annotation.selectors.mjs +0 -81
  91. package/esm2022/lib/store/selectors/bookmark.selectors.mjs +0 -37
  92. package/esm2022/lib/store/selectors/document.selectors.mjs +0 -13
  93. package/esm2022/lib/store/selectors/icp.selectors.mjs +0 -13
  94. package/esm2022/lib/store/selectors/redaction.selectors.mjs +0 -26
  95. package/esm2022/lib/store/selectors/tag.selectors.mjs +0 -15
  96. package/esm2022/lib/store/store-utils.mjs +0 -131
  97. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -74
  98. package/esm2022/lib/toolbar/icp-event.service.mjs +0 -44
  99. package/esm2022/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +0 -43
  100. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -271
  101. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -237
  102. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -2
  103. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -94
  104. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
  105. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
  106. package/esm2022/lib/toolbar/toolbar-event.service.mjs +0 -178
  107. package/esm2022/lib/toolbar/toolbar-focus.service.mjs +0 -33
  108. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -81
  109. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
  110. package/esm2022/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +0 -22
  111. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +0 -57
  112. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
  113. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
  114. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -266
  115. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +0 -40
  116. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -242
  117. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -379
  118. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -2
  119. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
  120. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -2
  121. package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +0 -99
  122. package/esm2022/lib/viewers/rotation-persist/rotation-api.service.mjs +0 -27
  123. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
  124. package/esm2022/lib/viewers/rotation-persist/rotation.model.mjs +0 -2
  125. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
  126. package/esm2022/lib/viewers/viewer-event.service.mjs +0 -34
  127. package/esm2022/lib/viewers/viewer-exception.model.mjs +0 -13
  128. package/esm2022/lib/viewers/viewer-util.service.mjs +0 -20
  129. package/esm2022/public_api.mjs +0 -33
  130. package/hmcts-media-viewer.d.ts.map +0 -1
  131. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +0 -48
  132. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +0 -1
  133. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +0 -32
  134. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +0 -1
  135. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +0 -18
  136. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +0 -1
  137. package/lib/annotations/annotation-set/annotation-set.component.d.ts +0 -27
  138. package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +0 -1
  139. package/lib/annotations/annotation-set/annotation-set.model.d.ts +0 -7
  140. package/lib/annotations/annotation-set/annotation-set.model.d.ts.map +0 -1
  141. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +0 -34
  142. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +0 -1
  143. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +0 -16
  144. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts.map +0 -1
  145. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +0 -41
  146. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +0 -1
  147. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +0 -9
  148. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts.map +0 -1
  149. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +0 -37
  150. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +0 -1
  151. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +0 -37
  152. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +0 -1
  153. package/lib/annotations/annotations.module.d.ts +0 -36
  154. package/lib/annotations/annotations.module.d.ts.map +0 -1
  155. package/lib/annotations/comment-set/comment/comment.component.d.ts +0 -69
  156. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +0 -1
  157. package/lib/annotations/comment-set/comment/comment.model.d.ts +0 -13
  158. package/lib/annotations/comment-set/comment/comment.model.d.ts.map +0 -1
  159. package/lib/annotations/comment-set/comment/comment.service.d.ts +0 -22
  160. package/lib/annotations/comment-set/comment/comment.service.d.ts.map +0 -1
  161. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +0 -14
  162. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +0 -1
  163. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +0 -12
  164. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +0 -1
  165. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +0 -28
  166. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +0 -1
  167. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +0 -26
  168. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +0 -1
  169. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +0 -21
  170. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +0 -1
  171. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +0 -36
  172. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +0 -1
  173. package/lib/annotations/comment-set/comment-set-render.service.d.ts +0 -15
  174. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +0 -1
  175. package/lib/annotations/comment-set/comment-set.component.d.ts +0 -56
  176. package/lib/annotations/comment-set/comment-set.component.d.ts.map +0 -1
  177. package/lib/annotations/comments-summary/comments-summary.component.d.ts +0 -42
  178. package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +0 -1
  179. package/lib/annotations/models/api-persisted.model.d.ts +0 -11
  180. package/lib/annotations/models/api-persisted.model.d.ts.map +0 -1
  181. package/lib/annotations/models/event-select.model.d.ts +0 -6
  182. package/lib/annotations/models/event-select.model.d.ts.map +0 -1
  183. package/lib/annotations/models/tags.model.d.ts +0 -7
  184. package/lib/annotations/models/tags.model.d.ts.map +0 -1
  185. package/lib/annotations/models/user.model.d.ts +0 -6
  186. package/lib/annotations/models/user.model.d.ts.map +0 -1
  187. package/lib/annotations/pipes/date/date.pipe.d.ts +0 -16
  188. package/lib/annotations/pipes/date/date.pipe.d.ts.map +0 -1
  189. package/lib/annotations/pipes/filter/filter.pipe.d.ts +0 -8
  190. package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +0 -1
  191. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +0 -8
  192. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +0 -1
  193. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +0 -28
  194. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +0 -1
  195. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +0 -21
  196. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +0 -1
  197. package/lib/annotations/services/tags/tags.services.d.ts +0 -18
  198. package/lib/annotations/services/tags/tags.services.d.ts.map +0 -1
  199. package/lib/annotations/tags/tags.component.d.ts +0 -28
  200. package/lib/annotations/tags/tags.component.d.ts.map +0 -1
  201. package/lib/bookmark/components/bookmark-icons.component.d.ts +0 -19
  202. package/lib/bookmark/components/bookmark-icons.component.d.ts.map +0 -1
  203. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +0 -14
  204. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +0 -1
  205. package/lib/icp/icp-follower.service.d.ts +0 -26
  206. package/lib/icp/icp-follower.service.d.ts.map +0 -1
  207. package/lib/icp/icp-presenter.service.d.ts +0 -25
  208. package/lib/icp/icp-presenter.service.d.ts.map +0 -1
  209. package/lib/icp/icp-session-api.service.d.ts +0 -15
  210. package/lib/icp/icp-session-api.service.d.ts.map +0 -1
  211. package/lib/icp/icp-update.service.d.ts +0 -22
  212. package/lib/icp/icp-update.service.d.ts.map +0 -1
  213. package/lib/icp/icp.events.d.ts +0 -14
  214. package/lib/icp/icp.events.d.ts.map +0 -1
  215. package/lib/icp/icp.interfaces.d.ts +0 -23
  216. package/lib/icp/icp.interfaces.d.ts.map +0 -1
  217. package/lib/icp/icp.service.d.ts +0 -40
  218. package/lib/icp/icp.service.d.ts.map +0 -1
  219. package/lib/icp/participants-list/participants-list.component.d.ts +0 -23
  220. package/lib/icp/participants-list/participants-list.component.d.ts.map +0 -1
  221. package/lib/icp/socket.service.d.ts +0 -29
  222. package/lib/icp/socket.service.d.ts.map +0 -1
  223. package/lib/media-viewer.component.d.ts +0 -80
  224. package/lib/media-viewer.component.d.ts.map +0 -1
  225. package/lib/media-viewer.module.d.ts +0 -36
  226. package/lib/media-viewer.module.d.ts.map +0 -1
  227. package/lib/print.service.d.ts +0 -8
  228. package/lib/print.service.d.ts.map +0 -1
  229. package/lib/redaction/components/redaction.component.d.ts +0 -42
  230. package/lib/redaction/components/redaction.component.d.ts.map +0 -1
  231. package/lib/redaction/services/redaction-api.service.d.ts +0 -20
  232. package/lib/redaction/services/redaction-api.service.d.ts.map +0 -1
  233. package/lib/redaction/services/redaction.model.d.ts +0 -11
  234. package/lib/redaction/services/redaction.model.d.ts.map +0 -1
  235. package/lib/shared/directives/keyboard-nav.directive.d.ts +0 -30
  236. package/lib/shared/directives/keyboard-nav.directive.d.ts.map +0 -1
  237. package/lib/shared/directives/tooltip-dismiss.directive.d.ts +0 -11
  238. package/lib/shared/directives/tooltip-dismiss.directive.d.ts.map +0 -1
  239. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +0 -15
  240. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +0 -1
  241. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +0 -11
  242. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +0 -1
  243. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +0 -16
  244. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +0 -1
  245. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +0 -14
  246. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +0 -1
  247. package/lib/shared/shared.module.d.ts +0 -15
  248. package/lib/shared/shared.module.d.ts.map +0 -1
  249. package/lib/shared/util/helpers/html-templates.helper.d.ts +0 -9
  250. package/lib/shared/util/helpers/html-templates.helper.d.ts.map +0 -1
  251. package/lib/shared/util/services/number.helper.service.d.ts +0 -11
  252. package/lib/shared/util/services/number.helper.service.d.ts.map +0 -1
  253. package/lib/store/actions/annotation.actions.d.ts +0 -126
  254. package/lib/store/actions/annotation.actions.d.ts.map +0 -1
  255. package/lib/store/actions/bookmark.actions.d.ts +0 -117
  256. package/lib/store/actions/bookmark.actions.d.ts.map +0 -1
  257. package/lib/store/actions/document.actions.d.ts +0 -90
  258. package/lib/store/actions/document.actions.d.ts.map +0 -1
  259. package/lib/store/actions/icp.actions.d.ts +0 -75
  260. package/lib/store/actions/icp.actions.d.ts.map +0 -1
  261. package/lib/store/actions/redaction.actions.d.ts +0 -127
  262. package/lib/store/actions/redaction.actions.d.ts.map +0 -1
  263. package/lib/store/actions/tag.actions.d.ts +0 -30
  264. package/lib/store/actions/tag.actions.d.ts.map +0 -1
  265. package/lib/store/bookmarks-store-utils.d.ts +0 -9
  266. package/lib/store/bookmarks-store-utils.d.ts.map +0 -1
  267. package/lib/store/effects/annotation.effects.d.ts +0 -16
  268. package/lib/store/effects/annotation.effects.d.ts.map +0 -1
  269. package/lib/store/effects/bookmarks.effects.d.ts +0 -21
  270. package/lib/store/effects/bookmarks.effects.d.ts.map +0 -1
  271. package/lib/store/effects/document.effects.d.ts +0 -17
  272. package/lib/store/effects/document.effects.d.ts.map +0 -1
  273. package/lib/store/effects/icp.effects.d.ts +0 -16
  274. package/lib/store/effects/icp.effects.d.ts.map +0 -1
  275. package/lib/store/effects/index.d.ts +0 -2
  276. package/lib/store/effects/index.d.ts.map +0 -1
  277. package/lib/store/effects/redaction.effects.d.ts +0 -20
  278. package/lib/store/effects/redaction.effects.d.ts.map +0 -1
  279. package/lib/store/models/bookmarks.interface.d.ts +0 -31
  280. package/lib/store/models/bookmarks.interface.d.ts.map +0 -1
  281. package/lib/store/models/filters.interface.d.ts +0 -8
  282. package/lib/store/models/filters.interface.d.ts.map +0 -1
  283. package/lib/store/reducers/annotations.reducer.d.ts +0 -48
  284. package/lib/store/reducers/annotations.reducer.d.ts.map +0 -1
  285. package/lib/store/reducers/bookmarks.reducer.d.ts +0 -27
  286. package/lib/store/reducers/bookmarks.reducer.d.ts.map +0 -1
  287. package/lib/store/reducers/document.reducer.d.ts +0 -52
  288. package/lib/store/reducers/document.reducer.d.ts.map +0 -1
  289. package/lib/store/reducers/icp.reducer.d.ts +0 -9
  290. package/lib/store/reducers/icp.reducer.d.ts.map +0 -1
  291. package/lib/store/reducers/redaction.reducer.d.ts +0 -32
  292. package/lib/store/reducers/redaction.reducer.d.ts.map +0 -1
  293. package/lib/store/reducers/reducers.d.ts +0 -24
  294. package/lib/store/reducers/reducers.d.ts.map +0 -1
  295. package/lib/store/reducers/tags.reducer.d.ts +0 -32
  296. package/lib/store/reducers/tags.reducer.d.ts.map +0 -1
  297. package/lib/store/selectors/annotation.selectors.d.ts +0 -136
  298. package/lib/store/selectors/annotation.selectors.d.ts.map +0 -1
  299. package/lib/store/selectors/bookmark.selectors.d.ts +0 -38
  300. package/lib/store/selectors/bookmark.selectors.d.ts.map +0 -1
  301. package/lib/store/selectors/document.selectors.d.ts +0 -23
  302. package/lib/store/selectors/document.selectors.d.ts.map +0 -1
  303. package/lib/store/selectors/icp.selectors.d.ts +0 -10
  304. package/lib/store/selectors/icp.selectors.d.ts.map +0 -1
  305. package/lib/store/selectors/redaction.selectors.d.ts +0 -35
  306. package/lib/store/selectors/redaction.selectors.d.ts.map +0 -1
  307. package/lib/store/selectors/tag.selectors.d.ts +0 -28
  308. package/lib/store/selectors/tag.selectors.d.ts.map +0 -1
  309. package/lib/store/store-utils.d.ts +0 -25
  310. package/lib/store/store-utils.d.ts.map +0 -1
  311. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts +0 -26
  312. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts.map +0 -1
  313. package/lib/toolbar/icp-event.service.d.ts +0 -21
  314. package/lib/toolbar/icp-event.service.d.ts.map +0 -1
  315. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +0 -24
  316. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +0 -1
  317. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +0 -80
  318. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +0 -1
  319. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +0 -60
  320. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +0 -1
  321. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts +0 -12
  322. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts.map +0 -1
  323. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +0 -35
  324. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +0 -1
  325. package/lib/toolbar/search-bar/search-bar.component.d.ts +0 -34
  326. package/lib/toolbar/search-bar/search-bar.component.d.ts.map +0 -1
  327. package/lib/toolbar/toolbar-button-visibility.service.d.ts +0 -67
  328. package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +0 -1
  329. package/lib/toolbar/toolbar-event.service.d.ts +0 -96
  330. package/lib/toolbar/toolbar-event.service.d.ts.map +0 -1
  331. package/lib/toolbar/toolbar-focus.service.d.ts +0 -7
  332. package/lib/toolbar/toolbar-focus.service.d.ts.map +0 -1
  333. package/lib/toolbar/toolbar.module.d.ts +0 -21
  334. package/lib/toolbar/toolbar.module.d.ts.map +0 -1
  335. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +0 -31
  336. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +0 -1
  337. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +0 -12
  338. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +0 -1
  339. package/lib/viewers/grab-n-drag.directive.d.ts +0 -19
  340. package/lib/viewers/grab-n-drag.directive.d.ts.map +0 -1
  341. package/lib/viewers/image-viewer/image-viewer.component.d.ts +0 -57
  342. package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +0 -1
  343. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +0 -25
  344. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +0 -1
  345. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +0 -69
  346. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +0 -1
  347. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +0 -17
  348. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +0 -1
  349. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +0 -82
  350. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +0 -1
  351. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +0 -82
  352. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +0 -1
  353. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +0 -22
  354. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts.map +0 -1
  355. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +0 -20
  356. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +0 -1
  357. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +0 -14
  358. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +0 -1
  359. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +0 -42
  360. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +0 -1
  361. package/lib/viewers/rotation-persist/rotation-api.service.d.ts +0 -14
  362. package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +0 -1
  363. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +0 -27
  364. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +0 -1
  365. package/lib/viewers/rotation-persist/rotation.model.d.ts +0 -5
  366. package/lib/viewers/rotation-persist/rotation.model.d.ts.map +0 -1
  367. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +0 -23
  368. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +0 -1
  369. package/lib/viewers/viewer-event.service.d.ts +0 -23
  370. package/lib/viewers/viewer-event.service.d.ts.map +0 -1
  371. package/lib/viewers/viewer-exception.model.d.ts +0 -15
  372. package/lib/viewers/viewer-exception.model.d.ts.map +0 -1
  373. package/lib/viewers/viewer-util.service.d.ts +0 -10
  374. package/lib/viewers/viewer-util.service.d.ts.map +0 -1
  375. package/public_api.d.ts +0 -30
  376. package/public_api.d.ts.map +0 -1
@@ -1,341 +0,0 @@
1
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { delay, filter, take } from 'rxjs';
3
- import { defaultImageOptions, defaultMultimediaOptions, defaultPdfOptions, defaultUnsupportedOptions } from './toolbar/toolbar-button-visibility.service';
4
- import { select } from '@ngrx/store';
5
- import * as fromAnnoSelectors from './store/selectors/annotation.selectors';
6
- import * as fromDocumentsSelector from './store/selectors/document.selectors';
7
- import * as fromAnnoActions from './store/actions/annotation.actions';
8
- import * as fromRedactActions from './store/actions/redaction.actions';
9
- import * as fromDocumentActions from './store/actions/document.actions';
10
- import { HtmlTemplatesHelper } from './shared/util/helpers/html-templates.helper';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@ngrx/store";
13
- import * as i2 from "./toolbar/toolbar-button-visibility.service";
14
- import * as i3 from "./toolbar/toolbar-event.service";
15
- import * as i4 from "./annotations/services/annotation-api/annotation-api.service";
16
- import * as i5 from "./annotations/comment-set/comment/comment.service";
17
- import * as i6 from "./toolbar/icp-event.service";
18
- import * as i7 from "@angular/common";
19
- import * as i8 from "./toolbar/main-toolbar/main-toolbar.component";
20
- import * as i9 from "./toolbar/redaction-toolbar/redaction-toolbar.component";
21
- import * as i10 from "./toolbar/icp-toolbar/icp-toolbar.component";
22
- import * as i11 from "./toolbar/highlight-toolbar/highlight-toolbar.component";
23
- import * as i12 from "./annotations/comments-summary/comments-summary.component";
24
- import * as i13 from "./viewers/pdf-viewer/pdf-viewer.component";
25
- import * as i14 from "./viewers/image-viewer/image-viewer.component";
26
- import * as i15 from "./viewers/unsupported-viewer/unsupported-viewer.component";
27
- import * as i16 from "./viewers/multimedia-player/multimedia-player.component";
28
- import * as i17 from "./viewers/convertible-content-viewer/convertible-content-viewer.component";
29
- import * as i18 from "./viewers/rotation-persist/rotation-persist.directive";
30
- import * as i19 from "./icp/confirm-exit/confirm-action-dialog.component";
31
- var CoreContentTypes;
32
- (function (CoreContentTypes) {
33
- CoreContentTypes["PDF"] = "pdf";
34
- CoreContentTypes["IMAGE"] = "image";
35
- })(CoreContentTypes || (CoreContentTypes = {}));
36
- var MultimediaContentTypes;
37
- (function (MultimediaContentTypes) {
38
- MultimediaContentTypes["MP4"] = "mp4";
39
- MultimediaContentTypes["MP3"] = "mp3";
40
- })(MultimediaContentTypes || (MultimediaContentTypes = {}));
41
- var ConvertibleContentTypes;
42
- (function (ConvertibleContentTypes) {
43
- ConvertibleContentTypes["EXCEL"] = "excel";
44
- ConvertibleContentTypes["WORD"] = "word";
45
- ConvertibleContentTypes["POWERPOINT"] = "powerpoint";
46
- ConvertibleContentTypes["TXT"] = "txt";
47
- ConvertibleContentTypes["RTF"] = "rtf";
48
- })(ConvertibleContentTypes || (ConvertibleContentTypes = {}));
49
- export class MediaViewerComponent {
50
- constructor(store, toolbarButtons, toolbarEvents, api, commentService, elRef, cdr, icpEventService) {
51
- this.store = store;
52
- this.toolbarButtons = toolbarButtons;
53
- this.toolbarEvents = toolbarEvents;
54
- this.api = api;
55
- this.commentService = commentService;
56
- this.elRef = elRef;
57
- this.cdr = cdr;
58
- this.icpEventService = icpEventService;
59
- this.showToolbar = true;
60
- this.toolbarButtonOverrides = {};
61
- this.width = '100%';
62
- this.mediaLoadStatus = new EventEmitter();
63
- this.viewerException = new EventEmitter();
64
- this.toolbarEventsOutput = new EventEmitter();
65
- this.unsavedChanges = new EventEmitter();
66
- this.enableAnnotations = false;
67
- this.enableRedactions = false;
68
- this.enableICP = false;
69
- this.multimediaPlayerEnabled = false;
70
- this.enableRedactSearch = false;
71
- this.multimediaContent = false;
72
- this.convertibleContent = false;
73
- this.unsupportedContent = false;
74
- this.typeException = false;
75
- this.currentRegionIndex = -1;
76
- if (this.annotationApiUrl) {
77
- api.annotationApiUrl = this.annotationApiUrl;
78
- }
79
- }
80
- ngAfterContentInit() {
81
- this.annotationSet$ = this.store.pipe(select(fromAnnoSelectors.getAnnotationSet));
82
- this.hasDifferentPageSize$ = this.store.pipe(select(fromDocumentsSelector.getPageDifference));
83
- this.setToolbarButtons();
84
- this.toolbarEventsOutput.emit(this.toolbarEvents);
85
- this.$subscriptions = this.commentService.getUnsavedChanges()
86
- .subscribe(changes => this.onCommentChange(changes));
87
- this.$subscriptions.add(this.toolbarEvents.getShowCommentSummary()
88
- .subscribe(changes => this.showCommentSummary = changes));
89
- }
90
- ngAfterViewChecked() {
91
- if (this.height && this.viewerHeight !== this.height) {
92
- this.viewerHeight = this.height;
93
- this.cdr.detectChanges();
94
- return;
95
- }
96
- if (!this.height) {
97
- const compOffsetTop = HtmlTemplatesHelper.getAdjustedBoundingRect(this.elRef.nativeElement).top;
98
- const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;
99
- const offset = compOffsetTop + viewerOffsetTop;
100
- if (this.prevOffset !== offset) {
101
- this.viewerHeight = `calc(100vh - ${offset}px)`;
102
- this.prevOffset = offset;
103
- this.cdr.detectChanges();
104
- }
105
- }
106
- }
107
- ngOnChanges(changes) {
108
- if (changes.annotationApiUrl) {
109
- this.api.annotationApiUrl = this.annotationApiUrl;
110
- }
111
- if (changes.contentType) {
112
- this.convertibleContent = this.needsConverting();
113
- this.multimediaContent = this.isMultimedia();
114
- this.unsupportedContent = !this.isSupported();
115
- }
116
- if (changes.url) {
117
- this.toolbarEvents.reset();
118
- this.commentService.resetCommentSet();
119
- this.documentId = this.extractDMStoreDocId(this.url);
120
- this.store.dispatch(new fromDocumentActions.SetDocumentId(this.documentId));
121
- if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {
122
- this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(this.documentId));
123
- }
124
- if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent) && this.documentId) {
125
- this.store.dispatch(new fromRedactActions.LoadRedactions(this.documentId));
126
- }
127
- if (this.contentType === 'image') {
128
- this.documentTitle = null;
129
- }
130
- }
131
- this.setToolbarButtons();
132
- this.detectOs();
133
- this.typeException = false;
134
- }
135
- ngOnDestroy() {
136
- this.$subscriptions.unsubscribe();
137
- }
138
- needsConverting() {
139
- return this.contentType !== null && Object.keys(ConvertibleContentTypes).includes(this.contentType.toUpperCase());
140
- }
141
- isMultimedia() {
142
- return this.contentType !== null && Object.keys(MultimediaContentTypes).includes(this.contentType.toUpperCase());
143
- }
144
- isSupported() {
145
- const supportedTypes = Object.assign({}, MultimediaContentTypes, ConvertibleContentTypes, CoreContentTypes);
146
- return this.contentType !== null && Object.keys(supportedTypes).includes(this.contentType.toUpperCase());
147
- }
148
- onMediaLoad(status) {
149
- this.mediaLoadStatus.emit(status);
150
- }
151
- setToolbarButtons() {
152
- if (this.contentType === CoreContentTypes.PDF || this.needsConverting()) {
153
- this.toolbarButtons.setup({
154
- ...defaultPdfOptions, showHighlightButton: this.enableAnnotations, showDrawButton: false,
155
- ...this.toolbarButtonOverrides
156
- });
157
- }
158
- else if (this.contentType === CoreContentTypes.IMAGE) {
159
- this.toolbarButtons.setup({
160
- ...defaultImageOptions, showDrawButton: this.enableAnnotations,
161
- ...this.toolbarButtonOverrides
162
- });
163
- }
164
- else if (this.isMultimedia()) {
165
- this.toolbarButtons.setup({
166
- ...defaultMultimediaOptions,
167
- ...this.toolbarButtonOverrides
168
- });
169
- }
170
- else {
171
- this.toolbarButtons.setup({
172
- ...defaultUnsupportedOptions,
173
- ...this.toolbarButtonOverrides
174
- });
175
- }
176
- }
177
- onLoadException(exception) {
178
- this.viewerException.emit(exception);
179
- if (!this.isSupported()) {
180
- this.typeException = false;
181
- }
182
- else {
183
- this.typeException = true;
184
- this.contentType = null;
185
- this.setToolbarButtons();
186
- }
187
- }
188
- onCommentChange(changes) {
189
- this.unsavedChanges.emit(changes);
190
- }
191
- onDocumentTitleChange(title) {
192
- this.documentTitle = title;
193
- }
194
- // If secure mode is enabled (which adds "documentsv2" to the documentId), get rid of it
195
- extractDMStoreDocId(url) {
196
- url = url.includes('/documents/') ? url.split('/documents/')[1] : url;
197
- url = url.includes('/documentsv2/') ? url.split('/documentsv2/')[1] : url;
198
- return url.replace('/binary', '');
199
- }
200
- detectOs() {
201
- this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;
202
- }
203
- skipToSidebar(event) {
204
- event.preventDefault();
205
- this.openSidebarAndWait(() => {
206
- const element = document.querySelector('#sidebarContent');
207
- if (element) {
208
- if (!element.hasAttribute('tabindex')) {
209
- element.setAttribute('tabindex', '-1');
210
- }
211
- element.focus();
212
- }
213
- });
214
- }
215
- openSidebarAndWait(callback) {
216
- const isOpen = this.toolbarEvents.sidebarOpen.getValue();
217
- if (!isOpen) {
218
- this.toolbarEvents.toggleSideBar(true);
219
- }
220
- this.toolbarEvents.sidebarOpen.pipe(filter(open => open === true), take(1), delay(0)).subscribe(() => {
221
- callback();
222
- });
223
- }
224
- skipToViewer(event) {
225
- event.preventDefault();
226
- const element = document.querySelector('#viewerContainer');
227
- if (element) {
228
- element.focus();
229
- }
230
- }
231
- handleF6Forward(event) {
232
- event.preventDefault();
233
- this.cycleRegion('forward');
234
- }
235
- handleF6Backward(event) {
236
- event.preventDefault();
237
- this.cycleRegion('backward');
238
- }
239
- cycleRegion(direction) {
240
- const regions = [
241
- { selector: '#toolbarContainer', label: 'Main toolbar', isVisible: () => this.showToolbar },
242
- { selector: '#sidebarContent', label: 'Index menu', isVisible: () => true },
243
- { selector: '#viewerContainer', label: 'Document viewer', isVisible: () => true }
244
- ];
245
- const visibleRegions = regions.filter(r => r.isVisible());
246
- if (visibleRegions.length === 0)
247
- return;
248
- const previousRegion = visibleRegions[this.currentRegionIndex];
249
- if (direction === 'forward') {
250
- this.currentRegionIndex = (this.currentRegionIndex + 1) % visibleRegions.length;
251
- }
252
- else {
253
- this.currentRegionIndex = this.currentRegionIndex <= 0
254
- ? visibleRegions.length - 1
255
- : this.currentRegionIndex - 1;
256
- }
257
- const currentRegion = visibleRegions[this.currentRegionIndex];
258
- if (previousRegion?.selector === '#sidebarContent' && currentRegion.selector !== '#sidebarContent') {
259
- const isOpen = this.toolbarEvents.sidebarOpen.getValue();
260
- if (isOpen) {
261
- this.toolbarEvents.toggleSideBar(false);
262
- }
263
- }
264
- if (currentRegion.selector === '#sidebarContent') {
265
- this.openSidebarAndWait(() => {
266
- this.focusRegion(currentRegion);
267
- });
268
- }
269
- else {
270
- this.focusRegion(currentRegion);
271
- }
272
- }
273
- focusRegion(region) {
274
- const element = document.querySelector(region.selector);
275
- if (!element) {
276
- return;
277
- }
278
- const firstFocusable = element.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');
279
- if (firstFocusable) {
280
- firstFocusable.focus();
281
- }
282
- else {
283
- if (!element.hasAttribute('tabindex')) {
284
- element.setAttribute('tabindex', '-1');
285
- }
286
- element.focus();
287
- }
288
- }
289
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerComponent, deps: [{ token: i1.Store }, { token: i2.ToolbarButtonVisibilityService }, { token: i3.ToolbarEventService }, { token: i4.AnnotationApiService }, { token: i5.CommentService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i6.IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
290
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MediaViewerComponent, selector: "mv-media-viewer", inputs: { url: "url", downloadFileName: "downloadFileName", contentType: "contentType", showToolbar: "showToolbar", toolbarButtonOverrides: "toolbarButtonOverrides", height: "height", width: "width", enableAnnotations: "enableAnnotations", annotationApiUrl: "annotationApiUrl", enableRedactions: "enableRedactions", enableICP: "enableICP", multimediaPlayerEnabled: "multimediaPlayerEnabled", enableRedactSearch: "enableRedactSearch", caseId: "caseId" }, outputs: { mediaLoadStatus: "mediaLoadStatus", viewerException: "viewerException", toolbarEventsOutput: "toolbarEventsOutput", unsavedChanges: "unsavedChanges" }, host: { listeners: { "document:keydown.F6": "handleF6Forward($event)", "document:keydown.shift.F6": "handleF6Backward($event)" } }, viewQueries: [{ propertyName: "viewerRef", first: true, predicate: ["viewerRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n id=\"outerContainer\"\n [ngClass]=\"{\n 'has-redact-bar': toolbarEvents.redactionMode | async,\n 'icp-mode': icpEventService.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 <div class=\"govuk-skip-link-container\">\n <a href=\"#sidebarContent\" class=\"mv-govuk-skip-link\" (click)=\"skipToSidebar($event)\">Skip to index menu</a>\n <a href=\"#viewerContainer\" class=\"mv-govuk-skip-link\" (click)=\"skipToViewer($event)\">Skip to document</a>\n </div>\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=\"icpEventService.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-highlight-toolbar\n *ngIf=\"toolbarEvents.highlightToolbarSubject | async\"\n ></mv-highlight-toolbar>\n <mv-icp-toolbar *ngIf=\"icpEventService.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", styles: [".govuk-skip-link-container{position:inline-block;top:0;left:0;width:100%;z-index:101;background:transparent;pointer-events:none;display:flex;flex-direction:row;gap:0}.govuk-skip-link-container .mv-govuk-skip-link{display:inline-block;font-size:0px;height:0px;margin:0;padding:0;width:0;flex-shrink:0;pointer-events:auto}.govuk-skip-link-container .mv-govuk-skip-link:link,.govuk-skip-link-container .mv-govuk-skip-link:visited{color:#0b0c0c}.govuk-skip-link-container:has(.mv-govuk-skip-link:focus),.govuk-skip-link-container:has(.mv-govuk-skip-link:active){background-color:#fd0}.govuk-skip-link-container:has(.mv-govuk-skip-link:focus) .mv-govuk-skip-link,.govuk-skip-link-container:has(.mv-govuk-skip-link:active) .mv-govuk-skip-link{font-size:16px;padding:10px 15px;width:auto;min-height:41px;height:auto;display:inline-flex;align-items:center;text-decoration:underline;background-color:transparent;color:#0b0c0c;position:static;clip:auto;clip-path:none;overflow:visible}.govuk-skip-link-container:has(.mv-govuk-skip-link:focus) .mv-govuk-skip-link:focus,.govuk-skip-link-container:has(.mv-govuk-skip-link:focus) .mv-govuk-skip-link:active,.govuk-skip-link-container:has(.mv-govuk-skip-link:active) .mv-govuk-skip-link:focus,.govuk-skip-link-container:has(.mv-govuk-skip-link:active) .mv-govuk-skip-link:active{text-decoration:underline;text-decoration-thickness:3px}#outerContainer:has(.mv-govuk-skip-link:focus) mv-side-bar,#outerContainer:has(.mv-govuk-skip-link:active) mv-side-bar{top:101px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i8.MainToolbarComponent, selector: "mv-main-toolbar", inputs: ["enableAnnotations", "enableRedactions", "enableICP", "contentType"] }, { kind: "component", type: i9.RedactionToolbarComponent, selector: "mv-redaction-toolbar", inputs: ["showRedactSearch"] }, { kind: "component", type: i10.IcpToolbarComponent, selector: "mv-icp-toolbar" }, { kind: "component", type: i11.HighlightToolbarComponent, selector: "mv-highlight-toolbar" }, { kind: "component", type: i12.CommentsSummaryComponent, selector: "mv-comments-summary", inputs: ["title", "contentType"] }, { kind: "component", type: i13.PdfViewerComponent, selector: "mv-pdf-viewer", inputs: ["downloadUrl", "url", "downloadFileName", "enableAnnotations", "enableRedactions", "enableICP", "annotationSet", "enableRedactSearch", "height", "caseId", "searchBarHidden"], outputs: ["mediaLoadStatus", "pdfViewerException", "documentTitle"] }, { kind: "component", type: i14.ImageViewerComponent, selector: "mv-image-viewer", inputs: ["url", "downloadFileName", "enableAnnotations", "annotationSet", "height"], outputs: ["mediaLoadStatus", "imageViewerException"] }, { kind: "component", type: i15.UnsupportedViewerComponent, selector: "mv-unsupported-viewer", inputs: ["url", "downloadFileName", "typeException"], outputs: ["loadStatus", "unsupportedViewerException"] }, { kind: "component", type: i16.MultimediaPlayerComponent, selector: "mv-multimedia-player", inputs: ["url", "downloadFileName", "multimediaOn"], outputs: ["loadStatus"] }, { kind: "component", type: i17.ConvertibleContentViewerComponent, selector: "mv-conversion-viewer", inputs: ["originalUrl", "downloadFileName", "height", "enableAnnotations", "enableRedactions", "annotationSet"], outputs: ["mediaLoadStatus", "viewerException", "documentTitle"] }, { kind: "directive", type: i18.RotationPersistDirective, selector: "[mvRotationPersist]" }, { kind: "component", type: i19.ConfirmActionDialogComponent, selector: "mv-confirm-action" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
291
- }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerComponent, decorators: [{
293
- type: Component,
294
- args: [{ selector: 'mv-media-viewer', encapsulation: ViewEncapsulation.None, template: "<div\n id=\"outerContainer\"\n [ngClass]=\"{\n 'has-redact-bar': toolbarEvents.redactionMode | async,\n 'icp-mode': icpEventService.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 <div class=\"govuk-skip-link-container\">\n <a href=\"#sidebarContent\" class=\"mv-govuk-skip-link\" (click)=\"skipToSidebar($event)\">Skip to index menu</a>\n <a href=\"#viewerContainer\" class=\"mv-govuk-skip-link\" (click)=\"skipToViewer($event)\">Skip to document</a>\n </div>\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=\"icpEventService.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-highlight-toolbar\n *ngIf=\"toolbarEvents.highlightToolbarSubject | async\"\n ></mv-highlight-toolbar>\n <mv-icp-toolbar *ngIf=\"icpEventService.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", styles: [".govuk-skip-link-container{position:inline-block;top:0;left:0;width:100%;z-index:101;background:transparent;pointer-events:none;display:flex;flex-direction:row;gap:0}.govuk-skip-link-container .mv-govuk-skip-link{display:inline-block;font-size:0px;height:0px;margin:0;padding:0;width:0;flex-shrink:0;pointer-events:auto}.govuk-skip-link-container .mv-govuk-skip-link:link,.govuk-skip-link-container .mv-govuk-skip-link:visited{color:#0b0c0c}.govuk-skip-link-container:has(.mv-govuk-skip-link:focus),.govuk-skip-link-container:has(.mv-govuk-skip-link:active){background-color:#fd0}.govuk-skip-link-container:has(.mv-govuk-skip-link:focus) .mv-govuk-skip-link,.govuk-skip-link-container:has(.mv-govuk-skip-link:active) .mv-govuk-skip-link{font-size:16px;padding:10px 15px;width:auto;min-height:41px;height:auto;display:inline-flex;align-items:center;text-decoration:underline;background-color:transparent;color:#0b0c0c;position:static;clip:auto;clip-path:none;overflow:visible}.govuk-skip-link-container:has(.mv-govuk-skip-link:focus) .mv-govuk-skip-link:focus,.govuk-skip-link-container:has(.mv-govuk-skip-link:focus) .mv-govuk-skip-link:active,.govuk-skip-link-container:has(.mv-govuk-skip-link:active) .mv-govuk-skip-link:focus,.govuk-skip-link-container:has(.mv-govuk-skip-link:active) .mv-govuk-skip-link:active{text-decoration:underline;text-decoration-thickness:3px}#outerContainer:has(.mv-govuk-skip-link:focus) mv-side-bar,#outerContainer:has(.mv-govuk-skip-link:active) mv-side-bar{top:101px}\n"] }]
295
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ToolbarButtonVisibilityService }, { type: i3.ToolbarEventService }, { type: i4.AnnotationApiService }, { type: i5.CommentService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i6.IcpEventService }], propDecorators: { viewerRef: [{
296
- type: ViewChild,
297
- args: ['viewerRef', { static: false }]
298
- }], url: [{
299
- type: Input
300
- }], downloadFileName: [{
301
- type: Input
302
- }], contentType: [{
303
- type: Input
304
- }], showToolbar: [{
305
- type: Input
306
- }], toolbarButtonOverrides: [{
307
- type: Input
308
- }], height: [{
309
- type: Input
310
- }], width: [{
311
- type: Input
312
- }], mediaLoadStatus: [{
313
- type: Output
314
- }], viewerException: [{
315
- type: Output
316
- }], toolbarEventsOutput: [{
317
- type: Output
318
- }], unsavedChanges: [{
319
- type: Output
320
- }], enableAnnotations: [{
321
- type: Input
322
- }], annotationApiUrl: [{
323
- type: Input
324
- }], enableRedactions: [{
325
- type: Input
326
- }], enableICP: [{
327
- type: Input
328
- }], multimediaPlayerEnabled: [{
329
- type: Input
330
- }], enableRedactSearch: [{
331
- type: Input
332
- }], caseId: [{
333
- type: Input
334
- }], handleF6Forward: [{
335
- type: HostListener,
336
- args: ['document:keydown.F6', ['$event']]
337
- }], handleF6Backward: [{
338
- type: HostListener,
339
- args: ['document:keydown.shift.F6', ['$event']]
340
- }] } });
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL21lZGlhLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9tZWRpYS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBNEIsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxtQkFBbUIsRUFBRSx3QkFBd0IsRUFDN0MsaUJBQWlCLEVBQ2pCLHlCQUF5QixFQUUxQixNQUFNLDZDQUE2QyxDQUFDO0FBTXJELE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssZUFBZSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0NBQWtDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRixJQUFLLGdCQUdKO0FBSEQsV0FBSyxnQkFBZ0I7SUFDbkIsK0JBQVcsQ0FBQTtJQUNYLG1DQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhJLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFH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QUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7a0lBcFRVLG9CQUFvQjtzSEFBcEIsb0JBQW9CLGk2QkM3RGpDLHM4SEE2R0E7OzRGRGhEYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUk7Z1RBSUksU0FBUztzQkFBakQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUU5QixHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0MsTUFBTTtzQkFEWixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUUsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFrTk4sZUFBZTtzQkFEZCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU8vQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlbGF5LCBmaWx0ZXIsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVmYXVsdEltYWdlT3B0aW9ucywgZGVmYXVsdE11bHRpbWVkaWFPcHRpb25zLFxuICBkZWZhdWx0UGRmT3B0aW9ucyxcbiAgZGVmYXVsdFVuc3VwcG9ydGVkT3B0aW9ucyxcbiAgVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlXG59IGZyb20gJy4vdG9vbGJhci90b29sYmFyLWJ1dHRvbi12aXNpYmlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ub3RhdGlvblNldCB9IGZyb20gJy4vYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQubW9kZWwnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICcuL2Fubm90YXRpb25zL3NlcnZpY2VzL2Fubm90YXRpb24tYXBpL2Fubm90YXRpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2VUeXBlLCBWaWV3ZXJFeGNlcHRpb24gfSBmcm9tICcuL3ZpZXdlcnMvdmlld2VyLWV4Y2VwdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vU2VsZWN0b3JzIGZyb20gJy4vc3RvcmUvc2VsZWN0b3JzL2Fubm90YXRpb24uc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudHNTZWxlY3RvciBmcm9tICcuL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFubm9BY3Rpb25zIGZyb20gJy4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbVJlZGFjdEFjdGlvbnMgZnJvbSAnLi9zdG9yZS9hY3Rpb25zL3JlZGFjdGlvbi5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudEFjdGlvbnMgZnJvbSAnLi9zdG9yZS9hY3Rpb25zL2RvY3VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWNwRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi90b29sYmFyL2ljcC1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEh0bWxUZW1wbGF0ZXNIZWxwZXIgfSBmcm9tICcuL3NoYXJlZC91dGlsL2hlbHBlcnMvaHRtbC10ZW1wbGF0ZXMuaGVscGVyJztcblxuZW51bSBDb3JlQ29udGVudFR5cGVzIHtcbiAgUERGID0gJ3BkZicsXG4gIElNQUdFID0gJ2ltYWdlJ1xufVxuXG5lbnVtIE11bHRpbWVkaWFDb250ZW50VHlwZXMge1xuICBNUDQgPSAnbXA0JyxcbiAgTVAzID0gJ21wMycsXG59XG5cbmVudW0gQ29udmVydGlibGVDb250ZW50VHlwZXMge1xuICBFWENFTCA9ICdleGNlbCcsXG4gIFdPUkQgPSAnd29yZCcsXG4gIFBPV0VSUE9JTlQgPSAncG93ZXJwb2ludCcsXG4gIFRYVCA9ICd0eHQnLFxuICBSVEYgPSAncnRmJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1tZWRpYS12aWV3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG5cbiAgQFZpZXdDaGlsZCgndmlld2VyUmVmJywge3N0YXRpYzogZmFsc2V9KSB2aWV3ZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgdXJsO1xuICBASW5wdXQoKSBkb3dubG9hZEZpbGVOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2hvd1Rvb2xiYXIgPSB0cnVlO1xuICBASW5wdXQoKSB0b29sYmFyQnV0dG9uT3ZlcnJpZGVzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVpZ2h0OiBzdHJpbmc7XG4gIHB1YmxpYyB2aWV3ZXJIZWlnaHQ6IHN0cmluZztcblxuICBASW5wdXQoKSB3aWR0aCA9ICcxMDAlJztcblxuICBAT3V0cHV0KCkgbWVkaWFMb2FkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxSZXNwb25zZVR5cGU+KCk7XG4gIEBPdXRwdXQoKSB2aWV3ZXJFeGNlcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdlckV4Y2VwdGlvbj4oKTtcbiAgQE91dHB1dCgpIHRvb2xiYXJFdmVudHNPdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFRvb2xiYXJFdmVudFNlcnZpY2U+KCk7XG4gIEBPdXRwdXQoKSB1bnNhdmVkQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBASW5wdXQoKSBlbmFibGVBbm5vdGF0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uQXBpVXJsO1xuXG4gIEBJbnB1dCgpIGVuYWJsZVJlZGFjdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlSUNQID0gZmFsc2U7XG4gIEBJbnB1dCgpIG11bHRpbWVkaWFQbGF5ZXJFbmFibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZVJlZGFjdFNlYXJjaCA9IGZhbHNlO1xuXG5cbiAgQElucHV0KCkgY2FzZUlkOiBzdHJpbmc7XG5cbiAgbXVsdGltZWRpYUNvbnRlbnQgPSBmYWxzZTtcbiAgY29udmVydGlibGVDb250ZW50ID0gZmFsc2U7XG4gIHVuc3VwcG9ydGVkQ29udGVudCA9IGZhbHNlO1xuXG4gIGRvY3VtZW50VGl0bGU6IHN0cmluZztcbiAgc2hvd0NvbW1lbnRTdW1tYXJ5OiBib29sZWFuO1xuICBhbm5vdGF0aW9uU2V0JDogT2JzZXJ2YWJsZTxBbm5vdGF0aW9uU2V0IHwge30+O1xuICBoYXNTY3JvbGxCYXI6IGJvb2xlYW47XG4gIHR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgaGFzRGlmZmVyZW50UGFnZVNpemUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSAkc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHByZXZPZmZzZXQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBjdXJyZW50UmVnaW9uSW5kZXggPSAtMTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwaTogQW5ub3RhdGlvbkFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tZW50U2VydmljZTogQ29tbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIGljcEV2ZW50U2VydmljZTogSWNwRXZlbnRTZXJ2aWNlXG4gICkge1xuICAgIGlmICh0aGlzLmFubm90YXRpb25BcGlVcmwpIHtcbiAgICAgIGFwaS5hbm5vdGF0aW9uQXBpVXJsID0gdGhpcy5hbm5vdGF0aW9uQXBpVXJsO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmFubm90YXRpb25TZXQkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tQW5ub1NlbGVjdG9ycy5nZXRBbm5vdGF0aW9uU2V0KSk7XG4gICAgdGhpcy5oYXNEaWZmZXJlbnRQYWdlU2l6ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2N1bWVudHNTZWxlY3Rvci5nZXRQYWdlRGlmZmVyZW5jZSkpO1xuICAgIHRoaXMuc2V0VG9vbGJhckJ1dHRvbnMoKTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHNPdXRwdXQuZW1pdCh0aGlzLnRvb2xiYXJFdmVudHMpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMgPSB0aGlzLmNvbW1lbnRTZXJ2aWNlLmdldFVuc2F2ZWRDaGFuZ2VzKClcbiAgICAgIC5zdWJzY3JpYmUoY2hhbmdlcyA9PiB0aGlzLm9uQ29tbWVudENoYW5nZShjaGFuZ2VzKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy5hZGQodGhpcy50b29sYmFyRXZlbnRzLmdldFNob3dDb21tZW50U3VtbWFyeSgpXG4gICAgICAuc3Vic2NyaWJlKGNoYW5nZXMgPT4gdGhpcy5zaG93Q29tbWVudFN1bW1hcnkgPSBjaGFuZ2VzKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMudmlld2VySGVpZ2h0ICE9PSB0aGlzLmhlaWdodCkge1xuICAgICAgdGhpcy52aWV3ZXJIZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaGVpZ2h0KSB7XG4gICAgICBjb25zdCBjb21wT2Zmc2V0VG9wID0gSHRtbFRlbXBsYXRlc0hlbHBlci5nZXRBZGp1c3RlZEJvdW5kaW5nUmVjdCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpLnRvcDtcbiAgICAgIGNvbnN0IHZpZXdlck9mZnNldFRvcCA9IHRoaXMudmlld2VyUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gY29tcE9mZnNldFRvcCArIHZpZXdlck9mZnNldFRvcDtcblxuICAgICAgaWYgKHRoaXMucHJldk9mZnNldCAhPT0gb2Zmc2V0KSB7XG4gICAgICAgIHRoaXMudmlld2VySGVpZ2h0ID0gYGNhbGMoMTAwdmggLSAke29mZnNldH1weClgO1xuICAgICAgICB0aGlzLnByZXZPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuYW5ub3RhdGlvbkFwaVVybCkge1xuICAgICAgdGhpcy5hcGkuYW5ub3RhdGlvbkFwaVVybCA9IHRoaXMuYW5ub3RhdGlvbkFwaVVybDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5jb250ZW50VHlwZSkge1xuICAgICAgdGhpcy5jb252ZXJ0aWJsZUNvbnRlbnQgPSB0aGlzLm5lZWRzQ29udmVydGluZygpO1xuICAgICAgdGhpcy5tdWx0aW1lZGlhQ29udGVudCA9IHRoaXMuaXNNdWx0aW1lZGlhKCk7XG4gICAgICB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCA9ICF0aGlzLmlzU3VwcG9ydGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMudXJsKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVzZXQoKTtcbiAgICAgIHRoaXMuY29tbWVudFNlcnZpY2UucmVzZXRDb21tZW50U2V0KCk7XG4gICAgICB0aGlzLmRvY3VtZW50SWQgPSB0aGlzLmV4dHJhY3RETVN0b3JlRG9jSWQodGhpcy51cmwpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbURvY3VtZW50QWN0aW9ucy5TZXREb2N1bWVudElkKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgaWYgKHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMgJiYgISh0aGlzLm11bHRpbWVkaWFDb250ZW50IHx8IHRoaXMudW5zdXBwb3J0ZWRDb250ZW50KSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQW5ub0FjdGlvbnMuTG9hZEFubm90YXRpb25TZXQodGhpcy5kb2N1bWVudElkKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbmFibGVSZWRhY3Rpb25zICYmICEodGhpcy5tdWx0aW1lZGlhQ29udGVudCB8fCB0aGlzLnVuc3VwcG9ydGVkQ29udGVudCkgJiYgdGhpcy5kb2N1bWVudElkKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3RBY3Rpb25zLkxvYWRSZWRhY3Rpb25zKHRoaXMuZG9jdW1lbnRJZCkpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udGVudFR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFRpdGxlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNldFRvb2xiYXJCdXR0b25zKCk7XG4gICAgdGhpcy5kZXRlY3RPcygpO1xuICAgIHRoaXMudHlwZUV4Y2VwdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmVlZHNDb252ZXJ0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRUeXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKENvbnZlcnRpYmxlQ29udGVudFR5cGVzKS5pbmNsdWRlcyh0aGlzLmNvbnRlbnRUeXBlLnRvVXBwZXJDYXNlKCkpO1xuICB9XG5cbiAgaXNNdWx0aW1lZGlhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRUeXBlICE9PSBudWxsICYmIE9iamVjdC5rZXlzKE11bHRpbWVkaWFDb250ZW50VHlwZXMpLmluY2x1ZGVzKHRoaXMuY29udGVudFR5cGUudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICBpc1N1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdXBwb3J0ZWRUeXBlcyA9IE9iamVjdC5hc3NpZ24oe30sIE11bHRpbWVkaWFDb250ZW50VHlwZXMsIENvbnZlcnRpYmxlQ29udGVudFR5cGVzLCBDb3JlQ29udGVudFR5cGVzKTtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyhzdXBwb3J0ZWRUeXBlcykuaW5jbHVkZXModGhpcy5jb250ZW50VHlwZS50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIG9uTWVkaWFMb2FkKHN0YXR1czogUmVzcG9uc2VUeXBlKSB7XG4gICAgdGhpcy5tZWRpYUxvYWRTdGF0dXMuZW1pdChzdGF0dXMpO1xuICB9XG5cbiAgc2V0VG9vbGJhckJ1dHRvbnMoKSB7XG4gICAgaWYgKHRoaXMuY29udGVudFR5cGUgPT09IENvcmVDb250ZW50VHlwZXMuUERGIHx8IHRoaXMubmVlZHNDb252ZXJ0aW5nKCkpIHtcbiAgICAgIHRoaXMudG9vbGJhckJ1dHRvbnMuc2V0dXAoe1xuICAgICAgICAuLi5kZWZhdWx0UGRmT3B0aW9ucywgc2hvd0hpZ2hsaWdodEJ1dHRvbjogdGhpcy5lbmFibGVBbm5vdGF0aW9ucywgc2hvd0RyYXdCdXR0b246IGZhbHNlLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gQ29yZUNvbnRlbnRUeXBlcy5JTUFHRSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRJbWFnZU9wdGlvbnMsIHNob3dEcmF3QnV0dG9uOiB0aGlzLmVuYWJsZUFubm90YXRpb25zLFxuICAgICAgICAuLi50aGlzLnRvb2xiYXJCdXR0b25PdmVycmlkZXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc011bHRpbWVkaWEoKSkge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRNdWx0aW1lZGlhT3B0aW9ucyxcbiAgICAgICAgLi4udGhpcy50b29sYmFyQnV0dG9uT3ZlcnJpZGVzXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b29sYmFyQnV0dG9ucy5zZXR1cCh7XG4gICAgICAgIC4uLmRlZmF1bHRVbnN1cHBvcnRlZE9wdGlvbnMsXG4gICAgICAgIC4uLnRoaXMudG9vbGJhckJ1dHRvbk92ZXJyaWRlc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Mb2FkRXhjZXB0aW9uKGV4Y2VwdGlvbjogVmlld2VyRXhjZXB0aW9uKSB7XG4gICAgdGhpcy52aWV3ZXJFeGNlcHRpb24uZW1pdChleGNlcHRpb24pO1xuICAgIGlmICghdGhpcy5pc1N1cHBvcnRlZCgpKSB7XG4gICAgICB0aGlzLnR5cGVFeGNlcHRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlRXhjZXB0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29udGVudFR5cGUgPSBudWxsO1xuICAgICAgdGhpcy5zZXRUb29sYmFyQnV0dG9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29tbWVudENoYW5nZShjaGFuZ2VzOiBib29sZWFuKSB7XG4gICAgdGhpcy51bnNhdmVkQ2hhbmdlcy5lbWl0KGNoYW5nZXMpO1xuICB9XG5cbiAgb25Eb2N1bWVudFRpdGxlQ2hhbmdlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIC8vIElmIHNlY3VyZSBtb2RlIGlzIGVuYWJsZWQgKHdoaWNoIGFkZHMgXCJkb2N1bWVudHN2MlwiIHRvIHRoZSBkb2N1bWVudElkKSwgZ2V0IHJpZCBvZiBpdFxuICBwcml2YXRlIGV4dHJhY3RETVN0b3JlRG9jSWQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHVybCA9IHVybC5pbmNsdWRlcygnL2RvY3VtZW50cy8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50cy8nKVsxXSA6IHVybDtcbiAgICB1cmwgPSB1cmwuaW5jbHVkZXMoJy9kb2N1bWVudHN2Mi8nKSA/IHVybC5zcGxpdCgnL2RvY3VtZW50c3YyLycpWzFdIDogdXJsO1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgnL2JpbmFyeScsICcnKTtcbiAgfVxuXG4gIGRldGVjdE9zKCkge1xuICAgIHRoaXMuaGFzU2Nyb2xsQmFyID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignV2luJykgIT09IC0xO1xuICB9XG5cbiAgc2tpcFRvU2lkZWJhcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5vcGVuU2lkZWJhckFuZFdhaXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJyNzaWRlYmFyQ29udGVudCcpO1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JykpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNpZGViYXJBbmRXYWl0KGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY29uc3QgaXNPcGVuID0gdGhpcy50b29sYmFyRXZlbnRzLnNpZGViYXJPcGVuLmdldFZhbHVlKCk7XG4gICAgaWYgKCFpc09wZW4pIHtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVTaWRlQmFyKHRydWUpO1xuICAgIH1cblxuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5waXBlKFxuICAgICAgZmlsdGVyKG9wZW4gPT4gb3BlbiA9PT0gdHJ1ZSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgZGVsYXkoMClcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgc2tpcFRvVmlld2VyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJyN2aWV3ZXJDb250YWluZXInKTtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uRjYnLCBbJyRldmVudCddKVxuICBoYW5kbGVGNkZvcndhcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuY3ljbGVSZWdpb24oJ2ZvcndhcmQnKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uc2hpZnQuRjYnLCBbJyRldmVudCddKVxuICBoYW5kbGVGNkJhY2t3YXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmN5Y2xlUmVnaW9uKCdiYWNrd2FyZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjeWNsZVJlZ2lvbihkaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrd2FyZCcpOiB2b2lkIHtcbiAgICBjb25zdCByZWdpb25zID0gW1xuICAgICAgeyBzZWxlY3RvcjogJyN0b29sYmFyQ29udGFpbmVyJywgbGFiZWw6ICdNYWluIHRvb2xiYXInLCBpc1Zpc2libGU6ICgpID0+IHRoaXMuc2hvd1Rvb2xiYXIgfSxcbiAgICAgIHsgc2VsZWN0b3I6ICcjc2lkZWJhckNvbnRlbnQnLCBsYWJlbDogJ0luZGV4IG1lbnUnLCBpc1Zpc2libGU6ICgpID0+IHRydWUgfSxcbiAgICAgIHsgc2VsZWN0b3I6ICcjdmlld2VyQ29udGFpbmVyJywgbGFiZWw6ICdEb2N1bWVudCB2aWV3ZXInLCBpc1Zpc2libGU6ICgpID0+IHRydWUgfVxuICAgIF07XG5cbiAgICBjb25zdCB2aXNpYmxlUmVnaW9ucyA9IHJlZ2lvbnMuZmlsdGVyKHIgPT4gci5pc1Zpc2libGUoKSk7XG4gICAgaWYgKHZpc2libGVSZWdpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXNSZWdpb24gPSB2aXNpYmxlUmVnaW9uc1t0aGlzLmN1cnJlbnRSZWdpb25JbmRleF07XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAnZm9yd2FyZCcpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlZ2lvbkluZGV4ID0gKHRoaXMuY3VycmVudFJlZ2lvbkluZGV4ICsgMSkgJSB2aXNpYmxlUmVnaW9ucy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudFJlZ2lvbkluZGV4ID0gdGhpcy5jdXJyZW50UmVnaW9uSW5kZXggPD0gMFxuICAgICAgICA/IHZpc2libGVSZWdpb25zLmxlbmd0aCAtIDFcbiAgICAgICAgOiB0aGlzLmN1cnJlbnRSZWdpb25JbmRleCAtIDE7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFJlZ2lvbiA9IHZpc2libGVSZWdpb25zW3RoaXMuY3VycmVudFJlZ2lvbkluZGV4XTtcblxuICAgIGlmIChwcmV2aW91c1JlZ2lvbj8uc2VsZWN0b3IgPT09ICcjc2lkZWJhckNvbnRlbnQnICYmIGN1cnJlbnRSZWdpb24uc2VsZWN0b3IgIT09ICcjc2lkZWJhckNvbnRlbnQnKSB7XG4gICAgICBjb25zdCBpc09wZW4gPSB0aGlzLnRvb2xiYXJFdmVudHMuc2lkZWJhck9wZW4uZ2V0VmFsdWUoKTtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVNpZGVCYXIoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAoY3VycmVudFJlZ2lvbi5zZWxlY3RvciA9PT0gJyNzaWRlYmFyQ29udGVudCcpIHtcbiAgICAgIHRoaXMub3BlblNpZGViYXJBbmRXYWl0KCgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c1JlZ2lvbihjdXJyZW50UmVnaW9uKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzUmVnaW9uKGN1cnJlbnRSZWdpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNSZWdpb24ocmVnaW9uOiB7IHNlbGVjdG9yOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihyZWdpb24uc2VsZWN0b3IpO1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgICdidXR0b246bm90KFtkaXNhYmxlZF0pLCBbaHJlZl0sIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknXG4gICAgKTtcblxuICAgIGlmIChmaXJzdEZvY3VzYWJsZSkge1xuICAgICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcbiAgICAgIH1cbiAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgaWQ9XCJvdXRlckNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnaGFzLXJlZGFjdC1iYXInOiB0b29sYmFyRXZlbnRzLnJlZGFjdGlvbk1vZGUgfCBhc3luYyxcbiAgICAnaWNwLW1vZGUnOiBpY3BFdmVudFNlcnZpY2UuZW5hYmxlZCB8IGFzeW5jLFxuICAgICdpcy1yZWRhY3Rpb24tcHJldmlldyc6IHRvb2xiYXJFdmVudHMucmVkYWN0aW9uUHJldmlldyB8IGFzeW5jLFxuICAgIHNpZGViYXJPcGVuOiB0b29sYmFyRXZlbnRzLnNpZGViYXJPcGVuIHwgYXN5bmMsXG4gICAgJ2hhcy1zY3JvbGwtYmFyJzogaGFzU2Nyb2xsQmFyLFxuICAgICdoYXMtZGlmZmVyZW50LXBhZ2Utc2l6ZSc6IGhhc0RpZmZlcmVudFBhZ2VTaXplJCB8IGFzeW5jXG4gIH1cIlxuICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCJcbj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXNraXAtbGluay1jb250YWluZXJcIj5cbiAgICA8YSBocmVmPVwiI3NpZGViYXJDb250ZW50XCIgY2xhc3M9XCJtdi1nb3Z1ay1za2lwLWxpbmtcIiAoY2xpY2spPVwic2tpcFRvU2lkZWJhcigkZXZlbnQpXCI+U2tpcCB0byBpbmRleCBtZW51PC9hPlxuICAgIDxhIGhyZWY9XCIjdmlld2VyQ29udGFpbmVyXCIgY2xhc3M9XCJtdi1nb3Z1ay1za2lwLWxpbmtcIiAoY2xpY2spPVwic2tpcFRvVmlld2VyKCRldmVudClcIj5Ta2lwIHRvIGRvY3VtZW50PC9hPlxuICA8L2Rpdj5cbiAgPG12LWNvbW1lbnRzLXN1bW1hcnlcbiAgICAqbmdJZj1cInNob3dDb21tZW50U3VtbWFyeVwiXG4gICAgW3RpdGxlXT1cImRvY3VtZW50VGl0bGUgfHwgJ0NvbW1lbnQgU3VtbWFyeSdcIlxuICAgIFtjb250ZW50VHlwZV09XCJjb250ZW50VHlwZVwiXG4gID5cbiAgPC9tdi1jb21tZW50cy1zdW1tYXJ5PlxuXG4gIDxtdi1jb25maXJtLWFjdGlvblxuICAgICpuZ0lmPVwiaWNwRXZlbnRTZXJ2aWNlLmxlYXZpbmdTZXNzaW9uIHwgYXN5bmNcIlxuICA+PC9tdi1jb25maXJtLWFjdGlvbj5cblxuICA8ZGl2IGlkPVwibWFpbkNvbnRhaW5lclwiPlxuICAgIDxtdi1tYWluLXRvb2xiYXJcbiAgICAgICpuZ0lmPVwic2hvd1Rvb2xiYXJcIlxuICAgICAgW2VuYWJsZUFubm90YXRpb25zXT1cImVuYWJsZUFubm90YXRpb25zXCJcbiAgICAgIFtlbmFibGVJQ1BdPVwiZW5hYmxlSUNQXCJcbiAgICAgIFtlbmFibGVSZWRhY3Rpb25zXT1cImVuYWJsZVJlZGFjdGlvbnNcIlxuICAgICAgW2NvbnRlbnRUeXBlXT1cImNvbnRlbnRUeXBlXCJcbiAgICA+XG4gICAgPC9tdi1tYWluLXRvb2xiYXI+XG4gICAgPG12LXJlZGFjdGlvbi10b29sYmFyXG4gICAgICBbc2hvd1JlZGFjdFNlYXJjaF09XCJlbmFibGVSZWRhY3RTZWFyY2hcIlxuICAgICAgKm5nSWY9XCJ0b29sYmFyRXZlbnRzLnJlZGFjdGlvbk1vZGUgfCBhc3luY1wiXG4gICAgPjwvbXYtcmVkYWN0aW9uLXRvb2xiYXI+XG4gICAgPG12LWhpZ2hsaWdodC10b29sYmFyXG4gICAgICAqbmdJZj1cInRvb2xiYXJFdmVudHMuaGlnaGxpZ2h0VG9vbGJhclN1YmplY3QgfCBhc3luY1wiXG4gICAgPjwvbXYtaGlnaGxpZ2h0LXRvb2xiYXI+XG4gICAgPG12LWljcC10b29sYmFyICpuZ0lmPVwiaWNwRXZlbnRTZXJ2aWNlLmVuYWJsZWQgfCBhc3luY1wiPjwvbXYtaWNwLXRvb2xiYXI+XG5cbiAgICA8ZGl2ICN2aWV3ZXJSZWY+XG4gICAgICA8bXYtY29udmVyc2lvbi12aWV3ZXJcbiAgICAgICAgKm5nSWY9XCJjb252ZXJ0aWJsZUNvbnRlbnRcIlxuICAgICAgICAoZG9jdW1lbnRUaXRsZSk9XCJvbkRvY3VtZW50VGl0bGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChtZWRpYUxvYWRTdGF0dXMpPVwib25NZWRpYUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICh2aWV3ZXJFeGNlcHRpb24pPVwib25Mb2FkRXhjZXB0aW9uKCRldmVudClcIlxuICAgICAgICBbZW5hYmxlQW5ub3RhdGlvbnNdPVwiZW5hYmxlQW5ub3RhdGlvbnNcIlxuICAgICAgICBbZW5hYmxlUmVkYWN0aW9uc109XCJlbmFibGVSZWRhY3Rpb25zXCJcbiAgICAgICAgW2Fubm90YXRpb25TZXRdPVwiZW5hYmxlQW5ub3RhdGlvbnMgPyAoYW5ub3RhdGlvblNldCQgfCBhc3luYykgOiBudWxsXCJcbiAgICAgICAgW29yaWdpbmFsVXJsXT1cInVybFwiXG4gICAgICAgIFtkb3dubG9hZEZpbGVOYW1lXT1cImRvd25sb2FkRmlsZU5hbWVcIlxuICAgICAgICBbaGVpZ2h0XT1cInZpZXdlckhlaWdodFwiXG4gICAgICAgIG12Um90YXRpb25QZXJzaXN0XG4gICAgICA+XG4gICAgICA8L212LWNvbnZlcnNpb24tdmlld2VyPlxuICAgICAgPG12LXBkZi12aWV3ZXJcbiAgICAgICAgKm5nSWY9XCJjb250ZW50VHlwZSA9PT0gJ3BkZidcIlxuICAgICAgICAjcGRmVmlld2VyXG4gICAgICAgIChtZWRpYUxvYWRTdGF0dXMpPVwib25NZWRpYUxvYWQoJGV2ZW50KVwiXG4gICAgICAgIChwZGZWaWV3ZXJFeGNlcHRpb24pPVwib25Mb2FkRXhjZXB0aW9uKCRldmVudClcIlxuICAgICAgICAoZG9jdW1lbnRUaXRsZSk9XCJvbkRvY3VtZW50VGl0bGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFt1cmxdPVwidXJsXCJcbiAgICAgICAgW2VuYWJsZUFubm90YXRpb25zXT1cImVuYWJsZUFubm90YXRpb25zXCJcbiAgICAgICAgW2VuYWJsZVJlZGFjdGlvbnNdPVwiZW5hYmxlUmVkYWN0aW9uc1wiXG4gICAgICAgIFtlbmFibGVJQ1BdPVwiZW5hYmxlSUNQXCJcbiAgICAgICAgW2Fubm90YXRpb25TZXRdPVwiZW5hYmxlQW5ub3RhdGlvbnMgPyAoYW5ub3RhdGlvblNldCQgfCBhc3luYykgOiBudWxsXCJcbiAgICAgICAgW2Rvd25sb2FkRmlsZU5hbWVdPVwiZG93bmxvYWRGaWxlTmFtZVwiXG4gICAgICAgIFtoZWlnaHRdPVwidmlld2VySGVpZ2h0XCJcbiAgICAgICAgW2Nhc2VJZF09XCJjYXNlSWRcIlxuICAgICAgICBtdlJvdGF0aW9uUGVyc2lzdFxuICAgICAgPlxuICAgICAgPC9tdi1wZGYtdmlld2VyPlxuICAgICAgPG12LWltYWdlLXZpZXdlclxuICAgICAgICAqbmdJZj1cImNvbnRlbnRUeXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgKG1lZGlhTG9hZFN0YXR1cyk9XCJvbk1lZGlhTG9hZCgkZXZlbnQpXCJcbiAgICAgICAgKGltYWdlVmlld2VyRXhjZXB0aW9uKT1cIm9uTG9hZEV4Y2VwdGlvbigkZXZlbnQpXCJcbiAgICAgICAgW3VybF09XCJ1cmxcIlxuICAgICAgICBbZW5hYmxlQW5ub3RhdGlvbnNdPVwiZW5hYmxlQW5ub3RhdGlvbnNcIlxuICAgICAgICBbYW5ub3RhdGlvblNldF09XCJlbmFibGVBbm5vdGF0aW9ucyA/IChhbm5vdGF0aW9uU2V0JCB8IGFzeW5jKSA6IG51bGxcIlxuICAgICAgICBbZG93bmxvYWRGaWxlTmFtZV09XCJkb3dubG9hZEZpbGVOYW1lXCJcbiAgICAgICAgW2hlaWdodF09XCJ2aWV3ZXJIZWlnaHRcIlxuICAgICAgICBtdlJvdGF0aW9uUGVyc2lzdFxuICAgICAgPlxuICAgICAgPC9tdi1pbWFnZS12aWV3ZXI+XG4gICAgICA8bXYtbXVsdGltZWRpYS1wbGF5ZXJcbiAgICAgICAgKm5nSWY9XCJtdWx0aW1lZGlhQ29udGVudFwiXG4gICAgICAgIFttdWx0aW1lZGlhT25dPVwibXVsdGltZWRpYVBsYXllckVuYWJsZWRcIlxuICAgICAgICBbdXJsXT1cInVybFwiXG4gICAgICAgIFtkb3dubG9hZEZpbGVOYW1lXT1cImRvd25sb2FkRmlsZU5hbWVcIlxuICAgICAgICAobG9hZFN0YXR1cyk9XCJvbk1lZGlhTG9hZCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvbXYtbXVsdGltZWRpYS1wbGF5ZXI+XG4gICAgICA8bXYtdW5zdXBwb3J0ZWQtdmlld2VyXG4gICAgICAgICpuZ0lmPVwidW5zdXBwb3J0ZWRDb250ZW50XCJcbiAgICAgICAgW3VybF09XCJ1cmxcIlxuICAgICAgICBbdHlwZUV4Y2VwdGlvbl09XCJ0eXBlRXhjZXB0aW9uXCJcbiAgICAgICAgW2Rvd25sb2FkRmlsZU5hbWVdPVwiZG93bmxvYWRGaWxlTmFtZVwiXG4gICAgICAgIChsb2FkU3RhdHVzKT1cIm9uTWVkaWFMb2FkKCRldmVudClcIlxuICAgICAgICAodW5zdXBwb3J0ZWRWaWV3ZXJFeGNlcHRpb24pPVwib25Mb2FkRXhjZXB0aW9uKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9tdi11bnN1cHBvcnRlZC12aWV3ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,139 +0,0 @@
1
- import { RpxTranslationModule } from 'rpx-xui-translation';
2
- import { NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { HttpClientModule } from '@angular/common/http';
6
- import { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';
7
- import { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';
8
- import { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';
9
- import { MediaViewerComponent } from './media-viewer.component';
10
- import { ToolbarModule } from './toolbar/toolbar.module';
11
- import { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';
12
- import { AnnotationsModule } from './annotations/annotations.module';
13
- import { CommentService } from './annotations/comment-set/comment/comment.service';
14
- import { GrabNDragDirective } from './viewers/grab-n-drag.directive';
15
- import { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';
16
- import { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';
17
- import { TagInputModule } from 'ngx-chips';
18
- import { RouterModule } from '@angular/router';
19
- import { EffectsModule } from '@ngrx/effects';
20
- import { StoreModule } from '@ngrx/store';
21
- import { RedactionComponent } from './redaction/components/redaction.component';
22
- import { reducers } from './store/reducers/reducers';
23
- import { effects } from './store/effects/index';
24
- import { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';
25
- import { RedactionApiService } from './redaction/services/redaction-api.service';
26
- import { MutableDivModule } from 'mutable-div';
27
- import { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';
28
- import { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';
29
- import { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';
30
- import { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';
31
- import { RotationApiService } from './viewers/rotation-persist/rotation-api.service';
32
- import { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';
33
- import { ParticipantsListComponent } from './icp/participants-list/participants-list.component';
34
- import { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';
35
- import { MultimediaPlayerComponent } from './viewers/multimedia-player/multimedia-player.component';
36
- import { CdkTreeModule } from '@angular/cdk/tree';
37
- import { DragDropModule } from '@angular/cdk/drag-drop';
38
- import * as i0 from "@angular/core";
39
- import * as i1 from "@ngrx/store";
40
- import * as i2 from "@ngrx/effects";
41
- import * as i3 from "rpx-xui-translation";
42
- export class MediaViewerModule {
43
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
44
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, declarations: [PdfViewerComponent,
45
- SideBarComponent,
46
- BookmarksComponent,
47
- OutlineItemComponent,
48
- ImageViewerComponent,
49
- UnsupportedViewerComponent,
50
- MultimediaPlayerComponent,
51
- MediaViewerComponent,
52
- ConvertibleContentViewerComponent,
53
- GrabNDragDirective,
54
- RotationPersistDirective,
55
- HighlightCreateDirective,
56
- ConfirmActionDialogComponent,
57
- RedactionComponent,
58
- BookmarkIconsComponent,
59
- ParticipantsListComponent], imports: [CommonModule,
60
- HttpClientModule,
61
- ToolbarModule,
62
- AnnotationsModule,
63
- TagInputModule,
64
- FormsModule,
65
- ReactiveFormsModule,
66
- RouterModule, i1.StoreFeatureModule, i2.EffectsFeatureModule, MutableDivModule,
67
- CdkTreeModule,
68
- DragDropModule, i3.RpxTranslationModule], exports: [MediaViewerComponent] }); }
69
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, providers: [
70
- PdfJsWrapperFactory,
71
- CommentService,
72
- RedactionApiService,
73
- DocumentConversionApiService,
74
- RotationApiService,
75
- ], imports: [CommonModule,
76
- HttpClientModule,
77
- ToolbarModule,
78
- AnnotationsModule,
79
- TagInputModule,
80
- FormsModule,
81
- ReactiveFormsModule,
82
- RouterModule,
83
- StoreModule.forFeature('media-viewer', reducers),
84
- EffectsModule.forFeature(effects),
85
- MutableDivModule,
86
- CdkTreeModule,
87
- DragDropModule,
88
- RpxTranslationModule.forChild()] }); }
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, decorators: [{
91
- type: NgModule,
92
- args: [{
93
- imports: [
94
- CommonModule,
95
- HttpClientModule,
96
- ToolbarModule,
97
- AnnotationsModule,
98
- TagInputModule,
99
- FormsModule,
100
- ReactiveFormsModule,
101
- RouterModule,
102
- StoreModule.forFeature('media-viewer', reducers),
103
- EffectsModule.forFeature(effects),
104
- MutableDivModule,
105
- CdkTreeModule,
106
- DragDropModule,
107
- RpxTranslationModule.forChild()
108
- ],
109
- declarations: [
110
- PdfViewerComponent,
111
- SideBarComponent,
112
- BookmarksComponent,
113
- OutlineItemComponent,
114
- ImageViewerComponent,
115
- UnsupportedViewerComponent,
116
- MultimediaPlayerComponent,
117
- MediaViewerComponent,
118
- ConvertibleContentViewerComponent,
119
- GrabNDragDirective,
120
- RotationPersistDirective,
121
- HighlightCreateDirective,
122
- ConfirmActionDialogComponent,
123
- RedactionComponent,
124
- BookmarkIconsComponent,
125
- ParticipantsListComponent
126
- ],
127
- providers: [
128
- PdfJsWrapperFactory,
129
- CommentService,
130
- RedactionApiService,
131
- DocumentConversionApiService,
132
- RotationApiService,
133
- ],
134
- exports: [
135
- MediaViewerComponent
136
- ]
137
- }]
138
- }] });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL21lZGlhLXZpZXdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDekcsT0FBTyxFQUFFLGNB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Y0FBYyxFQUFFLFFBQVEsQ0FBQzt3QkFDaEQsYUFBYSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7d0JBQ2pDLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtxQkFDaEM7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQixpQ0FBaUM7d0JBQ2pDLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJweFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFBkZlZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL2ltYWdlLXZpZXdlci9pbWFnZS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVuc3VwcG9ydGVkVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL3Vuc3VwcG9ydGVkLXZpZXdlci91bnN1cHBvcnRlZC12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lZGlhVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tZWRpYS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJNb2R1bGUgfSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci5tb2R1bGUnO1xuaW1wb3J0IHsgUGRmSnNXcmFwcGVyRmFjdG9yeSB9IGZyb20gJy4vdmlld2Vycy9wZGYtdmlld2VyL3BkZi1qcy9wZGYtanMtd3JhcHBlci5wcm92aWRlcic7XG5pbXBvcnQgeyBBbm5vdGF0aW9uc01vZHVsZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvYW5ub3RhdGlvbnMubW9kdWxlJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHcmFiTkRyYWdEaXJlY3RpdmUgfSBmcm9tICcuL3ZpZXdlcnMvZ3JhYi1uLWRyYWcuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpZGVCYXJDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3V0bGluZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9vdXRsaW5lLWl0ZW0vb3V0bGluZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdJbnB1dE1vZHVsZSB9IGZyb20gJ25neC1jaGlwcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmVNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBSZWRhY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3JlZGFjdGlvbi9jb21wb25lbnRzL3JlZGFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNwU2Vzc2lvbkFwaVNlcnZpY2UgfSBmcm9tICcuL2ljcC9pY3Atc2Vzc2lvbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJY3BVcGRhdGVTZXJ2aWNlIH0gZnJvbSAnLi9pY3AvaWNwLXVwZGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFNlcnZpY2UgfSBmcm9tICcuL2ljcC9pY3Auc2VydmljZSc7XG5pbXBvcnQgeyBTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi9pY3Avc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVkdWNlcnMgfSBmcm9tICcuL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCB7IGVmZmVjdHMgfSBmcm9tICcuL3N0b3JlL2VmZmVjdHMvaW5kZXgnO1xuaW1wb3J0IHsgQm9va21hcmtzQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL3BkZi12aWV3ZXIvc2lkZS1iYXIvYm9va21hcmtzL2Jvb2ttYXJrcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVkYWN0aW9uQXBpU2VydmljZSB9IGZyb20gJy4vcmVkYWN0aW9uL3NlcnZpY2VzL3JlZGFjdGlvbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBNdXRhYmxlRGl2TW9kdWxlIH0gZnJvbSAnbXV0YWJsZS1kaXYnO1xuaW1wb3J0IHsgQ29udmVydGlibGVDb250ZW50Vmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL2NvbnZlcnRpYmxlLWNvbnRlbnQtdmlld2VyL2NvbnZlcnRpYmxlLWNvbnRlbnQtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb2N1bWVudENvbnZlcnNpb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi92aWV3ZXJzL2NvbnZlcnRpYmxlLWNvbnRlbnQtdmlld2VyL2RvY3VtZW50LWNvbnZlcnNpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwUHJlc2VudGVyU2VydmljZSB9IGZyb20gJy4vaWNwL2ljcC1wcmVzZW50ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJY3BGb2xsb3dlclNlcnZpY2UgfSBmcm9tICcuL2ljcC9pY3AtZm9sbG93ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtQWN0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9pY3AvY29uZmlybS1leGl0L2NvbmZpcm0tYWN0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm9va21hcmtJY29uc0NvbXBvbmVudCB9IGZyb20gJy4vYm9va21hcmsvY29tcG9uZW50cy9ib29rbWFyay1pY29ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm90YXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi92aWV3ZXJzL3JvdGF0aW9uLXBlcnNpc3Qvcm90YXRpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm90YXRpb25QZXJzaXN0RGlyZWN0aXZlIH0gZnJvbSAnLi92aWV3ZXJzL3JvdGF0aW9uLXBlcnNpc3Qvcm90YXRpb24tcGVyc2lzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGFydGljaXBhbnRzTGlzdENvbXBvbmVudCB9IGZyb20gJy4vaWNwL3BhcnRpY2lwYW50cy1saXN0L3BhcnRpY2lwYW50cy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIaWdobGlnaHRDcmVhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUvaGlnaGxpZ2h0LWNyZWF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTXVsdGltZWRpYVBsYXllckNvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9tdWx0aW1lZGlhLXBsYXllci9tdWx0aW1lZGlhLXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2RrVHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBUb29sYmFyTW9kdWxlLFxuICAgIEFubm90YXRpb25zTW9kdWxlLFxuICAgIFRhZ0lucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoJ21lZGlhLXZpZXdlcicsIHJlZHVjZXJzKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoZWZmZWN0cyksXG4gICAgTXV0YWJsZURpdk1vZHVsZSxcbiAgICBDZGtUcmVlTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIFJweFRyYW5zbGF0aW9uTW9kdWxlLmZvckNoaWxkKClcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGRmVmlld2VyQ29tcG9uZW50LFxuICAgIFNpZGVCYXJDb21wb25lbnQsXG4gICAgQm9va21hcmtzQ29tcG9uZW50LFxuICAgIE91dGxpbmVJdGVtQ29tcG9uZW50LFxuICAgIEltYWdlVmlld2VyQ29tcG9uZW50LFxuICAgIFVuc3VwcG9ydGVkVmlld2VyQ29tcG9uZW50LFxuICAgIE11bHRpbWVkaWFQbGF5ZXJDb21wb25lbnQsXG4gICAgTWVkaWFWaWV3ZXJDb21wb25lbnQsXG4gICAgQ29udmVydGlibGVDb250ZW50Vmlld2VyQ29tcG9uZW50LFxuICAgIEdyYWJORHJhZ0RpcmVjdGl2ZSxcbiAgICBSb3RhdGlvblBlcnNpc3REaXJlY3RpdmUsXG4gICAgSGlnaGxpZ2h0Q3JlYXRlRGlyZWN0aXZlLFxuICAgIENvbmZpcm1BY3Rpb25EaWFsb2dDb21wb25lbnQsXG4gICAgUmVkYWN0aW9uQ29tcG9uZW50LFxuICAgIEJvb2ttYXJrSWNvbnNDb21wb25lbnQsXG4gICAgUGFydGljaXBhbnRzTGlzdENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBQZGZKc1dyYXBwZXJGYWN0b3J5LFxuICAgIENvbW1lbnRTZXJ2aWNlLFxuICAgIFJlZGFjdGlvbkFwaVNlcnZpY2UsXG4gICAgRG9jdW1lbnRDb252ZXJzaW9uQXBpU2VydmljZSxcbiAgICBSb3RhdGlvbkFwaVNlcnZpY2UsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBNZWRpYVZpZXdlckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhVmlld2VyTW9kdWxlIHsgfVxuIl19