@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,35 +1,18 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
1
  import { __awaiter } from "tslib";
6
2
  import * as pdfjsLib from 'pdfjs-dist';
7
3
  import 'pdfjs-dist/build/pdf.worker';
8
4
  pdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';
9
- /** @enum {number} */
10
- const FindState = {
11
- FOUND: 0,
12
- NOT_FOUND: 1,
13
- WRAPPED: 2,
14
- PENDING: 3,
15
- };
16
- FindState[FindState.FOUND] = 'FOUND';
17
- FindState[FindState.NOT_FOUND] = 'NOT_FOUND';
18
- FindState[FindState.WRAPPED] = 'WRAPPED';
19
- FindState[FindState.PENDING] = 'PENDING';
5
+ /**
6
+ * Values of the state field returned by the find events
7
+ */
8
+ var FindState;
9
+ (function (FindState) {
10
+ FindState[FindState["FOUND"] = 0] = "FOUND";
11
+ FindState[FindState["NOT_FOUND"] = 1] = "NOT_FOUND";
12
+ FindState[FindState["WRAPPED"] = 2] = "WRAPPED";
13
+ FindState[FindState["PENDING"] = 3] = "PENDING";
14
+ })(FindState || (FindState = {}));
20
15
  export class PdfJsWrapper {
21
- /**
22
- * @param {?} pdfViewer
23
- * @param {?} downloadManager
24
- * @param {?} toolbarEvents
25
- * @param {?} documentLoadInit
26
- * @param {?} documentLoadProgress
27
- * @param {?} documentLoaded
28
- * @param {?} outlineLoaded
29
- * @param {?} documentLoadFailed
30
- * @param {?} pageRendered
31
- * @param {?} positionUpdated
32
- */
33
16
  constructor(pdfViewer, downloadManager, toolbarEvents, documentLoadInit, documentLoadProgress, documentLoaded, outlineLoaded, documentLoadFailed, pageRendered, positionUpdated) {
34
17
  this.pdfViewer = pdfViewer;
35
18
  this.downloadManager = downloadManager;
@@ -41,70 +24,25 @@ export class PdfJsWrapper {
41
24
  this.documentLoadFailed = documentLoadFailed;
42
25
  this.pageRendered = pageRendered;
43
26
  this.positionUpdated = positionUpdated;
44
- this.pdfViewer.eventBus.on('updateviewarea', (/**
45
- * @param {?} e
46
- * @return {?}
47
- */
48
- e => positionUpdated.next(e)));
49
- this.pdfViewer.eventBus.on('pagechanging', (/**
50
- * @param {?} e
51
- * @return {?}
52
- */
53
- e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber)));
54
- this.pdfViewer.eventBus.on('pagesinit', (/**
55
- * @return {?}
56
- */
57
- () => this.pdfViewer.currentScaleValue = '1'));
58
- this.pdfViewer.eventBus.on('pagerendered', (/**
59
- * @param {?} e
60
- * @return {?}
61
- */
62
- e => { })); // not used left for future convenience
63
- this.pdfViewer.eventBus.on('pagesloaded', (/**
64
- * @param {?} e
65
- * @return {?}
66
- */
67
- (e) => this.emitDocumentInfo(e)));
68
- this.pdfViewer.eventBus.on('scalechanging', (/**
69
- * @param {?} e
70
- * @return {?}
71
- */
72
- (e) => this.emitDocumentInfo(e)));
73
- this.pdfViewer.eventBus.on('rotationchanging', (/**
74
- * @param {?} e
75
- * @return {?}
76
- */
77
- (e) => this.emitDocumentInfo(e)));
78
- this.pdfViewer.eventBus.on('updatefindcontrolstate', (/**
79
- * @param {?} event
80
- * @return {?}
81
- */
82
- event => {
27
+ this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));
28
+ this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));
29
+ this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');
30
+ this.pdfViewer.eventBus.on('pagerendered', e => { }); // not used left for future convenience
31
+ this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));
32
+ this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));
33
+ this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));
34
+ this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {
83
35
  if (event.state !== FindState.PENDING) {
84
36
  this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);
85
37
  }
86
- }));
87
- this.pdfViewer.eventBus.on('updatefindmatchescount', (/**
88
- * @param {?} event
89
- * @return {?}
90
- */
91
- event => {
38
+ });
39
+ this.pdfViewer.eventBus.on('updatefindmatchescount', event => {
92
40
  this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);
93
- }));
41
+ });
94
42
  this.zoomValue = 1;
95
43
  }
96
- /**
97
- * @private
98
- * @param {?} e
99
- * @return {?}
100
- */
101
44
  emitDocumentInfo(e) {
102
- /** @type {?} */
103
- const allPages = [...this.pdfViewer._pages].map((/**
104
- * @param {?} page
105
- * @return {?}
106
- */
107
- page => {
45
+ const allPages = [...this.pdfViewer._pages].map(page => {
108
46
  return {
109
47
  div: page.div,
110
48
  scale: page.scale,
@@ -112,40 +50,26 @@ export class PdfJsWrapper {
112
50
  id: page.id,
113
51
  viewportScale: page.viewport.scale
114
52
  };
115
- }));
53
+ });
116
54
  this.pageRendered.next(allPages);
117
55
  }
118
- /**
119
- * @param {?} documentUrl
120
- * @return {?}
121
- */
122
56
  loadDocument(documentUrl) {
123
57
  return __awaiter(this, void 0, void 0, function* () {
124
- /** @type {?} */
125
- const loadingTask = pdfjsLib.getDocument({
126
- url: documentUrl,
127
- cMapUrl: 'assets/minified/cmaps',
128
- cMapPacked: true,
129
- withCredentials: true
130
- });
131
- loadingTask.onProgress = (/**
132
- * @param {?} __0
133
- * @return {?}
134
- */
135
- ({ loaded, total }) => {
58
+ const loadingTask = this.createLoadingTask(documentUrl);
59
+ loadingTask.onProgress = ({ loaded, total }) => {
136
60
  this.documentLoadProgress.next({ loaded, total });
137
- });
61
+ };
138
62
  this.documentLoadInit.next(documentUrl);
139
63
  try {
140
- /** @type {?} */
141
64
  const pdfDocument = yield loadingTask.promise;
142
65
  this.documentLoaded.next(pdfDocument);
143
66
  this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);
144
67
  this.pdfViewer.setDocument(pdfDocument);
145
68
  this.pdfViewer.linkService.setDocument(pdfDocument, null);
146
- this.documentOutline = yield pdfDocument.getOutline();
69
+ const outline = yield pdfDocument.getOutline();
70
+ yield this.setOutlinePageNumbers(pdfDocument, outline);
71
+ this.documentOutline = outline;
147
72
  this.outlineLoaded.next(this.documentOutline);
148
- /** @type {?} */
149
73
  const pdfMetaData = yield pdfDocument.getMetadata();
150
74
  this.setCurrentPDFTitle(pdfMetaData.info.Title);
151
75
  }
@@ -154,40 +78,50 @@ export class PdfJsWrapper {
154
78
  }
155
79
  });
156
80
  }
157
- /**
158
- * @param {?} url
159
- * @param {?} filename
160
- * @return {?}
161
- */
81
+ createLoadingTask(documentUrl) {
82
+ return pdfjsLib.getDocument({
83
+ url: documentUrl,
84
+ cMapUrl: 'assets/minified/cmaps',
85
+ cMapPacked: true,
86
+ withCredentials: true
87
+ });
88
+ }
89
+ setOutlinePageNumbers(pdfDocument, outlineArray) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ outlineArray.forEach((outline) => __awaiter(this, void 0, void 0, function* () {
92
+ yield this.setNestedOutlinePageNumbers(pdfDocument, outline);
93
+ }));
94
+ });
95
+ }
96
+ setNestedOutlinePageNumbers(pdfDocument, outline) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ outline.pageNumber = yield this.getOutlinePageNumber(pdfDocument, outline);
99
+ outline.items.forEach((outlineItem) => __awaiter(this, void 0, void 0, function* () {
100
+ outlineItem.pageNumber = yield this.getOutlinePageNumber(pdfDocument, outlineItem);
101
+ this.setNestedOutlinePageNumbers(pdfDocument, outlineItem);
102
+ }));
103
+ });
104
+ }
105
+ getOutlinePageNumber(pdfDocument, outline) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ const dest = outline.dest;
108
+ const pageIndex = yield pdfDocument.getPageIndex(dest[0]);
109
+ return Number(pageIndex) + 1;
110
+ });
111
+ }
162
112
  downloadFile(url, filename) {
163
113
  this.downloadManager.downloadUrl(url, filename);
164
114
  }
165
- /**
166
- * @param {?} pageNumber
167
- * @return {?}
168
- */
169
115
  setPageNumber(pageNumber) {
170
116
  this.pdfViewer.currentPageNumber = pageNumber;
171
117
  }
172
- /**
173
- * @return {?}
174
- */
175
118
  getPageNumber() {
176
119
  return this.pdfViewer.currentPageNumber;
177
120
  }
178
- /**
179
- * @param {?} numPages
180
- * @return {?}
181
- */
182
121
  changePageNumber(numPages) {
183
122
  this.pdfViewer.currentPageNumber += numPages;
184
123
  }
185
- /**
186
- * @param {?} operation
187
- * @return {?}
188
- */
189
124
  search(operation) {
190
- /** @type {?} */
191
125
  const command = operation.reset ? 'find' : 'findagain';
192
126
  this.pdfViewer.findController.executeCommand(command, {
193
127
  query: operation.searchTerm,
@@ -198,16 +132,9 @@ export class PdfJsWrapper {
198
132
  findPrevious: operation.previous,
199
133
  });
200
134
  }
201
- /**
202
- * @return {?}
203
- */
204
135
  clearSearch() {
205
136
  this.pdfViewer.eventBus.dispatch('findbarclose');
206
137
  }
207
- /**
208
- * @param {?} destination
209
- * @return {?}
210
- */
211
138
  navigateTo(destination) {
212
139
  if (destination instanceof Object) {
213
140
  if (!destination[1].name.includes('XYZ')) {
@@ -219,29 +146,16 @@ export class PdfJsWrapper {
219
146
  }
220
147
  this.pdfViewer.linkService.navigateTo(destination);
221
148
  }
222
- /**
223
- * @param {?} zoomValue
224
- * @return {?}
225
- */
226
149
  setZoom(zoomValue) {
227
150
  this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue);
228
151
  this.zoomValue = this.pdfViewer.currentScaleValue;
229
152
  this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);
230
153
  }
231
- /**
232
- * @param {?} zoomValue
233
- * @return {?}
234
- */
235
154
  stepZoom(zoomValue) {
236
155
  this.pdfViewer.currentScaleValue = +this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue);
237
156
  this.zoomValue = this.pdfViewer.currentScaleValue;
238
157
  this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);
239
158
  }
240
- /**
241
- * @private
242
- * @param {?} zoomValue
243
- * @return {?}
244
- */
245
159
  getZoomValue(zoomValue) {
246
160
  if (isNaN(zoomValue)) {
247
161
  return this.zoomValue;
@@ -254,116 +168,23 @@ export class PdfJsWrapper {
254
168
  }
255
169
  return +zoomValue.toFixed(2);
256
170
  }
257
- /**
258
- * @param {?} rotation
259
- * @return {?}
260
- */
261
171
  rotate(rotation) {
262
172
  return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;
263
173
  }
264
- /**
265
- * @param {?} rotation
266
- * @return {?}
267
- */
268
174
  resetRotation(rotation) {
269
175
  return this.pdfViewer.pagesRotation = rotation;
270
176
  }
271
- /**
272
- * @return {?}
273
- */
274
177
  getNormalisedPagesRotation() {
275
178
  return this.pdfViewer.pagesRotation;
276
179
  }
277
- /**
278
- * @return {?}
279
- */
280
180
  getCurrentPDFZoomValue() {
281
181
  return this.pdfViewer.currentScaleValue;
282
182
  }
283
- /**
284
- * @param {?} title
285
- * @return {?}
286
- */
287
183
  setCurrentPDFTitle(title) {
288
184
  this.documentTitle = title;
289
185
  }
290
- /**
291
- * @return {?}
292
- */
293
186
  getCurrentPDFTitle() {
294
187
  return this.documentTitle;
295
188
  }
296
189
  }
297
- if (false) {
298
- /**
299
- * @type {?}
300
- * @private
301
- */
302
- PdfJsWrapper.prototype.zoomValue;
303
- /**
304
- * @type {?}
305
- * @private
306
- */
307
- PdfJsWrapper.prototype.documentTitle;
308
- /**
309
- * @type {?}
310
- * @private
311
- */
312
- PdfJsWrapper.prototype.documentOutline;
313
- /**
314
- * @type {?}
315
- * @private
316
- */
317
- PdfJsWrapper.prototype.pdfViewer;
318
- /**
319
- * @type {?}
320
- * @private
321
- */
322
- PdfJsWrapper.prototype.downloadManager;
323
- /**
324
- * @type {?}
325
- * @private
326
- */
327
- PdfJsWrapper.prototype.toolbarEvents;
328
- /** @type {?} */
329
- PdfJsWrapper.prototype.documentLoadInit;
330
- /** @type {?} */
331
- PdfJsWrapper.prototype.documentLoadProgress;
332
- /** @type {?} */
333
- PdfJsWrapper.prototype.documentLoaded;
334
- /** @type {?} */
335
- PdfJsWrapper.prototype.outlineLoaded;
336
- /** @type {?} */
337
- PdfJsWrapper.prototype.documentLoadFailed;
338
- /** @type {?} */
339
- PdfJsWrapper.prototype.pageRendered;
340
- /** @type {?} */
341
- PdfJsWrapper.prototype.positionUpdated;
342
- }
343
- /**
344
- * @record
345
- */
346
- export function DocumentLoadProgress() { }
347
- if (false) {
348
- /** @type {?} */
349
- DocumentLoadProgress.prototype.loaded;
350
- /** @type {?} */
351
- DocumentLoadProgress.prototype.total;
352
- }
353
- /**
354
- * @record
355
- */
356
- export function PageEvent() { }
357
- if (false) {
358
- /** @type {?} */
359
- PageEvent.prototype.div;
360
- /** @type {?} */
361
- PageEvent.prototype.scale;
362
- /** @type {?} */
363
- PageEvent.prototype.rotation;
364
- /** @type {?} */
365
- PageEvent.prototype.id;
366
- /** @type {?} */
367
- PageEvent.prototype.viewportScale;
368
- }
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvbWVkaWEtdmlld2VyLyIsInNvdXJjZXMiOlsibGliL3ZpZXdlcnMvcGRmLXZpZXdlci9wZGYtanMvcGRmLWpzLXdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUV2QyxPQUFPLDZCQUE2QixDQUFDO0FBTXJDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsaUNBQWlDLENBQUM7OztJQU16RSxRQUFTO0lBQ1QsWUFBYTtJQUNiLFVBQVc7SUFDWCxVQUFXOzs7Ozs7QUFHYixNQUFNLE9BQU8sWUFBWTs7Ozs7Ozs7Ozs7OztJQU12QixZQUNtQixTQUFvQixFQUNwQixlQUFnQyxFQUNoQyxhQUFrQyxFQUNuQyxnQkFBaUMsRUFDakMsb0JBQW1ELEVBQ25ELGNBQTRCLEVBQzVCLGFBQStCLEVBQy9CLGtCQUFrQyxFQUNsQyxZQUFrQyxFQUNsQyxlQUFtRDtRQVRsRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQStCO1FBQ25ELG1CQUFjLEdBQWQsY0FBYyxDQUFjO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWdCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBb0M7UUFFbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGdCQUFnQjs7OztRQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FB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QUdoQiwrQkFNQzs7O0lBTEMsd0JBQVk7O0lBQ1osMEJBQWM7O0lBQ2QsNkJBQWlCOztJQUNqQix1QkFBVzs7SUFDWCxrQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwZGZqc0xpYiBmcm9tICdwZGZqcy1kaXN0JztcbmltcG9ydCB7IERvd25sb2FkTWFuYWdlciwgUERGVmlld2VyIH0gZnJvbSAncGRmanMtZGlzdC93ZWIvcGRmX3ZpZXdlcic7XG5pbXBvcnQgJ3BkZmpzLWRpc3QvYnVpbGQvcGRmLndvcmtlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWFyY2hPcGVyYXRpb24sIFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPdXRsaW5lIH0gZnJvbSAnLi4vc2lkZS1iYXIvb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0IHsgUGRmUG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9kb2N1bWVudC5yZWR1Y2VyJztcblxucGRmanNMaWIuR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmMgPSAnL2Fzc2V0cy9idWlsZC9wZGYud29ya2VyLm1pbi5qcyc7XG5cbi8qKlxuICogVmFsdWVzIG9mIHRoZSBzdGF0ZSBmaWVsZCByZXR1cm5lZCBieSB0aGUgZmluZCBldmVudHNcbiAqL1xuZW51bSBGaW5kU3RhdGUge1xuICBGT1VORCA9IDAsXG4gIE5PVF9GT1VORCA9IDEsXG4gIFdSQVBQRUQgPSAyLFxuICBQRU5ESU5HID0gMyxcbn1cblxuZXhwb3J0IGNsYXNzIFBkZkpzV3JhcHBlciB7XG5cbiAgcHJpdmF0ZSB6b29tVmFsdWU6IG51bWJlcjtcbiAgcHJpdmF0ZSBkb2N1bWVudFRpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgZG9jdW1lbnRPdXRsaW5lOiBPdXRsaW5lO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGRmVmlld2VyOiBQREZWaWV3ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3dubG9hZE1hbmFnZXI6IERvd25sb2FkTWFuYWdlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50TG9hZEluaXQ6IFN1YmplY3Q8c3RyaW5nPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRMb2FkUHJvZ3Jlc3M6IFN1YmplY3Q8RG9jdW1lbnRMb2FkUHJvZ3Jlc3M+LFxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudExvYWRlZDogU3ViamVjdDxhbnk+LFxuICAgIHB1YmxpYyByZWFkb25seSBvdXRsaW5lTG9hZGVkOiBTdWJqZWN0PE91dGxpbmU+LFxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudExvYWRGYWlsZWQ6IFN1YmplY3Q8RXJyb3I+LFxuICAgIHB1YmxpYyByZWFkb25seSBwYWdlUmVuZGVyZWQ6IFN1YmplY3Q8UGFnZUV2ZW50W10+LFxuICAgIHB1YmxpYyByZWFkb25seSBwb3NpdGlvblVwZGF0ZWQ6IFN1YmplY3Q8eyBsb2NhdGlvbjogUGRmUG9zaXRpb24gfT4sXG4gICkge1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCd1cGRhdGV2aWV3YXJlYScsIGUgPT4gcG9zaXRpb25VcGRhdGVkLm5leHQoZSkpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdwYWdlY2hhbmdpbmcnLCBlID0+IHRoaXMudG9vbGJhckV2ZW50cy5zZXRDdXJyZW50UGFnZUlucHV0VmFsdWVTdWJqZWN0Lm5leHQoZS5wYWdlTnVtYmVyKSk7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMub24oJ3BhZ2VzaW5pdCcsICgpID0+IHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlID0gJzEnKTtcblxuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdwYWdlcmVuZGVyZWQnLCBlID0+IHt9KTsgLy8gbm90IHVzZWQgbGVmdCBmb3IgZnV0dXJlIGNvbnZlbmllbmNlXG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMub24oJ3BhZ2VzbG9hZGVkJywgKGUpID0+IHRoaXMuZW1pdERvY3VtZW50SW5mbyhlKSk7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMub24oJ3NjYWxlY2hhbmdpbmcnLCAoZSkgPT4gIHRoaXMuZW1pdERvY3VtZW50SW5mbyhlKSk7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMub24oJ3JvdGF0aW9uY2hhbmdpbmcnLCAoZSkgPT4gdGhpcy5lbWl0RG9jdW1lbnRJbmZvKGUpKTtcblxuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCd1cGRhdGVmaW5kY29udHJvbHN0YXRlJywgZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LnN0YXRlICE9PSBGaW5kU3RhdGUuUEVORElORykge1xuICAgICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdC5uZXh0KGV2ZW50Lm1hdGNoZXNDb3VudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMub24oJ3VwZGF0ZWZpbmRtYXRjaGVzY291bnQnLCBldmVudCA9PiB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdC5uZXh0KGV2ZW50Lm1hdGNoZXNDb3VudCk7XG4gICAgfSk7XG4gICAgdGhpcy56b29tVmFsdWUgPSAxO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RG9jdW1lbnRJbmZvKGUpIHtcbiAgICBjb25zdCBhbGxQYWdlczogUGFnZUV2ZW50W10gPSBbLi4udGhpcy5wZGZWaWV3ZXIuX3BhZ2VzXS5tYXAocGFnZSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXY6IHBhZ2UuZGl2LFxuICAgICAgICBzY2FsZTogcGFnZS5zY2FsZSxcbiAgICAgICAgcm90YXRpb246IHBhZ2Uucm90YXRpb24sXG4gICAgICAgIGlkOiBwYWdlLmlkLFxuICAgICAgICB2aWV3cG9ydFNjYWxlOiBwYWdlLnZpZXdwb3J0LnNjYWxlXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMucGFnZVJlbmRlcmVkLm5leHQoYWxsUGFnZXMpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWREb2N1bWVudChkb2N1bWVudFVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9hZGluZ1Rhc2sgPSBwZGZqc0xpYi5nZXREb2N1bWVudCh7XG4gICAgICB1cmw6IGRvY3VtZW50VXJsLFxuICAgICAgY01hcFVybDogJ2Fzc2V0cy9taW5pZmllZC9jbWFwcycsXG4gICAgICBjTWFwUGFja2VkOiB0cnVlLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSk7XG5cbiAgICBsb2FkaW5nVGFzay5vblByb2dyZXNzID0gKHsgbG9hZGVkLCB0b3RhbCB9KSA9PiB7XG4gICAgICB0aGlzLmRvY3VtZW50TG9hZFByb2dyZXNzLm5leHQoeyBsb2FkZWQsIHRvdGFsIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50TG9hZEluaXQubmV4dChkb2N1bWVudFVybCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGRmRG9jdW1lbnQgPSBhd2FpdCBsb2FkaW5nVGFzay5wcm9taXNlO1xuICAgICAgdGhpcy5kb2N1bWVudExvYWRlZC5uZXh0KHBkZkRvY3VtZW50KTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5wYWdlQ291bnRTdWJqZWN0Lm5leHQocGRmRG9jdW1lbnQubnVtUGFnZXMpO1xuXG4gICAgICB0aGlzLnBkZlZpZXdlci5zZXREb2N1bWVudChwZGZEb2N1bWVudCk7XG4gICAgICB0aGlzLnBkZlZpZXdlci5saW5rU2VydmljZS5zZXREb2N1bWVudChwZGZEb2N1bWVudCwgbnVsbCk7XG5cbiAgICAgIHRoaXMuZG9jdW1lbnRPdXRsaW5lID0gYXdhaXQgcGRmRG9jdW1lbnQuZ2V0T3V0bGluZSgpO1xuICAgICAgdGhpcy5vdXRsaW5lTG9hZGVkLm5leHQodGhpcy5kb2N1bWVudE91dGxpbmUpO1xuICAgICAgY29uc3QgcGRmTWV0YURhdGEgPSBhd2FpdCBwZGZEb2N1bWVudC5nZXRNZXRhZGF0YSgpO1xuICAgICAgdGhpcy5zZXRDdXJyZW50UERGVGl0bGUocGRmTWV0YURhdGEuaW5mby5UaXRsZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5kb2N1bWVudExvYWRGYWlsZWQubmV4dChlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZG93bmxvYWRGaWxlKHVybDogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kb3dubG9hZE1hbmFnZXIuZG93bmxvYWRVcmwodXJsLCBmaWxlbmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50UGFnZU51bWJlciA9IHBhZ2VOdW1iZXI7XG4gIH1cbiAgcHVibGljIGdldFBhZ2VOdW1iZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wZGZWaWV3ZXIuY3VycmVudFBhZ2VOdW1iZXI7XG4gIH1cbiAgcHVibGljIGNoYW5nZVBhZ2VOdW1iZXIobnVtUGFnZXM6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRQYWdlTnVtYmVyICs9IG51bVBhZ2VzO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaChvcGVyYXRpb246IFNlYXJjaE9wZXJhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGNvbW1hbmQgPSBvcGVyYXRpb24ucmVzZXQgPyAnZmluZCcgOiAnZmluZGFnYWluJztcblxuICAgIHRoaXMucGRmVmlld2VyLmZpbmRDb250cm9sbGVyLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQsIHtcbiAgICAgIHF1ZXJ5OiBvcGVyYXRpb24uc2VhcmNoVGVybSxcbiAgICAgIHBocmFzZVNlYXJjaDogdHJ1ZSxcbiAgICAgIGNhc2VTZW5zaXRpdmU6IG9wZXJhdGlvbi5tYXRjaENhc2UsXG4gICAgICBlbnRpcmVXb3JkOiBvcGVyYXRpb24ud2hvbGVXb3JkLFxuICAgICAgaGlnaGxpZ2h0QWxsOiBvcGVyYXRpb24uaGlnaGxpZ2h0QWxsLFxuICAgICAgZmluZFByZXZpb3VzOiBvcGVyYXRpb24ucHJldmlvdXMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMuZGlzcGF0Y2goJ2ZpbmRiYXJjbG9zZScpO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG8oZGVzdGluYXRpb246IG9iamVjdCB8IG51bWJlcikge1xuICAgIGlmIChkZXN0aW5hdGlvbiBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgaWYgKCFkZXN0aW5hdGlvblsxXS5uYW1lLmluY2x1ZGVzKCdYWVonKSkge1xuICAgICAgICBkZXN0aW5hdGlvblsxXSA9IHsgbmFtZTogJ1hZWicgfTtcbiAgICAgICAgZGVzdGluYXRpb25bMl0gPSBkZXN0aW5hdGlvblsyXSB8fCBudWxsO1xuICAgICAgICBkZXN0aW5hdGlvblszXSA9IGRlc3RpbmF0aW9uWzNdIHx8IG51bGw7XG4gICAgICB9XG4gICAgICBkZXN0aW5hdGlvbls0XSA9IHRoaXMuem9vbVZhbHVlO1xuICAgIH1cbiAgICB0aGlzLnBkZlZpZXdlci5saW5rU2VydmljZS5uYXZpZ2F0ZVRvKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRab29tKHpvb21WYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUgPSB0aGlzLmdldFpvb21WYWx1ZSh6b29tVmFsdWUpO1xuICAgIHRoaXMuem9vbVZhbHVlID0gdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWU7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnpvb21WYWx1ZVN1YmplY3QubmV4dCh0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgc3RlcFpvb20oem9vbVZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9ICt0aGlzLmdldFpvb21WYWx1ZSgoK3RoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlKSArIHpvb21WYWx1ZSk7XG4gICAgdGhpcy56b29tVmFsdWUgPSB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC5uZXh0KHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Wm9vbVZhbHVlKHpvb21WYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoaXNOYU4oem9vbVZhbHVlKSkgeyByZXR1cm4gdGhpcy56b29tVmFsdWU7IH1cbiAgICBpZiAoem9vbVZhbHVlID4gNSkgeyByZXR1cm4gNTsgfVxuICAgIGlmICh6b29tVmFsdWUgPCAwLjEpIHsgcmV0dXJuIDAuMTsgfVxuXG4gICAgcmV0dXJuICt6b29tVmFsdWUudG9GaXhlZCgyKTtcbiAgfVxuXG4gIHB1YmxpYyByb3RhdGUocm90YXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGRmVmlld2VyLnBhZ2VzUm90YXRpb24gPSAodGhpcy5wZGZWaWV3ZXIucGFnZXNSb3RhdGlvbiArIHJvdGF0aW9uKSAlIDM2MDtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFJvdGF0aW9uKHJvdGF0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBkZlZpZXdlci5wYWdlc1JvdGF0aW9uID0gcm90YXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0Tm9ybWFsaXNlZFBhZ2VzUm90YXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wZGZWaWV3ZXIucGFnZXNSb3RhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50UERGWm9vbVZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldEN1cnJlbnRQREZUaXRsZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kb2N1bWVudFRpdGxlID0gdGl0bGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFBERlRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRUaXRsZTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50TG9hZFByb2dyZXNzIHtcbiAgbG9hZGVkOiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUV2ZW50IHtcbiAgZGl2OiBvYmplY3Q7XG4gIHNjYWxlOiBudW1iZXI7XG4gIHJvdGF0aW9uOiBudW1iZXI7XG4gIGlkOiBzdHJpbmc7XG4gIHZpZXdwb3J0U2NhbGU6IG51bWJlcjtcbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLWpzL3BkZi1qcy13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUV2QyxPQUFPLDZCQUE2QixDQUFDO0FBTXJDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsaUNBQWlDLENBQUM7QUFFM0U7O0dBRUc7QUFDSCxJQUFLLFNBS0o7QUFMRCxXQUFLLFNBQVM7SUFDWiwyQ0FBUyxDQUFBO0lBQ1QsbURBQWEsQ0FBQTtJQUNiLCtDQUFXLENBQUE7SUFDWCwrQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUxJLFNBQVMsS0FBVCxTQUFTLFFBS2I7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQU12QixZQUNtQixTQUFvQixFQUNwQixlQUFnQyxFQUNoQyxhQUFrQyxFQUNuQyxnQkFBaUMsRUFDakMsb0JBQW1ELEVBQ25ELGNBQTRCLEVBQzVCLGFBQStCLEVBQy9CLGtCQUFrQyxFQUNsQyxZQUFrQyxFQUNsQyxlQUFtRDtRQVRsRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQStCO1FBQ25ELG1CQUFjLEdBQWQsY0FBYyxDQUFjO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWdCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBb0M7UUFFbkUsSUFBSSxDQUFDLFNBQVMsQ0FB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LENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUFFO1FBQ2hELElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQUU7UUFDaEMsSUFBSSxTQUFTLEdBQUcsR0FBRyxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUVwQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDeEYsQ0FBQztJQUVNLGFBQWEsQ0FBQyxRQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztJQUNqRCxDQUFDO0lBRU0sMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7SUFDdEMsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7SUFDMUMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGRmanNMaWIgZnJvbSAncGRmanMtZGlzdCc7XG5pbXBvcnQgeyBEb3dubG9hZE1hbmFnZXIsIFBERlZpZXdlciB9IGZyb20gJ3BkZmpzLWRpc3Qvd2ViL3BkZl92aWV3ZXInO1xuaW1wb3J0ICdwZGZqcy1kaXN0L2J1aWxkL3BkZi53b3JrZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VhcmNoT3BlcmF0aW9uLCBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4uL3NpZGUtYmFyL291dGxpbmUtaXRlbS9vdXRsaW5lLm1vZGVsJztcbmltcG9ydCB7IFBkZlBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvZG9jdW1lbnQucmVkdWNlcic7XG5cbnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID0gJy9hc3NldHMvYnVpbGQvcGRmLndvcmtlci5taW4uanMnO1xuXG4vKipcbiAqIFZhbHVlcyBvZiB0aGUgc3RhdGUgZmllbGQgcmV0dXJuZWQgYnkgdGhlIGZpbmQgZXZlbnRzXG4gKi9cbmVudW0gRmluZFN0YXRlIHtcbiAgRk9VTkQgPSAwLFxuICBOT1RfRk9VTkQgPSAxLFxuICBXUkFQUEVEID0gMixcbiAgUEVORElORyA9IDMsXG59XG5cbmV4cG9ydCBjbGFzcyBQZGZKc1dyYXBwZXIge1xuXG4gIHByaXZhdGUgem9vbVZhbHVlOiBudW1iZXI7XG4gIHByaXZhdGUgZG9jdW1lbnRUaXRsZTogc3RyaW5nO1xuICBwcml2YXRlIGRvY3VtZW50T3V0bGluZTogT3V0bGluZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBkZlZpZXdlcjogUERGVmlld2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG93bmxvYWRNYW5hZ2VyOiBEb3dubG9hZE1hbmFnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudExvYWRJbml0OiBTdWJqZWN0PHN0cmluZz4sXG4gICAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50TG9hZFByb2dyZXNzOiBTdWJqZWN0PERvY3VtZW50TG9hZFByb2dyZXNzPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRMb2FkZWQ6IFN1YmplY3Q8YW55PixcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3V0bGluZUxvYWRlZDogU3ViamVjdDxPdXRsaW5lPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRMb2FkRmFpbGVkOiBTdWJqZWN0PEVycm9yPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFnZVJlbmRlcmVkOiBTdWJqZWN0PFBhZ2VFdmVudFtdPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb25VcGRhdGVkOiBTdWJqZWN0PHsgbG9jYXRpb246IFBkZlBvc2l0aW9uIH0+LFxuICApIHtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigndXBkYXRldmlld2FyZWEnLCBlID0+IHBvc2l0aW9uVXBkYXRlZC5uZXh0KGUpKTtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZWNoYW5naW5nJywgZSA9PiB0aGlzLnRvb2xiYXJFdmVudHMuc2V0Q3VycmVudFBhZ2VJbnB1dFZhbHVlU3ViamVjdC5uZXh0KGUucGFnZU51bWJlcikpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdwYWdlc2luaXQnLCAoKSA9PiB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9ICcxJyk7XG5cbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZXJlbmRlcmVkJywgZSA9PiB7fSk7IC8vIG5vdCB1c2VkIGxlZnQgZm9yIGZ1dHVyZSBjb252ZW5pZW5jZVxuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdwYWdlc2xvYWRlZCcsIChlKSA9PiB0aGlzLmVtaXREb2N1bWVudEluZm8oZSkpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdzY2FsZWNoYW5naW5nJywgKGUpID0+ICB0aGlzLmVtaXREb2N1bWVudEluZm8oZSkpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdyb3RhdGlvbmNoYW5naW5nJywgKGUpID0+IHRoaXMuZW1pdERvY3VtZW50SW5mbyhlKSk7XG5cbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigndXBkYXRlZmluZGNvbnRyb2xzdGF0ZScsIGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudC5zdGF0ZSAhPT0gRmluZFN0YXRlLlBFTkRJTkcpIHtcbiAgICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaFJlc3VsdHNDb3VudFN1YmplY3QubmV4dChldmVudC5tYXRjaGVzQ291bnQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCd1cGRhdGVmaW5kbWF0Y2hlc2NvdW50JywgZXZlbnQgPT4ge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaFJlc3VsdHNDb3VudFN1YmplY3QubmV4dChldmVudC5tYXRjaGVzQ291bnQpO1xuICAgIH0pO1xuICAgIHRoaXMuem9vbVZhbHVlID0gMTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdERvY3VtZW50SW5mbyhlKSB7XG4gICAgY29uc3QgYWxsUGFnZXM6IFBhZ2VFdmVudFtdID0gWy4uLnRoaXMucGRmVmlld2VyLl9wYWdlc10ubWFwKHBhZ2UgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiBwYWdlLmRpdixcbiAgICAgICAgc2NhbGU6IHBhZ2Uuc2NhbGUsXG4gICAgICAgIHJvdGF0aW9uOiBwYWdlLnJvdGF0aW9uLFxuICAgICAgICBpZDogcGFnZS5pZCxcbiAgICAgICAgdmlld3BvcnRTY2FsZTogcGFnZS52aWV3cG9ydC5zY2FsZVxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLnBhZ2VSZW5kZXJlZC5uZXh0KGFsbFBhZ2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkRG9jdW1lbnQoZG9jdW1lbnRVcmw6IHN0cmluZykge1xuICAgIGNvbnN0IGxvYWRpbmdUYXNrID0gdGhpcy5jcmVhdGVMb2FkaW5nVGFzayhkb2N1bWVudFVybCk7XG5cbiAgICBsb2FkaW5nVGFzay5vblByb2dyZXNzID0gKHsgbG9hZGVkLCB0b3RhbCB9KSA9PiB7XG4gICAgICB0aGlzLmRvY3VtZW50TG9hZFByb2dyZXNzLm5leHQoeyBsb2FkZWQsIHRvdGFsIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50TG9hZEluaXQubmV4dChkb2N1bWVudFVybCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGRmRG9jdW1lbnQgPSBhd2FpdCBsb2FkaW5nVGFzay5wcm9taXNlO1xuICAgICAgdGhpcy5kb2N1bWVudExvYWRlZC5uZXh0KHBkZkRvY3VtZW50KTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5wYWdlQ291bnRTdWJqZWN0Lm5leHQocGRmRG9jdW1lbnQubnVtUGFnZXMpO1xuXG4gICAgICB0aGlzLnBkZlZpZXdlci5zZXREb2N1bWVudChwZGZEb2N1bWVudCk7XG4gICAgICB0aGlzLnBkZlZpZXdlci5saW5rU2VydmljZS5zZXREb2N1bWVudChwZGZEb2N1bWVudCwgbnVsbCk7XG5cbiAgICAgIGNvbnN0IG91dGxpbmUgPSBhd2FpdCBwZGZEb2N1bWVudC5nZXRPdXRsaW5lKCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuc2V0T3V0bGluZVBhZ2VOdW1iZXJzKHBkZkRvY3VtZW50LCBvdXRsaW5lKTtcblxuICAgICAgdGhpcy5kb2N1bWVudE91dGxpbmUgPSBvdXRsaW5lO1xuICAgICAgdGhpcy5vdXRsaW5lTG9hZGVkLm5leHQodGhpcy5kb2N1bWVudE91dGxpbmUpO1xuICAgICAgY29uc3QgcGRmTWV0YURhdGEgPSBhd2FpdCBwZGZEb2N1bWVudC5nZXRNZXRhZGF0YSgpO1xuICAgICAgdGhpcy5zZXRDdXJyZW50UERGVGl0bGUocGRmTWV0YURhdGEuaW5mby5UaXRsZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5kb2N1bWVudExvYWRGYWlsZWQubmV4dChlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUxvYWRpbmdUYXNrKGRvY3VtZW50VXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGRmanNMaWIuZ2V0RG9jdW1lbnQoe1xuICAgICAgdXJsOiBkb2N1bWVudFVybCxcbiAgICAgIGNNYXBVcmw6ICdhc3NldHMvbWluaWZpZWQvY21hcHMnLFxuICAgICAgY01hcFBhY2tlZDogdHJ1ZSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRPdXRsaW5lUGFnZU51bWJlcnMocGRmRG9jdW1lbnQsIG91dGxpbmVBcnJheTogT3V0bGluZVtdKSB7XG4gICAgb3V0bGluZUFycmF5LmZvckVhY2ggKCBhc3luYyAob3V0bGluZTogT3V0bGluZSkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5zZXROZXN0ZWRPdXRsaW5lUGFnZU51bWJlcnMocGRmRG9jdW1lbnQsIG91dGxpbmUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXROZXN0ZWRPdXRsaW5lUGFnZU51bWJlcnMocGRmRG9jdW1lbnQsIG91dGxpbmU6IE91dGxpbmUpIHtcbiAgICBvdXRsaW5lLnBhZ2VOdW1iZXIgPSBhd2FpdCB0aGlzLmdldE91dGxpbmVQYWdlTnVtYmVyKHBkZkRvY3VtZW50LCBvdXRsaW5lKTtcbiAgICBvdXRsaW5lLml0ZW1zLmZvckVhY2goIGFzeW5jIChvdXRsaW5lSXRlbTogT3V0bGluZSkgPT4ge1xuICAgICAgb3V0bGluZUl0ZW0ucGFnZU51bWJlciA9IGF3YWl0IHRoaXMuZ2V0T3V0bGluZVBhZ2VOdW1iZXIocGRmRG9jdW1lbnQsIG91dGxpbmVJdGVtKTtcbiAgICAgIHRoaXMuc2V0TmVzdGVkT3V0bGluZVBhZ2VOdW1iZXJzKHBkZkRvY3VtZW50LCBvdXRsaW5lSXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldE91dGxpbmVQYWdlTnVtYmVyKHBkZkRvY3VtZW50LCBvdXRsaW5lOiBPdXRsaW5lKTogUHJvbWlzZSA8bnVtYmVyPiB7XG4gICAgY29uc3QgZGVzdCA9IG91dGxpbmUuZGVzdDtcbiAgICBjb25zdCBwYWdlSW5kZXggPSBhd2FpdCBwZGZEb2N1bWVudC5nZXRQYWdlSW5kZXgoZGVzdFswXSk7XG4gICAgcmV0dXJuIE51bWJlcihwYWdlSW5kZXgpICsgMTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZEZpbGUodXJsOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRvd25sb2FkTWFuYWdlci5kb3dubG9hZFVybCh1cmwsIGZpbGVuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQYWdlTnVtYmVyKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRQYWdlTnVtYmVyID0gcGFnZU51bWJlcjtcbiAgfVxuICBwdWJsaWMgZ2V0UGFnZU51bWJlcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBkZlZpZXdlci5jdXJyZW50UGFnZU51bWJlcjtcbiAgfVxuICBwdWJsaWMgY2hhbmdlUGFnZU51bWJlcihudW1QYWdlczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wZGZWaWV3ZXIuY3VycmVudFBhZ2VOdW1iZXIgKz0gbnVtUGFnZXM7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKG9wZXJhdGlvbjogU2VhcmNoT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgY29tbWFuZCA9IG9wZXJhdGlvbi5yZXNldCA/ICdmaW5kJyA6ICdmaW5kYWdhaW4nO1xuXG4gICAgdGhpcy5wZGZWaWV3ZXIuZmluZENvbnRyb2xsZXIuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZCwge1xuICAgICAgcXVlcnk6IG9wZXJhdGlvbi5zZWFyY2hUZXJtLFxuICAgICAgcGhyYXNlU2VhcmNoOiB0cnVlLFxuICAgICAgY2FzZVNlbnNpdGl2ZTogb3BlcmF0aW9uLm1hdGNoQ2FzZSxcbiAgICAgIGVudGlyZVdvcmQ6IG9wZXJhdGlvbi53aG9sZVdvcmQsXG4gICAgICBoaWdobGlnaHRBbGw6IG9wZXJhdGlvbi5oaWdobGlnaHRBbGwsXG4gICAgICBmaW5kUHJldmlvdXM6IG9wZXJhdGlvbi5wcmV2aW91cyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5kaXNwYXRjaCgnZmluZGJhcmNsb3NlJyk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUbyhkZXN0aW5hdGlvbjogb2JqZWN0IHwgbnVtYmVyKSB7XG4gICAgaWYgKGRlc3RpbmF0aW9uIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICBpZiAoIWRlc3RpbmF0aW9uWzFdLm5hbWUuaW5jbHVkZXMoJ1hZWicpKSB7XG4gICAgICAgIGRlc3RpbmF0aW9uWzFdID0geyBuYW1lOiAnWFlaJyB9O1xuICAgICAgICBkZXN0aW5hdGlvblsyXSA9IGRlc3RpbmF0aW9uWzJdIHx8IG51bGw7XG4gICAgICAgIGRlc3RpbmF0aW9uWzNdID0gZGVzdGluYXRpb25bM10gfHwgbnVsbDtcbiAgICAgIH1cbiAgICAgIGRlc3RpbmF0aW9uWzRdID0gdGhpcy56b29tVmFsdWU7XG4gICAgfVxuICAgIHRoaXMucGRmVmlld2VyLmxpbmtTZXJ2aWNlLm5hdmlnYXRlVG8oZGVzdGluYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHNldFpvb20oem9vbVZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9IHRoaXMuZ2V0Wm9vbVZhbHVlKHpvb21WYWx1ZSk7XG4gICAgdGhpcy56b29tVmFsdWUgPSB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC5uZXh0KHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwWm9vbSh6b29tVmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlID0gK3RoaXMuZ2V0Wm9vbVZhbHVlKCgrdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUpICsgem9vbVZhbHVlKTtcbiAgICB0aGlzLnpvb21WYWx1ZSA9IHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tVmFsdWVTdWJqZWN0Lm5leHQodGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRab29tVmFsdWUoem9vbVZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChpc05hTih6b29tVmFsdWUpKSB7IHJldHVybiB0aGlzLnpvb21WYWx1ZTsgfVxuICAgIGlmICh6b29tVmFsdWUgPiA1KSB7IHJldHVybiA1OyB9XG4gICAgaWYgKHpvb21WYWx1ZSA8IDAuMSkgeyByZXR1cm4gMC4xOyB9XG5cbiAgICByZXR1cm4gK3pvb21WYWx1ZS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgcHVibGljIHJvdGF0ZShyb3RhdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wZGZWaWV3ZXIucGFnZXNSb3RhdGlvbiA9ICh0aGlzLnBkZlZpZXdlci5wYWdlc1JvdGF0aW9uICsgcm90YXRpb24pICUgMzYwO1xuICB9XG5cbiAgcHVibGljIHJlc2V0Um90YXRpb24ocm90YXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGRmVmlld2VyLnBhZ2VzUm90YXRpb24gPSByb3RhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXROb3JtYWxpc2VkUGFnZXNSb3RhdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBkZlZpZXdlci5wYWdlc1JvdGF0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRQREZab29tVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VycmVudFBERlRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50UERGVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudFRpdGxlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRMb2FkUHJvZ3Jlc3Mge1xuICBsb2FkZWQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlRXZlbnQge1xuICBkaXY6IG9iamVjdDtcbiAgc2NhbGU6IG51bWJlcjtcbiAgcm90YXRpb246IG51bWJlcjtcbiAgaWQ6IHN0cmluZztcbiAgdmlld3BvcnRTY2FsZTogbnVtYmVyO1xufVxuIl19
@@ -1,7 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
1
  import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer';
6
2
  import { Injectable } from '@angular/core';
7
3
  import { PdfJsWrapper } from './pdf-js-wrapper';
@@ -10,25 +6,16 @@ import { ToolbarEventService } from '../../../toolbar/toolbar-event.service';
10
6
  import * as i0 from "@angular/core";
11
7
  import * as i1 from "../../../toolbar/toolbar-event.service";
12
8
  export class PdfJsWrapperFactory {
13
- /**
14
- * @param {?} toolbarEvents
15
- */
16
9
  constructor(toolbarEvents) {
17
10
  this.toolbarEvents = toolbarEvents;
18
11
  this.linkService = new pdfjsViewer.PDFLinkService();
19
12
  this.eventBus = new pdfjsViewer.EventBus();
20
13
  }
21
- /**
22
- * @param {?} container
23
- * @return {?}
24
- */
25
14
  create(container) {
26
- /** @type {?} */
27
15
  const pdfFindController = new pdfjsViewer.PDFFindController({
28
16
  linkService: this.linkService,
29
17
  eventBus: this.eventBus
30
18
  });
31
- /** @type {?} */
32
19
  const pdfViewer = new pdfjsViewer.PDFViewer({
33
20
  container: container.nativeElement,
34
21
  linkService: this.linkService,
@@ -41,13 +28,11 @@ export class PdfJsWrapperFactory {
41
28
  this.pdfJsWrapper = new PdfJsWrapper(pdfViewer, new pdfjsViewer.DownloadManager({}), this.toolbarEvents, new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject());
42
29
  return this.pdfJsWrapper;
43
30
  }
44
- /**
45
- * @return {?}
46
- */
47
31
  pdfWrapper() {
48
32
  return this.pdfJsWrapper;
49
33
  }
50
34
  }
35
+ /** @nocollapse */ PdfJsWrapperFactory.ɵprov = i0.ɵɵdefineInjectable({ factory: function PdfJsWrapperFactory_Factory() { return new PdfJsWrapperFactory(i0.ɵɵinject(i1.ToolbarEventService)); }, token: PdfJsWrapperFactory, providedIn: "root" });
51
36
  PdfJsWrapperFactory.decorators = [
52
37
  { type: Injectable, args: [{ providedIn: 'root' },] }
53
38
  ];
@@ -55,27 +40,4 @@ PdfJsWrapperFactory.decorators = [
55
40
  PdfJsWrapperFactory.ctorParameters = () => [
56
41
  { type: ToolbarEventService }
57
42
  ];
58
- /** @nocollapse */ PdfJsWrapperFactory.ɵprov = i0.ɵɵdefineInjectable({ factory: function PdfJsWrapperFactory_Factory() { return new PdfJsWrapperFactory(i0.ɵɵinject(i1.ToolbarEventService)); }, token: PdfJsWrapperFactory, providedIn: "root" });
59
- if (false) {
60
- /**
61
- * @type {?}
62
- * @private
63
- */
64
- PdfJsWrapperFactory.prototype.linkService;
65
- /**
66
- * @type {?}
67
- * @private
68
- */
69
- PdfJsWrapperFactory.prototype.eventBus;
70
- /**
71
- * @type {?}
72
- * @private
73
- */
74
- PdfJsWrapperFactory.prototype.pdfJsWrapper;
75
- /**
76
- * @type {?}
77
- * @private
78
- */
79
- PdfJsWrapperFactory.prototype.toolbarEvents;
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvbWVkaWEtdmlld2VyLyIsInNvdXJjZXMiOlsibGliL3ZpZXdlcnMvcGRmLXZpZXdlci9wZGYtanMvcGRmLWpzLXdyYXBwZXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQWtDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUs3RSxNQUFNLE9BQU8sbUJBQW1COzs7O0lBTTlCLFlBQTZCLGFBQWtDO1FBQWxDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUM3RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0MsQ0FBQzs7Ozs7SUFFTSxNQUFNLENBQUMsU0FBcUI7O2NBQzNCLGlCQUFpQixHQUFHLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDO1lBQzFELFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQzs7Y0FFSSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQzFDLFNBQVMsRUFBRSxTQUFTLENBQUMsYUFBYTtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsY0FBYyxFQUFFLGlCQUFpQjtZQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsa0JBQWtCLEVBQUUsaUJBQWlCO1lBQ3JDLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxDQUNsQyxTQUFTLEVBQ1QsSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUNuQyxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLE9BQU8sRUFBVSxFQUNyQixJQUFJLE9BQU8sRUFBd0IsRUFDbkMsSUFBSSxPQUFPLEVBQU8sRUFDbEIsSUFBSSxPQUFPLEVBQVcsRUFDdEIsSUFBSSxPQUFPLEVBQUUsRUFDYixJQUFJLE9BQU8sRUFBZSxFQUMxQixJQUFJLE9BQU8sRUFBNkIsQ0FDekMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDOzs7O0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDOzs7WUEvQ0YsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7OztZQUp2QixtQkFBbUI7Ozs7Ozs7O0lBTzFCLDBDQUFnRDs7Ozs7SUFDaEQsdUNBQXVDOzs7OztJQUN2QywyQ0FBbUM7Ozs7O0lBRXZCLDRDQUFtRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBkZmpzVmlld2VyIGZyb20gJ3BkZmpzLWRpc3Qvd2ViL3BkZl92aWV3ZXInO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb2N1bWVudExvYWRQcm9ncmVzcywgUGFnZUV2ZW50LCBQZGZKc1dyYXBwZXJ9IGZyb20gJy4vcGRmLWpzLXdyYXBwZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE91dGxpbmUgfSBmcm9tICcuLi9zaWRlLWJhci9vdXRsaW5lLWl0ZW0vb3V0bGluZS5tb2RlbCc7XG5pbXBvcnQgeyBQZGZQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL2RvY3VtZW50LnJlZHVjZXInO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBQZGZKc1dyYXBwZXJGYWN0b3J5IHtcblxuICBwcml2YXRlIGxpbmtTZXJ2aWNlOiBwZGZqc1ZpZXdlci5QREZMaW5rU2VydmljZTtcbiAgcHJpdmF0ZSBldmVudEJ1czogcGRmanNWaWV3ZXIuRXZlbnRCdXM7XG4gIHByaXZhdGUgcGRmSnNXcmFwcGVyOiBQZGZKc1dyYXBwZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlKSB7XG4gICAgdGhpcy5saW5rU2VydmljZSA9IG5ldyBwZGZqc1ZpZXdlci5QREZMaW5rU2VydmljZSgpO1xuICAgIHRoaXMuZXZlbnRCdXMgPSBuZXcgcGRmanNWaWV3ZXIuRXZlbnRCdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGUoY29udGFpbmVyOiBFbGVtZW50UmVmKTogUGRmSnNXcmFwcGVyIHtcbiAgICBjb25zdCBwZGZGaW5kQ29udHJvbGxlciA9IG5ldyBwZGZqc1ZpZXdlci5QREZGaW5kQ29udHJvbGxlcih7XG4gICAgICBsaW5rU2VydmljZTogdGhpcy5saW5rU2VydmljZSxcbiAgICAgIGV2ZW50QnVzOiB0aGlzLmV2ZW50QnVzXG4gICAgfSk7XG5cbiAgICBjb25zdCBwZGZWaWV3ZXIgPSBuZXcgcGRmanNWaWV3ZXIuUERGVmlld2VyKHtcbiAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBsaW5rU2VydmljZTogdGhpcy5saW5rU2VydmljZSxcbiAgICAgIGZpbmRDb250cm9sbGVyOiBwZGZGaW5kQ29udHJvbGxlcixcbiAgICAgIGV2ZW50QnVzOiB0aGlzLmV2ZW50QnVzLFxuICAgICAgaW1hZ2VSZXNvdXJjZXNQYXRoOiAnL2Fzc2V0cy9pbWFnZXMvJyxcbiAgICAgIHRleHRMYXllck1vZGU6IDJcbiAgICB9KTtcblxuICAgIHRoaXMubGlua1NlcnZpY2Uuc2V0Vmlld2VyKHBkZlZpZXdlcik7XG5cbiAgICB0aGlzLnBkZkpzV3JhcHBlciA9IG5ldyBQZGZKc1dyYXBwZXIoXG4gICAgICBwZGZWaWV3ZXIsXG4gICAgICBuZXcgcGRmanNWaWV3ZXIuRG93bmxvYWRNYW5hZ2VyKHt9KSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cyxcbiAgICAgIG5ldyBTdWJqZWN0PHN0cmluZz4oKSxcbiAgICAgIG5ldyBTdWJqZWN0PERvY3VtZW50TG9hZFByb2dyZXNzPigpLFxuICAgICAgbmV3IFN1YmplY3Q8YW55PigpLFxuICAgICAgbmV3IFN1YmplY3Q8T3V0bGluZT4oKSxcbiAgICAgIG5ldyBTdWJqZWN0KCksXG4gICAgICBuZXcgU3ViamVjdDxQYWdlRXZlbnRbXT4oKSxcbiAgICAgIG5ldyBTdWJqZWN0PHsgbG9jYXRpb246IFBkZlBvc2l0aW9uIH0+KClcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMucGRmSnNXcmFwcGVyO1xuICB9XG5cbiAgcGRmV3JhcHBlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wZGZKc1dyYXBwZXI7XG4gIH1cbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLWpzL3BkZi1qcy13cmFwcGVyLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQWtDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUs3RSxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLFlBQTZCLGFBQWtDO1FBQWxDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUM3RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFxQjtRQUNqQyxNQUFNLGlCQUFpQixHQUFHLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDO1lBQzFELFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQzFDLFNBQVMsRUFBRSxTQUFTLENBQUMsYUFBYTtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsY0FBYyxFQUFFLGlCQUFpQjtZQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsa0JBQWtCLEVBQUUsaUJBQWlCO1lBQ3JDLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQ2xDLFNBQVMsRUFDVCxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQ25DLElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksT0FBTyxFQUFVLEVBQ3JCLElBQUksT0FBTyxFQUF3QixFQUNuQyxJQUFJLE9BQU8sRUFBTyxFQUNsQixJQUFJLE9BQU8sRUFBVyxFQUN0QixJQUFJLE9BQU8sRUFBRSxFQUNiLElBQUksT0FBTyxFQUFlLEVBQzFCLElBQUksT0FBTyxFQUE2QixDQUN6QyxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Ozs7WUEvQ0YsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7OztZQUp2QixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwZGZqc1ZpZXdlciBmcm9tICdwZGZqcy1kaXN0L3dlYi9wZGZfdmlld2VyJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG9jdW1lbnRMb2FkUHJvZ3Jlc3MsIFBhZ2VFdmVudCwgUGRmSnNXcmFwcGVyfSBmcm9tICcuL3BkZi1qcy13cmFwcGVyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPdXRsaW5lIH0gZnJvbSAnLi4vc2lkZS1iYXIvb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0IHsgUGRmUG9zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9kb2N1bWVudC5yZWR1Y2VyJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUGRmSnNXcmFwcGVyRmFjdG9yeSB7XG5cbiAgcHJpdmF0ZSBsaW5rU2VydmljZTogcGRmanNWaWV3ZXIuUERGTGlua1NlcnZpY2U7XG4gIHByaXZhdGUgZXZlbnRCdXM6IHBkZmpzVmlld2VyLkV2ZW50QnVzO1xuICBwcml2YXRlIHBkZkpzV3JhcHBlcjogUGRmSnNXcmFwcGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSkge1xuICAgIHRoaXMubGlua1NlcnZpY2UgPSBuZXcgcGRmanNWaWV3ZXIuUERGTGlua1NlcnZpY2UoKTtcbiAgICB0aGlzLmV2ZW50QnVzID0gbmV3IHBkZmpzVmlld2VyLkV2ZW50QnVzKCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlKGNvbnRhaW5lcjogRWxlbWVudFJlZik6IFBkZkpzV3JhcHBlciB7XG4gICAgY29uc3QgcGRmRmluZENvbnRyb2xsZXIgPSBuZXcgcGRmanNWaWV3ZXIuUERGRmluZENvbnRyb2xsZXIoe1xuICAgICAgbGlua1NlcnZpY2U6IHRoaXMubGlua1NlcnZpY2UsXG4gICAgICBldmVudEJ1czogdGhpcy5ldmVudEJ1c1xuICAgIH0pO1xuXG4gICAgY29uc3QgcGRmVmlld2VyID0gbmV3IHBkZmpzVmlld2VyLlBERlZpZXdlcih7XG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgbGlua1NlcnZpY2U6IHRoaXMubGlua1NlcnZpY2UsXG4gICAgICBmaW5kQ29udHJvbGxlcjogcGRmRmluZENvbnRyb2xsZXIsXG4gICAgICBldmVudEJ1czogdGhpcy5ldmVudEJ1cyxcbiAgICAgIGltYWdlUmVzb3VyY2VzUGF0aDogJy9hc3NldHMvaW1hZ2VzLycsXG4gICAgICB0ZXh0TGF5ZXJNb2RlOiAyXG4gICAgfSk7XG5cbiAgICB0aGlzLmxpbmtTZXJ2aWNlLnNldFZpZXdlcihwZGZWaWV3ZXIpO1xuXG4gICAgdGhpcy5wZGZKc1dyYXBwZXIgPSBuZXcgUGRmSnNXcmFwcGVyKFxuICAgICAgcGRmVmlld2VyLFxuICAgICAgbmV3IHBkZmpzVmlld2VyLkRvd25sb2FkTWFuYWdlcih7fSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMsXG4gICAgICBuZXcgU3ViamVjdDxzdHJpbmc+KCksXG4gICAgICBuZXcgU3ViamVjdDxEb2N1bWVudExvYWRQcm9ncmVzcz4oKSxcbiAgICAgIG5ldyBTdWJqZWN0PGFueT4oKSxcbiAgICAgIG5ldyBTdWJqZWN0PE91dGxpbmU+KCksXG4gICAgICBuZXcgU3ViamVjdCgpLFxuICAgICAgbmV3IFN1YmplY3Q8UGFnZUV2ZW50W10+KCksXG4gICAgICBuZXcgU3ViamVjdDx7IGxvY2F0aW9uOiBQZGZQb3NpdGlvbiB9PigpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLnBkZkpzV3JhcHBlcjtcbiAgfVxuXG4gIHBkZldyYXBwZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGRmSnNXcmFwcGVyO1xuICB9XG59XG4iXX0=