@hmcts/media-viewer 4.1.6-angular-20 → 4.1.7-exui-2986

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