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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/fesm2022/hmcts-media-viewer.mjs +369 -841
  2. package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
  3. package/index.d.ts +2316 -4
  4. package/index.d.ts.map +1 -0
  5. package/package.json +10 -12
  6. package/esm2022/hmcts-media-viewer.mjs +0 -5
  7. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -122
  8. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -120
  9. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +0 -101
  10. package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
  11. package/esm2022/lib/annotations/annotation-set/annotation-set.model.mjs +0 -2
  12. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
  13. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -2
  14. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
  15. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -2
  16. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -119
  17. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
  18. package/esm2022/lib/annotations/annotations.module.mjs +0 -162
  19. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +0 -178
  20. package/esm2022/lib/annotations/comment-set/comment/comment.model.mjs +0 -2
  21. package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
  22. package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
  23. package/esm2022/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +0 -31
  24. package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
  25. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +0 -62
  26. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
  27. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -72
  28. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +0 -55
  29. package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +0 -123
  30. package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
  31. package/esm2022/lib/annotations/models/api-persisted.model.mjs +0 -2
  32. package/esm2022/lib/annotations/models/event-select.model.mjs +0 -2
  33. package/esm2022/lib/annotations/models/tags.model.mjs +0 -2
  34. package/esm2022/lib/annotations/models/user.model.mjs +0 -2
  35. package/esm2022/lib/annotations/pipes/date/date.pipe.mjs +0 -26
  36. package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
  37. package/esm2022/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +0 -16
  38. package/esm2022/lib/annotations/services/annotation-api/annotation-api.service.mjs +0 -58
  39. package/esm2022/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +0 -45
  40. package/esm2022/lib/annotations/services/tags/tags.services.mjs +0 -41
  41. package/esm2022/lib/annotations/tags/tags.component.mjs +0 -53
  42. package/esm2022/lib/bookmark/components/bookmark-icons.component.mjs +0 -25
  43. package/esm2022/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +0 -30
  44. package/esm2022/lib/icp/icp-follower.service.mjs +0 -65
  45. package/esm2022/lib/icp/icp-presenter.service.mjs +0 -56
  46. package/esm2022/lib/icp/icp-session-api.service.mjs +0 -28
  47. package/esm2022/lib/icp/icp-update.service.mjs +0 -73
  48. package/esm2022/lib/icp/icp.events.mjs +0 -15
  49. package/esm2022/lib/icp/icp.interfaces.mjs +0 -2
  50. package/esm2022/lib/icp/icp.service.mjs +0 -98
  51. package/esm2022/lib/icp/participants-list/participants-list.component.mjs +0 -32
  52. package/esm2022/lib/icp/socket.service.mjs +0 -128
  53. package/esm2022/lib/media-viewer.component.mjs +0 -341
  54. package/esm2022/lib/media-viewer.module.mjs +0 -139
  55. package/esm2022/lib/print.service.mjs +0 -32
  56. package/esm2022/lib/redaction/components/redaction.component.mjs +0 -91
  57. package/esm2022/lib/redaction/services/redaction-api.service.mjs +0 -50
  58. package/esm2022/lib/redaction/services/redaction.model.mjs +0 -2
  59. package/esm2022/lib/shared/directives/keyboard-nav.directive.mjs +0 -243
  60. package/esm2022/lib/shared/directives/tooltip-dismiss.directive.mjs +0 -36
  61. package/esm2022/lib/shared/gov-uk-date/gov-uk-date.component.mjs +0 -28
  62. package/esm2022/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +0 -34
  63. package/esm2022/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +0 -63
  64. package/esm2022/lib/shared/gov-uk-label/gov-uk-label.component.mjs +0 -44
  65. package/esm2022/lib/shared/shared.module.mjs +0 -58
  66. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +0 -29
  67. package/esm2022/lib/shared/util/services/number.helper.service.mjs +0 -23
  68. package/esm2022/lib/store/actions/annotation.actions.mjs +0 -119
  69. package/esm2022/lib/store/actions/bookmark.actions.mjs +0 -112
  70. package/esm2022/lib/store/actions/document.actions.mjs +0 -91
  71. package/esm2022/lib/store/actions/icp.actions.mjs +0 -56
  72. package/esm2022/lib/store/actions/redaction.actions.mjs +0 -132
  73. package/esm2022/lib/store/actions/tag.actions.mjs +0 -21
  74. package/esm2022/lib/store/bookmarks-store-utils.mjs +0 -49
  75. package/esm2022/lib/store/effects/annotation.effects.mjs +0 -51
  76. package/esm2022/lib/store/effects/bookmarks.effects.mjs +0 -44
  77. package/esm2022/lib/store/effects/document.effects.mjs +0 -44
  78. package/esm2022/lib/store/effects/icp.effects.mjs +0 -26
  79. package/esm2022/lib/store/effects/index.mjs +0 -7
  80. package/esm2022/lib/store/effects/redaction.effects.mjs +0 -67
  81. package/esm2022/lib/store/models/bookmarks.interface.mjs +0 -2
  82. package/esm2022/lib/store/models/filters.interface.mjs +0 -2
  83. package/esm2022/lib/store/reducers/annotations.reducer.mjs +0 -208
  84. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +0 -125
  85. package/esm2022/lib/store/reducers/document.reducer.mjs +0 -158
  86. package/esm2022/lib/store/reducers/icp.reducer.mjs +0 -56
  87. package/esm2022/lib/store/reducers/redaction.reducer.mjs +0 -116
  88. package/esm2022/lib/store/reducers/reducers.mjs +0 -23
  89. package/esm2022/lib/store/reducers/tags.reducer.mjs +0 -93
  90. package/esm2022/lib/store/selectors/annotation.selectors.mjs +0 -81
  91. package/esm2022/lib/store/selectors/bookmark.selectors.mjs +0 -37
  92. package/esm2022/lib/store/selectors/document.selectors.mjs +0 -13
  93. package/esm2022/lib/store/selectors/icp.selectors.mjs +0 -13
  94. package/esm2022/lib/store/selectors/redaction.selectors.mjs +0 -26
  95. package/esm2022/lib/store/selectors/tag.selectors.mjs +0 -15
  96. package/esm2022/lib/store/store-utils.mjs +0 -131
  97. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -74
  98. package/esm2022/lib/toolbar/icp-event.service.mjs +0 -44
  99. package/esm2022/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +0 -43
  100. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -271
  101. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -237
  102. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -2
  103. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -94
  104. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
  105. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
  106. package/esm2022/lib/toolbar/toolbar-event.service.mjs +0 -178
  107. package/esm2022/lib/toolbar/toolbar-focus.service.mjs +0 -33
  108. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -81
  109. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
  110. package/esm2022/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +0 -22
  111. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +0 -57
  112. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
  113. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
  114. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -266
  115. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +0 -40
  116. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -242
  117. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -379
  118. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -2
  119. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
  120. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -2
  121. package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +0 -99
  122. package/esm2022/lib/viewers/rotation-persist/rotation-api.service.mjs +0 -27
  123. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
  124. package/esm2022/lib/viewers/rotation-persist/rotation.model.mjs +0 -2
  125. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
  126. package/esm2022/lib/viewers/viewer-event.service.mjs +0 -34
  127. package/esm2022/lib/viewers/viewer-exception.model.mjs +0 -13
  128. package/esm2022/lib/viewers/viewer-util.service.mjs +0 -20
  129. package/esm2022/public_api.mjs +0 -33
  130. package/hmcts-media-viewer.d.ts.map +0 -1
  131. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +0 -48
  132. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +0 -1
  133. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +0 -32
  134. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +0 -1
  135. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +0 -18
  136. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +0 -1
  137. package/lib/annotations/annotation-set/annotation-set.component.d.ts +0 -27
  138. package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +0 -1
  139. package/lib/annotations/annotation-set/annotation-set.model.d.ts +0 -7
  140. package/lib/annotations/annotation-set/annotation-set.model.d.ts.map +0 -1
  141. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +0 -34
  142. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +0 -1
  143. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +0 -16
  144. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts.map +0 -1
  145. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +0 -41
  146. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +0 -1
  147. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +0 -9
  148. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts.map +0 -1
  149. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +0 -37
  150. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +0 -1
  151. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +0 -37
  152. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +0 -1
  153. package/lib/annotations/annotations.module.d.ts +0 -36
  154. package/lib/annotations/annotations.module.d.ts.map +0 -1
  155. package/lib/annotations/comment-set/comment/comment.component.d.ts +0 -69
  156. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +0 -1
  157. package/lib/annotations/comment-set/comment/comment.model.d.ts +0 -13
  158. package/lib/annotations/comment-set/comment/comment.model.d.ts.map +0 -1
  159. package/lib/annotations/comment-set/comment/comment.service.d.ts +0 -22
  160. package/lib/annotations/comment-set/comment/comment.service.d.ts.map +0 -1
  161. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +0 -14
  162. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +0 -1
  163. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +0 -12
  164. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +0 -1
  165. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +0 -28
  166. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +0 -1
  167. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +0 -26
  168. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +0 -1
  169. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +0 -21
  170. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +0 -1
  171. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +0 -36
  172. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +0 -1
  173. package/lib/annotations/comment-set/comment-set-render.service.d.ts +0 -15
  174. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +0 -1
  175. package/lib/annotations/comment-set/comment-set.component.d.ts +0 -56
  176. package/lib/annotations/comment-set/comment-set.component.d.ts.map +0 -1
  177. package/lib/annotations/comments-summary/comments-summary.component.d.ts +0 -42
  178. package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +0 -1
  179. package/lib/annotations/models/api-persisted.model.d.ts +0 -11
  180. package/lib/annotations/models/api-persisted.model.d.ts.map +0 -1
  181. package/lib/annotations/models/event-select.model.d.ts +0 -6
  182. package/lib/annotations/models/event-select.model.d.ts.map +0 -1
  183. package/lib/annotations/models/tags.model.d.ts +0 -7
  184. package/lib/annotations/models/tags.model.d.ts.map +0 -1
  185. package/lib/annotations/models/user.model.d.ts +0 -6
  186. package/lib/annotations/models/user.model.d.ts.map +0 -1
  187. package/lib/annotations/pipes/date/date.pipe.d.ts +0 -16
  188. package/lib/annotations/pipes/date/date.pipe.d.ts.map +0 -1
  189. package/lib/annotations/pipes/filter/filter.pipe.d.ts +0 -8
  190. package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +0 -1
  191. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +0 -8
  192. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +0 -1
  193. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +0 -28
  194. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +0 -1
  195. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +0 -21
  196. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +0 -1
  197. package/lib/annotations/services/tags/tags.services.d.ts +0 -18
  198. package/lib/annotations/services/tags/tags.services.d.ts.map +0 -1
  199. package/lib/annotations/tags/tags.component.d.ts +0 -28
  200. package/lib/annotations/tags/tags.component.d.ts.map +0 -1
  201. package/lib/bookmark/components/bookmark-icons.component.d.ts +0 -19
  202. package/lib/bookmark/components/bookmark-icons.component.d.ts.map +0 -1
  203. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +0 -14
  204. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +0 -1
  205. package/lib/icp/icp-follower.service.d.ts +0 -26
  206. package/lib/icp/icp-follower.service.d.ts.map +0 -1
  207. package/lib/icp/icp-presenter.service.d.ts +0 -25
  208. package/lib/icp/icp-presenter.service.d.ts.map +0 -1
  209. package/lib/icp/icp-session-api.service.d.ts +0 -15
  210. package/lib/icp/icp-session-api.service.d.ts.map +0 -1
  211. package/lib/icp/icp-update.service.d.ts +0 -22
  212. package/lib/icp/icp-update.service.d.ts.map +0 -1
  213. package/lib/icp/icp.events.d.ts +0 -14
  214. package/lib/icp/icp.events.d.ts.map +0 -1
  215. package/lib/icp/icp.interfaces.d.ts +0 -23
  216. package/lib/icp/icp.interfaces.d.ts.map +0 -1
  217. package/lib/icp/icp.service.d.ts +0 -40
  218. package/lib/icp/icp.service.d.ts.map +0 -1
  219. package/lib/icp/participants-list/participants-list.component.d.ts +0 -23
  220. package/lib/icp/participants-list/participants-list.component.d.ts.map +0 -1
  221. package/lib/icp/socket.service.d.ts +0 -29
  222. package/lib/icp/socket.service.d.ts.map +0 -1
  223. package/lib/media-viewer.component.d.ts +0 -80
  224. package/lib/media-viewer.component.d.ts.map +0 -1
  225. package/lib/media-viewer.module.d.ts +0 -36
  226. package/lib/media-viewer.module.d.ts.map +0 -1
  227. package/lib/print.service.d.ts +0 -8
  228. package/lib/print.service.d.ts.map +0 -1
  229. package/lib/redaction/components/redaction.component.d.ts +0 -42
  230. package/lib/redaction/components/redaction.component.d.ts.map +0 -1
  231. package/lib/redaction/services/redaction-api.service.d.ts +0 -20
  232. package/lib/redaction/services/redaction-api.service.d.ts.map +0 -1
  233. package/lib/redaction/services/redaction.model.d.ts +0 -11
  234. package/lib/redaction/services/redaction.model.d.ts.map +0 -1
  235. package/lib/shared/directives/keyboard-nav.directive.d.ts +0 -30
  236. package/lib/shared/directives/keyboard-nav.directive.d.ts.map +0 -1
  237. package/lib/shared/directives/tooltip-dismiss.directive.d.ts +0 -11
  238. package/lib/shared/directives/tooltip-dismiss.directive.d.ts.map +0 -1
  239. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +0 -15
  240. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +0 -1
  241. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +0 -11
  242. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +0 -1
  243. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +0 -16
  244. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +0 -1
  245. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +0 -14
  246. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +0 -1
  247. package/lib/shared/shared.module.d.ts +0 -15
  248. package/lib/shared/shared.module.d.ts.map +0 -1
  249. package/lib/shared/util/helpers/html-templates.helper.d.ts +0 -9
  250. package/lib/shared/util/helpers/html-templates.helper.d.ts.map +0 -1
  251. package/lib/shared/util/services/number.helper.service.d.ts +0 -11
  252. package/lib/shared/util/services/number.helper.service.d.ts.map +0 -1
  253. package/lib/store/actions/annotation.actions.d.ts +0 -126
  254. package/lib/store/actions/annotation.actions.d.ts.map +0 -1
  255. package/lib/store/actions/bookmark.actions.d.ts +0 -117
  256. package/lib/store/actions/bookmark.actions.d.ts.map +0 -1
  257. package/lib/store/actions/document.actions.d.ts +0 -90
  258. package/lib/store/actions/document.actions.d.ts.map +0 -1
  259. package/lib/store/actions/icp.actions.d.ts +0 -75
  260. package/lib/store/actions/icp.actions.d.ts.map +0 -1
  261. package/lib/store/actions/redaction.actions.d.ts +0 -127
  262. package/lib/store/actions/redaction.actions.d.ts.map +0 -1
  263. package/lib/store/actions/tag.actions.d.ts +0 -30
  264. package/lib/store/actions/tag.actions.d.ts.map +0 -1
  265. package/lib/store/bookmarks-store-utils.d.ts +0 -9
  266. package/lib/store/bookmarks-store-utils.d.ts.map +0 -1
  267. package/lib/store/effects/annotation.effects.d.ts +0 -16
  268. package/lib/store/effects/annotation.effects.d.ts.map +0 -1
  269. package/lib/store/effects/bookmarks.effects.d.ts +0 -21
  270. package/lib/store/effects/bookmarks.effects.d.ts.map +0 -1
  271. package/lib/store/effects/document.effects.d.ts +0 -17
  272. package/lib/store/effects/document.effects.d.ts.map +0 -1
  273. package/lib/store/effects/icp.effects.d.ts +0 -16
  274. package/lib/store/effects/icp.effects.d.ts.map +0 -1
  275. package/lib/store/effects/index.d.ts +0 -2
  276. package/lib/store/effects/index.d.ts.map +0 -1
  277. package/lib/store/effects/redaction.effects.d.ts +0 -20
  278. package/lib/store/effects/redaction.effects.d.ts.map +0 -1
  279. package/lib/store/models/bookmarks.interface.d.ts +0 -31
  280. package/lib/store/models/bookmarks.interface.d.ts.map +0 -1
  281. package/lib/store/models/filters.interface.d.ts +0 -8
  282. package/lib/store/models/filters.interface.d.ts.map +0 -1
  283. package/lib/store/reducers/annotations.reducer.d.ts +0 -48
  284. package/lib/store/reducers/annotations.reducer.d.ts.map +0 -1
  285. package/lib/store/reducers/bookmarks.reducer.d.ts +0 -27
  286. package/lib/store/reducers/bookmarks.reducer.d.ts.map +0 -1
  287. package/lib/store/reducers/document.reducer.d.ts +0 -52
  288. package/lib/store/reducers/document.reducer.d.ts.map +0 -1
  289. package/lib/store/reducers/icp.reducer.d.ts +0 -9
  290. package/lib/store/reducers/icp.reducer.d.ts.map +0 -1
  291. package/lib/store/reducers/redaction.reducer.d.ts +0 -32
  292. package/lib/store/reducers/redaction.reducer.d.ts.map +0 -1
  293. package/lib/store/reducers/reducers.d.ts +0 -24
  294. package/lib/store/reducers/reducers.d.ts.map +0 -1
  295. package/lib/store/reducers/tags.reducer.d.ts +0 -32
  296. package/lib/store/reducers/tags.reducer.d.ts.map +0 -1
  297. package/lib/store/selectors/annotation.selectors.d.ts +0 -136
  298. package/lib/store/selectors/annotation.selectors.d.ts.map +0 -1
  299. package/lib/store/selectors/bookmark.selectors.d.ts +0 -38
  300. package/lib/store/selectors/bookmark.selectors.d.ts.map +0 -1
  301. package/lib/store/selectors/document.selectors.d.ts +0 -23
  302. package/lib/store/selectors/document.selectors.d.ts.map +0 -1
  303. package/lib/store/selectors/icp.selectors.d.ts +0 -10
  304. package/lib/store/selectors/icp.selectors.d.ts.map +0 -1
  305. package/lib/store/selectors/redaction.selectors.d.ts +0 -35
  306. package/lib/store/selectors/redaction.selectors.d.ts.map +0 -1
  307. package/lib/store/selectors/tag.selectors.d.ts +0 -28
  308. package/lib/store/selectors/tag.selectors.d.ts.map +0 -1
  309. package/lib/store/store-utils.d.ts +0 -25
  310. package/lib/store/store-utils.d.ts.map +0 -1
  311. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts +0 -26
  312. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts.map +0 -1
  313. package/lib/toolbar/icp-event.service.d.ts +0 -21
  314. package/lib/toolbar/icp-event.service.d.ts.map +0 -1
  315. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +0 -24
  316. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +0 -1
  317. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +0 -80
  318. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +0 -1
  319. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +0 -60
  320. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +0 -1
  321. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts +0 -12
  322. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts.map +0 -1
  323. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +0 -35
  324. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +0 -1
  325. package/lib/toolbar/search-bar/search-bar.component.d.ts +0 -34
  326. package/lib/toolbar/search-bar/search-bar.component.d.ts.map +0 -1
  327. package/lib/toolbar/toolbar-button-visibility.service.d.ts +0 -67
  328. package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +0 -1
  329. package/lib/toolbar/toolbar-event.service.d.ts +0 -96
  330. package/lib/toolbar/toolbar-event.service.d.ts.map +0 -1
  331. package/lib/toolbar/toolbar-focus.service.d.ts +0 -7
  332. package/lib/toolbar/toolbar-focus.service.d.ts.map +0 -1
  333. package/lib/toolbar/toolbar.module.d.ts +0 -21
  334. package/lib/toolbar/toolbar.module.d.ts.map +0 -1
  335. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +0 -31
  336. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +0 -1
  337. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +0 -12
  338. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +0 -1
  339. package/lib/viewers/grab-n-drag.directive.d.ts +0 -19
  340. package/lib/viewers/grab-n-drag.directive.d.ts.map +0 -1
  341. package/lib/viewers/image-viewer/image-viewer.component.d.ts +0 -57
  342. package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +0 -1
  343. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +0 -25
  344. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +0 -1
  345. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +0 -69
  346. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +0 -1
  347. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +0 -17
  348. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +0 -1
  349. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +0 -82
  350. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +0 -1
  351. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +0 -82
  352. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +0 -1
  353. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +0 -22
  354. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts.map +0 -1
  355. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +0 -20
  356. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +0 -1
  357. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +0 -14
  358. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +0 -1
  359. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +0 -42
  360. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +0 -1
  361. package/lib/viewers/rotation-persist/rotation-api.service.d.ts +0 -14
  362. package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +0 -1
  363. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +0 -27
  364. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +0 -1
  365. package/lib/viewers/rotation-persist/rotation.model.d.ts +0 -5
  366. package/lib/viewers/rotation-persist/rotation.model.d.ts.map +0 -1
  367. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +0 -23
  368. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +0 -1
  369. package/lib/viewers/viewer-event.service.d.ts +0 -23
  370. package/lib/viewers/viewer-event.service.d.ts.map +0 -1
  371. package/lib/viewers/viewer-exception.model.d.ts +0 -15
  372. package/lib/viewers/viewer-exception.model.d.ts.map +0 -1
  373. package/lib/viewers/viewer-util.service.d.ts +0 -10
  374. package/lib/viewers/viewer-util.service.d.ts.map +0 -1
  375. package/public_api.d.ts +0 -30
  376. package/public_api.d.ts.map +0 -1
@@ -1,266 +0,0 @@
1
- import * as pdfjs from 'pdfjs-dist';
2
- import { PDFLinkService } from 'pdfjs-dist/web/pdf_viewer.mjs';
3
- import 'pdfjs-dist/build/pdf.worker';
4
- import 'pdfjs-dist/build/pdf.mjs';
5
- pdfjs.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';
6
- /**
7
- * Values of the state field returned by the find events
8
- */
9
- var FindState;
10
- (function (FindState) {
11
- FindState[FindState["FOUND"] = 0] = "FOUND";
12
- FindState[FindState["NOT_FOUND"] = 1] = "NOT_FOUND";
13
- FindState[FindState["WRAPPED"] = 2] = "WRAPPED";
14
- FindState[FindState["PENDING"] = 3] = "PENDING";
15
- })(FindState || (FindState = {}));
16
- export class PdfJsWrapper {
17
- constructor(pdfViewer, downloadManager, toolbarEvents, documentLoadInit, documentLoadProgress, documentLoaded, outlineLoaded, documentLoadFailed, pageRendered, positionUpdated) {
18
- this.pdfViewer = pdfViewer;
19
- this.downloadManager = downloadManager;
20
- this.toolbarEvents = toolbarEvents;
21
- this.documentLoadInit = documentLoadInit;
22
- this.documentLoadProgress = documentLoadProgress;
23
- this.documentLoaded = documentLoaded;
24
- this.outlineLoaded = outlineLoaded;
25
- this.documentLoadFailed = documentLoadFailed;
26
- this.pageRendered = pageRendered;
27
- this.positionUpdated = positionUpdated;
28
- this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));
29
- this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));
30
- this.pdfViewer.eventBus.on('pagechanging', e => this.drawMissingPages(e));
31
- this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');
32
- this.pdfViewer.eventBus.on('pagerendered', e => { }); // not used left for future convenience
33
- this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));
34
- this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));
35
- this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));
36
- this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {
37
- this.sendSearchDetails(event);
38
- });
39
- this.pdfViewer.eventBus.on('updatefindmatchescount', event => {
40
- const result = { ...event.matchesCount, isPrevious: event?.source?.state?.findPrevious };
41
- this.toolbarEvents.searchResultsCountSubject.next(result);
42
- });
43
- this.zoomValue = 1;
44
- this.redactionPages = [];
45
- // Subscribe to redactionMode changes and run a function when it changes
46
- this.toolbarEvents.redactionMode.subscribe((redactionModeValue) => {
47
- this.onRedactionModeChanged(redactionModeValue);
48
- });
49
- }
50
- sendSearchDetails(event) {
51
- if (event.state !== FindState.PENDING) {
52
- const result = { ...event.matchesCount, isPrevious: event?.source?.state?.findPrevious };
53
- this.toolbarEvents.searchResultsCountSubject.next(result);
54
- if (event?.source?.selected?.pageIdx !== -1 && event.matchesCount.total > 0) {
55
- this.toolbarEvents.redactionSerachSubject.next({
56
- page: event?.source?.selected?.pageIdx,
57
- matchedIndex: event?.source?.selected?.matchIdx,
58
- matchesCount: event.matchesCount.total
59
- });
60
- }
61
- }
62
- }
63
- // in the event a user fast scrolls or navigates to a specific page,
64
- // we need to render the missing pages so redaction box is in right place
65
- drawMissingPages(e) {
66
- const redactionMode = this.toolbarEvents.redactionMode.getValue();
67
- const { pageNumber, previous: previousPageNumber } = e;
68
- if (!previousPageNumber || pageNumber < previousPageNumber || Math.abs(pageNumber - previousPageNumber) <= 1) {
69
- return;
70
- }
71
- const start = previousPageNumber + 1;
72
- const end = pageNumber;
73
- // if the redaction mode is on render the pages now
74
- if (redactionMode) {
75
- for (let i = start; i < end; i++) {
76
- const page = this.pdfViewer._pages[i - 1];
77
- if (page && !page.renderingState) {
78
- page.draw();
79
- }
80
- }
81
- }
82
- else {
83
- // keep track of pages as if a user skips to a page we need to render all the missing pages
84
- console.log('Adding redaction pages to queue:', start, end);
85
- this.redactionPages.push({ start, end });
86
- }
87
- }
88
- onRedactionModeChanged(redactionMode) {
89
- if (redactionMode && this.redactionPages.length) {
90
- this.redactionPages.forEach(({ start, end }) => {
91
- console.log('Drawing redaction pages from queue:', start, end);
92
- for (let i = start; i < end; i++) {
93
- const page = this.pdfViewer._pages[i - 1];
94
- if (page && !page.renderingState) {
95
- page.draw();
96
- }
97
- }
98
- });
99
- this.redactionPages = [];
100
- }
101
- }
102
- emitDocumentInfo(e) {
103
- const allPages = [...this.pdfViewer._pages].map(page => {
104
- return {
105
- div: page.div,
106
- scale: page.scale,
107
- rotation: page.rotation,
108
- id: page.id,
109
- viewportScale: page.viewport.scale
110
- };
111
- });
112
- this.pageRendered.next(allPages);
113
- }
114
- async loadDocument(documentUrl) {
115
- const loadingTask = this.createLoadingTask(documentUrl);
116
- loadingTask.onProgress = ({ loaded, total }) => {
117
- this.documentLoadProgress.next({ loaded, total });
118
- };
119
- this.documentLoadInit.next(documentUrl);
120
- try {
121
- const pdfDocument = await loadingTask.promise;
122
- this.documentLoaded.next(pdfDocument);
123
- this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);
124
- this.pdfViewer.setDocument(pdfDocument);
125
- if (this.pdfViewer.linkService instanceof PDFLinkService) {
126
- const linkservice = this.pdfViewer.linkService;
127
- linkservice.setDocument(pdfDocument, null);
128
- }
129
- const outlineNode = await pdfDocument.getOutline();
130
- const outline = outlineNode ? outlineNode.map(x => {
131
- return {
132
- bold: x.bold,
133
- color: x.color,
134
- count: x.count,
135
- dest: x.dest,
136
- italic: x.italic,
137
- items: x.items,
138
- newWindow: x.newWindow,
139
- title: x.title,
140
- unsafeUrl: x.unsafeUrl,
141
- url: x.url
142
- };
143
- }) : null;
144
- if (outline) {
145
- await this.setOutlinePageNumbers(pdfDocument, outline);
146
- }
147
- this.documentOutline = outline;
148
- this.outlineLoaded.next(this.documentOutline);
149
- const pdfMetaData = await pdfDocument.getMetadata();
150
- this.setCurrentPDFTitle(pdfMetaData.info?.Title);
151
- }
152
- catch (e) {
153
- this.documentLoadFailed.next(e);
154
- }
155
- }
156
- createLoadingTask(documentUrl) {
157
- return pdfjs.getDocument({
158
- url: documentUrl,
159
- cMapUrl: 'assets/minified/cmaps',
160
- cMapPacked: true,
161
- withCredentials: true,
162
- isEvalSupported: false
163
- });
164
- }
165
- async setOutlinePageNumbers(pdfDocument, outlineArray) {
166
- outlineArray.forEach(async (outline) => {
167
- await this.setNestedOutlinePageNumbers(pdfDocument, outline);
168
- });
169
- }
170
- async setNestedOutlinePageNumbers(pdfDocument, outline) {
171
- outline.pageNumber = await this.getOutlinePageNumber(pdfDocument, outline);
172
- outline.items.forEach(async (outlineItem) => {
173
- outlineItem.pageNumber = await this.getOutlinePageNumber(pdfDocument, outlineItem);
174
- this.setNestedOutlinePageNumbers(pdfDocument, outlineItem);
175
- });
176
- }
177
- async getOutlinePageNumber(pdfDocument, outline) {
178
- const dest = outline.dest;
179
- const pageIndex = await pdfDocument.getPageIndex(dest[0]);
180
- return Number(pageIndex) + 1;
181
- }
182
- downloadFile(url, filename) {
183
- this.downloadManager.download(null, url, filename);
184
- }
185
- setPageNumber(pageNumber) {
186
- this.pdfViewer.currentPageNumber = pageNumber;
187
- }
188
- getPageNumber() {
189
- return this.pdfViewer.currentPageNumber;
190
- }
191
- changePageNumber(numPages) {
192
- this.pdfViewer.currentPageNumber += numPages;
193
- }
194
- search(operation) {
195
- const command = operation.reset ? '' : 'again';
196
- const data = {
197
- source: this.pdfViewer,
198
- type: command,
199
- query: operation.searchTerm,
200
- phraseSearch: true,
201
- caseSensitive: operation.matchCase,
202
- entireWord: operation.wholeWord,
203
- highlightAll: operation.highlightAll,
204
- findPrevious: operation.previous,
205
- };
206
- this.pdfViewer.eventBus.dispatch('find', data);
207
- }
208
- clearSearch() {
209
- this.pdfViewer.eventBus.dispatch('findbarclose', {});
210
- }
211
- navigateTo(destination) {
212
- if (destination instanceof Object) {
213
- if (!destination[1].name.includes('XYZ')) {
214
- destination[1] = { name: 'XYZ' };
215
- destination[2] = destination[2] || null;
216
- destination[3] = destination[3] || null;
217
- }
218
- destination[4] = this.zoomValue;
219
- }
220
- this.nativeNavigate(destination);
221
- }
222
- nativeNavigate(destination) {
223
- this.pdfViewer.linkService.goToDestination(destination);
224
- }
225
- setZoom(zoomValue) {
226
- this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue).toString();
227
- this.zoomValue = +this.pdfViewer.currentScaleValue;
228
- this.toolbarEvents.zoomValueSubject.next(this.zoomValue);
229
- }
230
- stepZoom(zoomValue) {
231
- this.pdfViewer.currentScaleValue = this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue).toString();
232
- this.zoomValue = +this.pdfViewer.currentScaleValue;
233
- this.toolbarEvents.zoomValueSubject.next(this.zoomValue);
234
- }
235
- getZoomValue(zoomValue) {
236
- if (isNaN(zoomValue)) {
237
- return this.zoomValue;
238
- }
239
- if (zoomValue > 5) {
240
- return 5;
241
- }
242
- if (zoomValue < 0.1) {
243
- return 0.1;
244
- }
245
- return +zoomValue.toFixed(2);
246
- }
247
- rotate(rotation) {
248
- return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;
249
- }
250
- resetRotation(rotation) {
251
- return this.pdfViewer.pagesRotation = rotation;
252
- }
253
- getNormalisedPagesRotation() {
254
- return this.pdfViewer.pagesRotation;
255
- }
256
- getCurrentPDFZoomValue() {
257
- return +this.pdfViewer.currentScaleValue;
258
- }
259
- setCurrentPDFTitle(title) {
260
- this.documentTitle = title;
261
- }
262
- getCurrentPDFTitle() {
263
- return this.documentTitle;
264
- }
265
- }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLWpzL3BkZi1qcy13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBbUIsY0FBYyxFQUFhLE1BQU0sK0JBQStCLENBQUM7QUFDM0YsT0FBTyw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLDBCQUEwQixDQUFDO0FBS2xDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsaUNBQWlDLENBQUM7QUFFeEU7O0dBRUc7QUFDSCxJQUFLLFNBS0o7QUFMRCxXQUFLLFNBQVM7SUFDWiwyQ0FBUyxDQUFBO0lBQ1QsbURBQWEsQ0FBQTtJQUNiLCtDQUFXLENBQUE7SUFDWCwrQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUxJLFNBQVMsS0FBVCxTQUFTLFFBS2I7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQU92QixZQUNtQixTQUFvQixFQUNwQixlQUFnQyxFQUNoQyxhQUFrQyxFQUNuQyxnQkFBaUMsRUFDakMsb0JBQW1ELEVBQ25ELGNBQTRCLEVBQzVCLGFBQWlDLEVBQ2pDLGtCQUFrQyxFQUNsQyxZQUFrQyxFQUNsQyxlQUFtRDtRQVRsRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQStCO1FBQ25ELG1CQUFjLEdBQWQsY0FBYyxDQUFjO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWdCO1FBQ2xDLGlCQUFZLEdB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Q0FBQztJQUN4RixDQUFDO0lBRU0sYUFBYSxDQUFDLFFBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO0lBQ2pELENBQUM7SUFFTSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO0lBQzNDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE91dGxpbmUgfSBmcm9tICcuLy4uL3NpZGUtYmFyL291dGxpbmUtaXRlbS9vdXRsaW5lLm1vZGVsJztcbmltcG9ydCB7IFJlZGFjdGlvblNlYXJjaCB9IGZyb20gJy4vLi4vLi4vLi4vdG9vbGJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci9yZWRhY3Rpb24tc2VhcmNoLm1vZGVsJztcbmltcG9ydCAqIGFzIHBkZmpzIGZyb20gJ3BkZmpzLWRpc3QnO1xuaW1wb3J0IHsgRG93bmxvYWRNYW5hZ2VyLCBQREZMaW5rU2VydmljZSwgUERGVmlld2VyIH0gZnJvbSAncGRmanMtZGlzdC93ZWIvcGRmX3ZpZXdlci5tanMnO1xuaW1wb3J0ICdwZGZqcy1kaXN0L2J1aWxkL3BkZi53b3JrZXInO1xuaW1wb3J0ICdwZGZqcy1kaXN0L2J1aWxkL3BkZi5tanMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VhcmNoT3BlcmF0aW9uLCBTZWFyY2hSZXN1bHRzQ291bnQsIFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBQZGZQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL2RvY3VtZW50LnJlZHVjZXInO1xuXG5wZGZqcy5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYyA9ICcvYXNzZXRzL2J1aWxkL3BkZi53b3JrZXIubWluLmpzJztcblxuLyoqXG4gKiBWYWx1ZXMgb2YgdGhlIHN0YXRlIGZpZWxkIHJldHVybmVkIGJ5IHRoZSBmaW5kIGV2ZW50c1xuICovXG5lbnVtIEZpbmRTdGF0ZSB7XG4gIEZPVU5EID0gMCxcbiAgTk9UX0ZPVU5EID0gMSxcbiAgV1JBUFBFRCA9IDIsXG4gIFBFTkRJTkcgPSAzLFxufVxuXG5leHBvcnQgY2xhc3MgUGRmSnNXcmFwcGVyIHtcblxuICBwcml2YXRlIHpvb21WYWx1ZTogbnVtYmVyO1xuICBwcml2YXRlIGRvY3VtZW50VGl0bGU6IHN0cmluZztcbiAgcHJpdmF0ZSBkb2N1bWVudE91dGxpbmU6IE91dGxpbmVbXTtcbiAgcHVibGljIHJlZGFjdGlvblBhZ2VzOiB7IHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyIH1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBkZlZpZXdlcjogUERGVmlld2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG93bmxvYWRNYW5hZ2VyOiBEb3dubG9hZE1hbmFnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudExvYWRJbml0OiBTdWJqZWN0PHN0cmluZz4sXG4gICAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50TG9hZFByb2dyZXNzOiBTdWJqZWN0PERvY3VtZW50TG9hZFByb2dyZXNzPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRMb2FkZWQ6IFN1YmplY3Q8YW55PixcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3V0bGluZUxvYWRlZDogU3ViamVjdDxPdXRsaW5lW10+LFxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudExvYWRGYWlsZWQ6IFN1YmplY3Q8RXJyb3I+LFxuICAgIHB1YmxpYyByZWFkb25seSBwYWdlUmVuZGVyZWQ6IFN1YmplY3Q8UGFnZUV2ZW50W10+LFxuICAgIHB1YmxpYyByZWFkb25seSBwb3NpdGlvblVwZGF0ZWQ6IFN1YmplY3Q8eyBsb2NhdGlvbjogUGRmUG9zaXRpb24gfT5cbiAgKSB7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMub24oJ3VwZGF0ZXZpZXdhcmVhJywgZSA9PiBwb3NpdGlvblVwZGF0ZWQubmV4dChlKSk7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMub24oJ3BhZ2VjaGFuZ2luZycsIGUgPT4gdGhpcy50b29sYmFyRXZlbnRzLnNldEN1cnJlbnRQYWdlSW5wdXRWYWx1ZVN1YmplY3QubmV4dChlLnBhZ2VOdW1iZXIpKTtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZWNoYW5naW5nJywgZSA9PiB0aGlzLmRyYXdNaXNzaW5nUGFnZXMoZSkpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdwYWdlc2luaXQnLCAoKSA9PiB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9ICcxJyk7XG5cbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZXJlbmRlcmVkJywgZSA9PiB7IH0pOyAvLyBub3QgdXNlZCBsZWZ0IGZvciBmdXR1cmUgY29udmVuaWVuY2VcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZXNsb2FkZWQnLCAoZSkgPT4gdGhpcy5lbWl0RG9jdW1lbnRJbmZvKGUpKTtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbignc2NhbGVjaGFuZ2luZycsIChlKSA9PiB0aGlzLmVtaXREb2N1bWVudEluZm8oZSkpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdyb3RhdGlvbmNoYW5naW5nJywgKGUpID0+IHRoaXMuZW1pdERvY3VtZW50SW5mbyhlKSk7XG5cbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigndXBkYXRlZmluZGNvbnRyb2xzdGF0ZScsIGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuc2VuZFNlYXJjaERldGFpbHMoZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCd1cGRhdGVmaW5kbWF0Y2hlc2NvdW50JywgZXZlbnQgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0geyAuLi5ldmVudC5tYXRjaGVzQ291bnQsIGlzUHJldmlvdXM6IGV2ZW50Py5zb3VyY2U/LnN0YXRlPy5maW5kUHJldmlvdXMgfSBhcyBTZWFyY2hSZXN1bHRzQ291bnRcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hSZXN1bHRzQ291bnRTdWJqZWN0Lm5leHQocmVzdWx0KTtcbiAgICB9KTtcbiAgICB0aGlzLnpvb21WYWx1ZSA9IDE7XG4gICAgdGhpcy5yZWRhY3Rpb25QYWdlcyA9IFtdXG4gICAgLy8gU3Vic2NyaWJlIHRvIHJlZGFjdGlvbk1vZGUgY2hhbmdlcyBhbmQgcnVuIGEgZnVuY3Rpb24gd2hlbiBpdCBjaGFuZ2VzXG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdGlvbk1vZGUuc3Vic2NyaWJlKChyZWRhY3Rpb25Nb2RlVmFsdWUpID0+IHtcbiAgICAgIHRoaXMub25SZWRhY3Rpb25Nb2RlQ2hhbmdlZChyZWRhY3Rpb25Nb2RlVmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VuZFNlYXJjaERldGFpbHMoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC5zdGF0ZSAhPT0gRmluZFN0YXRlLlBFTkRJTkcpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHsgLi4uZXZlbnQubWF0Y2hlc0NvdW50LCBpc1ByZXZpb3VzOiBldmVudD8uc291cmNlPy5zdGF0ZT8uZmluZFByZXZpb3VzIH0gYXMgU2VhcmNoUmVzdWx0c0NvdW50XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdC5uZXh0KHJlc3VsdCk7XG4gICAgICBpZiAoZXZlbnQ/LnNvdXJjZT8uc2VsZWN0ZWQ/LnBhZ2VJZHggIT09IC0xICYmIGV2ZW50Lm1hdGNoZXNDb3VudC50b3RhbCA+IDApIHtcbiAgICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdGlvblNlcmFjaFN1YmplY3QubmV4dCh7XG4gICAgICAgICAgcGFnZTogZXZlbnQ/LnNvdXJjZT8uc2VsZWN0ZWQ/LnBhZ2VJZHgsXG4gICAgICAgICAgbWF0Y2hlZEluZGV4OiBldmVudD8uc291cmNlPy5zZWxlY3RlZD8ubWF0Y2hJZHgsXG4gICAgICAgICAgbWF0Y2hlc0NvdW50OiBldmVudC5tYXRjaGVzQ291bnQudG90YWxcbiAgICAgICAgfSBhcyBSZWRhY3Rpb25TZWFyY2hcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpbiB0aGUgZXZlbnQgYSB1c2VyIGZhc3Qgc2Nyb2xscyBvciBuYXZpZ2F0ZXMgdG8gYSBzcGVjaWZpYyBwYWdlLCBcbiAgLy8gd2UgbmVlZCB0byByZW5kZXIgdGhlIG1pc3NpbmcgcGFnZXMgc28gcmVkYWN0aW9uIGJveCBpcyBpbiByaWdodCBwbGFjZVxuICBkcmF3TWlzc2luZ1BhZ2VzKGUpIHtcbiAgICBjb25zdCByZWRhY3Rpb25Nb2RlID0gdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdGlvbk1vZGUuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCB7IHBhZ2VOdW1iZXIsIHByZXZpb3VzOiBwcmV2aW91c1BhZ2VOdW1iZXIgfSA9IGU7XG4gICAgaWYgKCFwcmV2aW91c1BhZ2VOdW1iZXIgfHwgcGFnZU51bWJlciA8IHByZXZpb3VzUGFnZU51bWJlciB8fCBNYXRoLmFicyhwYWdlTnVtYmVyIC0gcHJldmlvdXNQYWdlTnVtYmVyKSA8PSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0ID0gcHJldmlvdXNQYWdlTnVtYmVyICsgMTtcbiAgICBjb25zdCBlbmQgPSBwYWdlTnVtYmVyO1xuICAgIC8vIGlmIHRoZSByZWRhY3Rpb24gbW9kZSBpcyBvbiByZW5kZXIgdGhlIHBhZ2VzIG5vd1xuICAgIGlmIChyZWRhY3Rpb25Nb2RlKSB7XG4gICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgICBjb25zdCBwYWdlID0gdGhpcy5wZGZWaWV3ZXIuX3BhZ2VzW2kgLSAxXTtcbiAgICAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UucmVuZGVyaW5nU3RhdGUpIHtcbiAgICAgICAgICBwYWdlLmRyYXcoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBrZWVwIHRyYWNrIG9mIHBhZ2VzIGFzIGlmIGEgdXNlciBza2lwcyB0byBhIHBhZ2Ugd2UgbmVlZCB0byByZW5kZXIgYWxsIHRoZSBtaXNzaW5nIHBhZ2VzXG4gICAgICBjb25zb2xlLmxvZygnQWRkaW5nIHJlZGFjdGlvbiBwYWdlcyB0byBxdWV1ZTonLCBzdGFydCwgZW5kKTtcbiAgICAgIHRoaXMucmVkYWN0aW9uUGFnZXMucHVzaCh7IHN0YXJ0LCBlbmQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUmVkYWN0aW9uTW9kZUNoYW5nZWQocmVkYWN0aW9uTW9kZTogYm9vbGVhbikge1xuICAgIGlmIChyZWRhY3Rpb25Nb2RlICYmIHRoaXMucmVkYWN0aW9uUGFnZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlZGFjdGlvblBhZ2VzLmZvckVhY2goKHsgc3RhcnQsIGVuZCB9KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEcmF3aW5nIHJlZGFjdGlvbiBwYWdlcyBmcm9tIHF1ZXVlOicsIHN0YXJ0LCBlbmQpO1xuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBkZlZpZXdlci5fcGFnZXNbaSAtIDFdO1xuICAgICAgICAgIGlmIChwYWdlICYmICFwYWdlLnJlbmRlcmluZ1N0YXRlKSB7XG4gICAgICAgICAgICBwYWdlLmRyYXcoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZWRhY3Rpb25QYWdlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdERvY3VtZW50SW5mbyhlKSB7XG4gICAgY29uc3QgYWxsUGFnZXM6IFBhZ2VFdmVudFtdID0gWy4uLnRoaXMucGRmVmlld2VyLl9wYWdlc10ubWFwKHBhZ2UgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiBwYWdlLmRpdixcbiAgICAgICAgc2NhbGU6IHBhZ2Uuc2NhbGUsXG4gICAgICAgIHJvdGF0aW9uOiBwYWdlLnJvdGF0aW9uLFxuICAgICAgICBpZDogcGFnZS5pZCxcbiAgICAgICAgdmlld3BvcnRTY2FsZTogcGFnZS52aWV3cG9ydC5zY2FsZVxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLnBhZ2VSZW5kZXJlZC5uZXh0KGFsbFBhZ2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkRG9jdW1lbnQoZG9jdW1lbnRVcmw6IHN0cmluZykge1xuICAgIGNvbnN0IGxvYWRpbmdUYXNrID0gdGhpcy5jcmVhdGVMb2FkaW5nVGFzayhkb2N1bWVudFVybCk7XG5cbiAgICBsb2FkaW5nVGFzay5vblByb2dyZXNzID0gKHsgbG9hZGVkLCB0b3RhbCB9KSA9PiB7XG4gICAgICB0aGlzLmRvY3VtZW50TG9hZFByb2dyZXNzLm5leHQoeyBsb2FkZWQsIHRvdGFsIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50TG9hZEluaXQubmV4dChkb2N1bWVudFVybCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGRmRG9jdW1lbnQgPSBhd2FpdCBsb2FkaW5nVGFzay5wcm9taXNlO1xuICAgICAgdGhpcy5kb2N1bWVudExvYWRlZC5uZXh0KHBkZkRvY3VtZW50KTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5wYWdlQ291bnRTdWJqZWN0Lm5leHQocGRmRG9jdW1lbnQubnVtUGFnZXMpO1xuXG4gICAgICB0aGlzLnBkZlZpZXdlci5zZXREb2N1bWVudChwZGZEb2N1bWVudCk7XG4gICAgICBpZiAodGhpcy5wZGZWaWV3ZXIubGlua1NlcnZpY2UgaW5zdGFuY2VvZiBQREZMaW5rU2VydmljZSkge1xuICAgICAgICBjb25zdCBsaW5rc2VydmljZTogUERGTGlua1NlcnZpY2UgPSB0aGlzLnBkZlZpZXdlci5saW5rU2VydmljZTtcbiAgICAgICAgbGlua3NlcnZpY2Uuc2V0RG9jdW1lbnQocGRmRG9jdW1lbnQsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvdXRsaW5lTm9kZSA9IGF3YWl0IHBkZkRvY3VtZW50LmdldE91dGxpbmUoKTtcbiAgICAgIGNvbnN0IG91dGxpbmUgPSBvdXRsaW5lTm9kZSA/IG91dGxpbmVOb2RlLm1hcCh4ID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBib2xkOiB4LmJvbGQsXG4gICAgICAgICAgY29sb3I6IHguY29sb3IsXG4gICAgICAgICAgY291bnQ6IHguY291bnQsXG4gICAgICAgICAgZGVzdDogeC5kZXN0LFxuICAgICAgICAgIGl0YWxpYzogeC5pdGFsaWMsXG4gICAgICAgICAgaXRlbXM6IHguaXRlbXMsXG4gICAgICAgICAgbmV3V2luZG93OiB4Lm5ld1dpbmRvdyxcbiAgICAgICAgICB0aXRsZTogeC50aXRsZSxcbiAgICAgICAgICB1bnNhZmVVcmw6IHgudW5zYWZlVXJsLFxuICAgICAgICAgIHVybDogeC51cmxcbiAgICAgICAgfSBhcyBPdXRsaW5lXG4gICAgICB9KSA6IG51bGw7XG5cblxuXG4gICAgICBpZiAob3V0bGluZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNldE91dGxpbmVQYWdlTnVtYmVycyhwZGZEb2N1bWVudCwgb3V0bGluZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZG9jdW1lbnRPdXRsaW5lID0gb3V0bGluZTtcbiAgICAgIHRoaXMub3V0bGluZUxvYWRlZC5uZXh0KHRoaXMuZG9jdW1lbnRPdXRsaW5lKTtcbiAgICAgIGNvbnN0IHBkZk1ldGFEYXRhID0gYXdhaXQgcGRmRG9jdW1lbnQuZ2V0TWV0YWRhdGEoKTtcbiAgICAgIHRoaXMuc2V0Q3VycmVudFBERlRpdGxlKChwZGZNZXRhRGF0YS5pbmZvIGFzIGFueSk/LlRpdGxlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmRvY3VtZW50TG9hZEZhaWxlZC5uZXh0KGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTG9hZGluZ1Rhc2soZG9jdW1lbnRVcmw6IHN0cmluZykge1xuICAgIHJldHVybiBwZGZqcy5nZXREb2N1bWVudCh7XG4gICAgICB1cmw6IGRvY3VtZW50VXJsLFxuICAgICAgY01hcFVybDogJ2Fzc2V0cy9taW5pZmllZC9jbWFwcycsXG4gICAgICBjTWFwUGFja2VkOiB0cnVlLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgaXNFdmFsU3VwcG9ydGVkOiBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRPdXRsaW5lUGFnZU51bWJlcnMocGRmRG9jdW1lbnQsIG91dGxpbmVBcnJheTogT3V0bGluZVtdKSB7XG4gICAgb3V0bGluZUFycmF5LmZvckVhY2goYXN5bmMgKG91dGxpbmU6IE91dGxpbmUpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0TmVzdGVkT3V0bGluZVBhZ2VOdW1iZXJzKHBkZkRvY3VtZW50LCBvdXRsaW5lKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2V0TmVzdGVkT3V0bGluZVBhZ2VOdW1iZXJzKHBkZkRvY3VtZW50LCBvdXRsaW5lOiBPdXRsaW5lKSB7XG4gICAgb3V0bGluZS5wYWdlTnVtYmVyID0gYXdhaXQgdGhpcy5nZXRPdXRsaW5lUGFnZU51bWJlcihwZGZEb2N1bWVudCwgb3V0bGluZSk7XG4gICAgb3V0bGluZS5pdGVtcy5mb3JFYWNoKGFzeW5jIChvdXRsaW5lSXRlbTogT3V0bGluZSkgPT4ge1xuICAgICAgb3V0bGluZUl0ZW0ucGFnZU51bWJlciA9IGF3YWl0IHRoaXMuZ2V0T3V0bGluZVBhZ2VOdW1iZXIocGRmRG9jdW1lbnQsIG91dGxpbmVJdGVtKTtcbiAgICAgIHRoaXMuc2V0TmVzdGVkT3V0bGluZVBhZ2VOdW1iZXJzKHBkZkRvY3VtZW50LCBvdXRsaW5lSXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldE91dGxpbmVQYWdlTnVtYmVyKHBkZkRvY3VtZW50LCBvdXRsaW5lOiBPdXRsaW5lKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBkZXN0ID0gb3V0bGluZS5kZXN0O1xuICAgIGNvbnN0IHBhZ2VJbmRleCA9IGF3YWl0IHBkZkRvY3VtZW50LmdldFBhZ2VJbmRleChkZXN0WzBdKTtcbiAgICByZXR1cm4gTnVtYmVyKHBhZ2VJbmRleCkgKyAxO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkRmlsZSh1cmw6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG93bmxvYWRNYW5hZ2VyLmRvd25sb2FkKG51bGwsIHVybCwgZmlsZW5hbWUpO1xuICB9XG5cbiAgcHVibGljIHNldFBhZ2VOdW1iZXIocGFnZU51bWJlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wZGZWaWV3ZXIuY3VycmVudFBhZ2VOdW1iZXIgPSBwYWdlTnVtYmVyO1xuICB9XG4gIHB1YmxpYyBnZXRQYWdlTnVtYmVyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGRmVmlld2VyLmN1cnJlbnRQYWdlTnVtYmVyO1xuICB9XG4gIHB1YmxpYyBjaGFuZ2VQYWdlTnVtYmVyKG51bVBhZ2VzOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50UGFnZU51bWJlciArPSBudW1QYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2gob3BlcmF0aW9uOiBTZWFyY2hPcGVyYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBjb21tYW5kID0gb3BlcmF0aW9uLnJlc2V0ID8gJycgOiAnYWdhaW4nO1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBzb3VyY2U6IHRoaXMucGRmVmlld2VyLFxuICAgICAgdHlwZTogY29tbWFuZCxcbiAgICAgIHF1ZXJ5OiBvcGVyYXRpb24uc2VhcmNoVGVybSxcbiAgICAgIHBocmFzZVNlYXJjaDogdHJ1ZSxcbiAgICAgIGNhc2VTZW5zaXRpdmU6IG9wZXJhdGlvbi5tYXRjaENhc2UsXG4gICAgICBlbnRpcmVXb3JkOiBvcGVyYXRpb24ud2hvbGVXb3JkLFxuICAgICAgaGlnaGxpZ2h0QWxsOiBvcGVyYXRpb24uaGlnaGxpZ2h0QWxsLFxuICAgICAgZmluZFByZXZpb3VzOiBvcGVyYXRpb24ucHJldmlvdXMsXG4gICAgfTtcblxuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLmRpc3BhdGNoKCdmaW5kJywgZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5wZGZWaWV3ZXIuZXZlbnRCdXMuZGlzcGF0Y2goJ2ZpbmRiYXJjbG9zZScsIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvKGRlc3RpbmF0aW9uOiBzdHJpbmcgfCBhbnlbXSkge1xuICAgIGlmIChkZXN0aW5hdGlvbiBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgaWYgKCFkZXN0aW5hdGlvblsxXS5uYW1lLmluY2x1ZGVzKCdYWVonKSkge1xuICAgICAgICBkZXN0aW5hdGlvblsxXSA9IHsgbmFtZTogJ1hZWicgfTtcbiAgICAgICAgZGVzdGluYXRpb25bMl0gPSBkZXN0aW5hdGlvblsyXSB8fCBudWxsO1xuICAgICAgICBkZXN0aW5hdGlvblszXSA9IGRlc3RpbmF0aW9uWzNdIHx8IG51bGw7XG4gICAgICB9XG4gICAgICBkZXN0aW5hdGlvbls0XSA9IHRoaXMuem9vbVZhbHVlO1xuICAgIH1cbiAgICB0aGlzLm5hdGl2ZU5hdmlnYXRlKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBuYXRpdmVOYXZpZ2F0ZShkZXN0aW5hdGlvbjogc3RyaW5nIHwgYW55W10pIHtcbiAgICB0aGlzLnBkZlZpZXdlci5saW5rU2VydmljZS5nb1RvRGVzdGluYXRpb24oZGVzdGluYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHNldFpvb20oem9vbVZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9IHRoaXMuZ2V0Wm9vbVZhbHVlKHpvb21WYWx1ZSkudG9TdHJpbmcoKTtcbiAgICB0aGlzLnpvb21WYWx1ZSA9ICt0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC5uZXh0KHRoaXMuem9vbVZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwWm9vbSh6b29tVmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlID0gdGhpcy5nZXRab29tVmFsdWUoKCt0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSkgKyB6b29tVmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy56b29tVmFsdWUgPSArdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWU7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnpvb21WYWx1ZVN1YmplY3QubmV4dCh0aGlzLnpvb21WYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFpvb21WYWx1ZSh6b29tVmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGlzTmFOKHpvb21WYWx1ZSkpIHsgcmV0dXJuIHRoaXMuem9vbVZhbHVlOyB9XG4gICAgaWYgKHpvb21WYWx1ZSA+IDUpIHsgcmV0dXJuIDU7IH1cbiAgICBpZiAoem9vbVZhbHVlIDwgMC4xKSB7IHJldHVybiAwLjE7IH1cblxuICAgIHJldHVybiArem9vbVZhbHVlLnRvRml4ZWQoMik7XG4gIH1cblxuICBwdWJsaWMgcm90YXRlKHJvdGF0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBkZlZpZXdlci5wYWdlc1JvdGF0aW9uID0gKHRoaXMucGRmVmlld2VyLnBhZ2VzUm90YXRpb24gKyByb3RhdGlvbikgJSAzNjA7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRSb3RhdGlvbihyb3RhdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wZGZWaWV3ZXIucGFnZXNSb3RhdGlvbiA9IHJvdGF0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldE5vcm1hbGlzZWRQYWdlc1JvdGF0aW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGRmVmlld2VyLnBhZ2VzUm90YXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFBERlpvb21WYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiArdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VycmVudFBERlRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50UERGVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudFRpdGxlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRMb2FkUHJvZ3Jlc3Mge1xuICBsb2FkZWQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlRXZlbnQge1xuICBkaXY6IG9iamVjdDtcbiAgc2NhbGU6IG51bWJlcjtcbiAgcm90YXRpb246IG51bWJlcjtcbiAgaWQ6IHN0cmluZztcbiAgdmlld3BvcnRTY2FsZTogbnVtYmVyO1xufVxuIl19
@@ -1,40 +0,0 @@
1
- import 'pdfjs-dist/build/pdf.mjs';
2
- import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer.mjs';
3
- import { Injectable } from '@angular/core';
4
- import { PdfJsWrapper } from './pdf-js-wrapper';
5
- import { Subject } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../toolbar/toolbar-event.service";
8
- export class PdfJsWrapperFactory {
9
- constructor(toolbarEvents) {
10
- this.toolbarEvents = toolbarEvents;
11
- this.linkService = new pdfjsViewer.PDFLinkService();
12
- this.eventBus = new pdfjsViewer.EventBus();
13
- }
14
- create(container) {
15
- const pdfFindController = new pdfjsViewer.PDFFindController({
16
- linkService: this.linkService,
17
- eventBus: this.eventBus
18
- });
19
- const pdfViewer = new pdfjsViewer.PDFViewer({
20
- container: container.nativeElement,
21
- linkService: this.linkService,
22
- findController: pdfFindController,
23
- eventBus: this.eventBus,
24
- imageResourcesPath: '/assets/images/',
25
- });
26
- this.linkService.setViewer(pdfViewer);
27
- this.pdfJsWrapper = new PdfJsWrapper(pdfViewer, new pdfjsViewer.DownloadManager(), this.toolbarEvents, new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject());
28
- return this.pdfJsWrapper;
29
- }
30
- pdfWrapper() {
31
- return this.pdfJsWrapper;
32
- }
33
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, deps: [{ token: i1.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, providedIn: 'root' }); }
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, decorators: [{
37
- type: Injectable,
38
- args: [{ providedIn: 'root' }]
39
- }], ctorParameters: () => [{ type: i1.ToolbarEventService }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLWpzL3BkZi1qcy13cmFwcGVyLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxLQUFLLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBbUMsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTS9CLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsWUFBNkIsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQXFCO1FBQ2pDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUM7WUFDMUQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDMUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxhQUFhO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixjQUFjLEVBQUUsaUJBQWlCO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixrQkFBa0IsRUFBRSxpQkFBaUI7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FDbEMsU0FBUyxFQUNULElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUNqQyxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLE9BQU8sRUFBVSxFQUNyQixJQUFJLE9BQU8sRUFBd0IsRUFDbkMsSUFBSSxPQUFPLEVBQU8sRUFDbEIsSUFBSSxPQUFPLEVBQWEsRUFDeEIsSUFBSSxPQUFPLEVBQUUsRUFDYixJQUFJLE9BQU8sRUFBZSxFQUMxQixJQUFJLE9BQU8sRUFBNkIsQ0FDekMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO2tJQTdDVSxtQkFBbUI7c0lBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdwZGZqcy1kaXN0L2J1aWxkL3BkZi5tanMnO1xuaW1wb3J0ICogYXMgcGRmanNWaWV3ZXIgZnJvbSAncGRmanMtZGlzdC93ZWIvcGRmX3ZpZXdlci5tanMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRMb2FkUHJvZ3Jlc3MsIFBhZ2VFdmVudCwgUGRmSnNXcmFwcGVyIH0gZnJvbSAnLi9wZGYtanMtd3JhcHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4uL3NpZGUtYmFyL291dGxpbmUtaXRlbS9vdXRsaW5lLm1vZGVsJztcbmltcG9ydCB7IFBkZlBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvZG9jdW1lbnQucmVkdWNlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGRmSnNXcmFwcGVyRmFjdG9yeSB7XG5cbiAgcHJpdmF0ZSBsaW5rU2VydmljZTogcGRmanNWaWV3ZXIuUERGTGlua1NlcnZpY2U7XG4gIHByaXZhdGUgZXZlbnRCdXM6IHBkZmpzVmlld2VyLkV2ZW50QnVzO1xuICBwcml2YXRlIHBkZkpzV3JhcHBlcjogUGRmSnNXcmFwcGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSkge1xuICAgIHRoaXMubGlua1NlcnZpY2UgPSBuZXcgcGRmanNWaWV3ZXIuUERGTGlua1NlcnZpY2UoKTtcbiAgICB0aGlzLmV2ZW50QnVzID0gbmV3IHBkZmpzVmlld2VyLkV2ZW50QnVzKCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlKGNvbnRhaW5lcjogRWxlbWVudFJlZik6IFBkZkpzV3JhcHBlciB7XG4gICAgY29uc3QgcGRmRmluZENvbnRyb2xsZXIgPSBuZXcgcGRmanNWaWV3ZXIuUERGRmluZENvbnRyb2xsZXIoe1xuICAgICAgbGlua1NlcnZpY2U6IHRoaXMubGlua1NlcnZpY2UsXG4gICAgICBldmVudEJ1czogdGhpcy5ldmVudEJ1c1xuICAgIH0pO1xuXG4gICAgY29uc3QgcGRmVmlld2VyID0gbmV3IHBkZmpzVmlld2VyLlBERlZpZXdlcih7XG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgbGlua1NlcnZpY2U6IHRoaXMubGlua1NlcnZpY2UsXG4gICAgICBmaW5kQ29udHJvbGxlcjogcGRmRmluZENvbnRyb2xsZXIsXG4gICAgICBldmVudEJ1czogdGhpcy5ldmVudEJ1cyxcbiAgICAgIGltYWdlUmVzb3VyY2VzUGF0aDogJy9hc3NldHMvaW1hZ2VzLycsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxpbmtTZXJ2aWNlLnNldFZpZXdlcihwZGZWaWV3ZXIpO1xuXG4gICAgdGhpcy5wZGZKc1dyYXBwZXIgPSBuZXcgUGRmSnNXcmFwcGVyKFxuICAgICAgcGRmVmlld2VyLFxuICAgICAgbmV3IHBkZmpzVmlld2VyLkRvd25sb2FkTWFuYWdlcigpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLFxuICAgICAgbmV3IFN1YmplY3Q8c3RyaW5nPigpLFxuICAgICAgbmV3IFN1YmplY3Q8RG9jdW1lbnRMb2FkUHJvZ3Jlc3M+KCksXG4gICAgICBuZXcgU3ViamVjdDxhbnk+KCksXG4gICAgICBuZXcgU3ViamVjdDxPdXRsaW5lW10+KCksXG4gICAgICBuZXcgU3ViamVjdCgpLFxuICAgICAgbmV3IFN1YmplY3Q8UGFnZUV2ZW50W10+KCksXG4gICAgICBuZXcgU3ViamVjdDx7IGxvY2F0aW9uOiBQZGZQb3NpdGlvbiB9PigpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLnBkZkpzV3JhcHBlcjtcbiAgfVxuXG4gIHBkZldyYXBwZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGRmSnNXcmFwcGVyO1xuICB9XG59XG4iXX0=