@hmcts/media-viewer 2.8.2 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/README.md +0 -1
  2. package/assets/images/icon-page.svg +52 -0
  3. package/assets/sass/comment.scss +1 -1
  4. package/assets/sass/outline-attachment.scss +6 -1
  5. package/assets/sass/participants-list.scss +1 -1
  6. package/assets/sass/rectangle.scss +1 -4
  7. package/assets/sass/toolbar/main-toolbar.scss +8 -8
  8. package/assets/sass/toolbar/redaction-toolbar.scss +10 -0
  9. package/bundles/hmcts-media-viewer.umd.js +3392 -10778
  10. package/bundles/hmcts-media-viewer.umd.js.map +1 -1
  11. package/bundles/hmcts-media-viewer.umd.min.js +1 -16
  12. package/bundles/hmcts-media-viewer.umd.min.js.map +1 -1
  13. package/esm2015/hmcts-media-viewer.js +20 -24
  14. package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +24 -103
  15. package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +14 -111
  16. package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +4 -49
  17. package/esm2015/lib/annotations/annotation-set/annotation-set.component.js +2 -51
  18. package/esm2015/lib/annotations/annotation-set/annotation-set.model.js +2 -15
  19. package/esm2015/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +4 -74
  20. package/esm2015/lib/annotations/annotation-set/annotation-view/annotation.model.js +2 -29
  21. package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +5 -114
  22. package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.js +2 -21
  23. package/esm2015/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +8 -85
  24. package/esm2015/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +9 -105
  25. package/esm2015/lib/annotations/annotations.module.js +1 -5
  26. package/esm2015/lib/annotations/comment-set/comment/comment.component.js +4 -152
  27. package/esm2015/lib/annotations/comment-set/comment/comment.model.js +2 -27
  28. package/esm2015/lib/annotations/comment-set/comment/comment.service.js +3 -53
  29. package/esm2015/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.js +1 -37
  30. package/esm2015/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.js +1 -25
  31. package/esm2015/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +5 -63
  32. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.js +10 -76
  33. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.js +5 -53
  34. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +6 -63
  35. package/esm2015/lib/annotations/comment-set/comment-set-render.service.js +5 -73
  36. package/esm2015/lib/annotations/comment-set/comment-set.component.js +11 -154
  37. package/esm2015/lib/annotations/comments-summary/comments-summary.component.js +8 -111
  38. package/esm2015/lib/annotations/models/api-persisted.model.js +2 -25
  39. package/esm2015/lib/annotations/models/event-select.model.js +2 -17
  40. package/esm2015/lib/annotations/models/tags.model.js +2 -19
  41. package/esm2015/lib/annotations/models/user.model.js +2 -17
  42. package/esm2015/lib/annotations/pipes/date/date.pipe.js +1 -12
  43. package/esm2015/lib/annotations/pipes/filter/filter.pipe.js +3 -17
  44. package/esm2015/lib/annotations/pipes/unsnake/unsnake.pipe.js +1 -9
  45. package/esm2015/lib/annotations/services/annotation-api/annotation-api.service.js +6 -93
  46. package/esm2015/lib/annotations/services/bookmarks-api/bookmarks-api.service.js +6 -69
  47. package/esm2015/lib/annotations/services/tags/tags.services.js +6 -54
  48. package/esm2015/lib/annotations/tags/tags.component.js +4 -50
  49. package/esm2015/lib/bookmark/components/bookmark-icons.component.js +2 -29
  50. package/esm2015/lib/icp/confirm-exit/confirm-action-dialog.component.js +2 -22
  51. package/esm2015/lib/icp/icp-follower.service.js +4 -63
  52. package/esm2015/lib/icp/icp-presenter.service.js +6 -69
  53. package/esm2015/lib/icp/icp-session-api.service.js +2 -26
  54. package/esm2015/lib/icp/icp-update.service.js +18 -92
  55. package/esm2015/lib/icp/icp.events.js +15 -0
  56. package/esm2015/lib/icp/icp.interfaces.js +2 -51
  57. package/esm2015/lib/icp/icp.service.js +18 -155
  58. package/esm2015/lib/icp/participants-list/participants-list.component.js +3 -43
  59. package/esm2015/lib/icp/socket.service.js +92 -86
  60. package/esm2015/lib/media-viewer.component.js +24 -196
  61. package/esm2015/lib/media-viewer.module.js +3 -7
  62. package/esm2015/lib/print.service.js +2 -18
  63. package/esm2015/lib/redaction/components/redaction.component.js +13 -127
  64. package/esm2015/lib/redaction/services/redaction-api.service.js +6 -75
  65. package/esm2015/lib/redaction/services/redaction.model.js +2 -19
  66. package/esm2015/lib/shared/gov-uk-date/gov-uk-date.component.js +2 -14
  67. package/esm2015/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +3 -14
  68. package/esm2015/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -17
  69. package/esm2015/lib/shared/gov-uk-label/gov-uk-label.component.js +3 -12
  70. package/esm2015/lib/shared/shared.module.js +1 -5
  71. package/esm2015/lib/shared/util/helpers/html-templates.helper.js +1 -10
  72. package/esm2015/lib/shared/util/services/number.helper.service.js +4 -14
  73. package/esm2015/lib/store/actions/annotation.actions.js +1 -140
  74. package/esm2015/lib/store/actions/bookmark.actions.js +1 -150
  75. package/esm2015/lib/store/actions/document.actions.js +1 -130
  76. package/esm2015/lib/store/actions/icp.actions.js +1 -80
  77. package/esm2015/lib/store/actions/redaction.actions.js +1 -155
  78. package/esm2015/lib/store/actions/tag.actions.js +1 -30
  79. package/esm2015/lib/store/bookmarks-store-utils.js +17 -69
  80. package/esm2015/lib/store/effects/annotation.effects.js +16 -90
  81. package/esm2015/lib/store/effects/bookmarks.effects.js +12 -127
  82. package/esm2015/lib/store/effects/document.effects.js +16 -97
  83. package/esm2015/lib/store/effects/icp.effects.js +5 -63
  84. package/esm2015/lib/store/effects/index.js +1 -6
  85. package/esm2015/lib/store/effects/redaction.effects.js +26 -137
  86. package/esm2015/lib/store/models/bookmarks.interface.js +2 -57
  87. package/esm2015/lib/store/models/filters.interface.js +2 -17
  88. package/esm2015/lib/store/reducers/annotations.reducer.js +14 -129
  89. package/esm2015/lib/store/reducers/bookmarks.reducer.js +12 -99
  90. package/esm2015/lib/store/reducers/document.reducer.js +10 -129
  91. package/esm2015/lib/store/reducers/icp.reducer.js +6 -47
  92. package/esm2015/lib/store/reducers/redaction.reducer.js +7 -73
  93. package/esm2015/lib/store/reducers/reducers.js +7 -31
  94. package/esm2015/lib/store/reducers/tags.reducer.js +12 -102
  95. package/esm2015/lib/store/selectors/annotation.selectors.js +29 -118
  96. package/esm2015/lib/store/selectors/bookmark.selectors.js +12 -51
  97. package/esm2015/lib/store/selectors/document.selectors.js +5 -26
  98. package/esm2015/lib/store/selectors/icp.selectors.js +9 -38
  99. package/esm2015/lib/store/selectors/redaction.selectors.js +10 -45
  100. package/esm2015/lib/store/selectors/tag.selectors.js +6 -28
  101. package/esm2015/lib/store/store-utils.js +26 -156
  102. package/esm2015/lib/toolbar/icp-event.service.js +13 -48
  103. package/esm2015/lib/toolbar/icp-toolbar/icp-toolbar.component.js +4 -56
  104. package/esm2015/lib/toolbar/main-toolbar/main-toolbar.component.js +10 -177
  105. package/esm2015/lib/toolbar/redaction-toolbar/redaction-toolbar.component.js +9 -59
  106. package/esm2015/lib/toolbar/search-bar/search-bar.component.js +11 -85
  107. package/esm2015/lib/toolbar/toolbar-button-visibility.service.js +2 -46
  108. package/esm2015/lib/toolbar/toolbar-event.service.js +17 -174
  109. package/esm2015/lib/toolbar/toolbar.module.js +1 -5
  110. package/esm2015/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.js +5 -75
  111. package/esm2015/lib/viewers/convertible-content-viewer/document-conversion-api.service.js +3 -34
  112. package/esm2015/lib/viewers/grab-n-drag.directive.js +1 -38
  113. package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +29 -196
  114. package/esm2015/lib/viewers/multimedia-player/multimedia-player.component.js +3 -55
  115. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +61 -240
  116. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +2 -40
  117. package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +34 -302
  118. package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +12 -107
  119. package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.js +2 -39
  120. package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +16 -25
  121. package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js +2 -31
  122. package/esm2015/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +16 -73
  123. package/esm2015/lib/viewers/rotation-persist/rotation-api.service.js +2 -35
  124. package/esm2015/lib/viewers/rotation-persist/rotation-persist.directive.js +8 -87
  125. package/esm2015/lib/viewers/rotation-persist/rotation.model.js +2 -15
  126. package/esm2015/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +4 -60
  127. package/esm2015/lib/viewers/viewer-event.service.js +2 -41
  128. package/esm2015/lib/viewers/viewer-exception.model.js +7 -32
  129. package/esm2015/lib/viewers/viewer-util.service.js +2 -20
  130. package/esm2015/public_api.js +28 -32
  131. package/fesm2015/hmcts-media-viewer.js +1566 -8060
  132. package/fesm2015/hmcts-media-viewer.js.map +1 -1
  133. package/hmcts-media-viewer-v2.9.2.tgz +0 -0
  134. package/hmcts-media-viewer.d.ts +19 -18
  135. package/hmcts-media-viewer.d.ts.map +1 -0
  136. package/hmcts-media-viewer.metadata.json +1 -1
  137. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +7 -3
  138. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -0
  139. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ngfactory.d.ts.map +1 -0
  140. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +1 -0
  141. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -0
  142. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ngfactory.d.ts.map +1 -0
  143. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +1 -0
  144. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -0
  145. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ngfactory.d.ts.map +1 -0
  146. package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -0
  147. package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -0
  148. package/lib/annotations/annotation-set/annotation-set.component.ngfactory.d.ts.map +1 -0
  149. package/lib/annotations/annotation-set/annotation-set.model.d.ts +1 -0
  150. package/lib/annotations/annotation-set/annotation-set.model.d.ts.map +1 -0
  151. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +4 -3
  152. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -0
  153. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.ngfactory.d.ts.map +1 -0
  154. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +1 -0
  155. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts.map +1 -0
  156. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +5 -2
  157. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -0
  158. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ngfactory.d.ts.map +1 -0
  159. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +1 -0
  160. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts.map +1 -0
  161. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +3 -1
  162. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -0
  163. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ngfactory.d.ts.map +1 -0
  164. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -0
  165. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -0
  166. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ngfactory.d.ts.map +1 -0
  167. package/lib/annotations/annotations.module.d.ts +1 -0
  168. package/lib/annotations/annotations.module.d.ts.map +1 -0
  169. package/lib/annotations/annotations.module.ngfactory.d.ts.map +1 -0
  170. package/lib/annotations/comment-set/comment/comment.component.d.ts +7 -5
  171. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -0
  172. package/lib/annotations/comment-set/comment/comment.component.ngfactory.d.ts.map +1 -0
  173. package/lib/annotations/comment-set/comment/comment.model.d.ts +1 -0
  174. package/lib/annotations/comment-set/comment/comment.model.d.ts.map +1 -0
  175. package/lib/annotations/comment-set/comment/comment.service.d.ts +1 -0
  176. package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -0
  177. package/lib/annotations/comment-set/comment/comment.service.ngfactory.d.ts.map +1 -0
  178. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -0
  179. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -0
  180. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ngfactory.d.ts.map +1 -0
  181. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +1 -0
  182. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +1 -0
  183. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ngfactory.d.ts.map +1 -0
  184. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -0
  185. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -0
  186. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ngfactory.d.ts.map +1 -0
  187. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +1 -0
  188. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +1 -0
  189. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ngfactory.d.ts.map +1 -0
  190. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -0
  191. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +1 -0
  192. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ngfactory.d.ts.map +1 -0
  193. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -0
  194. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +1 -0
  195. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ngfactory.d.ts.map +1 -0
  196. package/lib/annotations/comment-set/comment-set-render.service.d.ts +1 -0
  197. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -0
  198. package/lib/annotations/comment-set/comment-set-render.service.ngfactory.d.ts.map +1 -0
  199. package/lib/annotations/comment-set/comment-set.component.d.ts +1 -0
  200. package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -0
  201. package/lib/annotations/comment-set/comment-set.component.ngfactory.d.ts.map +1 -0
  202. package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
  203. package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -0
  204. package/lib/annotations/comments-summary/comments-summary.component.ngfactory.d.ts.map +1 -0
  205. package/lib/annotations/models/api-persisted.model.d.ts +1 -0
  206. package/lib/annotations/models/api-persisted.model.d.ts.map +1 -0
  207. package/lib/annotations/models/event-select.model.d.ts +1 -0
  208. package/lib/annotations/models/event-select.model.d.ts.map +1 -0
  209. package/lib/annotations/models/tags.model.d.ts +1 -0
  210. package/lib/annotations/models/tags.model.d.ts.map +1 -0
  211. package/lib/annotations/models/user.model.d.ts +1 -0
  212. package/lib/annotations/models/user.model.d.ts.map +1 -0
  213. package/lib/annotations/pipes/date/date.pipe.d.ts +2 -1
  214. package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -0
  215. package/lib/annotations/pipes/date/date.pipe.ngfactory.d.ts.map +1 -0
  216. package/lib/annotations/pipes/filter/filter.pipe.d.ts +1 -0
  217. package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -0
  218. package/lib/annotations/pipes/filter/filter.pipe.ngfactory.d.ts.map +1 -0
  219. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +1 -0
  220. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -0
  221. package/lib/annotations/pipes/unsnake/unsnake.pipe.ngfactory.d.ts.map +1 -0
  222. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +3 -2
  223. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -0
  224. package/lib/annotations/services/annotation-api/annotation-api.service.ngfactory.d.ts.map +1 -0
  225. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +1 -0
  226. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -0
  227. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.ngfactory.d.ts.map +1 -0
  228. package/lib/annotations/services/tags/tags.services.d.ts +1 -0
  229. package/lib/annotations/services/tags/tags.services.d.ts.map +1 -0
  230. package/lib/annotations/services/tags/tags.services.ngfactory.d.ts.map +1 -0
  231. package/lib/annotations/tags/tags.component.d.ts +3 -2
  232. package/lib/annotations/tags/tags.component.d.ts.map +1 -0
  233. package/lib/annotations/tags/tags.component.ngfactory.d.ts.map +1 -0
  234. package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -0
  235. package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -0
  236. package/lib/bookmark/components/bookmark-icons.component.ngfactory.d.ts.map +1 -0
  237. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +1 -0
  238. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -0
  239. package/lib/icp/confirm-exit/confirm-action-dialog.component.ngfactory.d.ts.map +1 -0
  240. package/lib/icp/icp-follower.service.d.ts +1 -0
  241. package/lib/icp/icp-follower.service.d.ts.map +1 -0
  242. package/lib/icp/icp-follower.service.ngfactory.d.ts.map +1 -0
  243. package/lib/icp/icp-presenter.service.d.ts +1 -0
  244. package/lib/icp/icp-presenter.service.d.ts.map +1 -0
  245. package/lib/icp/icp-presenter.service.ngfactory.d.ts.map +1 -0
  246. package/lib/icp/icp-session-api.service.d.ts +1 -0
  247. package/lib/icp/icp-session-api.service.d.ts.map +1 -0
  248. package/lib/icp/icp-session-api.service.ngfactory.d.ts.map +1 -0
  249. package/lib/icp/icp-update.service.d.ts +1 -9
  250. package/lib/icp/icp-update.service.d.ts.map +1 -0
  251. package/lib/icp/icp-update.service.ngfactory.d.ts.map +1 -0
  252. package/lib/icp/icp.events.d.ts +14 -0
  253. package/lib/icp/icp.events.d.ts.map +1 -0
  254. package/lib/icp/icp.interfaces.d.ts +2 -0
  255. package/lib/icp/icp.interfaces.d.ts.map +1 -0
  256. package/lib/icp/icp.service.d.ts +1 -0
  257. package/lib/icp/icp.service.d.ts.map +1 -0
  258. package/lib/icp/icp.service.ngfactory.d.ts.map +1 -0
  259. package/lib/icp/participants-list/participants-list.component.d.ts +1 -0
  260. package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -0
  261. package/lib/icp/participants-list/participants-list.component.ngfactory.d.ts.map +1 -0
  262. package/lib/icp/socket.service.d.ts +14 -4
  263. package/lib/icp/socket.service.d.ts.map +1 -0
  264. package/lib/icp/socket.service.ngfactory.d.ts.map +1 -0
  265. package/lib/media-viewer.component.d.ts +1 -0
  266. package/lib/media-viewer.component.d.ts.map +1 -0
  267. package/lib/media-viewer.component.ngfactory.d.ts.map +1 -0
  268. package/lib/media-viewer.module.d.ts +1 -0
  269. package/lib/media-viewer.module.d.ts.map +1 -0
  270. package/lib/media-viewer.module.ngfactory.d.ts.map +1 -0
  271. package/lib/print.service.d.ts +1 -0
  272. package/lib/print.service.d.ts.map +1 -0
  273. package/lib/print.service.ngfactory.d.ts.map +1 -0
  274. package/lib/redaction/components/redaction.component.d.ts +1 -0
  275. package/lib/redaction/components/redaction.component.d.ts.map +1 -0
  276. package/lib/redaction/components/redaction.component.ngfactory.d.ts.map +1 -0
  277. package/lib/redaction/services/redaction-api.service.d.ts +1 -0
  278. package/lib/redaction/services/redaction-api.service.d.ts.map +1 -0
  279. package/lib/redaction/services/redaction-api.service.ngfactory.d.ts.map +1 -0
  280. package/lib/redaction/services/redaction.model.d.ts +1 -0
  281. package/lib/redaction/services/redaction.model.d.ts.map +1 -0
  282. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +1 -0
  283. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -0
  284. package/lib/shared/gov-uk-date/gov-uk-date.component.ngfactory.d.ts.map +1 -0
  285. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -0
  286. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -0
  287. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ngfactory.d.ts.map +1 -0
  288. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -0
  289. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -0
  290. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ngfactory.d.ts.map +1 -0
  291. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +1 -0
  292. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -0
  293. package/lib/shared/gov-uk-label/gov-uk-label.component.ngfactory.d.ts.map +1 -0
  294. package/lib/shared/shared.module.d.ts +1 -0
  295. package/lib/shared/shared.module.d.ts.map +1 -0
  296. package/lib/shared/shared.module.ngfactory.d.ts.map +1 -0
  297. package/lib/shared/util/helpers/html-templates.helper.d.ts +1 -0
  298. package/lib/shared/util/helpers/html-templates.helper.d.ts.map +1 -0
  299. package/lib/shared/util/services/number.helper.service.d.ts +1 -0
  300. package/lib/shared/util/services/number.helper.service.d.ts.map +1 -0
  301. package/lib/shared/util/services/number.helper.service.ngfactory.d.ts.map +1 -0
  302. package/lib/store/actions/annotation.actions.d.ts +1 -0
  303. package/lib/store/actions/annotation.actions.d.ts.map +1 -0
  304. package/lib/store/actions/bookmark.actions.d.ts +1 -0
  305. package/lib/store/actions/bookmark.actions.d.ts.map +1 -0
  306. package/lib/store/actions/document.actions.d.ts +1 -0
  307. package/lib/store/actions/document.actions.d.ts.map +1 -0
  308. package/lib/store/actions/icp.actions.d.ts +1 -0
  309. package/lib/store/actions/icp.actions.d.ts.map +1 -0
  310. package/lib/store/actions/redaction.actions.d.ts +1 -0
  311. package/lib/store/actions/redaction.actions.d.ts.map +1 -0
  312. package/lib/store/actions/tag.actions.d.ts +1 -0
  313. package/lib/store/actions/tag.actions.d.ts.map +1 -0
  314. package/lib/store/bookmarks-store-utils.d.ts +1 -0
  315. package/lib/store/bookmarks-store-utils.d.ts.map +1 -0
  316. package/lib/store/effects/annotation.effects.d.ts +1 -0
  317. package/lib/store/effects/annotation.effects.d.ts.map +1 -0
  318. package/lib/store/effects/annotation.effects.ngfactory.d.ts.map +1 -0
  319. package/lib/store/effects/bookmarks.effects.d.ts +1 -0
  320. package/lib/store/effects/bookmarks.effects.d.ts.map +1 -0
  321. package/lib/store/effects/bookmarks.effects.ngfactory.d.ts.map +1 -0
  322. package/lib/store/effects/document.effects.d.ts +1 -0
  323. package/lib/store/effects/document.effects.d.ts.map +1 -0
  324. package/lib/store/effects/document.effects.ngfactory.d.ts.map +1 -0
  325. package/lib/store/effects/icp.effects.d.ts +1 -0
  326. package/lib/store/effects/icp.effects.d.ts.map +1 -0
  327. package/lib/store/effects/icp.effects.ngfactory.d.ts.map +1 -0
  328. package/lib/store/effects/index.d.ts +1 -0
  329. package/lib/store/effects/index.d.ts.map +1 -0
  330. package/lib/store/effects/redaction.effects.d.ts +1 -0
  331. package/lib/store/effects/redaction.effects.d.ts.map +1 -0
  332. package/lib/store/effects/redaction.effects.ngfactory.d.ts.map +1 -0
  333. package/lib/store/models/bookmarks.interface.d.ts +1 -0
  334. package/lib/store/models/bookmarks.interface.d.ts.map +1 -0
  335. package/lib/store/models/filters.interface.d.ts +1 -0
  336. package/lib/store/models/filters.interface.d.ts.map +1 -0
  337. package/lib/store/reducers/annotations.reducer.d.ts +1 -0
  338. package/lib/store/reducers/annotations.reducer.d.ts.map +1 -0
  339. package/lib/store/reducers/bookmarks.reducer.d.ts +1 -0
  340. package/lib/store/reducers/bookmarks.reducer.d.ts.map +1 -0
  341. package/lib/store/reducers/document.reducer.d.ts +1 -0
  342. package/lib/store/reducers/document.reducer.d.ts.map +1 -0
  343. package/lib/store/reducers/icp.reducer.d.ts +1 -0
  344. package/lib/store/reducers/icp.reducer.d.ts.map +1 -0
  345. package/lib/store/reducers/redaction.reducer.d.ts +1 -0
  346. package/lib/store/reducers/redaction.reducer.d.ts.map +1 -0
  347. package/lib/store/reducers/reducers.d.ts +2 -1
  348. package/lib/store/reducers/reducers.d.ts.map +1 -0
  349. package/lib/store/reducers/tags.reducer.d.ts +1 -0
  350. package/lib/store/reducers/tags.reducer.d.ts.map +1 -0
  351. package/lib/store/selectors/annotation.selectors.d.ts +54 -15
  352. package/lib/store/selectors/annotation.selectors.d.ts.map +1 -0
  353. package/lib/store/selectors/bookmark.selectors.d.ts +18 -7
  354. package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -0
  355. package/lib/store/selectors/document.selectors.d.ts +15 -9
  356. package/lib/store/selectors/document.selectors.d.ts.map +1 -0
  357. package/lib/store/selectors/icp.selectors.d.ts +9 -8
  358. package/lib/store/selectors/icp.selectors.d.ts.map +1 -0
  359. package/lib/store/selectors/redaction.selectors.d.ts +18 -7
  360. package/lib/store/selectors/redaction.selectors.d.ts.map +1 -0
  361. package/lib/store/selectors/tag.selectors.d.ts +16 -6
  362. package/lib/store/selectors/tag.selectors.d.ts.map +1 -0
  363. package/lib/store/store-utils.d.ts +1 -0
  364. package/lib/store/store-utils.d.ts.map +1 -0
  365. package/lib/toolbar/icp-event.service.d.ts +1 -0
  366. package/lib/toolbar/icp-event.service.d.ts.map +1 -0
  367. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +1 -0
  368. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -0
  369. package/lib/toolbar/icp-toolbar/icp-toolbar.component.ngfactory.d.ts.map +1 -0
  370. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -0
  371. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -0
  372. package/lib/toolbar/main-toolbar/main-toolbar.component.ngfactory.d.ts.map +1 -0
  373. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +2 -0
  374. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -0
  375. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ngfactory.d.ts.map +1 -0
  376. package/lib/toolbar/search-bar/search-bar.component.d.ts +2 -0
  377. package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -0
  378. package/lib/toolbar/search-bar/search-bar.component.ngfactory.d.ts.map +1 -0
  379. package/lib/toolbar/toolbar-button-visibility.service.d.ts +1 -0
  380. package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -0
  381. package/lib/toolbar/toolbar-button-visibility.service.ngfactory.d.ts.map +1 -0
  382. package/lib/toolbar/toolbar-event.service.d.ts +3 -0
  383. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -0
  384. package/lib/toolbar/toolbar-event.service.ngfactory.d.ts.map +1 -0
  385. package/lib/toolbar/toolbar.module.d.ts +1 -0
  386. package/lib/toolbar/toolbar.module.d.ts.map +1 -0
  387. package/lib/toolbar/toolbar.module.ngfactory.d.ts.map +1 -0
  388. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -0
  389. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -0
  390. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ngfactory.d.ts.map +1 -0
  391. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +1 -0
  392. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -0
  393. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.ngfactory.d.ts.map +1 -0
  394. package/lib/viewers/grab-n-drag.directive.d.ts +1 -0
  395. package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -0
  396. package/lib/viewers/grab-n-drag.directive.ngfactory.d.ts.map +1 -0
  397. package/lib/viewers/image-viewer/image-viewer.component.d.ts +5 -1
  398. package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -0
  399. package/lib/viewers/image-viewer/image-viewer.component.ngfactory.d.ts.map +1 -0
  400. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -0
  401. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -0
  402. package/lib/viewers/multimedia-player/multimedia-player.component.ngfactory.d.ts.map +1 -0
  403. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +5 -0
  404. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -0
  405. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +1 -0
  406. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -0
  407. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ngfactory.d.ts.map +1 -0
  408. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +6 -2
  409. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -0
  410. package/lib/viewers/pdf-viewer/pdf-viewer.component.ngfactory.d.ts.map +1 -0
  411. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +2 -1
  412. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -0
  413. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ngfactory.d.ts.map +1 -0
  414. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +1 -0
  415. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts.map +1 -0
  416. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +7 -0
  417. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +1 -0
  418. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ngfactory.d.ts.map +1 -0
  419. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +3 -1
  420. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +1 -0
  421. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +4 -0
  422. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -0
  423. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.ngfactory.d.ts.map +1 -0
  424. package/lib/viewers/rotation-persist/rotation-api.service.d.ts +1 -0
  425. package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -0
  426. package/lib/viewers/rotation-persist/rotation-api.service.ngfactory.d.ts.map +1 -0
  427. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +1 -0
  428. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -0
  429. package/lib/viewers/rotation-persist/rotation-persist.directive.ngfactory.d.ts.map +1 -0
  430. package/lib/viewers/rotation-persist/rotation.model.d.ts +1 -0
  431. package/lib/viewers/rotation-persist/rotation.model.d.ts.map +1 -0
  432. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -0
  433. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -0
  434. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.ngfactory.d.ts.map +1 -0
  435. package/lib/viewers/viewer-event.service.d.ts +1 -0
  436. package/lib/viewers/viewer-event.service.d.ts.map +1 -0
  437. package/lib/viewers/viewer-event.service.ngfactory.d.ts.map +1 -0
  438. package/lib/viewers/viewer-exception.model.d.ts +1 -0
  439. package/lib/viewers/viewer-exception.model.d.ts.map +1 -0
  440. package/lib/viewers/viewer-util.service.d.ts +1 -0
  441. package/lib/viewers/viewer-util.service.d.ts.map +1 -0
  442. package/lib/viewers/viewer-util.service.ngfactory.d.ts.map +1 -0
  443. package/package.json +16 -17
  444. package/public_api.d.ts +1 -0
  445. package/public_api.d.ts.map +1 -0
  446. package/esm5/hmcts-media-viewer.js +0 -67
  447. package/esm5/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +0 -215
  448. package/esm5/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +0 -236
  449. package/esm5/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +0 -125
  450. package/esm5/lib/annotations/annotation-set/annotation-set.component.js +0 -109
  451. package/esm5/lib/annotations/annotation-set/annotation-set.model.js +0 -15
  452. package/esm5/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +0 -177
  453. package/esm5/lib/annotations/annotation-set/annotation-view/annotation.model.js +0 -29
  454. package/esm5/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +0 -250
  455. package/esm5/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.js +0 -21
  456. package/esm5/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +0 -216
  457. package/esm5/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +0 -200
  458. package/esm5/lib/annotations/annotations.module.js +0 -109
  459. package/esm5/lib/annotations/comment-set/comment/comment.component.js +0 -353
  460. package/esm5/lib/annotations/comment-set/comment/comment.model.js +0 -27
  461. package/esm5/lib/annotations/comment-set/comment/comment.service.js +0 -125
  462. package/esm5/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.js +0 -98
  463. package/esm5/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.js +0 -63
  464. package/esm5/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +0 -174
  465. package/esm5/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.js +0 -145
  466. package/esm5/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.js +0 -117
  467. package/esm5/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +0 -131
  468. package/esm5/lib/annotations/comment-set/comment-set-render.service.js +0 -177
  469. package/esm5/lib/annotations/comment-set/comment-set.component.js +0 -295
  470. package/esm5/lib/annotations/comments-summary/comments-summary.component.js +0 -239
  471. package/esm5/lib/annotations/models/api-persisted.model.js +0 -25
  472. package/esm5/lib/annotations/models/event-select.model.js +0 -17
  473. package/esm5/lib/annotations/models/tags.model.js +0 -19
  474. package/esm5/lib/annotations/models/user.model.js +0 -17
  475. package/esm5/lib/annotations/pipes/date/date.pipe.js +0 -48
  476. package/esm5/lib/annotations/pipes/filter/filter.pipe.js +0 -52
  477. package/esm5/lib/annotations/pipes/unsnake/unsnake.pipe.js +0 -28
  478. package/esm5/lib/annotations/services/annotation-api/annotation-api.service.js +0 -188
  479. package/esm5/lib/annotations/services/bookmarks-api/bookmarks-api.service.js +0 -132
  480. package/esm5/lib/annotations/services/tags/tags.services.js +0 -102
  481. package/esm5/lib/annotations/tags/tags.component.js +0 -112
  482. package/esm5/lib/bookmark/components/bookmark-icons.component.js +0 -55
  483. package/esm5/lib/icp/confirm-exit/confirm-action-dialog.component.js +0 -50
  484. package/esm5/lib/icp/icp-follower.service.js +0 -135
  485. package/esm5/lib/icp/icp-presenter.service.js +0 -135
  486. package/esm5/lib/icp/icp-session-api.service.js +0 -49
  487. package/esm5/lib/icp/icp-update.service.js +0 -165
  488. package/esm5/lib/icp/icp.interfaces.js +0 -51
  489. package/esm5/lib/icp/icp.service.js +0 -261
  490. package/esm5/lib/icp/participants-list/participants-list.component.js +0 -77
  491. package/esm5/lib/icp/socket.service.js +0 -142
  492. package/esm5/lib/media-viewer.component.js +0 -424
  493. package/esm5/lib/media-viewer.module.js +0 -110
  494. package/esm5/lib/print.service.js +0 -53
  495. package/esm5/lib/redaction/components/redaction.component.js +0 -247
  496. package/esm5/lib/redaction/services/redaction-api.service.js +0 -133
  497. package/esm5/lib/redaction/services/redaction.model.js +0 -19
  498. package/esm5/lib/shared/gov-uk-date/gov-uk-date.component.js +0 -37
  499. package/esm5/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +0 -36
  500. package/esm5/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -49
  501. package/esm5/lib/shared/gov-uk-label/gov-uk-label.component.js +0 -33
  502. package/esm5/lib/shared/shared.module.js +0 -42
  503. package/esm5/lib/shared/util/helpers/html-templates.helper.js +0 -36
  504. package/esm5/lib/shared/util/services/number.helper.service.js +0 -39
  505. package/esm5/lib/store/actions/annotation.actions.js +0 -226
  506. package/esm5/lib/store/actions/bookmark.actions.js +0 -242
  507. package/esm5/lib/store/actions/document.actions.js +0 -210
  508. package/esm5/lib/store/actions/icp.actions.js +0 -130
  509. package/esm5/lib/store/actions/redaction.actions.js +0 -255
  510. package/esm5/lib/store/actions/tag.actions.js +0 -50
  511. package/esm5/lib/store/bookmarks-store-utils.js +0 -110
  512. package/esm5/lib/store/effects/annotation.effects.js +0 -128
  513. package/esm5/lib/store/effects/bookmarks.effects.js +0 -193
  514. package/esm5/lib/store/effects/document.effects.js +0 -138
  515. package/esm5/lib/store/effects/icp.effects.js +0 -97
  516. package/esm5/lib/store/effects/index.js +0 -12
  517. package/esm5/lib/store/effects/redaction.effects.js +0 -190
  518. package/esm5/lib/store/models/bookmarks.interface.js +0 -57
  519. package/esm5/lib/store/models/filters.interface.js +0 -17
  520. package/esm5/lib/store/reducers/annotations.reducer.js +0 -231
  521. package/esm5/lib/store/reducers/bookmarks.reducer.js +0 -170
  522. package/esm5/lib/store/reducers/document.reducer.js +0 -222
  523. package/esm5/lib/store/reducers/icp.reducer.js +0 -83
  524. package/esm5/lib/store/reducers/redaction.reducer.js +0 -134
  525. package/esm5/lib/store/reducers/reducers.js +0 -47
  526. package/esm5/lib/store/reducers/tags.reducer.js +0 -159
  527. package/esm5/lib/store/selectors/annotation.selectors.js +0 -175
  528. package/esm5/lib/store/selectors/bookmark.selectors.js +0 -78
  529. package/esm5/lib/store/selectors/document.selectors.js +0 -37
  530. package/esm5/lib/store/selectors/icp.selectors.js +0 -47
  531. package/esm5/lib/store/selectors/redaction.selectors.js +0 -65
  532. package/esm5/lib/store/selectors/tag.selectors.js +0 -40
  533. package/esm5/lib/store/store-utils.js +0 -296
  534. package/esm5/lib/toolbar/icp-event.service.js +0 -65
  535. package/esm5/lib/toolbar/icp-toolbar/icp-toolbar.component.js +0 -112
  536. package/esm5/lib/toolbar/main-toolbar/main-toolbar.component.js +0 -408
  537. package/esm5/lib/toolbar/redaction-toolbar/redaction-toolbar.component.js +0 -130
  538. package/esm5/lib/toolbar/search-bar/search-bar.component.js +0 -226
  539. package/esm5/lib/toolbar/toolbar-button-visibility.service.js +0 -146
  540. package/esm5/lib/toolbar/toolbar-event.service.js +0 -416
  541. package/esm5/lib/toolbar/toolbar.module.js +0 -50
  542. package/esm5/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.js +0 -168
  543. package/esm5/lib/viewers/convertible-content-viewer/document-conversion-api.service.js +0 -57
  544. package/esm5/lib/viewers/grab-n-drag.directive.js +0 -98
  545. package/esm5/lib/viewers/image-viewer/image-viewer.component.js +0 -402
  546. package/esm5/lib/viewers/multimedia-player/multimedia-player.component.js +0 -125
  547. package/esm5/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +0 -446
  548. package/esm5/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +0 -87
  549. package/esm5/lib/viewers/pdf-viewer/pdf-viewer.component.js +0 -582
  550. package/esm5/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +0 -251
  551. package/esm5/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.js +0 -39
  552. package/esm5/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +0 -62
  553. package/esm5/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js +0 -31
  554. package/esm5/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +0 -146
  555. package/esm5/lib/viewers/rotation-persist/rotation-api.service.js +0 -68
  556. package/esm5/lib/viewers/rotation-persist/rotation-persist.directive.js +0 -163
  557. package/esm5/lib/viewers/rotation-persist/rotation.model.js +0 -15
  558. package/esm5/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +0 -120
  559. package/esm5/lib/viewers/viewer-event.service.js +0 -86
  560. package/esm5/lib/viewers/viewer-exception.model.js +0 -36
  561. package/esm5/lib/viewers/viewer-util.service.js +0 -44
  562. package/esm5/public_api.js +0 -35
  563. package/fesm5/hmcts-media-viewer.js +0 -14160
  564. package/fesm5/hmcts-media-viewer.js.map +0 -1
  565. package/hmcts-media-viewer-v2.8.2.tgz +0 -0
