@hmcts/media-viewer 4.1.9-cme-776-angular-20 → 4.1.9-exui-1580-1

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/assets/all.scss +1 -0
  2. package/assets/sass/pdf-viewer.scss +78 -0
  3. package/assets/sass/tooltip.scss +50 -0
  4. package/esm2022/hmcts-media-viewer.mjs +5 -0
  5. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +122 -0
  6. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +179 -0
  7. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +101 -0
  8. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.mjs +345 -0
  9. package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
  10. package/esm2022/lib/annotations/annotation-set/annotation-set.model.mjs +2 -0
  11. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
  12. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +2 -0
  13. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
  14. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +2 -0
  15. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +145 -0
  16. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +99 -0
  17. package/esm2022/lib/annotations/annotations.module.mjs +162 -0
  18. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +178 -0
  19. package/esm2022/lib/annotations/comment-set/comment/comment.model.mjs +2 -0
  20. package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
  21. package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
  22. package/esm2022/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +31 -0
  23. package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
  24. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +62 -0
  25. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +54 -0
  26. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +72 -0
  27. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +55 -0
  28. package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +123 -0
  29. package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +120 -0
  30. package/esm2022/lib/annotations/models/api-persisted.model.mjs +2 -0
  31. package/esm2022/lib/annotations/models/event-select.model.mjs +2 -0
  32. package/esm2022/lib/annotations/models/tags.model.mjs +2 -0
  33. package/esm2022/lib/annotations/models/user.model.mjs +2 -0
  34. package/esm2022/lib/annotations/pipes/date/date.pipe.mjs +26 -0
  35. package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
  36. package/esm2022/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +16 -0
  37. package/esm2022/lib/annotations/services/annotation-api/annotation-api.service.mjs +58 -0
  38. package/esm2022/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +45 -0
  39. package/esm2022/lib/annotations/services/tags/tags.services.mjs +41 -0
  40. package/esm2022/lib/annotations/tags/tags.component.mjs +53 -0
  41. package/esm2022/lib/bookmark/components/bookmark-icons.component.mjs +25 -0
  42. package/esm2022/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +22 -0
  43. package/esm2022/lib/icp/icp-follower.service.mjs +65 -0
  44. package/esm2022/lib/icp/icp-presenter.service.mjs +56 -0
  45. package/esm2022/lib/icp/icp-session-api.service.mjs +28 -0
  46. package/esm2022/lib/icp/icp-update.service.mjs +73 -0
  47. package/esm2022/lib/icp/icp.events.mjs +15 -0
  48. package/esm2022/lib/icp/icp.interfaces.mjs +2 -0
  49. package/esm2022/lib/icp/icp.service.mjs +98 -0
  50. package/esm2022/lib/icp/participants-list/participants-list.component.mjs +32 -0
  51. package/esm2022/lib/icp/socket.service.mjs +128 -0
  52. package/esm2022/lib/media-viewer.component.mjs +247 -0
  53. package/esm2022/lib/media-viewer.module.mjs +142 -0
  54. package/esm2022/lib/print.service.mjs +32 -0
  55. package/esm2022/lib/redaction/components/redaction.component.mjs +91 -0
  56. package/esm2022/lib/redaction/services/redaction-api.service.mjs +50 -0
  57. package/esm2022/lib/redaction/services/redaction.model.mjs +2 -0
  58. package/esm2022/lib/shared/directives/tooltip-dismiss.directive.mjs +36 -0
  59. package/esm2022/lib/shared/gov-uk-date/gov-uk-date.component.mjs +28 -0
  60. package/esm2022/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +34 -0
  61. package/esm2022/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +63 -0
  62. package/esm2022/lib/shared/gov-uk-label/gov-uk-label.component.mjs +44 -0
  63. package/esm2022/lib/shared/shared.module.mjs +53 -0
  64. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +29 -0
  65. package/esm2022/lib/shared/util/services/number.helper.service.mjs +23 -0
  66. package/esm2022/lib/store/actions/annotation.actions.mjs +119 -0
  67. package/esm2022/lib/store/actions/bookmark.actions.mjs +112 -0
  68. package/esm2022/lib/store/actions/document.actions.mjs +91 -0
  69. package/esm2022/lib/store/actions/icp.actions.mjs +56 -0
  70. package/esm2022/lib/store/actions/redaction.actions.mjs +132 -0
  71. package/esm2022/lib/store/actions/tag.actions.mjs +21 -0
  72. package/esm2022/lib/store/bookmarks-store-utils.mjs +49 -0
  73. package/esm2022/lib/store/effects/annotation.effects.mjs +51 -0
  74. package/esm2022/lib/store/effects/bookmarks.effects.mjs +44 -0
  75. package/esm2022/lib/store/effects/document.effects.mjs +44 -0
  76. package/esm2022/lib/store/effects/icp.effects.mjs +26 -0
  77. package/esm2022/lib/store/effects/index.mjs +7 -0
  78. package/esm2022/lib/store/effects/redaction.effects.mjs +67 -0
  79. package/esm2022/lib/store/models/bookmarks.interface.mjs +2 -0
  80. package/esm2022/lib/store/models/filters.interface.mjs +2 -0
  81. package/esm2022/lib/store/reducers/annotations.reducer.mjs +208 -0
  82. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +125 -0
  83. package/esm2022/lib/store/reducers/document.reducer.mjs +158 -0
  84. package/esm2022/lib/store/reducers/icp.reducer.mjs +56 -0
  85. package/esm2022/lib/store/reducers/redaction.reducer.mjs +116 -0
  86. package/esm2022/lib/store/reducers/reducers.mjs +23 -0
  87. package/esm2022/lib/store/reducers/tags.reducer.mjs +93 -0
  88. package/esm2022/lib/store/selectors/annotation.selectors.mjs +81 -0
  89. package/esm2022/lib/store/selectors/bookmark.selectors.mjs +37 -0
  90. package/esm2022/lib/store/selectors/document.selectors.mjs +13 -0
  91. package/esm2022/lib/store/selectors/icp.selectors.mjs +13 -0
  92. package/esm2022/lib/store/selectors/redaction.selectors.mjs +26 -0
  93. package/esm2022/lib/store/selectors/tag.selectors.mjs +15 -0
  94. package/esm2022/lib/store/store-utils.mjs +131 -0
  95. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +46 -0
  96. package/esm2022/lib/toolbar/icp-event.service.mjs +44 -0
  97. package/esm2022/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +43 -0
  98. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +207 -0
  99. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +237 -0
  100. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +2 -0
  101. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +69 -0
  102. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
  103. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  104. package/esm2022/lib/toolbar/toolbar-event.service.mjs +178 -0
  105. package/esm2022/lib/toolbar/toolbar.module.mjs +75 -0
  106. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
  107. package/esm2022/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +22 -0
  108. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +57 -0
  109. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  110. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
  111. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +266 -0
  112. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +40 -0
  113. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +280 -0
  114. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +379 -0
  115. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +2 -0
  116. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  117. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +2 -0
  118. package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +99 -0
  119. package/esm2022/lib/viewers/rotation-persist/rotation-api.service.mjs +27 -0
  120. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
  121. package/esm2022/lib/viewers/rotation-persist/rotation.model.mjs +2 -0
  122. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  123. package/esm2022/lib/viewers/viewer-event.service.mjs +34 -0
  124. package/esm2022/lib/viewers/viewer-exception.model.mjs +13 -0
  125. package/esm2022/lib/viewers/viewer-util.service.mjs +20 -0
  126. package/esm2022/public_api.mjs +33 -0
  127. package/fesm2022/hmcts-media-viewer.mjs +1515 -1013
  128. package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
  129. package/hmcts-media-viewer.d.ts.map +1 -0
  130. package/index.d.ts +4 -2305
  131. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +48 -0
  132. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -0
  133. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +36 -0
  134. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -0
  135. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +18 -0
  136. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -0
  137. package/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.d.ts +63 -0
  138. package/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.d.ts.map +1 -0
  139. package/lib/annotations/annotation-set/annotation-set.component.d.ts +27 -0
  140. package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -0
  141. package/lib/annotations/annotation-set/annotation-set.model.d.ts +7 -0
  142. package/lib/annotations/annotation-set/annotation-set.model.d.ts.map +1 -0
  143. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +34 -0
  144. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -0
  145. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +16 -0
  146. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts.map +1 -0
  147. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +41 -0
  148. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -0
  149. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +9 -0
  150. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts.map +1 -0
  151. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +41 -0
  152. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -0
  153. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +40 -0
  154. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -0
  155. package/lib/annotations/annotations.module.d.ts +36 -0
  156. package/lib/annotations/annotations.module.d.ts.map +1 -0
  157. package/lib/annotations/comment-set/comment/comment.component.d.ts +69 -0
  158. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -0
  159. package/lib/annotations/comment-set/comment/comment.model.d.ts +13 -0
  160. package/lib/annotations/comment-set/comment/comment.model.d.ts.map +1 -0
  161. package/lib/annotations/comment-set/comment/comment.service.d.ts +22 -0
  162. package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -0
  163. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +14 -0
  164. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -0
  165. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +12 -0
  166. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +1 -0
  167. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +28 -0
  168. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -0
  169. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +26 -0
  170. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +1 -0
  171. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +21 -0
  172. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +1 -0
  173. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +36 -0
  174. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +1 -0
  175. package/lib/annotations/comment-set/comment-set-render.service.d.ts +15 -0
  176. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -0
  177. package/lib/annotations/comment-set/comment-set.component.d.ts +56 -0
  178. package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -0
  179. package/lib/annotations/comments-summary/comments-summary.component.d.ts +42 -0
  180. package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -0
  181. package/lib/annotations/models/api-persisted.model.d.ts +11 -0
  182. package/lib/annotations/models/api-persisted.model.d.ts.map +1 -0
  183. package/lib/annotations/models/event-select.model.d.ts +6 -0
  184. package/lib/annotations/models/event-select.model.d.ts.map +1 -0
  185. package/lib/annotations/models/tags.model.d.ts +7 -0
  186. package/lib/annotations/models/tags.model.d.ts.map +1 -0
  187. package/lib/annotations/models/user.model.d.ts +6 -0
  188. package/lib/annotations/models/user.model.d.ts.map +1 -0
  189. package/lib/annotations/pipes/date/date.pipe.d.ts +16 -0
  190. package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -0
  191. package/lib/annotations/pipes/filter/filter.pipe.d.ts +8 -0
  192. package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -0
  193. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +8 -0
  194. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -0
  195. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +28 -0
  196. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -0
  197. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +21 -0
  198. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -0
  199. package/lib/annotations/services/tags/tags.services.d.ts +18 -0
  200. package/lib/annotations/services/tags/tags.services.d.ts.map +1 -0
  201. package/lib/annotations/tags/tags.component.d.ts +28 -0
  202. package/lib/annotations/tags/tags.component.d.ts.map +1 -0
  203. package/lib/bookmark/components/bookmark-icons.component.d.ts +19 -0
  204. package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -0
  205. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +11 -0
  206. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -0
  207. package/lib/icp/icp-follower.service.d.ts +26 -0
  208. package/lib/icp/icp-follower.service.d.ts.map +1 -0
  209. package/lib/icp/icp-presenter.service.d.ts +25 -0
  210. package/lib/icp/icp-presenter.service.d.ts.map +1 -0
  211. package/lib/icp/icp-session-api.service.d.ts +15 -0
  212. package/lib/icp/icp-session-api.service.d.ts.map +1 -0
  213. package/lib/icp/icp-update.service.d.ts +22 -0
  214. package/lib/icp/icp-update.service.d.ts.map +1 -0
  215. package/lib/icp/icp.events.d.ts +14 -0
  216. package/lib/icp/icp.events.d.ts.map +1 -0
  217. package/lib/icp/icp.interfaces.d.ts +23 -0
  218. package/lib/icp/icp.interfaces.d.ts.map +1 -0
  219. package/lib/icp/icp.service.d.ts +40 -0
  220. package/lib/icp/icp.service.d.ts.map +1 -0
  221. package/lib/icp/participants-list/participants-list.component.d.ts +23 -0
  222. package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -0
  223. package/lib/icp/socket.service.d.ts +29 -0
  224. package/lib/icp/socket.service.d.ts.map +1 -0
  225. package/lib/media-viewer.component.d.ts +72 -0
  226. package/lib/media-viewer.component.d.ts.map +1 -0
  227. package/lib/media-viewer.module.d.ts +37 -0
  228. package/lib/media-viewer.module.d.ts.map +1 -0
  229. package/lib/print.service.d.ts +8 -0
  230. package/lib/print.service.d.ts.map +1 -0
  231. package/lib/redaction/components/redaction.component.d.ts +42 -0
  232. package/lib/redaction/components/redaction.component.d.ts.map +1 -0
  233. package/lib/redaction/services/redaction-api.service.d.ts +20 -0
  234. package/lib/redaction/services/redaction-api.service.d.ts.map +1 -0
  235. package/lib/redaction/services/redaction.model.d.ts +11 -0
  236. package/lib/redaction/services/redaction.model.d.ts.map +1 -0
  237. package/lib/shared/directives/tooltip-dismiss.directive.d.ts +11 -0
  238. package/lib/shared/directives/tooltip-dismiss.directive.d.ts.map +1 -0
  239. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +15 -0
  240. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -0
  241. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +11 -0
  242. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -0
  243. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +16 -0
  244. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -0
  245. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +14 -0
  246. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -0
  247. package/lib/shared/shared.module.d.ts +14 -0
  248. package/lib/shared/shared.module.d.ts.map +1 -0
  249. package/lib/shared/util/helpers/html-templates.helper.d.ts +9 -0
  250. package/lib/shared/util/helpers/html-templates.helper.d.ts.map +1 -0
  251. package/lib/shared/util/services/number.helper.service.d.ts +11 -0
  252. package/lib/shared/util/services/number.helper.service.d.ts.map +1 -0
  253. package/lib/store/actions/annotation.actions.d.ts +126 -0
  254. package/lib/store/actions/annotation.actions.d.ts.map +1 -0
  255. package/lib/store/actions/bookmark.actions.d.ts +117 -0
  256. package/lib/store/actions/bookmark.actions.d.ts.map +1 -0
  257. package/lib/store/actions/document.actions.d.ts +90 -0
  258. package/lib/store/actions/document.actions.d.ts.map +1 -0
  259. package/lib/store/actions/icp.actions.d.ts +75 -0
  260. package/lib/store/actions/icp.actions.d.ts.map +1 -0
  261. package/lib/store/actions/redaction.actions.d.ts +127 -0
  262. package/lib/store/actions/redaction.actions.d.ts.map +1 -0
  263. package/lib/store/actions/tag.actions.d.ts +30 -0
  264. package/lib/store/actions/tag.actions.d.ts.map +1 -0
  265. package/lib/store/bookmarks-store-utils.d.ts +9 -0
  266. package/lib/store/bookmarks-store-utils.d.ts.map +1 -0
  267. package/lib/store/effects/annotation.effects.d.ts +16 -0
  268. package/lib/store/effects/annotation.effects.d.ts.map +1 -0
  269. package/lib/store/effects/bookmarks.effects.d.ts +21 -0
  270. package/lib/store/effects/bookmarks.effects.d.ts.map +1 -0
  271. package/lib/store/effects/document.effects.d.ts +17 -0
  272. package/lib/store/effects/document.effects.d.ts.map +1 -0
  273. package/lib/store/effects/icp.effects.d.ts +16 -0
  274. package/lib/store/effects/icp.effects.d.ts.map +1 -0
  275. package/lib/store/effects/index.d.ts +2 -0
  276. package/lib/store/effects/index.d.ts.map +1 -0
  277. package/lib/store/effects/redaction.effects.d.ts +20 -0
  278. package/lib/store/effects/redaction.effects.d.ts.map +1 -0
  279. package/lib/store/models/bookmarks.interface.d.ts +31 -0
  280. package/lib/store/models/bookmarks.interface.d.ts.map +1 -0
  281. package/lib/store/models/filters.interface.d.ts +8 -0
  282. package/lib/store/models/filters.interface.d.ts.map +1 -0
  283. package/lib/store/reducers/annotations.reducer.d.ts +48 -0
  284. package/lib/store/reducers/annotations.reducer.d.ts.map +1 -0
  285. package/lib/store/reducers/bookmarks.reducer.d.ts +27 -0
  286. package/lib/store/reducers/bookmarks.reducer.d.ts.map +1 -0
  287. package/lib/store/reducers/document.reducer.d.ts +52 -0
  288. package/lib/store/reducers/document.reducer.d.ts.map +1 -0
  289. package/lib/store/reducers/icp.reducer.d.ts +9 -0
  290. package/lib/store/reducers/icp.reducer.d.ts.map +1 -0
  291. package/lib/store/reducers/redaction.reducer.d.ts +32 -0
  292. package/lib/store/reducers/redaction.reducer.d.ts.map +1 -0
  293. package/lib/store/reducers/reducers.d.ts +24 -0
  294. package/lib/store/reducers/reducers.d.ts.map +1 -0
  295. package/lib/store/reducers/tags.reducer.d.ts +32 -0
  296. package/lib/store/reducers/tags.reducer.d.ts.map +1 -0
  297. package/lib/store/selectors/annotation.selectors.d.ts +136 -0
  298. package/lib/store/selectors/annotation.selectors.d.ts.map +1 -0
  299. package/lib/store/selectors/bookmark.selectors.d.ts +38 -0
  300. package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -0
  301. package/lib/store/selectors/document.selectors.d.ts +23 -0
  302. package/lib/store/selectors/document.selectors.d.ts.map +1 -0
  303. package/lib/store/selectors/icp.selectors.d.ts +10 -0
  304. package/lib/store/selectors/icp.selectors.d.ts.map +1 -0
  305. package/lib/store/selectors/redaction.selectors.d.ts +35 -0
  306. package/lib/store/selectors/redaction.selectors.d.ts.map +1 -0
  307. package/lib/store/selectors/tag.selectors.d.ts +28 -0
  308. package/lib/store/selectors/tag.selectors.d.ts.map +1 -0
  309. package/lib/store/store-utils.d.ts +25 -0
  310. package/lib/store/store-utils.d.ts.map +1 -0
  311. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts +20 -0
  312. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts.map +1 -0
  313. package/lib/toolbar/icp-event.service.d.ts +21 -0
  314. package/lib/toolbar/icp-event.service.d.ts.map +1 -0
  315. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +24 -0
  316. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -0
  317. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +69 -0
  318. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -0
  319. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +60 -0
  320. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -0
  321. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts +12 -0
  322. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts.map +1 -0
  323. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +30 -0
  324. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -0
  325. package/lib/toolbar/search-bar/search-bar.component.d.ts +34 -0
  326. package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -0
  327. package/lib/toolbar/toolbar-button-visibility.service.d.ts +67 -0
  328. package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -0
  329. package/lib/toolbar/toolbar-event.service.d.ts +96 -0
  330. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -0
  331. package/lib/toolbar/toolbar.module.d.ts +20 -0
  332. package/lib/toolbar/toolbar.module.d.ts.map +1 -0
  333. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +31 -0
  334. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -0
  335. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +12 -0
  336. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -0
  337. package/lib/viewers/grab-n-drag.directive.d.ts +19 -0
  338. package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -0
  339. package/lib/viewers/image-viewer/image-viewer.component.d.ts +57 -0
  340. package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -0
  341. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +25 -0
  342. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -0
  343. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +69 -0
  344. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -0
  345. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +17 -0
  346. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -0
  347. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +102 -0
  348. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -0
  349. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +82 -0
  350. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -0
  351. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +22 -0
  352. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts.map +1 -0
  353. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +20 -0
  354. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +1 -0
  355. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +14 -0
  356. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +1 -0
  357. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +42 -0
  358. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -0
  359. package/lib/viewers/rotation-persist/rotation-api.service.d.ts +14 -0
  360. package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -0
  361. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +27 -0
  362. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -0
  363. package/lib/viewers/rotation-persist/rotation.model.d.ts +5 -0
  364. package/lib/viewers/rotation-persist/rotation.model.d.ts.map +1 -0
  365. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +23 -0
  366. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -0
  367. package/lib/viewers/viewer-event.service.d.ts +23 -0
  368. package/lib/viewers/viewer-event.service.d.ts.map +1 -0
  369. package/lib/viewers/viewer-exception.model.d.ts +15 -0
  370. package/lib/viewers/viewer-exception.model.d.ts.map +1 -0
  371. package/lib/viewers/viewer-util.service.d.ts +10 -0
  372. package/lib/viewers/viewer-util.service.d.ts.map +1 -0
  373. package/package.json +12 -10
  374. package/public_api.d.ts +30 -0
  375. package/public_api.d.ts.map +1 -0
  376. package/index.d.ts.map +0 -1
@@ -0,0 +1,116 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../toolbar/toolbar-event.service";
4
+ import * as i2 from "../../annotation-create/highlight-create/highlight-create.service";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "mutable-div";
7
+ export class RectangleComponent {
8
+ set annoRect(annoRect) {
9
+ this._annoRect = { ...annoRect };
10
+ this.height = +(annoRect.height * this.zoom).toFixed(2);
11
+ this.width = +(annoRect.width * this.zoom).toFixed(2);
12
+ this.left = +(annoRect.x * this.zoom).toFixed(2);
13
+ this.top = +(annoRect.y * this.zoom).toFixed(2);
14
+ }
15
+ get annoRect() {
16
+ return this._annoRect;
17
+ }
18
+ constructor(toolbarEvents, highlightService) {
19
+ this.toolbarEvents = toolbarEvents;
20
+ this.highlightService = highlightService;
21
+ this.selectEvent = new EventEmitter();
22
+ this.updateEvent = new EventEmitter();
23
+ this.subscriptions = [];
24
+ this.enableGrabNDrag = false;
25
+ }
26
+ ngOnChanges(changes) {
27
+ if (changes.rotate) {
28
+ this.adjustForRotation(this.rotate);
29
+ }
30
+ }
31
+ ngAfterViewInit() {
32
+ this.subscriptions.push(this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag));
33
+ }
34
+ ngOnDestroy() {
35
+ this.subscriptions.filter(subscription => !subscription.closed)
36
+ .forEach(subscription => subscription.unsubscribe());
37
+ }
38
+ set selected(selected) {
39
+ this._selected = selected;
40
+ if (this._selected && this.viewRect) {
41
+ this.viewRect.nativeElement.focus();
42
+ }
43
+ }
44
+ get selected() {
45
+ return this._selected;
46
+ }
47
+ onClick() {
48
+ this.selectEvent.emit(this.annoRect);
49
+ }
50
+ onUpdate(viewRect) {
51
+ const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = viewRect;
52
+ if (this.hasRectangleChanged(viewRect)) {
53
+ let rectangle = this.highlightService
54
+ .applyRotation(this.pageHeight, this.pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, this.rotate, this.zoom);
55
+ rectangle = { ...this.annoRect, ...rectangle };
56
+ this.updateEvent.emit({ ...rectangle });
57
+ }
58
+ }
59
+ adjustForRotation(rotation) {
60
+ const { top, left, height, width } = this;
61
+ switch (rotation) {
62
+ case 90:
63
+ this.width = height;
64
+ this.height = width;
65
+ this.left = this.pageWidth - top - height;
66
+ this.top = left;
67
+ break;
68
+ case 180:
69
+ this.left = this.pageWidth - left - width;
70
+ this.top = this.pageHeight - top - height;
71
+ break;
72
+ case 270:
73
+ this.width = height;
74
+ this.height = width;
75
+ this.left = top;
76
+ this.top = this.pageHeight - left - width;
77
+ break;
78
+ }
79
+ }
80
+ hasRectangleChanged(viewRect) {
81
+ return Math.round(this.left) !== viewRect.offsetLeft ||
82
+ Math.round(this.top) !== viewRect.offsetTop ||
83
+ Math.round(this.width) !== viewRect.offsetWidth ||
84
+ Math.round(this.height) !== viewRect.offsetHeight;
85
+ }
86
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RectangleComponent, deps: [{ token: i1.ToolbarEventService }, { token: i2.HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RectangleComponent, selector: "mv-anno-rectangle", inputs: { color: "color", zoom: "zoom", rotate: "rotate", editable: "editable", pageHeight: "pageHeight", pageWidth: "pageWidth", annoRect: "annoRect", selected: "selected" }, outputs: { selectEvent: "selectEvent", updateEvent: "updateEvent" }, viewQueries: [{ propertyName: "viewRect", first: true, predicate: ["rectElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"editable; else nonEditable\">\n <div #rectElement\n class=\"rectangle\"\n draggable\n resizable\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected, 'grabNDrag': enableGrabNDrag }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height + 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n [rotate]=\"0\"\n [selected]=\"selected\"\n (click)=\"onClick()\"\n (stopped)=\"onUpdate(rectElement)\">\n </div>\n</div>\n<ng-template #nonEditable>\n <div #rectElement\n class=\"rectangle\"\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height+ 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n (click)=\"onClick()\">\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DraggableElementDirective, selector: "[draggable]", inputs: ["rotate"], outputs: ["coordinates", "stopped"] }, { kind: "directive", type: i4.ResizableElementDirective, selector: "[resizable]", inputs: ["rotate", "selected"], outputs: ["stopped"] }] }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RectangleComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'mv-anno-rectangle', template: "<div *ngIf=\"editable; else nonEditable\">\n <div #rectElement\n class=\"rectangle\"\n draggable\n resizable\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected, 'grabNDrag': enableGrabNDrag }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height + 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n [rotate]=\"0\"\n [selected]=\"selected\"\n (click)=\"onClick()\"\n (stopped)=\"onUpdate(rectElement)\">\n </div>\n</div>\n<ng-template #nonEditable>\n <div #rectElement\n class=\"rectangle\"\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height+ 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n (click)=\"onClick()\">\n </div>\n</ng-template>\n" }]
92
+ }], ctorParameters: () => [{ type: i1.ToolbarEventService }, { type: i2.HighlightCreateService }], propDecorators: { color: [{
93
+ type: Input
94
+ }], zoom: [{
95
+ type: Input
96
+ }], rotate: [{
97
+ type: Input
98
+ }], editable: [{
99
+ type: Input
100
+ }], pageHeight: [{
101
+ type: Input
102
+ }], pageWidth: [{
103
+ type: Input
104
+ }], selectEvent: [{
105
+ type: Output
106
+ }], updateEvent: [{
107
+ type: Output
108
+ }], viewRect: [{
109
+ type: ViewChild,
110
+ args: ['rectElement', { static: false }]
111
+ }], annoRect: [{
112
+ type: Input
113
+ }], selected: [{
114
+ type: Input
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdGFuZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVdkIsTUFBTSxPQUFPLGtCQUFrQjtJQXdCN0IsSUFDSSxRQUFRLENBQUMsUUFBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENB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QkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsbUJBQW1COzZIQUtwQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRW9DLFFBQVE7c0JBQWxELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFhckMsUUFBUTtzQkFEWCxLQUFLO2dCQW1DRixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4vcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWFubm8tcmVjdGFuZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY3RhbmdsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVjdGFuZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGNvbG9yOiBTdHJpbmc7XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBwYWdlSGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VXaWR0aDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjdGFuZ2xlPigpO1xuICBAT3V0cHV0KCkgdXBkYXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY3RhbmdsZT4oKTtcblxuICBAVmlld0NoaWxkKCdyZWN0RWxlbWVudCcsIHtzdGF0aWM6IGZhbHNlfSkgdmlld1JlY3Q6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBfc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGVuYWJsZUdyYWJORHJhZyA9IGZhbHNlO1xuXG4gIGhlaWdodDogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuXG4gIF9hbm5vUmVjdDogUmVjdGFuZ2xlO1xuICBASW5wdXQoKVxuICBzZXQgYW5ub1JlY3QoYW5ub1JlY3Q6IFJlY3RhbmdsZSkge1xuICAgIHRoaXMuX2Fubm9SZWN0ID0geyAuLi5hbm5vUmVjdCB9O1xuICAgIHRoaXMuaGVpZ2h0ID0gKyhhbm5vUmVjdC5oZWlnaHQgKiB0aGlzLnpvb20pLnRvRml4ZWQoMik7XG4gICAgdGhpcy53aWR0aCA9ICsoYW5ub1JlY3Qud2lkdGggKiB0aGlzLnpvb20pLnRvRml4ZWQoMik7XG4gICAgdGhpcy5sZWZ0ID0gKyhhbm5vUmVjdC54ICogdGhpcy56b29tKS50b0ZpeGVkKDIpO1xuICAgIHRoaXMudG9wID0gKyhhbm5vUmVjdC55ICogdGhpcy56b29tKS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgZ2V0IGFubm9SZWN0KCkge1xuICAgIHJldHVybiB0aGlzLl9hbm5vUmVjdDtcbiAgfVxuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGhpZ2hsaWdodFNlcnZpY2U6IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnJvdGF0ZSkge1xuICAgICAgdGhpcy5hZGp1c3RGb3JSb3RhdGlvbih0aGlzLnJvdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmdyYWJORHJhZy5zdWJzY3JpYmUoZ3JhYk5EcmFnID0+IHRoaXMuZW5hYmxlR3JhYk5EcmFnID0gZ3JhYk5EcmFnKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZmlsdGVyKHN1YnNjcmlwdGlvbiA9PiAhc3Vic2NyaXB0aW9uLmNsb3NlZClcbiAgICAgIC5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgIGlmICh0aGlzLl9zZWxlY3RlZCAmJiB0aGlzLnZpZXdSZWN0KSB7XG4gICAgICB0aGlzLnZpZXdSZWN0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG5cbiAgb25DbGljaygpIHtcbiAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQodGhpcy5hbm5vUmVjdCk7XG4gIH1cblxuICBvblVwZGF0ZSh2aWV3UmVjdDogYW55KSB7XG4gICAgY29uc3QgeyBvZmZzZXRIZWlnaHQsIG9mZnNldFdpZHRoLCBvZmZzZXRUb3AsIG9mZnNldExlZnQgfSA9IHZpZXdSZWN0O1xuICAgIGlmICh0aGlzLmhhc1JlY3RhbmdsZUNoYW5nZWQodmlld1JlY3QpKSB7XG4gICAgICBsZXQgcmVjdGFuZ2xlID0gdGhpcy5oaWdobGlnaHRTZXJ2aWNlXG4gICAgICAgIC5hcHBseVJvdGF0aW9uKHRoaXMucGFnZUhlaWdodCwgdGhpcy5wYWdlV2lkdGgsIG9mZnNldEhlaWdodCwgb2Zmc2V0V2lkdGgsIG9mZnNldFRvcCwgb2Zmc2V0TGVmdCwgdGhpcy5yb3RhdGUsIHRoaXMuem9vbSk7XG4gICAgICByZWN0YW5nbGUgPSB7IC4uLnRoaXMuYW5ub1JlY3QsIC4uLnJlY3RhbmdsZSB9O1xuICAgICAgdGhpcy51cGRhdGVFdmVudC5lbWl0KHsgLi4ucmVjdGFuZ2xlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFkanVzdEZvclJvdGF0aW9uKHJvdGF0aW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCB7IHRvcCwgbGVmdCwgaGVpZ2h0LCB3aWR0aCB9ID0gdGhpcztcbiAgICBzd2l0Y2ggKHJvdGF0aW9uKSB7XG4gICAgICBjYXNlIDkwOlxuICAgICAgICB0aGlzLndpZHRoID0gaGVpZ2h0O1xuICAgICAgICB0aGlzLmhlaWdodCA9IHdpZHRoO1xuICAgICAgICB0aGlzLmxlZnQgPSB0aGlzLnBhZ2VXaWR0aCAgLSB0b3AgLSBoZWlnaHQ7XG4gICAgICAgIHRoaXMudG9wID0gbGVmdDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE4MDpcbiAgICAgICAgdGhpcy5sZWZ0ID0gdGhpcy5wYWdlV2lkdGggLSBsZWZ0IC0gd2lkdGg7XG4gICAgICAgIHRoaXMudG9wID0gdGhpcy5wYWdlSGVpZ2h0IC0gdG9wIC0gaGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjcwOlxuICAgICAgICB0aGlzLndpZHRoID0gaGVpZ2h0O1xuICAgICAgICB0aGlzLmhlaWdodCA9IHdpZHRoO1xuICAgICAgICB0aGlzLmxlZnQgPSB0b3A7XG4gICAgICAgIHRoaXMudG9wID0gdGhpcy5wYWdlSGVpZ2h0IC0gbGVmdCAtIHdpZHRoO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBoYXNSZWN0YW5nbGVDaGFuZ2VkKHZpZXdSZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQodGhpcy5sZWZ0KSAhPT0gdmlld1JlY3Qub2Zmc2V0TGVmdCB8fFxuICAgICAgTWF0aC5yb3VuZCh0aGlzLnRvcCkgIT09IHZpZXdSZWN0Lm9mZnNldFRvcCB8fFxuICAgICAgTWF0aC5yb3VuZCh0aGlzLndpZHRoKSAhPT0gdmlld1JlY3Qub2Zmc2V0V2lkdGggfHxcbiAgICAgIE1hdGgucm91bmQodGhpcy5oZWlnaHQpICE9PSB2aWV3UmVjdC5vZmZzZXRIZWlnaHQ7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJlZGl0YWJsZTsgZWxzZSBub25FZGl0YWJsZVwiPlxuICA8ZGl2ICNyZWN0RWxlbWVudFxuICAgICAgIGNsYXNzPVwicmVjdGFuZ2xlXCJcbiAgICAgICBkcmFnZ2FibGVcbiAgICAgICByZXNpemFibGVcbiAgICAgICBbdGFiaW5kZXhdPVwiYW5ub1JlY3QuaWRcIlxuICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkJzogc2VsZWN0ZWQsICdncmFiTkRyYWcnOiBlbmFibGVHcmFiTkRyYWcgfVwiXG4gICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCInIycgKyBjb2xvclwiXG4gICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoICsgJ3B4J1wiXG4gICAgICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHQgKyAncHgnXCJcbiAgICAgICBbc3R5bGUubGVmdF09XCJsZWZ0ICsgJ3B4J1wiXG4gICAgICAgW3N0eWxlLnRvcF09XCJ0b3AgKyAncHgnXCJcbiAgICAgICBbcm90YXRlXT1cIjBcIlxuICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgKHN0b3BwZWQpPVwib25VcGRhdGUocmVjdEVsZW1lbnQpXCI+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI25vbkVkaXRhYmxlPlxuICA8ZGl2ICNyZWN0RWxlbWVudFxuICAgICAgIGNsYXNzPVwicmVjdGFuZ2xlXCJcbiAgICAgICBbdGFiaW5kZXhdPVwiYW5ub1JlY3QuaWRcIlxuICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkJzogc2VsZWN0ZWQgfVwiXG4gICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCInIycgKyBjb2xvclwiXG4gICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoICsgJ3B4J1wiXG4gICAgICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHQrICdweCdcIlxuICAgICAgIFtzdHlsZS5sZWZ0XT1cImxlZnQgKyAncHgnXCJcbiAgICAgICBbc3R5bGUudG9wXT1cInRvcCArICdweCdcIlxuICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdGFuZ2xlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L3JlY3RhbmdsZS9yZWN0YW5nbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaVBlcnNpc3RlZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9hcGktcGVyc2lzdGVkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWN0YW5nbGUgZXh0ZW5kcyBBcGlQZXJzaXN0ZWQge1xuICBhbm5vdGF0aW9uSWQ6IHN0cmluZztcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,145 @@
1
+ import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class CtxToolbarComponent {
5
+ constructor() {
6
+ this.createHighlightEvent = new EventEmitter();
7
+ this.deleteHighlightEvent = new EventEmitter();
8
+ this.addOrEditCommentEvent = new EventEmitter();
9
+ this.createBookmarkEvent = new EventEmitter();
10
+ this.cancelEvent = new EventEmitter();
11
+ this.defaultHeight = 70;
12
+ this.defaultWidth = 300;
13
+ }
14
+ ngOnChanges(changes) {
15
+ this.setRectangle();
16
+ this.top = this.popupTop();
17
+ this.left = this.popupLeft();
18
+ }
19
+ onEscapeKey(event) {
20
+ if (this.rectangle) {
21
+ event.stopPropagation();
22
+ event.preventDefault();
23
+ this.rectangle = undefined;
24
+ this.cancelEvent.emit();
25
+ }
26
+ }
27
+ set rectangles(rectangles) {
28
+ if (rectangles) {
29
+ this._rectangles = rectangles;
30
+ this.setRectangle();
31
+ }
32
+ }
33
+ get rectangles() {
34
+ return this._rectangles;
35
+ }
36
+ createHighlight() {
37
+ this.createHighlightEvent.emit();
38
+ this.rectangle = undefined;
39
+ }
40
+ deleteHighlight() {
41
+ this.deleteHighlightEvent.emit();
42
+ }
43
+ addOrEditComment() {
44
+ this.addOrEditCommentEvent.emit();
45
+ setTimeout(() => {
46
+ // This hack to wait until the element is rendered seems to be unreliable,
47
+ if (!location.hash) {
48
+ document.getElementById('viewerContainer')?.scrollBy(0, 1);
49
+ }
50
+ }, 20);
51
+ }
52
+ createBookmark() {
53
+ this.createBookmarkEvent.emit(this.rectangle);
54
+ this.rectangle = undefined;
55
+ }
56
+ setRectangle() {
57
+ const rectangle = this.rectangles
58
+ .reduce((prev, current) => prev.y < current.y ? prev : current);
59
+ this.rectangle = { ...rectangle };
60
+ switch (this.rotate) {
61
+ case 90:
62
+ this.rectangle.width = rectangle.height;
63
+ this.rectangle.height = rectangle.width;
64
+ this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;
65
+ this.rectangle.y = rectangle.x;
66
+ break;
67
+ case 180:
68
+ this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.x - rectangle.width;
69
+ this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.y - rectangle.height;
70
+ break;
71
+ case 270:
72
+ this.rectangle.width = rectangle.height;
73
+ this.rectangle.height = rectangle.width;
74
+ this.rectangle.x = rectangle.y;
75
+ this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.x - rectangle.width;
76
+ break;
77
+ }
78
+ }
79
+ popupTop() {
80
+ const popupTop = this.rectangle.y * this.zoom - this.defaultHeight;
81
+ return popupTop <= 0 ? this.defaultHeight : popupTop;
82
+ }
83
+ popupLeft() {
84
+ const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);
85
+ if (popupLeft <= 0) {
86
+ return 0;
87
+ }
88
+ else if (popupLeft >= this.pageWidth - this.defaultWidth) {
89
+ return this.pageWidth - this.defaultWidth;
90
+ }
91
+ else {
92
+ return popupLeft;
93
+ }
94
+ }
95
+ focusToolbar() {
96
+ if (this.toolbarContainer?.nativeElement) {
97
+ const firstButton = this.toolbarContainer.nativeElement.querySelector('button');
98
+ if (firstButton) {
99
+ setTimeout(() => firstButton.focus(), 0);
100
+ return;
101
+ }
102
+ }
103
+ }
104
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CtxToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: { zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth", canHighlight: "canHighlight", canBookmark: "canBookmark", canComment: "canComment", canDelete: "canDelete", rectangles: "rectangles" }, outputs: { createHighlightEvent: "createHighlightEvent", deleteHighlightEvent: "deleteHighlightEvent", addOrEditCommentEvent: "addOrEditCommentEvent", createBookmarkEvent: "createBookmarkEvent", cancelEvent: "cancelEvent" }, host: { listeners: { "document:keydown.escape": "onEscapeKey($event)" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #toolbarContainer class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\"\n (keydown.enter)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\"\n (keydown.enter)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\"\n (keydown.enter)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\"\n (keydown.enter)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CtxToolbarComponent, decorators: [{
108
+ type: Component,
109
+ args: [{ selector: 'mv-ctx-toolbar', template: "<div #toolbarContainer class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\"\n (keydown.enter)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\"\n (keydown.enter)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\"\n (keydown.enter)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\"\n (keydown.enter)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n" }]
110
+ }], ctorParameters: () => [], propDecorators: { toolbarContainer: [{
111
+ type: ViewChild,
112
+ args: ['toolbarContainer', { static: false }]
113
+ }], zoom: [{
114
+ type: Input
115
+ }], rotate: [{
116
+ type: Input
117
+ }], pageHeight: [{
118
+ type: Input
119
+ }], pageWidth: [{
120
+ type: Input
121
+ }], canHighlight: [{
122
+ type: Input
123
+ }], canBookmark: [{
124
+ type: Input
125
+ }], canComment: [{
126
+ type: Input
127
+ }], canDelete: [{
128
+ type: Input
129
+ }], createHighlightEvent: [{
130
+ type: Output
131
+ }], deleteHighlightEvent: [{
132
+ type: Output
133
+ }], addOrEditCommentEvent: [{
134
+ type: Output
135
+ }], createBookmarkEvent: [{
136
+ type: Output
137
+ }], cancelEvent: [{
138
+ type: Output
139
+ }], onEscapeKey: [{
140
+ type: HostListener,
141
+ args: ['document:keydown.escape', ['$event']]
142
+ }], rectangles: [{
143
+ type: Input
144
+ }] } });
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3R4LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkIsTUFBTSxPQUFPLG1CQUFtQjtJQTRCOUI7UUFYVSx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVF6QyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBR0QsV0FB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWN0eC10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N0eC10b29sYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDdHhUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICByZWFkb25seSBkZWZhdWx0SGVpZ2h0O1xuICByZWFkb25seSBkZWZhdWx0V2lkdGg7XG5cbiAgQFZpZXdDaGlsZCgndG9vbGJhckNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSB0b29sYmFyQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoKSB6b29tO1xuICBASW5wdXQoKSByb3RhdGU7XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVdpZHRoOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2FuSGlnaGxpZ2h0OiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5Cb29rbWFyazogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuQ29tbWVudDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuRGVsZXRlOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBjcmVhdGVIaWdobGlnaHRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRlbGV0ZUhpZ2hsaWdodEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYWRkT3JFZGl0Q29tbWVudEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlQm9va21hcmtFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjdGFuZ2xlPigpO1xuICBAT3V0cHV0KCkgY2FuY2VsRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcmVjdGFuZ2xlOiBSZWN0YW5nbGU7XG4gIF9yZWN0YW5nbGVzOiBSZWN0YW5nbGVbXTtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlZmF1bHRIZWlnaHQgPSA3MDtcbiAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IDMwMDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICB0aGlzLnNldFJlY3RhbmdsZSgpO1xuICAgIHRoaXMudG9wID0gdGhpcy5wb3B1cFRvcCgpO1xuICAgIHRoaXMubGVmdCA9IHRoaXMucG9wdXBMZWZ0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pXG4gIG9uRXNjYXBlS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVjdGFuZ2xlKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnJlY3RhbmdsZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuY2FuY2VsRXZlbnQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCByZWN0YW5nbGVzKHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKSB7XG4gICAgaWYgKHJlY3RhbmdsZXMpIHtcbiAgICAgIHRoaXMuX3JlY3RhbmdsZXMgPSByZWN0YW5nbGVzO1xuICAgICAgdGhpcy5zZXRSZWN0YW5nbGUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVjdGFuZ2xlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVjdGFuZ2xlcztcbiAgfVxuXG4gIGNyZWF0ZUhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLmNyZWF0ZUhpZ2hsaWdodEV2ZW50LmVtaXQoKTtcbiAgICB0aGlzLnJlY3RhbmdsZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGRlbGV0ZUhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLmRlbGV0ZUhpZ2hsaWdodEV2ZW50LmVtaXQoKTtcbiAgfVxuXG4gIGFkZE9yRWRpdENvbW1lbnQoKSB7XG4gICAgdGhpcy5hZGRPckVkaXRDb21tZW50RXZlbnQuZW1pdCgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gVGhpcyBoYWNrIHRvIHdhaXQgdW50aWwgdGhlIGVsZW1lbnQgaXMgcmVuZGVyZWQgc2VlbXMgdG8gYmUgdW5yZWxpYWJsZSxcbiAgICAgIGlmICghbG9jYXRpb24uaGFzaCkge1xuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlld2VyQ29udGFpbmVyJyk/LnNjcm9sbEJ5KDAsIDEpO1xuICAgICAgfVxuICAgIH0sIDIwKTtcbiAgfVxuXG4gIGNyZWF0ZUJvb2ttYXJrKCkge1xuICAgIHRoaXMuY3JlYXRlQm9va21hcmtFdmVudC5lbWl0KHRoaXMucmVjdGFuZ2xlKTtcbiAgICB0aGlzLnJlY3RhbmdsZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldFJlY3RhbmdsZSgpIHtcbiAgICBjb25zdCByZWN0YW5nbGUgPSB0aGlzLnJlY3RhbmdsZXNcbiAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnJlbnQpID0+IHByZXYueSA8IGN1cnJlbnQueSA/IHByZXYgOiBjdXJyZW50KTtcbiAgICB0aGlzLnJlY3RhbmdsZSA9ICB7IC4uLnJlY3RhbmdsZSB9O1xuICAgIHN3aXRjaCAodGhpcy5yb3RhdGUpIHtcbiAgICAgIGNhc2UgOTA6XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLndpZHRoID0gcmVjdGFuZ2xlLmhlaWdodDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUuaGVpZ2h0ID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZS54ID0gKHRoaXMucGFnZVdpZHRoIC8gdGhpcy56b29tKSAtIHJlY3RhbmdsZS55IC0gcmVjdGFuZ2xlLmhlaWdodDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUueSA9IHJlY3RhbmdsZS54O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOlxuICAgICAgICB0aGlzLnJlY3RhbmdsZS54ID0gKHRoaXMucGFnZVdpZHRoIC8gdGhpcy56b29tKSAtIHJlY3RhbmdsZS54IC0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZS55ID0gKHRoaXMucGFnZUhlaWdodCAvIHRoaXMuem9vbSkgLSByZWN0YW5nbGUueSAtIHJlY3RhbmdsZS5oZWlnaHQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNzA6XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLndpZHRoID0gcmVjdGFuZ2xlLmhlaWdodDtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUuaGVpZ2h0ID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZS54ID0gcmVjdGFuZ2xlLnk7XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlLnkgPSAodGhpcy5wYWdlSGVpZ2h0IC8gdGhpcy56b29tKSAtIHJlY3RhbmdsZS54IC0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwb3B1cFRvcCgpIHtcbiAgICBjb25zdCBwb3B1cFRvcCA9IHRoaXMucmVjdGFuZ2xlLnkgKiB0aGlzLnpvb20gLSB0aGlzLmRlZmF1bHRIZWlnaHQ7XG4gICAgcmV0dXJuIHBvcHVwVG9wIDw9IDAgPyB0aGlzLmRlZmF1bHRIZWlnaHQgOiBwb3B1cFRvcDtcbiAgfVxuXG4gIHBvcHVwTGVmdCgpIHtcbiAgICBjb25zdCBwb3B1cExlZnQgPSAodGhpcy5yZWN0YW5nbGUueCArICh0aGlzLnJlY3RhbmdsZS53aWR0aCAvIDIpKSAqIHRoaXMuem9vbSAtICh0aGlzLmRlZmF1bHRXaWR0aCAvIDIpO1xuICAgIGlmIChwb3B1cExlZnQgPD0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIGlmIChwb3B1cExlZnQgPj0gdGhpcy5wYWdlV2lkdGggLSB0aGlzLmRlZmF1bHRXaWR0aCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFnZVdpZHRoIC0gdGhpcy5kZWZhdWx0V2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwb3B1cExlZnQ7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNUb29sYmFyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2xiYXJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGZpcnN0QnV0dG9uID0gdGhpcy50b29sYmFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7XG4gICAgICBcbiAgICAgIGlmIChmaXJzdEJ1dHRvbikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZpcnN0QnV0dG9uLmZvY3VzKCksIDApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IFxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjdG9vbGJhckNvbnRhaW5lciBjbGFzcz1cInRvb2xiYXJcIiAqbmdJZj1cInJlY3RhbmdsZVwiXG4gICAgIFtzdHlsZS50b3AucHhdPVwidG9wXCJcbiAgICAgW3N0eWxlLmxlZnQucHhdPVwibGVmdFwiPlxuICA8YnV0dG9uICpuZ0lmPVwiY2FuSGlnaGxpZ2h0XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgdGl0bGU9XCJIaWdobGlnaHRcIlxuICAgICAgICAgIGNsYXNzPVwiYXVpX190b29sYmFyLWJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLS1jb21tZW50cyBjb250ZXh0dWFsLWJ0biBsZWZ0QnV0dG9uIGF1aV9fdG9vbGJhci1idXR0b24taGlnaGxpZ2h0XCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cImNyZWF0ZUhpZ2hsaWdodCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjcmVhdGVIaWdobGlnaHQoKVwiPlxuICAgIDxzcGFuPkhpZ2hsaWdodDwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKm5nSWY9XCJjYW5EZWxldGVcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkRlbGV0ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhdWlfX3Rvb2xiYXItYnV0dG9uIGF1aV9fdG9vbGJhci1idXR0b24tLWNvbW1lbnRzIGNvbnRleHR1YWwtYnRuIGxlZnRCdXR0b25cIlxuICAgICAgICAgIChtb3VzZWRvd24pPVwiZGVsZXRlSGlnaGxpZ2h0KClcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImRlbGV0ZUhpZ2hsaWdodCgpXCI+XG4gICAgPHNwYW4+UmVtb3ZlPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAqbmdJZj1cImNhbkNvbW1lbnRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkNvbW1lbnRcIlxuICAgICAgICAgIGNsYXNzPVwiYXVpX190b29sYmFyLWJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLS1jb21tZW50cyBjb250ZXh0dWFsLWJ0biByaWdodEJ1dHRvbiBhdWlfX3Rvb2xiYXItYnV0dG9uLWNvbW1lbnRcIlxuICAgICAgICAgIChtb3VzZWRvd24pPVwiYWRkT3JFZGl0Q29tbWVudCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJhZGRPckVkaXRDb21tZW50KClcIj5cbiAgICA8c3Bhbj5Db21tZW50PC9zcGFuPjwvYnV0dG9uPlxuICA8YnV0dG9uICpuZ0lmPVwiY2FuQm9va21hcmtcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkJvb2ttYXJrXCJcbiAgICAgICAgICBjbGFzcz1cImF1aV9fdG9vbGJhci1idXR0b24gYXVpX190b29sYmFyLWJ1dHRvbi0tY29tbWVudHMgY29udGV4dHVhbC1idG4gcmlnaHRCdXR0b24gYXVpX190b29sYmFyLWJ1dHRvbi1ib29rbWFya1wiXG4gICAgICAgICAgaWQ9XCJib29rbWFya0J1dHRvblwiXG4gICAgICAgICAgKG1vdXNlZG93bik9XCJjcmVhdGVCb29rbWFyaygpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjcmVhdGVCb29rbWFyaygpXCI+XG4gICAgPHNwYW4+Qm9va21hcms8L3NwYW4+PC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJhcnJvdy1kb3duXCI+XG4gICAgPGRpdiBjbGFzcz1cImlubmVyLXRyaWFuZ2xlXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,99 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { take } from 'rxjs/operators';
3
+ import { select } from '@ngrx/store';
4
+ import { v4 as uuid } from 'uuid';
5
+ import * as fromDocument from '../../../store/selectors/document.selectors';
6
+ import * as fromSelectors from '../../../store/selectors/annotation.selectors';
7
+ import { CreateBookmark } from '../../../store/actions/bookmark.actions';
8
+ import * as fromBookmarks from '../../../store/selectors/bookmark.selectors';
9
+ import { CtxToolbarComponent } from '../ctx-toolbar/ctx-toolbar.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngrx/store";
12
+ import * as i2 from "../annotation-create/highlight-create/highlight-create.service";
13
+ import * as i3 from "../../../toolbar/toolbar-event.service";
14
+ import * as i4 from "../../../viewers/viewer-event.service";
15
+ import * as i5 from "@angular/common";
16
+ import * as i6 from "../annotation-create/box-highlight-create/box-highlight-create.component";
17
+ import * as i7 from "../annotation-set.component";
18
+ import * as i8 from "../ctx-toolbar/ctx-toolbar.component";
19
+ export class MetadataLayerComponent {
20
+ constructor(store, highlightService, toolbarEvents, viewerEvents) {
21
+ this.store = store;
22
+ this.highlightService = highlightService;
23
+ this.toolbarEvents = toolbarEvents;
24
+ this.viewerEvents = viewerEvents;
25
+ this.pages = []; // todo add type
26
+ this.drawMode = false;
27
+ }
28
+ ngOnInit() {
29
+ this.$subscriptions = this.store.pipe(select(fromDocument.getPages))
30
+ .subscribe(pages => this.pages = Object.values(pages));
31
+ this.annoPages$ = this.store.pipe(select(fromSelectors.getPageEntities));
32
+ this.$subscriptions.add(this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode));
33
+ this.$subscriptions.add(this.viewerEvents.textHighlight.subscribe(highlight => this.showContextToolbar(highlight)));
34
+ this.$subscriptions.add(this.viewerEvents.ctxToolbarCleared.subscribe(() => this.clearContextToolbar()));
35
+ }
36
+ ngOnDestroy() {
37
+ this.$subscriptions.unsubscribe();
38
+ }
39
+ showContextToolbar(highlight) {
40
+ this.highlightPage = highlight.page;
41
+ this.rectangles = highlight.rectangles;
42
+ if (this.rectangles) {
43
+ this.toolbarEvents.highlightModeSubject.next(false);
44
+ setTimeout(() => this.ctxToolbar.focusToolbar(), 0);
45
+ }
46
+ }
47
+ clearContextToolbar() {
48
+ this.rectangles = undefined;
49
+ }
50
+ cancelContextToolbar() {
51
+ const selection = window.getSelection();
52
+ if (selection) {
53
+ selection.removeAllRanges();
54
+ }
55
+ this.rectangles = undefined;
56
+ this.toolbarEvents.highlightModeSubject.next(true);
57
+ }
58
+ createHighlight() {
59
+ this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);
60
+ this.highlightService.resetHighlight();
61
+ this.rectangles = undefined;
62
+ }
63
+ createBookmark(rectangle) {
64
+ this.store.pipe(select(fromBookmarks.getBookmarkInfo), take(1))
65
+ .subscribe((bookmarkInfo) => {
66
+ const selection = window.getSelection().toString();
67
+ this.store.dispatch(new CreateBookmark({
68
+ ...bookmarkInfo,
69
+ name: selection.length > 0 ? selection.substr(0, 30) : 'new bookmark',
70
+ id: uuid(),
71
+ pageNumber: this.highlightPage - 1,
72
+ xCoordinate: rectangle.x,
73
+ yCoordinate: rectangle.y
74
+ }));
75
+ this.toolbarEvents.toggleSideBar(true);
76
+ this.toolbarEvents.toggleSideBarView(false);
77
+ this.highlightService.resetHighlight();
78
+ this.rectangles = undefined;
79
+ });
80
+ }
81
+ saveAnnotation({ rectangles, page }) {
82
+ this.highlightService.saveAnnotation(rectangles, page);
83
+ this.toolbarEvents.drawModeSubject.next(false);
84
+ }
85
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataLayerComponent, deps: [{ token: i1.Store }, { token: i2.HighlightCreateService }, { token: i3.ToolbarEventService }, { token: i4.ViewerEventService }], target: i0.ɵɵFactoryTarget.Component }); }
86
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataLayerComponent, selector: "mv-metadata-layer", inputs: { zoom: "zoom", rotate: "rotate" }, viewQueries: [{ propertyName: "ctxToolbar", first: true, predicate: CtxToolbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\"\n (cancelEvent)=\"cancelContextToolbar()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: ["page", "pageHeight", "pageWidth", "rotate", "zoom", "container"], outputs: ["saveSelection"] }, { kind: "component", type: i7.AnnotationSetComponent, selector: "mv-annotation-set", inputs: ["page", "annotations", "zoom", "rotate", "pageHeight", "pageWidth"] }, { kind: "component", type: i8.CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: ["zoom", "rotate", "pageHeight", "pageWidth", "canHighlight", "canBookmark", "canComment", "canDelete", "rectangles"], outputs: ["createHighlightEvent", "deleteHighlightEvent", "addOrEditCommentEvent", "createBookmarkEvent", "cancelEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataLayerComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'mv-metadata-layer', template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\"\n (cancelEvent)=\"cancelContextToolbar()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n" }]
91
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.HighlightCreateService }, { type: i3.ToolbarEventService }, { type: i4.ViewerEventService }], propDecorators: { zoom: [{
92
+ type: Input
93
+ }], rotate: [{
94
+ type: Input
95
+ }], ctxToolbar: [{
96
+ type: ViewChild,
97
+ args: [CtxToolbarComponent, { static: false }]
98
+ }] } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvbWV0YWRhdGEtbGF5ZXIvbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvbWV0YWRhdGEtbGF5ZXIvbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxPQUFPLEtBQUssWUFBWSxNQUFNLDZDQUE2QyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxhQUFhLE1BQU0sK0NBQStDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxhQUFhLE1BQU0sNkNBQTZDLENBQUM7QUFHN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7QUFNM0UsTUFBTSxPQUFPLHNCQUFzQjtJQWdCakMsWUFDVSxLQUEwQyxFQUNqQyxnQkFBd0MsRUFDeEMsYUFBa0MsRUFDbEMsWUFBZ0M7UUFIekMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4Qyxr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QjtrQkFKbEMsU0FBUzsrQkFDRSxtQkFBbUI7a0xBS3BCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRTZDLFVBQVU7c0JBQTVELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21TZWxlY3RvcnMgZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Fubm90YXRpb24uc2VsZWN0b3JzJztcbmltcG9ydCB7IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UgfSBmcm9tICcuLi9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgeyBDcmVhdGVCb29rbWFyayB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMvYm9va21hcmsuYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tQm9va21hcmtzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9ib29rbWFyay5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEhpZ2hsaWdodCwgVmlld2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdmlld2Vycy92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDdHhUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtbWV0YWRhdGEtbGF5ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhTGF5ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcblxuICBAVmlld0NoaWxkKEN0eFRvb2xiYXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBjdHhUb29sYmFyOiBDdHhUb29sYmFyQ29tcG9uZW50O1xuXG4gIHBhZ2VzOiBhbnlbXSA9IFtdOyAvLyB0b2RvIGFkZCB0eXBlXG4gIGFubm9QYWdlcyQ6IE9ic2VydmFibGU8YW55PjsgLy8gdG9kbyBhZGQgdHlwZVxuXG4gIGRyYXdNb2RlID0gZmFsc2U7XG4gIGhpZ2hsaWdodFBhZ2U6IG51bWJlcjtcbiAgcmVjdGFuZ2xlczogUmVjdGFuZ2xlW107XG5cbiAgcHJpdmF0ZSAkc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0U2VydmljZTogSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucyA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKSlcbiAgICAgIC5zdWJzY3JpYmUocGFnZXMgPT4gdGhpcy5wYWdlcyA9IE9iamVjdC52YWx1ZXMocGFnZXMpKTtcbiAgICB0aGlzLmFubm9QYWdlcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0UGFnZUVudGl0aWVzKSk7XG5cbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMuZHJhd01vZGVTdWJqZWN0LnN1YnNjcmliZShkcmF3TW9kZSA9PiB0aGlzLmRyYXdNb2RlID0gZHJhd01vZGUpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb25zLmFkZCh0aGlzLnZpZXdlckV2ZW50cy50ZXh0SGlnaGxpZ2h0LnN1YnNjcmliZShoaWdobGlnaHQgPT4gdGhpcy5zaG93Q29udGV4dFRvb2xiYXIoaGlnaGxpZ2h0KSkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudmlld2VyRXZlbnRzLmN0eFRvb2xiYXJDbGVhcmVkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFyQ29udGV4dFRvb2xiYXIoKSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2hvd0NvbnRleHRUb29sYmFyKGhpZ2hsaWdodDogSGlnaGxpZ2h0KSB7XG4gICAgdGhpcy5oaWdobGlnaHRQYWdlID0gaGlnaGxpZ2h0LnBhZ2U7XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gaGlnaGxpZ2h0LnJlY3RhbmdsZXM7XG4gICAgaWYgKHRoaXMucmVjdGFuZ2xlcykge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmhpZ2hsaWdodE1vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmN0eFRvb2xiYXIuZm9jdXNUb29sYmFyKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyQ29udGV4dFRvb2xiYXIoKSB7XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY2FuY2VsQ29udGV4dFRvb2xiYXIoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICB9XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgY3JlYXRlSGlnaGxpZ2h0KCkge1xuICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5zYXZlQW5ub3RhdGlvbih0aGlzLnJlY3RhbmdsZXMsIHRoaXMuaGlnaGxpZ2h0UGFnZSk7XG4gICAgdGhpcy5oaWdobGlnaHRTZXJ2aWNlLnJlc2V0SGlnaGxpZ2h0KCk7XG4gICAgdGhpcy5yZWN0YW5nbGVzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY3JlYXRlQm9va21hcmsocmVjdGFuZ2xlOiBSZWN0YW5nbGUpIHtcbiAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Cb29rbWFya3MuZ2V0Qm9va21hcmtJbmZvKSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGJvb2ttYXJrSW5mbykgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQ3JlYXRlQm9va21hcmsoe1xuICAgICAgICAgIC4uLmJvb2ttYXJrSW5mbyxcbiAgICAgICAgICBuYW1lOiBzZWxlY3Rpb24ubGVuZ3RoID4gMCA/IHNlbGVjdGlvbi5zdWJzdHIoMCwgMzApIDogJ25ldyBib29rbWFyaycsXG4gICAgICAgICAgaWQ6IHV1aWQoKSxcbiAgICAgICAgICBwYWdlTnVtYmVyOiB0aGlzLmhpZ2hsaWdodFBhZ2UgLSAxLFxuICAgICAgICAgIHhDb29yZGluYXRlOiByZWN0YW5nbGUueCxcbiAgICAgICAgICB5Q29vcmRpbmF0ZTogcmVjdGFuZ2xlLnlcbiAgICAgICAgfSBhcyBhbnkpKTtcbiAgICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVNpZGVCYXIodHJ1ZSk7XG4gICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVTaWRlQmFyVmlldyhmYWxzZSk7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5yZXNldEhpZ2hsaWdodCgpO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZXMgPSB1bmRlZmluZWQ7XG5cbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZUFubm90YXRpb24oeyByZWN0YW5nbGVzLCBwYWdlIH06IHsgcmVjdGFuZ2xlczogUmVjdGFuZ2xlW10sIHBhZ2U6IGFueSB9KSB7XG4gICAgdGhpcy5oaWdobGlnaHRTZXJ2aWNlLnNhdmVBbm5vdGF0aW9uKHJlY3RhbmdsZXMsIHBhZ2UpO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5kcmF3TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWdlQ29udGFpbmVyXCI+XG4gIDxkaXYgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyAgaW5kZXggYXMgaVwiXG4gICAgICAgY2xhc3M9XCJwYWdlQ29udGFpbmVyX19wYWdlXCJcbiAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgJ3dpZHRoLnB4JzogcGFnZS5zdHlsZXMud2lkdGgsXG4gICAgICAgJ2hlaWdodC5weCc6IHBhZ2Uuc3R5bGVzLmhlaWdodFxuICAgICAgIH1cIlxuICAgICAgIFtuZ0NsYXNzXT1cInsgJ3BhZ2VDb250YWluZXJfX3BhZ2UtLWRyYXcnIDogZHJhd01vZGUgfVwiPlxuICAgIDxtdi1ib3gtaGlnaGxpZ2h0LWNyZWF0ZVxuICAgICAgW3BhZ2VdPVwiaSArIDFcIlxuICAgICAgW3BhZ2VIZWlnaHRdPVwicGFnZS5zdHlsZXMuaGVpZ2h0XCJcbiAgICAgIFtwYWdlV2lkdGhdPVwicGFnZS5zdHlsZXMud2lkdGhcIlxuICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAoc2F2ZVNlbGVjdGlvbik9XCJzYXZlQW5ub3RhdGlvbigkZXZlbnQpXCI+XG4gICAgPC9tdi1ib3gtaGlnaGxpZ2h0LWNyZWF0ZT5cbiAgICA8bXYtY3R4LXRvb2xiYXIgKm5nSWY9XCJyZWN0YW5nbGVzICYmIGhpZ2hsaWdodFBhZ2UgPT09IChpICsgMSlcIlxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlc109XCJyZWN0YW5nbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbkJvb2ttYXJrXT1cInRydWVcIiBbY2FuSGlnaGxpZ2h0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbcGFnZUhlaWdodF09XCJwYWdlLnN0eWxlcy5oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICBbcGFnZVdpZHRoXT1cInBhZ2Uuc3R5bGVzLndpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZUJvb2ttYXJrRXZlbnQpPVwiY3JlYXRlQm9va21hcmsoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChjcmVhdGVIaWdobGlnaHRFdmVudCk9XCJjcmVhdGVIaWdobGlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjYW5jZWxFdmVudCk9XCJjYW5jZWxDb250ZXh0VG9vbGJhcigpXCI+XG4gICAgPC9tdi1jdHgtdG9vbGJhcj5cbiAgICA8ZGl2IGNsYXNzPVwicGFnZUNvbnRhaW5lcl9fcGFnZS1pdGVtXCI+XG4gICAgICA8bXYtYW5ub3RhdGlvbi1zZXQgKm5nSWY9XCIoYW5ub1BhZ2VzJCB8IGFzeW5jKSBhcyBhbm5vUGFnZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tXT1cInpvb21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZUhlaWdodF09XCJwYWdlLnN0eWxlcy5oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlV2lkdGhdPVwicGFnZS5zdHlsZXMud2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlXT1cImlcIiBbYW5ub3RhdGlvbnNdPVwiYW5ub1BhZ2VzW2kgKyAxXVwiPjwvbXYtYW5ub3RhdGlvbi1zZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=