@@ -1,112 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Component } from '@angular/core';
6
- import { ToolbarEventService } from '../toolbar-event.service';
7
- import { select, Store } from '@ngrx/store';
8
- import * as fromIcpSelectors from '../../store/selectors/icp.selectors';
9
- var IcpToolbarComponent = /** @class */ (function () {
10
- function IcpToolbarComponent(toolbarEventService, store) {
11
- this.toolbarEventService = toolbarEventService;
12
- this.store = store;
13
- }
14
- /**
15
- * @return {?}
16
- */
17
- IcpToolbarComponent.prototype.ngOnInit = /**
18
- * @return {?}
19
- */
20
- function () {
21
- var _this = this;
22
- this.$subscription = this.store.pipe(select(fromIcpSelectors.isPresenter))
23
- .subscribe((/**
24
- * @param {?} isPresenter
25
- * @return {?}
26
- */
27
- function (isPresenter) { return _this.isPresenter = isPresenter; }));
28
- this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenterName))
29
- .subscribe((/**
30
- * @param {?} name
31
- * @return {?}
32
- */
33
- function (name) { return _this.presenterName = name; })));
34
- };
35
- /**
36
- * @return {?}
37
- */
38
- IcpToolbarComponent.prototype.ngOnDestroy = /**
39
- * @return {?}
40
- */
41
- function () {
42
- this.$subscription.unsubscribe();
43
- };
44
- /**
45
- * @return {?}
46
- */
47
- IcpToolbarComponent.prototype.present = /**
48
- * @return {?}
49
- */
50
- function () {
51
- this.toolbarEventService.icp.becomePresenter();
52
- };
53
- /**
54
- * @return {?}
55
- */
56
- IcpToolbarComponent.prototype.stopPresenting = /**
57
- * @return {?}
58
- */
59
- function () {
60
- this.toolbarEventService.icp.stopPresenting();
61
- };
62
- /**
63
- * @return {?}
64
- */
65
- IcpToolbarComponent.prototype.leaveIcpSession = /**
66
- * @return {?}
67
- */
68
- function () {
69
- this.toolbarEventService.icp.leaveSession();
70
- };
71
- /**
72
- * @return {?}
73
- */
74
- IcpToolbarComponent.prototype.showParticipantsList = /**
75
- * @return {?}
76
- */
77
- function () {
78
- this.toolbarEventService.toggleParticipantsList(!this.toolbarEventService.icp.participantsListVisible.getValue());
79
- };
80
- IcpToolbarComponent.decorators = [
81
- { type: Component, args: [{
82
- selector: 'mv-icp-toolbar',
83
- template: "<div id=\"icp-toolbar\" class=\"icpMode\">\n <div id=\"toolbar-title\">\n <label class=\"govuk-label\" data-l10n-id=\"digitalEvidence_label\">Digital evidence presentation</label>\n </div>\n\n <div id=\"presentation-mode\">\n <div class=\"item-label\">\n <label class=\"govuk-label\" data-l10n-id=\"icpInfo_label\">You are in presentation mode</label>\n </div>\n <div class=\"item-button\">\n <button class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" tabindex=\"0\"\n title=\"Leave presentation\" (click)=\"leaveIcpSession()\">\n <span data-l10n-id=\"icp-leave-presentation_label\">Leave presentation</span>\n </button>\n </div>\n </div>\n\n <div id=\"presenter-info\">\n <div class=\"item-label\">\n <label class=\"govuk-label\" *ngIf=\"!presenterName\" data-l10n-id=\"noPresenter_label\">Waiting for presenter</label>\n <label class=\"govuk-label\" *ngIf=\"presenterName && isPresenter\" data-l10n-id=\"isPresenter_label\">You are\n presenting</label>\n <label class=\"govuk-label\" *ngIf=\"presenterName && !isPresenter\"\n data-l10n-id=\"otherPresenter_label\">{{ presenterName | titlecase }}\n is presenting</label>\n </div>\n <div class=\"item-button\">\n <button *ngIf=\"!presenterName\" class=\"govuk-button\" id=\"icp-present\" tabindex=\"0\" title=\"Present\"\n (click)=\"present()\">\n <span data-l10n-id=\"icp-present_label\">Start presenting</span>\n </button>\n <button *ngIf=\"isPresenter\" class=\"govuk-button govuk-button--warning\" id=\"icp-stop-presenting\" tabindex=\"0\"\n title=\"Stop presenting\" (click)=\"stopPresenting()\">\n <span data-l10n-id=\"icp-stop-presenting_label\">Stop Presenting</span>\n </button>\n </div>\n </div>\n\n <div id=\"participant-list\">\n <button class=\"govuk-button govuk-button--secondary\" id=\"icp-participants-list\" tabindex=\"0\"\n title=\"Participants list\" (click)=\"showParticipantsList()\">\n <span\n data-l10n-id=\"icp-stop-presenting_label\">{{(toolbarEventService.icp.participantsListVisible | async) ? 'Hide': 'Show'}}\n participants</span>\n </button>\n </div>\n</div>"
84
- }] }
85
- ];
86
- /** @nocollapse */
87
- IcpToolbarComponent.ctorParameters = function () { return [
88
- { type: ToolbarEventService },
89
- { type: Store }
90
- ]; };
91
- return IcpToolbarComponent;
92
- }());
93
- export { IcpToolbarComponent };
94
- if (false) {
95
- /** @type {?} */
96
- IcpToolbarComponent.prototype.presenterName;
97
- /** @type {?} */
98
- IcpToolbarComponent.prototype.isPresenter;
99
- /**
100
- * @type {?}
101
- * @private
102
- */
103
- IcpToolbarComponent.prototype.$subscription;
104
- /** @type {?} */
105
- IcpToolbarComponent.prototype.toolbarEventService;
106
- /**
107
- * @type {?}
108
- * @private
109
- */
110
- IcpToolbarComponent.prototype.store;
111
- }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL21lZGlhLXZpZXdlci8iLCJzb3VyY2VzIjpbImxpYi90b29sYmFyL2ljcC10b29sYmFyL2ljcC10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLHFDQUFxQyxDQUFDO0FBSXhFO0lBV0UsNkJBQTRCLG1CQUF3QyxFQUNoRCxLQUFzQjtRQURkLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDaEQsVUFBSyxHQUFMLEtBQUssQ0FBaUI7SUFBRyxDQUFDOzs7O0lBRTlDLHNDQUFROzs7SUFBUjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDdkUsU0FBUzs7OztRQUFDLFVBQUEsV0FBVyxJQUFJLE9BQUEsS0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEVBQTlCLENBQThCLEVBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUM5RSxTQUFTOzs7O1FBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxLQUFJLENBQUMsYUFBYSxHQUFHLElBQUksRUFBekIsQ0FBeUIsRUFBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7OztJQUVELHlDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztJQUVELHFDQUFPOzs7SUFBUDtRQUNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDakQsQ0FBQzs7OztJQUVELDRDQUFjOzs7SUFBZDtRQUNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDaEQsQ0FBQzs7OztJQUVELDZDQUFlOzs7SUFBZjtRQUNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7OztJQUVELGtEQUFvQjs7O0lBQXBCO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BILENBQUM7O2dCQXZDRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsK3NFQUEyQztpQkFDNUM7Ozs7Z0JBVFEsbUJBQW1CO2dCQUNYLEtBQUs7O0lBNkN0QiwwQkFBQztDQUFBLEFBeENELElBd0NDO1NBcENZLG1CQUFtQjs7O0lBRTlCLDRDQUFzQjs7SUFDdEIsMENBQXFCOzs7OztJQUVyQiw0Q0FBb0M7O0lBRXhCLGtEQUF3RDs7Ozs7SUFDeEQsb0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbUljcFNlbGVjdG9ycyBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvaWNwLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljcFN0YXRlIH0gZnJvbSAnLi4vLi4vaWNwL2ljcC5pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtaWNwLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNwLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEljcFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJlc2VudGVyTmFtZTogc3RyaW5nO1xuICBpc1ByZXNlbnRlcjogYm9vbGVhbjtcblxuICBwcml2YXRlICRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50U2VydmljZTogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8SWNwU3RhdGU+KSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUljcFNlbGVjdG9ycy5pc1ByZXNlbnRlcikpXG4gICAgICAuc3Vic2NyaWJlKGlzUHJlc2VudGVyID0+IHRoaXMuaXNQcmVzZW50ZXIgPSBpc1ByZXNlbnRlcik7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21JY3BTZWxlY3RvcnMuZ2V0UHJlc2VudGVyTmFtZSkpXG4gICAgICAuc3Vic2NyaWJlKG5hbWUgPT4gdGhpcy5wcmVzZW50ZXJOYW1lID0gbmFtZSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcmVzZW50KCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5pY3AuYmVjb21lUHJlc2VudGVyKCk7XG4gIH1cblxuICBzdG9wUHJlc2VudGluZygpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudFNlcnZpY2UuaWNwLnN0b3BQcmVzZW50aW5nKCk7XG4gIH1cblxuICBsZWF2ZUljcFNlc3Npb24oKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRTZXJ2aWNlLmljcC5sZWF2ZVNlc3Npb24oKTtcbiAgfVxuXG4gIHNob3dQYXJ0aWNpcGFudHNMaXN0KCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS50b2dnbGVQYXJ0aWNpcGFudHNMaXN0KCF0aGlzLnRvb2xiYXJFdmVudFNlcnZpY2UuaWNwLnBhcnRpY2lwYW50c0xpc3RWaXNpYmxlLmdldFZhbHVlKCkpO1xuICB9XG59XG4iXX0=
@@ -1,408 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { __values } from "tslib";
6
- import { ConnectionPositionPair } from '@angular/cdk/overlay';
7
- import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, ViewChild } from '@angular/core';
8
- import { ToolbarEventService } from '../toolbar-event.service';
9
- import { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';
10
- import { NumberHelperService } from '../../../lib/shared/util/services/number.helper.service';
11
- var MainToolbarComponent = /** @class */ (function () {
12
- function MainToolbarComponent(toolbarEvents, toolbarButtons, cdr, numberHelper) {
13
- this.toolbarEvents = toolbarEvents;
14
- this.toolbarButtons = toolbarButtons;
15
- this.cdr = cdr;
16
- this.numberHelper = numberHelper;
17
- this.enableAnnotations = false;
18
- this.enableRedactions = false;
19
- this.enableICP = false;
20
- this.contentType = null;
21
- this.subscriptions = [];
22
- this.icpEnabled = false;
23
- this.redactionEnabled = false;
24
- this.pageNumber = 1;
25
- this.pageCount = 0;
26
- this.isDropdownMenuOpen = false;
27
- this.dropdownMenuPositions = [
28
- new ConnectionPositionPair({
29
- originX: 'end',
30
- originY: 'bottom'
31
- }, {
32
- overlayX: 'end',
33
- overlayY: 'top'
34
- }, 0, 3)
35
- ];
36
- this.zoomScales = [0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2.5, 3, 5];
37
- this.allButtonsWidth = 0;
38
- this.widthRequiredForBtn = {};
39
- }
40
- /**
41
- * @return {?}
42
- */
43
- MainToolbarComponent.prototype.ngOnInit = /**
44
- * @return {?}
45
- */
46
- function () {
47
- var _this = this;
48
- this.subscriptions.push(this.toolbarEvents.setCurrentPageSubject.subscribe((/**
49
- * @param {?} pageNumber
50
- * @return {?}
51
- */
52
- function (pageNumber) { return _this.setCurrentPage(pageNumber); })), this.toolbarEvents.setCurrentPageInputValueSubject.subscribe((/**
53
- * @param {?} pageNumber
54
- * @return {?}
55
- */
56
- function (pageNumber) { return _this.pageNumber = pageNumber; })), this.toolbarEvents.getPageCount().subscribe((/**
57
- * @param {?} count
58
- * @return {?}
59
- */
60
- function (count) { return _this.pageCount = count; })), this.toolbarEvents.icp.enabled.subscribe((/**
61
- * @param {?} enabled
62
- * @return {?}
63
- */
64
- function (enabled) {
65
- _this.icpEnabled = enabled;
66
- if (_this.icpEnabled) {
67
- _this.toolbarEvents.toggleCommentsPanel(!enabled);
68
- _this.toolbarEvents.sidebarOpen.next(false);
69
- }
70
- })), this.toolbarEvents.redactionMode.subscribe((/**
71
- * @param {?} enabled
72
- * @return {?}
73
- */
74
- function (enabled) {
75
- _this.redactionEnabled = enabled;
76
- })));
77
- };
78
- /**
79
- * @return {?}
80
- */
81
- MainToolbarComponent.prototype.ngOnDestroy = /**
82
- * @return {?}
83
- */
84
- function () {
85
- var e_1, _a;
86
- try {
87
- for (var _b = __values(this.subscriptions), _c = _b.next(); !_c.done; _c = _b.next()) {
88
- var subscription = _c.value;
89
- subscription.unsubscribe();
90
- }
91
- }
92
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
93
- finally {
94
- try {
95
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
96
- }
97
- finally { if (e_1) throw e_1.error; }
98
- }
99
- };
100
- /**
101
- * @return {?}
102
- */
103
- MainToolbarComponent.prototype.ngAfterViewInit = /**
104
- * @return {?}
105
- */
106
- function () {
107
- var _this = this;
108
- Array.from(this.mvToolbarMain.nativeElement.children).forEach((/**
109
- * @param {?} button
110
- * @return {?}
111
- */
112
- function (button) {
113
- _this.allButtonsWidth += button.getBoundingClientRect().width;
114
- _this.widthRequiredForBtn[button.id] = _this.allButtonsWidth;
115
- }));
116
- this.cdr.detectChanges();
117
- };
118
- /**
119
- * @return {?}
120
- */
121
- MainToolbarComponent.prototype.onResize = /**
122
- * @return {?}
123
- */
124
- function () {
125
- this.cdr.detectChanges();
126
- };
127
- /**
128
- * @return {?}
129
- */
130
- MainToolbarComponent.prototype.onClickHighlightToggle = /**
131
- * @return {?}
132
- */
133
- function () {
134
- this.toolbarEvents.toggleHighlightMode();
135
- };
136
- /**
137
- * @return {?}
138
- */
139
- MainToolbarComponent.prototype.onClickDrawToggle = /**
140
- * @return {?}
141
- */
142
- function () {
143
- this.toolbarEvents.toggleDrawMode();
144
- };
145
- /**
146
- * @return {?}
147
- */
148
- MainToolbarComponent.prototype.toggleSideBar = /**
149
- * @return {?}
150
- */
151
- function () {
152
- this.toolbarEvents.sidebarOpen.next(!this.toolbarEvents.sidebarOpen.getValue());
153
- };
154
- /**
155
- * @return {?}
156
- */
157
- MainToolbarComponent.prototype.togglePresentBar = /**
158
- * @return {?}
159
- */
160
- function () {
161
- this.toolbarEvents.searchBarHidden.next(true);
162
- this.toolbarEvents.icp.enable();
163
- };
164
- /**
165
- * @return {?}
166
- */
167
- MainToolbarComponent.prototype.increasePageNumber = /**
168
- * @return {?}
169
- */
170
- function () {
171
- this.toolbarEvents.incrementPage(1);
172
- };
173
- /**
174
- * @return {?}
175
- */
176
- MainToolbarComponent.prototype.decreasePageNumber = /**
177
- * @return {?}
178
- */
179
- function () {
180
- this.toolbarEvents.incrementPage(-1);
181
- };
182
- /**
183
- * @param {?} pageNumber
184
- * @return {?}
185
- */
186
- MainToolbarComponent.prototype.onPageNumberInputChange = /**
187
- * @param {?} pageNumber
188
- * @return {?}
189
- */
190
- function (pageNumber) {
191
- if (Number(pageNumber) < 1) {
192
- pageNumber = '1';
193
- }
194
- if (Number(pageNumber) > this.pageCount) {
195
- pageNumber = this.pageCount.toString();
196
- }
197
- this.toolbarEvents.setPage(Number.parseInt(pageNumber, 10));
198
- };
199
- /**
200
- * @private
201
- * @param {?} pageNumber
202
- * @return {?}
203
- */
204
- MainToolbarComponent.prototype.setCurrentPage = /**
205
- * @private
206
- * @param {?} pageNumber
207
- * @return {?}
208
- */
209
- function (pageNumber) {
210
- this.pageNumber = pageNumber;
211
- };
212
- /**
213
- * @param {?} rotation
214
- * @return {?}
215
- */
216
- MainToolbarComponent.prototype.rotate = /**
217
- * @param {?} rotation
218
- * @return {?}
219
- */
220
- function (rotation) {
221
- this.toolbarEvents.rotate(rotation);
222
- };
223
- /**
224
- * @return {?}
225
- */
226
- MainToolbarComponent.prototype.printFile = /**
227
- * @return {?}
228
- */
229
- function () {
230
- this.toolbarEvents.print();
231
- };
232
- /**
233
- * @return {?}
234
- */
235
- MainToolbarComponent.prototype.downloadFile = /**
236
- * @return {?}
237
- */
238
- function () {
239
- this.toolbarEvents.download();
240
- };
241
- /**
242
- * @param {?} zoomFactor
243
- * @return {?}
244
- */
245
- MainToolbarComponent.prototype.zoom = /**
246
- * @param {?} zoomFactor
247
- * @return {?}
248
- */
249
- function (zoomFactor) {
250
- this.toolbarEvents.zoom(+zoomFactor);
251
- };
252
- /**
253
- * @param {?} zoomFactor
254
- * @return {?}
255
- */
256
- MainToolbarComponent.prototype.stepZoom = /**
257
- * @param {?} zoomFactor
258
- * @return {?}
259
- */
260
- function (zoomFactor) {
261
- this.toolbarEvents.stepZoom(zoomFactor);
262
- this.zoomSelect.nativeElement.selected = 'selected';
263
- };
264
- /**
265
- * @return {?}
266
- */
267
- MainToolbarComponent.prototype.toggleCommentsPanel = /**
268
- * @return {?}
269
- */
270
- function () {
271
- this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());
272
- };
273
- /**
274
- * @return {?}
275
- */
276
- MainToolbarComponent.prototype.toggleRedactBar = /**
277
- * @return {?}
278
- */
279
- function () {
280
- this.toolbarEvents.toggleRedactionMode();
281
- };
282
- /**
283
- * @return {?}
284
- */
285
- MainToolbarComponent.prototype.toggleGrabNDrag = /**
286
- * @return {?}
287
- */
288
- function () {
289
- this.toolbarEvents.toggleGrabNDrag();
290
- };
291
- /**
292
- * @return {?}
293
- */
294
- MainToolbarComponent.prototype.isPdf = /**
295
- * @return {?}
296
- */
297
- function () {
298
- return this.contentType === 'pdf';
299
- };
300
- /**
301
- * @return {?}
302
- */
303
- MainToolbarComponent.prototype.toggleSearchBar = /**
304
- * @return {?}
305
- */
306
- function () {
307
- this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());
308
- };
309
- /**
310
- * @return {?}
311
- */
312
- MainToolbarComponent.prototype.toggleMoreOptions = /**
313
- * @return {?}
314
- */
315
- function () {
316
- var _this = this;
317
- this.isDropdownMenuOpen = !this.isDropdownMenuOpen;
318
- setTimeout((/**
319
- * @return {?}
320
- */
321
- function () {
322
- if (_this.mvMenuItems) {
323
- _this.mvMenuItems.nativeElement.focus();
324
- }
325
- }), 100);
326
- };
327
- MainToolbarComponent.decorators = [
328
- { type: Component, args: [{
329
- selector: 'mv-main-toolbar',
330
- template: "<div class=\"toolbar\">\n <div id=\"toolbarContainer\">\n <div class=\"mv-toolbar__container\">\n <div #mvToolbar class=\"mv-toolbar\" [class.notSupported]=\"!contentType\">\n <!-- The mvToolbarMain div contains all toolbar buttons except the \"More options\" button. This allows for calculation of the available space to display buttons -->\n <div id=\"mvToolbarMain\" class=\"mv-toolbar-main\" #mvToolbarMain>\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n <!-- The mvToolbarMoreOptions div contains the \"More options\" toolbar button (and the overlay template for the dropdown menu).\n The space occupied by the button (if visible) is excluded from the toolbar space available calculation -->\n <div id=\"mvToolbarMoreOptions\" class=\"mv-toolbar-more-options\">\n <button id=\"mvMoreOptionsBtn\" class=\"mv-button mv-toolbar__menu-button--more-options\"\n [class.mv-toolbar__menu-button--more-options__hidden]=\"mvToolbar.offsetWidth >= allButtonsWidth\" aria-pressed=\"false\"\n (click)=\"toggleMoreOptions()\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <span>More options</span>\n </button>\n <!-- This template displays the overlay content for the dropdown menu and is connected to the \"More options\" button -->\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownMenuOpen\" [cdkConnectedOverlayPositions]=\"dropdownMenuPositions\">\n <div class=\"dropdown-menu\" #dropdownMenu tabindex=\"0\">\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n\n <div id=\"mvMenuItems\" #mvMenuItems>\n <ng-template #menuItems>\n\n <button *ngIf=\"toolbarButtons.showSidebar\" id=\"mvIndexBtn\" title=\"Index\" data-l10n-id=\"index\" #mvIndexBtn\n class=\"mv-button mv-toolbar__menu-button--index\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvIndexBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvIndexBtn']\" aria-pressed=\"false\"\n (click)=\"toggleSideBar(); isDropdownMenuOpen = false\">\n <span>Index</span>\n </button>\n\n <button *ngIf=\"toolbarButtons.showDrawButton\" [disabled]=\"icpEnabled || redactionEnabled\" id=\"mvDrawBtn\"\n #mvDrawBtn class=\"mv-button mv-toolbar__menu-button--draw\" title=\"Draw a box\" tabindex=\"-1\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvDrawBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvDrawBtn']\"\n [class.toggled]=\"toolbarEvents.drawModeSubject | async\" aria-hidden=\"true\" aria-pressed=\"false\"\n data-l10n-id=\"toggleDrawButton\" (click)=\"onClickDrawToggle(); isDropdownMenuOpen = false\">\n <span data-l10n-id=\"draw_label\">Draw a box</span>\n </button>\n\n <button *ngIf=\"toolbarButtons.showHighlightButton\" [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvHighlightBtn\" #mvHighlightBtn class=\"mv-button mv-toolbar__menu-button--highlight\" title=\"Highlight\"\n tabindex=\"-1\" [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvHighlightBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvHighlightBtn']\"\n [class.toggled]=\"toolbarEvents.highlightModeSubject | async\" aria-hidden=\"true\" aria-pressed=\"false\"\n (click)=\"onClickHighlightToggle(); isDropdownMenuOpen = false\" data-l10n-id=\"toggleHighlightButton\">\n <span data-l10n-id=\"highlight_label\">Highlight</span>\n </button>\n\n <ng-container *ngIf=\"toolbarButtons.showNavigation\">\n <div id=\"mvPageBtn\" #mvPageBtn class=\"mv-toolbar__menu-button--page\" aria-pressed=\"false\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvPageBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvPageBtn']\">\n <span>Page</span>\n\n <button id=\"mvUpBtn\" [disabled]=\"pageNumber === 1\" title=\"Previous Page\"\n class=\"mv-toolbar__menu-button--up button-image\" data-l10n-id=\"previous\"\n (click)=\"decreasePageNumber()\"><span></span></button>\n <button id=\"mvDownBtn\" [disabled]=\"pageNumber === pageCount\" title=\"Next Page\"\n class=\"mv-toolbar__menu-button--down button-image\" data-l10n-id=\"next\"\n (click)=\"increasePageNumber()\"><span></span></button>\n\n <input type=\"number\" id=\"pageNumber\" class=\"hmcts-toolbar-input govuk-input--width-2\" title=\"Page Number\"\n value=\"1\" size=\"4\" min=\"1\" [value]=\"pageNumber\" aria-label=\"page number\" tabindex=\"0\"\n data-l10n-id=\"page\" (change)=\"onPageNumberInputChange(pageNumberInput.value)\" #pageNumberInput>\n <span id=\"numPages\" class=\"toolbarLabel\">/ {{ pageCount }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"toolbarButtons.showZoom\">\n <div id=\"mvZoomBtn\" #mvZoomBtn class=\"mv-toolbar__menu-button--zoom\" aria-pressed=\"false\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvZoomBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvZoomBtn']\">\n <span>Zoom</span>\n <button [disabled]=\"toolbarEvents.zoomValueSubject.value == 0.1\" id=\"mvMinusBtn\"\n class=\"mv-toolbar__menu-button--zoom-out button-image\" title=\"Zoom Out\" data-l10n-id=\"zoom_out\"\n (click)=\"stepZoom(-0.1)\"><span></span></button>\n <select id=\"scaleSelect\" class=\"hmcts-toolbar-select\" title=\"Zoom\" tabindex=\"0\" data-l10n-id=\"zoom\"\n (change)=\"zoom($event.target.value)\" aria-label=\"zoom\">\n <option #zoomSelect id=\"customScaleOption\" title=\"\" [value]=\"toolbarEvents.zoomValueSubject.value\">\n {{(toolbarEvents.zoomValueSubject.value) * 100 | number: '1.0-0'}}%</option>\n <option *ngFor=\"let zoomScale of zoomScales\" title=\"\" [value]=\"zoomScale\"\n [attr.data-l10n-id]=\"'page_scale_percent_' + zoomScale*100\">{{ zoomScale *100 }}%\n </option>\n </select>\n\n <button [disabled]=\"toolbarEvents.zoomValueSubject.value == 5\" id=\"mvPlusBtn\"\n class=\"mv-toolbar__menu-button--zoom-in button-image\" (click)=\"stepZoom(0.1)\" title=\"Zoom In\"\n data-l10n-id=\"zoom_in\"><span></span></button>\n </div>\n </ng-container>\n\n <div *ngIf=\"toolbarButtons.showRotate\" id=\"mvRotateBtn\" #mvRotateBtn class=\"mv-toolbar__menu-button--rotate\"\n aria-pressed=\"false\" [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvRotateBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvRotateBtn']\">\n <button id=\"mvRotateLeftBtn\" class=\"mv-toolbar__menu-button--rotate_left button-image\"\n title=\"Rotate Counterclockwise\" data-l10n-id=\"page_rotate_ccw\" (click)=\"rotate(270)\"><span></span>\n </button>\n <button id=\"mvRotateRightBtn\" class=\"mv-toolbar__menu-button--rotate_right button-image\"\n title=\"Rotate Clockwise\" data-l10n-id=\"page_rotate_cw\" (click)=\"rotate(90)\"><span></span>\n </button>\n <span>Rotate</span>\n </div>\n\n <button *ngIf=\"toolbarButtons.showSearchBar\" [disabled]=\"icpEnabled\" id=\"mvSearchBtn\" #mvSearchBtn\n title=\"Search\" data-l10n-id=\"searchbar\" class=\"mv-button mv-toolbar__menu-button--search\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvSearchBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvSearchBtn']\" aria-pressed=\"false\"\n (click)=\"toggleSearchBar(); isDropdownMenuOpen = false\">\n <span data-l10n-id=\"search_label\">Search</span>\n </button>\n\n <button *ngIf=\"enableICP && toolbarButtons.showPresentationMode && isPdf()\"\n [disabled]=\"icpEnabled || !contentType || redactionEnabled\" id=\"mvPresentBtn\" #mvPresentBtn\n class=\"mv-button mv-toolbar__menu-button--present\" title=\"In-Court Presentation Mode\"\n data-l10n-id=\"icpMode_label\" [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvPresentBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvPresentBtn']\" aria-pressed=\"false\"\n (click)=\"togglePresentBar(); isDropdownMenuOpen = false\"><span data-l10n-id=\"icpMode_label\">Present</span>\n </button>\n\n <button *ngIf=\"enableRedactions && toolbarButtons.showRedact\" [disabled]=\"icpEnabled\" id=\"mvRedactBtn\"\n #mvRedactBtn title=\"Redact\" data-l10n-id=\"redact\" class=\"mv-button mv-toolbar__menu-button--redact\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvRedactBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvRedactBtn']\" aria-pressed=\"false\"\n (click)=\"toggleRedactBar(); isDropdownMenuOpen = false\">\n <span>Redact</span>\n </button>\n\n <button *ngIf=\"toolbarButtons.showGrabNDragButton\" [disabled]=\"icpEnabled\" id=\"mvGrabBtn\" #mvGrabBtn\n class=\"mv-button mv-toolbar__menu-button--grab\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvGrabBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvGrabBtn']\" aria-pressed=\"false\"\n (click)=\"toggleGrabNDrag(); isDropdownMenuOpen = false\">\n <span>Grab and drag</span>\n </button>\n\n <button *ngIf=\"toolbarButtons.showDownload\" [disabled]=\"icpEnabled || redactionEnabled\" id=\"mvDownloadBtn\"\n #mvDownloadBtn class=\"mv-button mv-toolbar__menu-button--download\" title=\"Download\" data-l10n-id=\"download\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvDownloadBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvDownloadBtn']\" aria-pressed=\"false\"\n (click)=\"downloadFile(); isDropdownMenuOpen = false\">\n <span>Download</span>\n </button>\n\n <button *ngIf=\"toolbarButtons.showPrint\" [disabled]=\"icpEnabled || redactionEnabled\" id=\"mvPrintBtn\"\n #mvPrintBtn title=\"Print\" data-l10n-id=\"print\" class=\"mv-button mv-toolbar__menu-button--print\"\n [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvPrintBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvPrintBtn']\" aria-pressed=\"false\"\n (click)=\"printFile(); isDropdownMenuOpen = false\">\n <span>Print</span>\n </button>\n\n <button *ngIf=\"enableAnnotations && toolbarButtons.showCommentSummary\" [disabled]=\"redactionEnabled\"\n id=\"mvCommentsBtn\" #mvCommentsBtn class=\"mv-button mv-toolbar__menu-button--comments\" title=\"Comments\"\n data-l10n-id=\"comments\" [class.button-hidden-on-toolbar]=\"mvToolbarMain.offsetWidth < widthRequiredForBtn['mvCommentsBtn']\"\n [class.button-hidden-on-dropdown]=\"mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvCommentsBtn']\" aria-pressed=\"false\"\n (click)=\"toggleCommentsPanel(); isDropdownMenuOpen = false\">\n <span>Comments</span>\n </button>\n </ng-template>\n </div>\n <mv-search-bar></mv-search-bar>\n </div>\n\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\">\n </div>\n </div>\n </div>\n </div>\n</div>\n"
331
- }] }
332
- ];
333
- /** @nocollapse */
334
- MainToolbarComponent.ctorParameters = function () { return [
335
- { type: ToolbarEventService },
336
- { type: ToolbarButtonVisibilityService },
337
- { type: ChangeDetectorRef },
338
- { type: NumberHelperService }
339
- ]; };
340
- MainToolbarComponent.propDecorators = {
341
- enableAnnotations: [{ type: Input }],
342
- enableRedactions: [{ type: Input }],
343
- enableICP: [{ type: Input }],
344
- contentType: [{ type: Input }],
345
- zoomSelect: [{ type: ViewChild, args: ['zoomSelect', { static: false },] }],
346
- mvToolbarMain: [{ type: ViewChild, args: ['mvToolbarMain', { static: false },] }],
347
- mvMenuItems: [{ type: ViewChild, args: ['dropdownMenu', { static: false },] }],
348
- onResize: [{ type: HostListener, args: ['window:resize', [],] }]
349
- };
350
- return MainToolbarComponent;
351
- }());
352
- export { MainToolbarComponent };
353
- if (false) {
354
- /** @type {?} */
355
- MainToolbarComponent.prototype.enableAnnotations;
356
- /** @type {?} */
357
- MainToolbarComponent.prototype.enableRedactions;
358
- /** @type {?} */
359
- MainToolbarComponent.prototype.enableICP;
360
- /** @type {?} */
361
- MainToolbarComponent.prototype.contentType;
362
- /** @type {?} */
363
- MainToolbarComponent.prototype.zoomSelect;
364
- /** @type {?} */
365
- MainToolbarComponent.prototype.mvToolbarMain;
366
- /** @type {?} */
367
- MainToolbarComponent.prototype.mvMenuItems;
368
- /**
369
- * @type {?}
370
- * @private
371
- */
372
- MainToolbarComponent.prototype.subscriptions;
373
- /** @type {?} */
374
- MainToolbarComponent.prototype.icpEnabled;
375
- /** @type {?} */
376
- MainToolbarComponent.prototype.redactionEnabled;
377
- /** @type {?} */
378
- MainToolbarComponent.prototype.showCommentsPanel;
379
- /** @type {?} */
380
- MainToolbarComponent.prototype.pageNumber;
381
- /** @type {?} */
382
- MainToolbarComponent.prototype.pageCount;
383
- /** @type {?} */
384
- MainToolbarComponent.prototype.isDropdownMenuOpen;
385
- /** @type {?} */
386
- MainToolbarComponent.prototype.dropdownMenuPositions;
387
- /** @type {?} */
388
- MainToolbarComponent.prototype.zoomScales;
389
- /** @type {?} */
390
- MainToolbarComponent.prototype.allButtonsWidth;
391
- /** @type {?} */
392
- MainToolbarComponent.prototype.widthRequiredForBtn;
393
- /** @type {?} */
394
- MainToolbarComponent.prototype.toolbarEvents;
395
- /** @type {?} */
396
- MainToolbarComponent.prototype.toolbarButtons;
397
- /**
398
- * @type {?}
399
- * @private
400
- */
401
- MainToolbarComponent.prototype.cdr;
402
- /**
403
- * @type {?}
404
- * @private
405
- */
406
- MainToolbarComponent.prototype.numberHelper;
407
- }
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9tZWRpYS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvdG9vbGJhci9tYWluLXRvb2xiYXIvbWFpbi10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUU5RjtJQTJDRSw4QkFDa0IsYUFBa0MsRUFDbEMsY0FBOEMsRUFDN0MsR0FBc0IsRUFDdEIsWUFBaUM7UUFIbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUM3QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUF6QzNDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQU1YLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUU3QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUd6QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMz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OztJQUMxQixnREFBZ0M7O0lBQ2hDLGlEQUFrQzs7SUFFbEMsMENBQXNCOztJQUN0Qix5Q0FBcUI7O0lBQ3JCLGtEQUFrQzs7SUFDbEMscURBWUU7O0lBRUYsMENBQW9FOztJQUVwRSwrQ0FBb0I7O0lBQ3BCLG1EQUFtRDs7SUFHakQsNkNBQWtEOztJQUNsRCw4Q0FBOEQ7Ozs7O0lBQzlELG1DQUF1Qzs7Ozs7SUFDdkMsNENBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IE51bWJlckhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9saWIvc2hhcmVkL3V0aWwvc2VydmljZXMvbnVtYmVyLmhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtbWFpbi10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tdG9vbGJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTWFpblRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgZW5hYmxlQW5ub3RhdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlUmVkYWN0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVJQ1AgPSBmYWxzZTtcbiAgQElucHV0KCkgY29udGVudFR5cGUgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ3pvb21TZWxlY3QnLCB7c3RhdGljOiBmYWxzZX0pIHB1YmxpYyB6b29tU2VsZWN0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtdlRvb2xiYXJNYWluJywge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgbXZUb29sYmFyTWFpbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duTWVudScsIHtzdGF0aWM6IGZhbHNlfSkgcHVibGljIG12TWVudUl0ZW1zOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHVibGljIGljcEVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIHJlZGFjdGlvbkVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIHNob3dDb21tZW50c1BhbmVsOiBib29sZWFuO1xuXG4gIHB1YmxpYyBwYWdlTnVtYmVyID0gMTtcbiAgcHVibGljIHBhZ2VDb3VudCA9IDA7XG4gIHB1YmxpYyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZTtcbiAgcHVibGljIGRyb3Bkb3duTWVudVBvc2l0aW9ucyA9IFtcbiAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgfSxcbiAgICAgIDAsXG4gICAgICAzKVxuICBdO1xuXG4gIHB1YmxpYyB6b29tU2NhbGVzID0gWzAuMSwgMC4yNSwgMC41LCAwLjc1LCAxLCAxLjI1LCAxLjUsIDIuNSwgMywgNV07XG5cbiAgYWxsQnV0dG9uc1dpZHRoID0gMDtcbiAgd2lkdGhSZXF1aXJlZEZvckJ0bjogeyBbaWQ6IHN0cmluZ106IG51bWJlciB9ID0ge307XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG51bWJlckhlbHBlcjogTnVtYmVySGVscGVyU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZXRDdXJyZW50UGFnZVN1YmplY3Quc3Vic2NyaWJlKHBhZ2VOdW1iZXIgPT4gdGhpcy5zZXRDdXJyZW50UGFnZShwYWdlTnVtYmVyKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0Q3VycmVudFBhZ2VJbnB1dFZhbHVlU3ViamVjdC5zdWJzY3JpYmUocGFnZU51bWJlciA9PiB0aGlzLnBhZ2VOdW1iZXIgPSBwYWdlTnVtYmVyKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5nZXRQYWdlQ291bnQoKS5zdWJzY3JpYmUoY291bnQgPT4gdGhpcy5wYWdlQ291bnQgPSBjb3VudCksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuaWNwLmVuYWJsZWQuc3Vic2NyaWJlKGVuYWJsZWQgPT4ge1xuICAgICAgICB0aGlzLmljcEVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICBpZiAodGhpcy5pY3BFbmFibGVkKSB7XG4gICAgICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUNvbW1lbnRzUGFuZWwoIWVuYWJsZWQpO1xuICAgICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0aW9uTW9kZS5zdWJzY3JpYmUoZW5hYmxlZCA9PiB7XG4gICAgICAgIHRoaXMucmVkYWN0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBBcnJheS5mcm9tKHRoaXMubXZUb29sYmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKS5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICB0aGlzLmFsbEJ1dHRvbnNXaWR0aCArPSBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICB0aGlzLndpZHRoUmVxdWlyZWRGb3JCdG5bYnV0dG9uLmlkXSA9IHRoaXMuYWxsQnV0dG9uc1dpZHRoO1xuICAgIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbXSlcbiAgcHVibGljIG9uUmVzaXplKCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsaWNrSGlnaGxpZ2h0VG9nZ2xlKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVIaWdobGlnaHRNb2RlKCk7XG4gIH1cbiAgcHVibGljIG9uQ2xpY2tEcmF3VG9nZ2xlKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVEcmF3TW9kZSgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNpZGVCYXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNpZGViYXJPcGVuLm5leHQoIXRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVQcmVzZW50QmFyKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dCh0cnVlKTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuaWNwLmVuYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGluY3JlYXNlUGFnZU51bWJlcigpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuaW5jcmVtZW50UGFnZSgxKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWNyZWFzZVBhZ2VOdW1iZXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLmluY3JlbWVudFBhZ2UoLTEpO1xuICB9XG5cbiAgcHVibGljIG9uUGFnZU51bWJlcklucHV0Q2hhbmdlKHBhZ2VOdW1iZXI6IHN0cmluZykge1xuICAgIGlmIChOdW1iZXIocGFnZU51bWJlcikgPCAxKSB7XG4gICAgICBwYWdlTnVtYmVyID0gJzEnO1xuICAgIH1cbiAgICBpZiAoTnVtYmVyKHBhZ2VOdW1iZXIpID4gdGhpcy5wYWdlQ291bnQpIHtcbiAgICAgIHBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VDb3VudC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZXRQYWdlKE51bWJlci5wYXJzZUludChwYWdlTnVtYmVyLCAxMCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJyZW50UGFnZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBwYWdlTnVtYmVyO1xuICB9XG5cbiAgcHVibGljIHJvdGF0ZShyb3RhdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnJvdGF0ZShyb3RhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgcHJpbnRGaWxlKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5wcmludCgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkRmlsZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuZG93bmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tKHpvb21GYWN0b3I6IHN0cmluZykge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tKCt6b29tRmFjdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwWm9vbSh6b29tRmFjdG9yOiBudW1iZXIpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc3RlcFpvb20oem9vbUZhY3Rvcik7XG4gICAgdGhpcy56b29tU2VsZWN0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0ZWQgPSAnc2VsZWN0ZWQnO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvbW1lbnRzUGFuZWwoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUNvbW1lbnRzUGFuZWwoIXRoaXMudG9vbGJhckV2ZW50cy5jb21tZW50c1BhbmVsVmlzaWJsZS5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVSZWRhY3RCYXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVJlZGFjdGlvbk1vZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVHcmFiTkRyYWcoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUdyYWJORHJhZygpO1xuICB9XG5cbiAgcHVibGljIGlzUGRmKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRUeXBlID09PSAncGRmJztcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTZWFyY2hCYXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KCF0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU1vcmVPcHRpb25zKCkge1xuICAgIHRoaXMuaXNEcm9wZG93bk1lbnVPcGVuID0gIXRoaXMuaXNEcm9wZG93bk1lbnVPcGVuO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubXZNZW51SXRlbXMpIHtcbiAgICAgICAgdGhpcy5tdk1lbnVJdGVtcy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgfVxufVxuIl19