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

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 (372) hide show
  1. package/assets/all.scss +1 -0
  2. package/assets/sass/tooltip.scss +50 -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/directives/tooltip-dismiss.directive.mjs +36 -0
  57. package/esm2022/lib/shared/gov-uk-date/gov-uk-date.component.mjs +28 -0
  58. package/esm2022/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +34 -0
  59. package/esm2022/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +63 -0
  60. package/esm2022/lib/shared/gov-uk-label/gov-uk-label.component.mjs +44 -0
  61. package/esm2022/lib/shared/shared.module.mjs +53 -0
  62. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +29 -0
  63. package/esm2022/lib/shared/util/services/number.helper.service.mjs +23 -0
  64. package/esm2022/lib/store/actions/annotation.actions.mjs +119 -0
  65. package/esm2022/lib/store/actions/bookmark.actions.mjs +112 -0
  66. package/esm2022/lib/store/actions/document.actions.mjs +91 -0
  67. package/esm2022/lib/store/actions/icp.actions.mjs +56 -0
  68. package/esm2022/lib/store/actions/redaction.actions.mjs +132 -0
  69. package/esm2022/lib/store/actions/tag.actions.mjs +21 -0
  70. package/esm2022/lib/store/bookmarks-store-utils.mjs +49 -0
  71. package/esm2022/lib/store/effects/annotation.effects.mjs +51 -0
  72. package/esm2022/lib/store/effects/bookmarks.effects.mjs +44 -0
  73. package/esm2022/lib/store/effects/document.effects.mjs +44 -0
  74. package/esm2022/lib/store/effects/icp.effects.mjs +26 -0
  75. package/esm2022/lib/store/effects/index.mjs +7 -0
  76. package/esm2022/lib/store/effects/redaction.effects.mjs +67 -0
  77. package/esm2022/lib/store/models/bookmarks.interface.mjs +2 -0
  78. package/esm2022/lib/store/models/filters.interface.mjs +2 -0
  79. package/esm2022/lib/store/reducers/annotations.reducer.mjs +208 -0
  80. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +125 -0
  81. package/esm2022/lib/store/reducers/document.reducer.mjs +158 -0
  82. package/esm2022/lib/store/reducers/icp.reducer.mjs +56 -0
  83. package/esm2022/lib/store/reducers/redaction.reducer.mjs +116 -0
  84. package/esm2022/lib/store/reducers/reducers.mjs +23 -0
  85. package/esm2022/lib/store/reducers/tags.reducer.mjs +93 -0
  86. package/esm2022/lib/store/selectors/annotation.selectors.mjs +81 -0
  87. package/esm2022/lib/store/selectors/bookmark.selectors.mjs +37 -0
  88. package/esm2022/lib/store/selectors/document.selectors.mjs +13 -0
  89. package/esm2022/lib/store/selectors/icp.selectors.mjs +13 -0
  90. package/esm2022/lib/store/selectors/redaction.selectors.mjs +26 -0
  91. package/esm2022/lib/store/selectors/tag.selectors.mjs +15 -0
  92. package/esm2022/lib/store/store-utils.mjs +131 -0
  93. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +46 -0
  94. package/esm2022/lib/toolbar/icp-event.service.mjs +44 -0
  95. package/esm2022/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +43 -0
  96. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +207 -0
  97. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +237 -0
  98. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +2 -0
  99. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +69 -0
  100. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
  101. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  102. package/esm2022/lib/toolbar/toolbar-event.service.mjs +178 -0
  103. package/esm2022/lib/toolbar/toolbar.module.mjs +75 -0
  104. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
  105. package/esm2022/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +22 -0
  106. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +57 -0
  107. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  108. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
  109. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +266 -0
  110. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +40 -0
  111. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +242 -0
  112. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +379 -0
  113. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +2 -0
  114. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  115. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +2 -0
  116. package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +99 -0
  117. package/esm2022/lib/viewers/rotation-persist/rotation-api.service.mjs +27 -0
  118. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
  119. package/esm2022/lib/viewers/rotation-persist/rotation.model.mjs +2 -0
  120. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  121. package/esm2022/lib/viewers/viewer-event.service.mjs +34 -0
  122. package/esm2022/lib/viewers/viewer-exception.model.mjs +13 -0
  123. package/esm2022/lib/viewers/viewer-util.service.mjs +20 -0
  124. package/esm2022/public_api.mjs +33 -0
  125. package/fesm2022/hmcts-media-viewer.mjs +320 -295
  126. package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
  127. package/hmcts-media-viewer.d.ts.map +1 -0
  128. package/index.d.ts +4 -2305
  129. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +48 -0
  130. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -0
  131. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +32 -0
  132. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -0
  133. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +18 -0
  134. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -0
  135. package/lib/annotations/annotation-set/annotation-set.component.d.ts +27 -0
  136. package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -0
  137. package/lib/annotations/annotation-set/annotation-set.model.d.ts +7 -0
  138. package/lib/annotations/annotation-set/annotation-set.model.d.ts.map +1 -0
  139. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +34 -0
  140. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -0
  141. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +16 -0
  142. package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts.map +1 -0
  143. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +41 -0
  144. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -0
  145. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +9 -0
  146. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts.map +1 -0
  147. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +37 -0
  148. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -0
  149. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +37 -0
  150. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -0
  151. package/lib/annotations/annotations.module.d.ts +36 -0
  152. package/lib/annotations/annotations.module.d.ts.map +1 -0
  153. package/lib/annotations/comment-set/comment/comment.component.d.ts +69 -0
  154. package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -0
  155. package/lib/annotations/comment-set/comment/comment.model.d.ts +13 -0
  156. package/lib/annotations/comment-set/comment/comment.model.d.ts.map +1 -0
  157. package/lib/annotations/comment-set/comment/comment.service.d.ts +22 -0
  158. package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -0
  159. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +14 -0
  160. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -0
  161. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +12 -0
  162. package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +1 -0
  163. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +28 -0
  164. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -0
  165. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +26 -0
  166. package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +1 -0
  167. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +21 -0
  168. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +1 -0
  169. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +36 -0
  170. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +1 -0
  171. package/lib/annotations/comment-set/comment-set-render.service.d.ts +15 -0
  172. package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -0
  173. package/lib/annotations/comment-set/comment-set.component.d.ts +56 -0
  174. package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -0
  175. package/lib/annotations/comments-summary/comments-summary.component.d.ts +42 -0
  176. package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -0
  177. package/lib/annotations/models/api-persisted.model.d.ts +11 -0
  178. package/lib/annotations/models/api-persisted.model.d.ts.map +1 -0
  179. package/lib/annotations/models/event-select.model.d.ts +6 -0
  180. package/lib/annotations/models/event-select.model.d.ts.map +1 -0
  181. package/lib/annotations/models/tags.model.d.ts +7 -0
  182. package/lib/annotations/models/tags.model.d.ts.map +1 -0
  183. package/lib/annotations/models/user.model.d.ts +6 -0
  184. package/lib/annotations/models/user.model.d.ts.map +1 -0
  185. package/lib/annotations/pipes/date/date.pipe.d.ts +16 -0
  186. package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -0
  187. package/lib/annotations/pipes/filter/filter.pipe.d.ts +8 -0
  188. package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -0
  189. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +8 -0
  190. package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -0
  191. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +28 -0
  192. package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -0
  193. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +21 -0
  194. package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -0
  195. package/lib/annotations/services/tags/tags.services.d.ts +18 -0
  196. package/lib/annotations/services/tags/tags.services.d.ts.map +1 -0
  197. package/lib/annotations/tags/tags.component.d.ts +28 -0
  198. package/lib/annotations/tags/tags.component.d.ts.map +1 -0
  199. package/lib/bookmark/components/bookmark-icons.component.d.ts +19 -0
  200. package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -0
  201. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +11 -0
  202. package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -0
  203. package/lib/icp/icp-follower.service.d.ts +26 -0
  204. package/lib/icp/icp-follower.service.d.ts.map +1 -0
  205. package/lib/icp/icp-presenter.service.d.ts +25 -0
  206. package/lib/icp/icp-presenter.service.d.ts.map +1 -0
  207. package/lib/icp/icp-session-api.service.d.ts +15 -0
  208. package/lib/icp/icp-session-api.service.d.ts.map +1 -0
  209. package/lib/icp/icp-update.service.d.ts +22 -0
  210. package/lib/icp/icp-update.service.d.ts.map +1 -0
  211. package/lib/icp/icp.events.d.ts +14 -0
  212. package/lib/icp/icp.events.d.ts.map +1 -0
  213. package/lib/icp/icp.interfaces.d.ts +23 -0
  214. package/lib/icp/icp.interfaces.d.ts.map +1 -0
  215. package/lib/icp/icp.service.d.ts +40 -0
  216. package/lib/icp/icp.service.d.ts.map +1 -0
  217. package/lib/icp/participants-list/participants-list.component.d.ts +23 -0
  218. package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -0
  219. package/lib/icp/socket.service.d.ts +29 -0
  220. package/lib/icp/socket.service.d.ts.map +1 -0
  221. package/lib/media-viewer.component.d.ts +72 -0
  222. package/lib/media-viewer.component.d.ts.map +1 -0
  223. package/lib/media-viewer.module.d.ts +36 -0
  224. package/lib/media-viewer.module.d.ts.map +1 -0
  225. package/lib/print.service.d.ts +8 -0
  226. package/lib/print.service.d.ts.map +1 -0
  227. package/lib/redaction/components/redaction.component.d.ts +42 -0
  228. package/lib/redaction/components/redaction.component.d.ts.map +1 -0
  229. package/lib/redaction/services/redaction-api.service.d.ts +20 -0
  230. package/lib/redaction/services/redaction-api.service.d.ts.map +1 -0
  231. package/lib/redaction/services/redaction.model.d.ts +11 -0
  232. package/lib/redaction/services/redaction.model.d.ts.map +1 -0
  233. package/lib/shared/directives/tooltip-dismiss.directive.d.ts +11 -0
  234. package/lib/shared/directives/tooltip-dismiss.directive.d.ts.map +1 -0
  235. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +15 -0
  236. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -0
  237. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +11 -0
  238. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -0
  239. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +16 -0
  240. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -0
  241. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +14 -0
  242. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -0
  243. package/lib/shared/shared.module.d.ts +14 -0
  244. package/lib/shared/shared.module.d.ts.map +1 -0
  245. package/lib/shared/util/helpers/html-templates.helper.d.ts +9 -0
  246. package/lib/shared/util/helpers/html-templates.helper.d.ts.map +1 -0
  247. package/lib/shared/util/services/number.helper.service.d.ts +11 -0
  248. package/lib/shared/util/services/number.helper.service.d.ts.map +1 -0
  249. package/lib/store/actions/annotation.actions.d.ts +126 -0
  250. package/lib/store/actions/annotation.actions.d.ts.map +1 -0
  251. package/lib/store/actions/bookmark.actions.d.ts +117 -0
  252. package/lib/store/actions/bookmark.actions.d.ts.map +1 -0
  253. package/lib/store/actions/document.actions.d.ts +90 -0
  254. package/lib/store/actions/document.actions.d.ts.map +1 -0
  255. package/lib/store/actions/icp.actions.d.ts +75 -0
  256. package/lib/store/actions/icp.actions.d.ts.map +1 -0
  257. package/lib/store/actions/redaction.actions.d.ts +127 -0
  258. package/lib/store/actions/redaction.actions.d.ts.map +1 -0
  259. package/lib/store/actions/tag.actions.d.ts +30 -0
  260. package/lib/store/actions/tag.actions.d.ts.map +1 -0
  261. package/lib/store/bookmarks-store-utils.d.ts +9 -0
  262. package/lib/store/bookmarks-store-utils.d.ts.map +1 -0
  263. package/lib/store/effects/annotation.effects.d.ts +16 -0
  264. package/lib/store/effects/annotation.effects.d.ts.map +1 -0
  265. package/lib/store/effects/bookmarks.effects.d.ts +21 -0
  266. package/lib/store/effects/bookmarks.effects.d.ts.map +1 -0
  267. package/lib/store/effects/document.effects.d.ts +17 -0
  268. package/lib/store/effects/document.effects.d.ts.map +1 -0
  269. package/lib/store/effects/icp.effects.d.ts +16 -0
  270. package/lib/store/effects/icp.effects.d.ts.map +1 -0
  271. package/lib/store/effects/index.d.ts +2 -0
  272. package/lib/store/effects/index.d.ts.map +1 -0
  273. package/lib/store/effects/redaction.effects.d.ts +20 -0
  274. package/lib/store/effects/redaction.effects.d.ts.map +1 -0
  275. package/lib/store/models/bookmarks.interface.d.ts +31 -0
  276. package/lib/store/models/bookmarks.interface.d.ts.map +1 -0
  277. package/lib/store/models/filters.interface.d.ts +8 -0
  278. package/lib/store/models/filters.interface.d.ts.map +1 -0
  279. package/lib/store/reducers/annotations.reducer.d.ts +48 -0
  280. package/lib/store/reducers/annotations.reducer.d.ts.map +1 -0
  281. package/lib/store/reducers/bookmarks.reducer.d.ts +27 -0
  282. package/lib/store/reducers/bookmarks.reducer.d.ts.map +1 -0
  283. package/lib/store/reducers/document.reducer.d.ts +52 -0
  284. package/lib/store/reducers/document.reducer.d.ts.map +1 -0
  285. package/lib/store/reducers/icp.reducer.d.ts +9 -0
  286. package/lib/store/reducers/icp.reducer.d.ts.map +1 -0
  287. package/lib/store/reducers/redaction.reducer.d.ts +32 -0
  288. package/lib/store/reducers/redaction.reducer.d.ts.map +1 -0
  289. package/lib/store/reducers/reducers.d.ts +24 -0
  290. package/lib/store/reducers/reducers.d.ts.map +1 -0
  291. package/lib/store/reducers/tags.reducer.d.ts +32 -0
  292. package/lib/store/reducers/tags.reducer.d.ts.map +1 -0
  293. package/lib/store/selectors/annotation.selectors.d.ts +136 -0
  294. package/lib/store/selectors/annotation.selectors.d.ts.map +1 -0
  295. package/lib/store/selectors/bookmark.selectors.d.ts +38 -0
  296. package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -0
  297. package/lib/store/selectors/document.selectors.d.ts +23 -0
  298. package/lib/store/selectors/document.selectors.d.ts.map +1 -0
  299. package/lib/store/selectors/icp.selectors.d.ts +10 -0
  300. package/lib/store/selectors/icp.selectors.d.ts.map +1 -0
  301. package/lib/store/selectors/redaction.selectors.d.ts +35 -0
  302. package/lib/store/selectors/redaction.selectors.d.ts.map +1 -0
  303. package/lib/store/selectors/tag.selectors.d.ts +28 -0
  304. package/lib/store/selectors/tag.selectors.d.ts.map +1 -0
  305. package/lib/store/store-utils.d.ts +25 -0
  306. package/lib/store/store-utils.d.ts.map +1 -0
  307. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts +20 -0
  308. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts.map +1 -0
  309. package/lib/toolbar/icp-event.service.d.ts +21 -0
  310. package/lib/toolbar/icp-event.service.d.ts.map +1 -0
  311. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +24 -0
  312. package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -0
  313. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +69 -0
  314. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -0
  315. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +60 -0
  316. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -0
  317. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts +12 -0
  318. package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts.map +1 -0
  319. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +30 -0
  320. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -0
  321. package/lib/toolbar/search-bar/search-bar.component.d.ts +34 -0
  322. package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -0
  323. package/lib/toolbar/toolbar-button-visibility.service.d.ts +67 -0
  324. package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -0
  325. package/lib/toolbar/toolbar-event.service.d.ts +96 -0
  326. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -0
  327. package/lib/toolbar/toolbar.module.d.ts +20 -0
  328. package/lib/toolbar/toolbar.module.d.ts.map +1 -0
  329. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +31 -0
  330. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -0
  331. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +12 -0
  332. package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -0
  333. package/lib/viewers/grab-n-drag.directive.d.ts +19 -0
  334. package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -0
  335. package/lib/viewers/image-viewer/image-viewer.component.d.ts +57 -0
  336. package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -0
  337. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +25 -0
  338. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -0
  339. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +69 -0
  340. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -0
  341. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +17 -0
  342. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -0
  343. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +82 -0
  344. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -0
  345. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +82 -0
  346. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -0
  347. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +22 -0
  348. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts.map +1 -0
  349. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +20 -0
  350. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +1 -0
  351. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +14 -0
  352. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +1 -0
  353. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +42 -0
  354. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -0
  355. package/lib/viewers/rotation-persist/rotation-api.service.d.ts +14 -0
  356. package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -0
  357. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +27 -0
  358. package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -0
  359. package/lib/viewers/rotation-persist/rotation.model.d.ts +5 -0
  360. package/lib/viewers/rotation-persist/rotation.model.d.ts.map +1 -0
  361. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +23 -0
  362. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -0
  363. package/lib/viewers/viewer-event.service.d.ts +23 -0
  364. package/lib/viewers/viewer-event.service.d.ts.map +1 -0
  365. package/lib/viewers/viewer-exception.model.d.ts +15 -0
  366. package/lib/viewers/viewer-exception.model.d.ts.map +1 -0
  367. package/lib/viewers/viewer-util.service.d.ts +10 -0
  368. package/lib/viewers/viewer-util.service.d.ts.map +1 -0
  369. package/package.json +12 -10
  370. package/public_api.d.ts +30 -0
  371. package/public_api.d.ts.map +1 -0
  372. package/index.d.ts.map +0 -1
package/assets/all.scss CHANGED
@@ -26,6 +26,7 @@
26
26
  @import "sass/tags";
27
27
  @import "sass/toolbar/main";
28
28
  @import 'sass/tabs';
29
+ @import 'sass/tooltip';
29
30
  @import 'sass/comment-filter';
30
31
  @import 'sass/angular-tree-component';
31
32
  @import 'sass/redaction';
@@ -0,0 +1,50 @@
1
+ .mv-tooltip {
2
+ /* default: place below */
3
+ --tooltip-offset-y: 100%;
4
+ }
5
+
6
+ .mv-tooltip::before {
7
+ content: attr(data-tooltip); /* Tooltip text comes from attribute */
8
+ position: absolute;
9
+ top: var(--tooltip-offset-y);
10
+ left: 50%;
11
+ transform: translateX(-50%);
12
+ background: #e3e2e1;
13
+ color: #444444;
14
+ border: 1px solid #d1d1d1;
15
+ font-size: 11px;
16
+ font-family: system-ui, sans-serif;
17
+ padding: 3px 6px;
18
+ border-radius: 2px;
19
+ /* Dynamic sizing */
20
+ white-space: nowrap;
21
+ width: max-content;
22
+ max-width: 300px;
23
+ z-index: 999;
24
+ opacity: 0;
25
+ visibility: hidden;
26
+ transition: opacity 0.2s ease-in-out;
27
+ box-shadow: 0px 2px 4px rgba(0,0,0,0.3);
28
+ }
29
+
30
+ /* Show tooltip on hover and focus */
31
+ .mv-tooltip:hover::after,
32
+ .mv-tooltip:focus::after,
33
+ .mv-tooltip:hover::before,
34
+ /* Show tooltip on hover or keyboard focus */
35
+ .mv-tooltip:focus::before,
36
+ .mv-tooltip:focus-within::before {
37
+ opacity: 1;
38
+ visibility: visible;
39
+ }
40
+
41
+ /* Hide tooltip when dismissed, even if focussed */
42
+ .mv-tooltip[data-tooltip-dismissed]::before {
43
+ opacity: 0;
44
+ visibility: hidden;
45
+ }
46
+
47
+ /* place above */
48
+ .mv-tooltip[data-placement="above"] {
49
+ --tooltip-offset-y: -50%;
50
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1jdHMtbWVkaWEtdmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9obWN0cy1tZWRpYS12aWV3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,122 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { v4 as uuid } from 'uuid';
3
+ import { HtmlTemplatesHelper } from '../../../../shared/util/helpers/html-templates.helper';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../../toolbar/toolbar-event.service";
6
+ import * as i2 from "../highlight-create/highlight-create.service";
7
+ export class BoxHighlightCreateComponent {
8
+ constructor(toolbarEvents, highlightService) {
9
+ this.toolbarEvents = toolbarEvents;
10
+ this.highlightService = highlightService;
11
+ this.saveSelection = new EventEmitter();
12
+ this.drawStartX = -1;
13
+ this.drawStartY = -1;
14
+ this.backgroundColor = 'none';
15
+ this.subscriptions = [];
16
+ }
17
+ ngOnInit() {
18
+ this.subscriptions = [
19
+ this.toolbarEvents.drawModeSubject.subscribe(drawMode => {
20
+ this.defaultHeight = drawMode ? '100%' : '0px';
21
+ this.defaultWidth = drawMode ? '100%' : '0px';
22
+ }),
23
+ this.toolbarEvents.redactWholePage.subscribe(() => {
24
+ this.wholePage = true;
25
+ })
26
+ ];
27
+ }
28
+ ngOnDestroy() {
29
+ this.subscriptions.forEach(subscription => {
30
+ subscription.unsubscribe();
31
+ });
32
+ }
33
+ initHighlight(event) {
34
+ if (this.wholePage) {
35
+ this.highlightPage();
36
+ return;
37
+ }
38
+ const rect = HtmlTemplatesHelper.getAdjustedBoundingRect(event.target), offsetX = event.clientX - rect.left, offsetY = event.clientY - rect.top;
39
+ console.log(`initHighlight: rect=${JSON.stringify(rect)}, clientX=${event.clientX}, clientY=${event.clientY}, offsetX=${offsetX}, offsetY=${offsetY}`);
40
+ this.position = 'absolute';
41
+ this.backgroundColor = 'yellow';
42
+ this.drawStartX = offsetX;
43
+ this.drawStartY = offsetY;
44
+ this.display = 'block';
45
+ this.height = 50;
46
+ this.width = 50;
47
+ this.top = this.drawStartY;
48
+ this.left = this.drawStartX;
49
+ switch (this.rotate) {
50
+ case 90:
51
+ this.top = this.drawStartY - this.height;
52
+ break;
53
+ case 180:
54
+ this.top = this.drawStartY - this.height;
55
+ this.left = this.drawStartX - this.width;
56
+ break;
57
+ case 270:
58
+ this.left = this.drawStartX - this.width;
59
+ break;
60
+ }
61
+ }
62
+ updateHighlight(event) {
63
+ const rect = HtmlTemplatesHelper.getAdjustedBoundingRect(event.target, false), offsetX = event.clientX - rect.left, offsetY = event.clientY - rect.top;
64
+ if (this.drawStartX > 0 && this.drawStartY > 0) {
65
+ this.height = Math.abs(offsetY - this.drawStartY);
66
+ this.width = Math.abs(offsetX - this.drawStartX);
67
+ this.top = Math.min(offsetY, this.drawStartY);
68
+ this.left = Math.min(offsetX, this.drawStartX);
69
+ }
70
+ }
71
+ createHighlight() {
72
+ if (this.height / this.zoom > 5 || this.width / this.zoom > 5) {
73
+ let rectangle = this.highlightService
74
+ .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);
75
+ rectangle = { id: uuid(), ...rectangle };
76
+ console.log(`createHighlight: rectangle=${JSON.stringify(rectangle)}`);
77
+ this.saveSelection.emit({ rectangles: [rectangle], page: this.page });
78
+ this.resetHighlight();
79
+ }
80
+ }
81
+ resetHighlight() {
82
+ this.drawStartX = -1;
83
+ this.drawStartY = -1;
84
+ this.display = 'none';
85
+ this.width = 0;
86
+ this.height = 0;
87
+ this.backgroundColor = 'none';
88
+ this.position = 'initial';
89
+ this.wholePage = false;
90
+ }
91
+ highlightPage() {
92
+ this.height = this.pageHeight;
93
+ this.width = this.pageWidth;
94
+ this.top = 0;
95
+ this.left = 0;
96
+ this.createHighlight();
97
+ }
98
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BoxHighlightCreateComponent, deps: [{ token: i1.ToolbarEventService }, { token: i2.HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component }); }
99
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: { page: "page", pageHeight: "pageHeight", pageWidth: "pageWidth", rotate: "rotate", zoom: "zoom", container: "container" }, outputs: { saveSelection: "saveSelection" }, viewQueries: [{ propertyName: "highlight", first: true, predicate: ["boxHighlight"], descendants: true }], ngImport: i0, template: "<div [style.height]=\"defaultHeight\"\n [style.width]=\"defaultWidth\"\n (mousedown)=\"initHighlight($event)\"\n (mousemove)=\"updateHighlight($event)\"\n (mouseup)=\"createHighlight()\">\n <div #boxHighlight\n class=\"box-highlight\"\n [style.display]=\"display\"\n [style.position]=\"position\"\n [style.background-color]=\"backgroundColor\"\n [style.height]=\"height ? height + 'px' : '100%'\"\n [style.width]=\"width ? width + 'px' : '100%'\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\">\n </div>\n</div>\n" }); }
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BoxHighlightCreateComponent, decorators: [{
102
+ type: Component,
103
+ args: [{ selector: 'mv-box-highlight-create', template: "<div [style.height]=\"defaultHeight\"\n [style.width]=\"defaultWidth\"\n (mousedown)=\"initHighlight($event)\"\n (mousemove)=\"updateHighlight($event)\"\n (mouseup)=\"createHighlight()\">\n <div #boxHighlight\n class=\"box-highlight\"\n [style.display]=\"display\"\n [style.position]=\"position\"\n [style.background-color]=\"backgroundColor\"\n [style.height]=\"height ? height + 'px' : '100%'\"\n [style.width]=\"width ? width + 'px' : '100%'\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\">\n </div>\n</div>\n" }]
104
+ }], ctorParameters: () => [{ type: i1.ToolbarEventService }, { type: i2.HighlightCreateService }], propDecorators: { page: [{
105
+ type: Input
106
+ }], pageHeight: [{
107
+ type: Input
108
+ }], pageWidth: [{
109
+ type: Input
110
+ }], rotate: [{
111
+ type: Input
112
+ }], zoom: [{
113
+ type: Input
114
+ }], container: [{
115
+ type: Input
116
+ }], saveSelection: [{
117
+ type: Output
118
+ }], highlight: [{
119
+ type: ViewChild,
120
+ args: ['boxHighlight', { static: false }]
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWhpZ2hsaWdodC1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS2xDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7O0FBSzVGLE1BQU0sT0FBTywyQkFBMkI7SUE2QnRDLFlBQTZCLGFBQWtDLEVBQzVDLGdCQUF3QztRQUQ5QixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDNUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQXJCakQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNkMsQ0FBQztRQUl4RixlQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEIsZUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBVWhCLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBR2pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUdvQixDQUFDO0lBRWhFLFFBQVE7UUFDTixJ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QUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFdUMsU0FBUztzQkFBdEQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbi12aWV3L3JlY3RhbmdsZS9yZWN0YW5nbGUubW9kZWwnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSB9IGZyb20gJy4uL2hpZ2hsaWdodC1jcmVhdGUvaGlnaGxpZ2h0LWNyZWF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBIdG1sVGVtcGxhdGVzSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3V0aWwvaGVscGVycy9odG1sLXRlbXBsYXRlcy5oZWxwZXInO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtYm94LWhpZ2hsaWdodC1jcmVhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYm94LWhpZ2hsaWdodC1jcmVhdGUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBCb3hIaWdobGlnaHRDcmVhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcGFnZTogbnVtYmVyO1xuICBASW5wdXQoKSBwYWdlSGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VXaWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSBjb250YWluZXI6IHsgdG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlciB9O1xuXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdLCBwYWdlOiBudW1iZXIgfT4oKTtcblxuICBAVmlld0NoaWxkKCdib3hIaWdobGlnaHQnLCB7IHN0YXRpYzogZmFsc2UgfSkgaGlnaGxpZ2h0OiBFbGVtZW50UmVmO1xuXG4gIGRyYXdTdGFydFggPSAtMTtcbiAgZHJhd1N0YXJ0WSA9IC0xO1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgZGlzcGxheTogc3RyaW5nO1xuICBkcmF3TW9kZTogYm9vbGVhbjtcbiAgZGVmYXVsdEhlaWdodDogc3RyaW5nO1xuICBkZWZhdWx0V2lkdGg6IHN0cmluZztcbiAgcG9zaXRpb246IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yID0gJ25vbmUnO1xuICB3aG9sZVBhZ2U6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpZ2hsaWdodFNlcnZpY2U6IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5kcmF3TW9kZVN1YmplY3Quc3Vic2NyaWJlKGRyYXdNb2RlID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0SGVpZ2h0ID0gZHJhd01vZGUgPyAnMTAwJScgOiAnMHB4JztcbiAgICAgICAgdGhpcy5kZWZhdWx0V2lkdGggPSBkcmF3TW9kZSA/ICcxMDAlJyA6ICcwcHgnO1xuICAgICAgfSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0V2hvbGVQYWdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMud2hvbGVQYWdlID0gdHJ1ZTtcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRIaWdobGlnaHQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy53aG9sZVBhZ2UpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0UGFnZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSBIdG1sVGVtcGxhdGVzSGVscGVyLmdldEFkanVzdGVkQm91bmRpbmdSZWN0KChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSxcbiAgICBvZmZzZXRYID0gZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCxcbiAgICBvZmZzZXRZID0gZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wO1xuICAgIGNvbnNvbGUubG9nKGBpbml0SGlnaGxpZ2h0OiByZWN0PSR7SlNPTi5zdHJpbmdpZnkocmVjdCl9LCBjbGllbnRYPSR7ZXZlbnQuY2xpZW50WH0sIGNsaWVudFk9JHtldmVudC5jbGllbnRZfSwgb2Zmc2V0WD0ke29mZnNldFh9LCBvZmZzZXRZPSR7b2Zmc2V0WX1gKTtcblxuICAgIHRoaXMucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gJ3llbGxvdyc7XG4gICAgdGhpcy5kcmF3U3RhcnRYID0gb2Zmc2V0WDtcbiAgICB0aGlzLmRyYXdTdGFydFkgPSBvZmZzZXRZO1xuXG4gICAgdGhpcy5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmhlaWdodCA9IDUwO1xuICAgIHRoaXMud2lkdGggPSA1MDtcbiAgICB0aGlzLnRvcCA9IHRoaXMuZHJhd1N0YXJ0WTtcbiAgICB0aGlzLmxlZnQgPSB0aGlzLmRyYXdTdGFydFg7XG5cbiAgICBzd2l0Y2ggKHRoaXMucm90YXRlKSB7XG4gICAgICBjYXNlIDkwOlxuICAgICAgICB0aGlzLnRvcCA9IHRoaXMuZHJhd1N0YXJ0WSAtIHRoaXMuaGVpZ2h0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOlxuICAgICAgICB0aGlzLnRvcCA9IHRoaXMuZHJhd1N0YXJ0WSAtIHRoaXMuaGVpZ2h0O1xuICAgICAgICB0aGlzLmxlZnQgPSB0aGlzLmRyYXdTdGFydFggLSB0aGlzLndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjcwOlxuICAgICAgICB0aGlzLmxlZnQgPSB0aGlzLmRyYXdTdGFydFggLSB0aGlzLndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB1cGRhdGVIaWdobGlnaHQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCByZWN0ID0gSHRtbFRlbXBsYXRlc0hlbHBlci5nZXRBZGp1c3RlZEJvdW5kaW5nUmVjdChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIGZhbHNlKSxcbiAgICAgIG9mZnNldFggPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0LFxuICAgICAgb2Zmc2V0WSA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcbiAgICBpZiAodGhpcy5kcmF3U3RhcnRYID4gMCAmJiB0aGlzLmRyYXdTdGFydFkgPiAwKSB7XG4gICAgICB0aGlzLmhlaWdodCA9IE1hdGguYWJzKG9mZnNldFkgLSB0aGlzLmRyYXdTdGFydFkpO1xuICAgICAgdGhpcy53aWR0aCA9IE1hdGguYWJzKG9mZnNldFggLSB0aGlzLmRyYXdTdGFydFgpO1xuICAgICAgdGhpcy50b3AgPSBNYXRoLm1pbihvZmZzZXRZLCB0aGlzLmRyYXdTdGFydFkpO1xuICAgICAgdGhpcy5sZWZ0ID0gTWF0aC5taW4ob2Zmc2V0WCwgdGhpcy5kcmF3U3RhcnRYKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVIaWdobGlnaHQoKSB7XG4gICAgaWYgKHRoaXMuaGVpZ2h0IC8gdGhpcy56b29tID4gNSB8fCB0aGlzLndpZHRoIC8gdGhpcy56b29tID4gNSkge1xuICAgICAgbGV0IHJlY3RhbmdsZSA9IHRoaXMuaGlnaGxpZ2h0U2VydmljZVxuICAgICAgICAuYXBwbHlSb3RhdGlvbih0aGlzLnBhZ2VIZWlnaHQsIHRoaXMucGFnZVdpZHRoLCB0aGlzLmhlaWdodCwgdGhpcy53aWR0aCwgdGhpcy50b3AsIHRoaXMubGVmdCwgdGhpcy5yb3RhdGUsIHRoaXMuem9vbSk7XG4gICAgICByZWN0YW5nbGUgPSB7IGlkOiB1dWlkKCksIC4uLnJlY3RhbmdsZSB9IGFzIGFueTtcbiAgICAgIGNvbnNvbGUubG9nKGBjcmVhdGVIaWdobGlnaHQ6IHJlY3RhbmdsZT0ke0pTT04uc3RyaW5naWZ5KHJlY3RhbmdsZSl9YCk7XG4gICAgICB0aGlzLnNhdmVTZWxlY3Rpb24uZW1pdCh7IHJlY3RhbmdsZXM6IFtyZWN0YW5nbGVdLCBwYWdlOiB0aGlzLnBhZ2UgfSk7XG4gICAgICB0aGlzLnJlc2V0SGlnaGxpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLmRyYXdTdGFydFggPSAtMTtcbiAgICB0aGlzLmRyYXdTdGFydFkgPSAtMTtcbiAgICB0aGlzLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy53aWR0aCA9IDA7XG4gICAgdGhpcy5oZWlnaHQgPSAwO1xuICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gJ25vbmUnO1xuICAgIHRoaXMucG9zaXRpb24gPSAnaW5pdGlhbCc7XG4gICAgdGhpcy53aG9sZVBhZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0UGFnZSgpIHtcbiAgICB0aGlzLmhlaWdodCA9IHRoaXMucGFnZUhlaWdodDtcbiAgICB0aGlzLndpZHRoID0gdGhpcy5wYWdlV2lkdGg7XG4gICAgdGhpcy50b3AgPSAwO1xuICAgIHRoaXMubGVmdCA9IDA7XG4gICAgdGhpcy5jcmVhdGVIaWdobGlnaHQoKTtcbiAgfVxufVxuIiwiPGRpdiBbc3R5bGUuaGVpZ2h0XT1cImRlZmF1bHRIZWlnaHRcIlxuICAgICBbc3R5bGUud2lkdGhdPVwiZGVmYXVsdFdpZHRoXCJcbiAgICAgKG1vdXNlZG93bik9XCJpbml0SGlnaGxpZ2h0KCRldmVudClcIlxuICAgICAobW91c2Vtb3ZlKT1cInVwZGF0ZUhpZ2hsaWdodCgkZXZlbnQpXCJcbiAgICAgKG1vdXNldXApPVwiY3JlYXRlSGlnaGxpZ2h0KClcIj5cbiAgPGRpdiAjYm94SGlnaGxpZ2h0XG4gICAgIGNsYXNzPVwiYm94LWhpZ2hsaWdodFwiXG4gICAgIFtzdHlsZS5kaXNwbGF5XT1cImRpc3BsYXlcIlxuICAgICBbc3R5bGUucG9zaXRpb25dPVwicG9zaXRpb25cIlxuICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxuICAgICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodCA/IGhlaWdodCArICdweCcgOiAnMTAwJSdcIlxuICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGggPyB3aWR0aCArICdweCcgOiAnMTAwJSdcIlxuICAgICBbc3R5bGUudG9wXT1cInRvcCArICdweCdcIlxuICAgICBbc3R5bGUubGVmdF09XCJsZWZ0ICsgJ3B4J1wiPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,120 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import { v4 as uuid } from 'uuid';
3
+ import * as fromDocument from '../../../../store/selectors/document.selectors';
4
+ import * as fromAnnotationActions from '../../../../store/actions/annotation.actions';
5
+ import { HtmlTemplatesHelper } from '../../../../shared/util/helpers/html-templates.helper';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../../toolbar/toolbar-event.service";
8
+ import * as i2 from "../../../../viewers/viewer-event.service";
9
+ import * as i3 from "./highlight-create.service";
10
+ import * as i4 from "@ngrx/store";
11
+ export class HighlightCreateDirective {
12
+ constructor(element, toolbarEvents, viewerEvents, highlightService, store) {
13
+ this.element = element;
14
+ this.toolbarEvents = toolbarEvents;
15
+ this.viewerEvents = viewerEvents;
16
+ this.highlightService = highlightService;
17
+ this.store = store;
18
+ }
19
+ ngOnInit() {
20
+ this.$subscription = this.store.select(fromDocument.getPages).subscribe((pages) => {
21
+ if (pages[1]) {
22
+ this.allPages = pages;
23
+ }
24
+ });
25
+ }
26
+ ngOnDestroy() {
27
+ if (this.$subscription) {
28
+ this.$subscription.unsubscribe();
29
+ }
30
+ }
31
+ onMouseUp(mouseEvent) {
32
+ let page;
33
+ let currentElement = mouseEvent.target;
34
+ while (currentElement.offsetParent) {
35
+ currentElement = currentElement.offsetParent;
36
+ if (currentElement.getAttribute) {
37
+ page = parseInt(currentElement.getAttribute('data-page-number'), 10);
38
+ if (page) {
39
+ break;
40
+ }
41
+ }
42
+ }
43
+ if (this.toolbarEvents.highlightModeSubject.getValue()) {
44
+ const rectangles = this.getRectangles(mouseEvent, page);
45
+ this.viewerEvents.textSelected({ page, rectangles });
46
+ }
47
+ }
48
+ onPdfViewerClick(event) {
49
+ this.store.dispatch(new fromAnnotationActions.SelectedAnnotation({
50
+ annotationId: '',
51
+ selected: false,
52
+ editable: false,
53
+ }));
54
+ this.viewerEvents.clearCtxToolbar();
55
+ }
56
+ getRectangles(event, page) {
57
+ this.pageHeight = this.allPages[page].styles.height;
58
+ this.pageWidth = this.allPages[page].styles.width;
59
+ this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);
60
+ this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);
61
+ const selection = window.getSelection();
62
+ if (selection) {
63
+ const localElement = event.target;
64
+ this.removeEnhancedTextModeStyling(localElement);
65
+ if (selection.rangeCount && !selection.isCollapsed) {
66
+ const range = selection.getRangeAt(0).cloneRange();
67
+ const clientRects = range.getClientRects();
68
+ if (clientRects) {
69
+ const parentRect = HtmlTemplatesHelper
70
+ .getAdjustedBoundingRect(localElement.closest(".textLayer"));
71
+ const selectionRectangles = [];
72
+ for (let i = 0; i < clientRects.length; i++) {
73
+ const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
74
+ const findSelecttionRectangle = selectionRectangles.find((rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x);
75
+ if (!findSelecttionRectangle) {
76
+ selectionRectangles.push(selectionRectangle);
77
+ }
78
+ }
79
+ return selectionRectangles;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ createTextRectangle(rect, parentRect) {
85
+ const height = rect.bottom - rect.top;
86
+ const width = rect.right - rect.left;
87
+ const top = rect.top - parentRect.top;
88
+ const left = rect.left - parentRect.left;
89
+ let rectangle = this.highlightService.applyRotation(this.pageHeight, this.pageWidth, height, width, top, left, this.rotate, this.zoom);
90
+ rectangle = { id: uuid(), ...rectangle };
91
+ return rectangle;
92
+ }
93
+ removeEnhancedTextModeStyling(element) {
94
+ if (element.parentElement.children) {
95
+ for (let i = 0; i < element.parentElement.children.length; i++) {
96
+ const child = element.parentElement.children[i];
97
+ child.style.padding = '0';
98
+ // regex will be targeting the translate style in string
99
+ // e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)
100
+ const translateCSSRegex = /translate[XYZ]\(-?\d*(\.\d+)?(px)?\)/g;
101
+ child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();
102
+ }
103
+ }
104
+ }
105
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateDirective, deps: [{ token: i0.ElementRef }, { token: i1.ToolbarEventService }, { token: i2.ViewerEventService }, { token: i3.HighlightCreateService }, { token: i4.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
106
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: HighlightCreateDirective, selector: "[mvCreateTextHighlight]", host: { listeners: { "mouseup": "onMouseUp($event)", "mousedown": "onPdfViewerClick($event)" } }, ngImport: i0 }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateDirective, decorators: [{
109
+ type: Directive,
110
+ args: [{
111
+ selector: '[mvCreateTextHighlight]'
112
+ }]
113
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ToolbarEventService }, { type: i2.ViewerEventService }, { type: i3.HighlightCreateService }, { type: i4.Store }], propDecorators: { onMouseUp: [{
114
+ type: HostListener,
115
+ args: ['mouseup', ['$event']]
116
+ }], onPdfViewerClick: [{
117
+ type: HostListener,
118
+ args: ['mousedown', ['$event']]
119
+ }] } });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LWNyZWF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU1sQyxPQUFPLEtBQUssWUFBWSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sS0FBSyxxQkFBcUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUd0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7O0FBSzVGLE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsWUFDVSxPQUFnQyxFQUNoQyxhQUFrQyxFQUNsQyxZQUFnQyxFQUNoQyxnQkFBd0MsRUFDeEMsS0FBMEM7UUFKMUMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBQ3hDLFVBQUssR0FBTCxLQUFLLENBQXFDO0lBQ2hELENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEYsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMs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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi92aWV3ZXJzL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGZyb21Bbm5vdGF0aW9uQWN0aW9ucyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hY3Rpb25zL2Fubm90YXRpb24uYWN0aW9ucyc7XG5pbXBvcnQgeyBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlIH0gZnJvbSAnLi9oaWdobGlnaHQtY3JlYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEh0bWxUZW1wbGF0ZXNIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvdXRpbC9oZWxwZXJzL2h0bWwtdGVtcGxhdGVzLmhlbHBlcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttdkNyZWF0ZVRleHRIaWdobGlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRDcmVhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgcGFnZVdpZHRoOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgcm90YXRlOiBudW1iZXI7XG4gIGFsbFBhZ2VzOiBvYmplY3Q7XG5cbiAgJHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlld2VyRXZlbnRzOiBWaWV3ZXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBoaWdobGlnaHRTZXJ2aWNlOiBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+XG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5zZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKS5zdWJzY3JpYmUoKHBhZ2VzKSA9PiB7XG4gICAgICBpZiAocGFnZXNbMV0pIHtcbiAgICAgICAgdGhpcy5hbGxQYWdlcyA9IHBhZ2VzO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuJHN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy4kc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2V1cCcsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VVcChtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgbGV0IHBhZ2U6IG51bWJlcjtcbiAgICBsZXQgY3VycmVudEVsZW1lbnQgPSBtb3VzZUV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICB3aGlsZSAoY3VycmVudEVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XG4gICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50Lm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChjdXJyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUpIHtcbiAgICAgICAgcGFnZSA9IHBhcnNlSW50KGN1cnJlbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1wYWdlLW51bWJlcicpLCAxMCk7XG4gICAgICAgIGlmIChwYWdlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMudG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICBjb25zdCByZWN0YW5nbGVzID0gdGhpcy5nZXRSZWN0YW5nbGVzKG1vdXNlRXZlbnQsIHBhZ2UpO1xuICAgICAgdGhpcy52aWV3ZXJFdmVudHMudGV4dFNlbGVjdGVkKHsgcGFnZSwgcmVjdGFuZ2xlcyB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBvblBkZlZpZXdlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIG5ldyBmcm9tQW5ub3RhdGlvbkFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHtcbiAgICAgICAgYW5ub3RhdGlvbklkOiAnJyxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy52aWV3ZXJFdmVudHMuY2xlYXJDdHhUb29sYmFyKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlY3RhbmdsZXMoZXZlbnQ6IE1vdXNlRXZlbnQsIHBhZ2UpIHtcbiAgICB0aGlzLnBhZ2VIZWlnaHQgPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy5oZWlnaHQ7XG4gICAgdGhpcy5wYWdlV2lkdGggPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy53aWR0aDtcbiAgICB0aGlzLnpvb20gPSBwYXJzZUZsb2F0KHRoaXMuYWxsUGFnZXNbcGFnZV0uc2NhbGVSb3RhdGlvbi5zY2FsZSk7XG4gICAgdGhpcy5yb3RhdGUgPSBwYXJzZUludCh0aGlzLmFsbFBhZ2VzW3BhZ2VdLnNjYWxlUm90YXRpb24ucm90YXRpb24sIDEwKTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgY29uc3QgbG9jYWxFbGVtZW50ID0gPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldDtcblxuICAgICAgdGhpcy5yZW1vdmVFbmhhbmNlZFRleHRNb2RlU3R5bGluZyhsb2NhbEVsZW1lbnQpO1xuXG4gICAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgJiYgIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCkge1xuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmNsb25lUmFuZ2UoKTtcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdHMgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpO1xuXG4gICAgICAgIGlmIChjbGllbnRSZWN0cykge1xuXG4gICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IEh0bWxUZW1wbGF0ZXNIZWxwZXJcbiAgICAgICAgICAgIC5nZXRBZGp1c3RlZEJvdW5kaW5nUmVjdChsb2NhbEVsZW1lbnQuY2xvc2VzdChcIi50ZXh0TGF5ZXJcIikpO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdID0gW107XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGllbnRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlID0gdGhpcy5jcmVhdGVUZXh0UmVjdGFuZ2xlKGNsaWVudFJlY3RzW2ldLCBwYXJlbnRSZWN0KTtcbiAgICAgICAgICAgIGNvbnN0IGZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlID0gc2VsZWN0aW9uUmVjdGFuZ2xlcy5maW5kKFxuICAgICAgICAgICAgICAocmVjdCkgPT4gcmVjdC53aWR0aCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLndpZHRoICYmIHJlY3QueCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLnhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIWZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGlvblJlY3RhbmdsZXMucHVzaChzZWxlY3Rpb25SZWN0YW5nbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uUmVjdGFuZ2xlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGV4dFJlY3RhbmdsZShyZWN0OiBhbnksIHBhcmVudFJlY3Q6IGFueSk6IFJlY3RhbmdsZSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gcmVjdC5ib3R0b20gLSByZWN0LnRvcDtcbiAgICBjb25zdCB3aWR0aCA9IHJlY3QucmlnaHQgLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgdG9wID0gcmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcDtcbiAgICBjb25zdCBsZWZ0ID0gcmVjdC5sZWZ0IC0gcGFyZW50UmVjdC5sZWZ0O1xuICAgIGxldCByZWN0YW5nbGUgPSB0aGlzLmhpZ2hsaWdodFNlcnZpY2UuYXBwbHlSb3RhdGlvbihcbiAgICAgIHRoaXMucGFnZUhlaWdodCxcbiAgICAgIHRoaXMucGFnZVdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgd2lkdGgsXG4gICAgICB0b3AsXG4gICAgICBsZWZ0LFxuICAgICAgdGhpcy5yb3RhdGUsXG4gICAgICB0aGlzLnpvb21cbiAgICApO1xuICAgIHJlY3RhbmdsZSA9IHsgaWQ6IHV1aWQoKSwgLi4ucmVjdGFuZ2xlIH07XG5cbiAgICByZXR1cm4gcmVjdGFuZ2xlIGFzIFJlY3RhbmdsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRW5oYW5jZWRUZXh0TW9kZVN0eWxpbmcoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoZWxlbWVudC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnQucGFyZW50RWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjaGlsZCA9IDxIVE1MRWxlbWVudD5lbGVtZW50LnBhcmVudEVsZW1lbnQuY2hpbGRyZW5baV07XG5cbiAgICAgICAgY2hpbGQuc3R5bGUucGFkZGluZyA9ICcwJztcbiAgICAgICAgLy8gcmVnZXggd2lsbCBiZSB0YXJnZXRpbmcgdGhlIHRyYW5zbGF0ZSBzdHlsZSBpbiBzdHJpbmdcbiAgICAgICAgLy8gZS5nLiBzY2FsZVgoMC45Njk5MTgpIHRyYW5zbGF0ZVgoLTExMC42ODRweCkgdHJhbnNsYXRlWSgtMTA1LjI3NHB4KSB3aWxsIGJlY29tZSBzY2FsZVgoMC45Njk5MTgpXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZUNTU1JlZ2V4ID0gL3RyYW5zbGF0ZVtYWVpdXFwoLT9cXGQqKFxcLlxcZCspPyhweCk/XFwpL2c7XG4gICAgICAgIGNoaWxkLnN0eWxlLnRyYW5zZm9ybSA9IGNoaWxkLnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKHRyYW5zbGF0ZUNTU1JlZ2V4LCAnJykudHJpbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,101 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { take } from 'rxjs/operators';
3
+ import { select } from '@ngrx/store';
4
+ import { v4 as uuid } from 'uuid';
5
+ import moment from 'moment-timezone';
6
+ import * as fromSelectors from '../../../../store/selectors/annotation.selectors';
7
+ import * as fromActions from '../../../../store/actions/annotation.actions';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./../../../../toolbar/toolbar-event.service";
10
+ import * as i2 from "@ngrx/store";
11
+ export class HighlightCreateService {
12
+ constructor(toolBarEvents, store) {
13
+ this.toolBarEvents = toolBarEvents;
14
+ this.store = store;
15
+ }
16
+ saveAnnotation(rectangles, page) {
17
+ this.store.pipe(select(fromSelectors.getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {
18
+ const anno = {
19
+ id: uuid(),
20
+ color: 'FFFF00',
21
+ comments: [],
22
+ page: page,
23
+ rectangles: rectangles,
24
+ type: 'highlight',
25
+ ...anoSetDocId,
26
+ createdBy: '',
27
+ createdByDetails: undefined,
28
+ createdDate: moment.utc().tz('Europe/London').toISOString(),
29
+ lastModifiedBy: '',
30
+ lastModifiedByDetails: undefined,
31
+ lastModifiedDate: '',
32
+ tags: [],
33
+ };
34
+ this.store.dispatch(new fromActions.SaveAnnotation(anno));
35
+ });
36
+ }
37
+ saveAnnotationSet(searchRectangles) {
38
+ this.store.pipe(select(fromSelectors.getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {
39
+ const annoSet = searchRectangles.map(x => {
40
+ return {
41
+ id: uuid(),
42
+ color: 'FFFF00',
43
+ comments: [],
44
+ page: x.page,
45
+ rectangles: x.rectangles,
46
+ type: 'highlight',
47
+ ...anoSetDocId,
48
+ createdBy: '',
49
+ createdByDetails: undefined,
50
+ createdDate: moment.utc().tz('Europe/London').toISOString(),
51
+ lastModifiedBy: '',
52
+ lastModifiedByDetails: undefined,
53
+ lastModifiedDate: '',
54
+ tags: [],
55
+ };
56
+ });
57
+ this.store.dispatch(new fromActions.SaveAnnotationSet({
58
+ id: anoSetDocId.annotationSetId, annotations: annoSet, documentId: anoSetDocId.documentId
59
+ }));
60
+ });
61
+ }
62
+ applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom) {
63
+ const { x, y, width, height } = {
64
+ x: +(offsetLeft / zoom).toFixed(2),
65
+ y: +(offsetTop / zoom).toFixed(2),
66
+ width: +(offsetWidth / zoom).toFixed(2),
67
+ height: +(offsetHeight / zoom).toFixed(2)
68
+ };
69
+ const rectangle = { x, y, width, height };
70
+ switch (rotate) {
71
+ case 90:
72
+ rectangle.width = height;
73
+ rectangle.height = width;
74
+ rectangle.x = y;
75
+ rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);
76
+ break;
77
+ case 180:
78
+ rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);
79
+ rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);
80
+ break;
81
+ case 270:
82
+ rectangle.width = height;
83
+ rectangle.height = width;
84
+ rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);
85
+ rectangle.y = x;
86
+ break;
87
+ }
88
+ return rectangle;
89
+ }
90
+ resetHighlight() {
91
+ window.getSelection().removeAllRanges();
92
+ this.toolBarEvents.highlightModeSubject.next(false);
93
+ }
94
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateService, deps: [{ token: i1.ToolbarEventService }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
95
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateService, providedIn: 'root' }); }
96
+ }
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateService, decorators: [{
98
+ type: Injectable,
99
+ args: [{ providedIn: 'root' }]
100
+ }], ctorParameters: () => [{ type: i1.ToolbarEventService }, { type: i2.Store }] });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LWNyZWF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvaGlnaGxpZ2h0LWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUtyQyxPQUFPLEtBQUssYUFBYSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2xGLE9BQU8sS0FBSyxXQUFXLE1BQU0sOENBQThDLENBQUM7Ozs7QUFNNUUsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUFvQixhQUFrQyxFQUM1QyxLQUEwQztRQURoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDNUMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7SUFBSSxDQUFDO0lBRXpELGNBQWMsQ0FBQyxVQUF1QixFQUFFLElBQVk7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6RixNQUFNLElBQUksR0FBZTtnQkFDdkIsRUFBRSxFQUFFLElBQUksRUFBRTtnQkFDVixLQUFLLEVBQUUsUUFBUTtnQkFDZixRQUFRLEVBQUUsRUFB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QXNCO3NJQUF0QixzQkFBc0IsY0FEVCxNQUFNOzs0RkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5cblxuaW1wb3J0IHsgUmVjdGFuZ2xlIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbi12aWV3L3JlY3RhbmdsZS9yZWN0YW5nbGUubW9kZWwnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21TZWxlY3RvcnMgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Fubm90YXRpb24uc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21BY3Rpb25zIGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZWRhY3RSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi8uLi8uLi90b29sYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyL3JlZGFjdGlvbi1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgQW5ub3RhdGlvblNldCB9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tc2V0Lm1vZGVsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvb2xCYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4pIHsgfVxuXG4gIHNhdmVBbm5vdGF0aW9uKHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdLCBwYWdlOiBudW1iZXIpIHtcbiAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0RG9jdW1lbnRJZFNldElkKSwgdGFrZSgxKSkuc3Vic2NyaWJlKGFub1NldERvY0lkID0+IHtcbiAgICAgIGNvbnN0IGFubm86IEFubm90YXRpb24gPSB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIGNvbG9yOiAnRkZGRjAwJyxcbiAgICAgICAgY29tbWVudHM6IFtdLFxuICAgICAgICBwYWdlOiBwYWdlLFxuICAgICAgICByZWN0YW5nbGVzOiByZWN0YW5nbGVzLFxuICAgICAgICB0eXBlOiAnaGlnaGxpZ2h0JyxcbiAgICAgICAgLi4uYW5vU2V0RG9jSWQsXG4gICAgICAgIGNyZWF0ZWRCeTogJycsXG4gICAgICAgIGNyZWF0ZWRCeURldGFpbHM6IHVuZGVmaW5lZCxcbiAgICAgICAgY3JlYXRlZERhdGU6IG1vbWVudC51dGMoKS50eignRXVyb3BlL0xvbmRvbicpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGxhc3RNb2RpZmllZEJ5OiAnJyxcbiAgICAgICAgbGFzdE1vZGlmaWVkQnlEZXRhaWxzOiB1bmRlZmluZWQsXG4gICAgICAgIGxhc3RNb2RpZmllZERhdGU6ICcnLFxuICAgICAgICB0YWdzOiBbXSxcbiAgICAgIH07XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TYXZlQW5ub3RhdGlvbihhbm5vKSk7XG4gICAgfSk7XG4gIH1cblxuICBzYXZlQW5ub3RhdGlvblNldChzZWFyY2hSZWN0YW5nbGVzOiBSZWRhY3RSZWN0YW5nbGVbXSkge1xuICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbVNlbGVjdG9ycy5nZXREb2N1bWVudElkU2V0SWQpLCB0YWtlKDEpKS5zdWJzY3JpYmUoYW5vU2V0RG9jSWQgPT4ge1xuICAgICAgY29uc3QgYW5ub1NldCA9IHNlYXJjaFJlY3RhbmdsZXMubWFwKHggPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgICAgY29sb3I6ICdGRkZGMDAnLFxuICAgICAgICAgIGNvbW1lbnRzOiBbXSxcbiAgICAgICAgICBwYWdlOiB4LnBhZ2UsXG4gICAgICAgICAgcmVjdGFuZ2xlczogeC5yZWN0YW5nbGVzLFxuICAgICAgICAgIHR5cGU6ICdoaWdobGlnaHQnLFxuICAgICAgICAgIC4uLmFub1NldERvY0lkLFxuICAgICAgICAgIGNyZWF0ZWRCeTogJycsXG4gICAgICAgICAgY3JlYXRlZEJ5RGV0YWlsczogdW5kZWZpbmVkLFxuICAgICAgICAgIGNyZWF0ZWREYXRlOiBtb21lbnQudXRjKCkudHooJ0V1cm9wZS9Mb25kb24nKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgIGxhc3RNb2RpZmllZEJ5OiAnJyxcbiAgICAgICAgICBsYXN0TW9kaWZpZWRCeURldGFpbHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsYXN0TW9kaWZpZWREYXRlOiAnJyxcbiAgICAgICAgICB0YWdzOiBbXSxcbiAgICAgICAgfSBhcyBBbm5vdGF0aW9uO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TYXZlQW5ub3RhdGlvblNldCh7XG4gICAgICAgIGlkOiBhbm9TZXREb2NJZC5hbm5vdGF0aW9uU2V0SWQsIGFubm90YXRpb25zOiBhbm5vU2V0LCBkb2N1bWVudElkOiBhbm9TZXREb2NJZC5kb2N1bWVudElkIH0gYXMgQW5ub3RhdGlvblNldCkpO1xuICAgIH0pO1xuICB9XG5cblxuICBhcHBseVJvdGF0aW9uKHBhZ2VIZWlnaHQsIHBhZ2VXaWR0aCwgb2Zmc2V0SGVpZ2h0LCBvZmZzZXRXaWR0aCwgb2Zmc2V0VG9wLCBvZmZzZXRMZWZ0LCByb3RhdGUsIHpvb20pIHtcbiAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IHtcbiAgICAgIHg6ICsob2Zmc2V0TGVmdCAvIHpvb20pLnRvRml4ZWQoMiksXG4gICAgICB5OiArKG9mZnNldFRvcCAvIHpvb20pLnRvRml4ZWQoMiksXG4gICAgICB3aWR0aDogKyhvZmZzZXRXaWR0aCAvIHpvb20pLnRvRml4ZWQoMiksXG4gICAgICBoZWlnaHQ6ICsob2Zmc2V0SGVpZ2h0IC8gem9vbSkudG9GaXhlZCgyKVxuICAgIH07XG4gICAgY29uc3QgcmVjdGFuZ2xlID0geyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH07XG4gICAgc3dpdGNoIChyb3RhdGUpIHtcbiAgICAgIGNhc2UgOTA6XG4gICAgICAgIHJlY3RhbmdsZS53aWR0aCA9IGhlaWdodDtcbiAgICAgICAgcmVjdGFuZ2xlLmhlaWdodCA9IHdpZHRoO1xuICAgICAgICByZWN0YW5nbGUueCA9IHk7XG4gICAgICAgIHJlY3RhbmdsZS55ID0gKyhwYWdlV2lkdGggLyB6b29tIC0geCAtIHdpZHRoKS50b0ZpeGVkKDIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOlxuICAgICAgICByZWN0YW5nbGUueCA9ICsocGFnZVdpZHRoIC8gem9vbSAtIHggLSB3aWR0aCkudG9GaXhlZCgyKTtcbiAgICAgICAgcmVjdGFuZ2xlLnkgPSArKHBhZ2VIZWlnaHQgLyB6b29tIC0geSAtIGhlaWdodCkudG9GaXhlZCgyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI3MDpcbiAgICAgICAgcmVjdGFuZ2xlLndpZHRoID0gaGVpZ2h0O1xuICAgICAgICByZWN0YW5nbGUuaGVpZ2h0ID0gd2lkdGg7XG4gICAgICAgIHJlY3RhbmdsZS54ID0gKyhwYWdlSGVpZ2h0IC8gem9vbSAtIHkgLSBoZWlnaHQpLnRvRml4ZWQoMik7XG4gICAgICAgIHJlY3RhbmdsZS55ID0geDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZWN0YW5nbGUgYXMgYW55O1xuICB9XG5cbiAgcmVzZXRIaWdobGlnaHQoKSB7XG4gICAgd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHRoaXMudG9vbEJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,50 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { select } from '@ngrx/store';
3
+ import * as fromActions from '../../store/actions/annotation.actions';
4
+ import * as fromSelectors from '../../store/selectors/annotation.selectors';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngrx/store";
7
+ import * as i2 from "../comment-set/comment/comment.service";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "./annotation-view/annotation-view.component";
10
+ export class AnnotationSetComponent {
11
+ constructor(store, commentService) {
12
+ this.store = store;
13
+ this.commentService = commentService;
14
+ this.annotations = [];
15
+ }
16
+ ngOnInit() {
17
+ this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation));
18
+ }
19
+ onAnnotationUpdate(annotation) {
20
+ this.store.dispatch(new fromActions.SaveAnnotation(annotation));
21
+ }
22
+ onAnnotationDelete(annotation) {
23
+ if (annotation.comments.length > 0) {
24
+ this.commentService.updateUnsavedCommentsStatus(annotation, false);
25
+ }
26
+ this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id));
27
+ }
28
+ selectAnnotation(selectedAnnotation) {
29
+ this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation));
30
+ }
31
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationSetComponent, deps: [{ token: i1.Store }, { token: i2.CommentService }], target: i0.ɵɵFactoryTarget.Component }); }
32
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AnnotationSetComponent, selector: "mv-annotation-set", inputs: { page: "page", annotations: "annotations", zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth" }, ngImport: i0, template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.AnnotationViewComponent, selector: "mv-annotation", inputs: ["annotation", "zoom", "rotate", "selectedAnnoId", "pageHeight", "pageWidth"], outputs: ["update", "delete", "annotationClick"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationSetComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'mv-annotation-set', template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n" }]
37
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.CommentService }], propDecorators: { page: [{
38
+ type: Input
39
+ }], annotations: [{
40
+ type: Input
41
+ }], zoom: [{
42
+ type: Input
43
+ }], rotate: [{
44
+ type: Input
45
+ }], pageHeight: [{
46
+ type: Input
47
+ }], pageWidth: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLekQsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxhQUFhLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQU01RSxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBQ1UsS0FBMEMsRUFDakMsY0FBOEI7UUFEdkMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVnhDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztJQVdyQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU0sa0JBQWtCLENBQUMsVUFBc0I7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFVBQXNCO1FBQzlDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxrQkFBdUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7a0lBakNVLHNCQUFzQjtzSEFBdEIsc0JBQXNCLGlNQ2RuQyx5aUJBWUE7OzRGREVhLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxtQkFBbUI7dUdBS3BCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uIH0gZnJvbSAnLi9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Bbm5vdGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2V2ZW50LXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4uL2NvbW1lbnQtc2V0L2NvbW1lbnQvY29tbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFjdGlvbnMgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbVNlbGVjdG9ycyBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvYW5ub3RhdGlvbi5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1hbm5vdGF0aW9uLXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbm5vdGF0aW9uLXNldC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQW5ub3RhdGlvblNldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcGFnZTogbnVtYmVyO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uczogQW5ub3RhdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVdpZHRoOiBudW1iZXI7XG5cbiAgc2VsZWN0ZWRBbm5vdGF0aW9uJDogT2JzZXJ2YWJsZTxTZWxlY3Rpb25Bbm5vdGF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRTZXJ2aWNlOiBDb21tZW50U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEFubm90YXRpb24kID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldFNlbGVjdGVkQW5ub3RhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG9uQW5ub3RhdGlvblVwZGF0ZShhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2F2ZUFubm90YXRpb24oYW5ub3RhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG9uQW5ub3RhdGlvbkRlbGV0ZShhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKSB7XG4gICAgaWYgKGFubm90YXRpb24uY29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb21tZW50U2VydmljZS51cGRhdGVVbnNhdmVkQ29tbWVudHNTdGF0dXMoYW5ub3RhdGlvbiwgZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5EZWxldGVBbm5vdGF0aW9uKGFubm90YXRpb24uaWQpKTtcbiAgfVxuXG4gIHNlbGVjdEFubm90YXRpb24oc2VsZWN0ZWRBbm5vdGF0aW9uOiBTZWxlY3Rpb25Bbm5vdGF0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHNlbGVjdGVkQW5ub3RhdGlvbikpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbm5vdGF0aW9uIG9mIGFubm90YXRpb25zXCI+XG4gIDxtdi1hbm5vdGF0aW9uIFthbm5vdGF0aW9uXT1cImFubm90YXRpb25cIlxuICAgICAgICAgICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgICAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRBbm5vSWRdPVwic2VsZWN0ZWRBbm5vdGF0aW9uJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgW3BhZ2VIZWlnaHRdPVwicGFnZUhlaWdodFwiXG4gICAgICAgICAgICAgICAgIFtwYWdlV2lkdGhdPVwicGFnZVdpZHRoXCJcbiAgICAgICAgICAgICAgICAgKHVwZGF0ZSk9XCJvbkFubm90YXRpb25VcGRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIChkZWxldGUpPVwib25Bbm5vdGF0aW9uRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAoYW5ub3RhdGlvbkNsaWNrKT1cInNlbGVjdEFubm90YXRpb24oJGV2ZW50KVwiPlxuICA8L212LWFubm90YXRpb24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi1zZXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpUGVyc2lzdGVkIH0gZnJvbSAnLi4vbW9kZWxzL2FwaS1wZXJzaXN0ZWQubW9kZWwnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbiB9IGZyb20gJy4vYW5ub3RhdGlvbi12aWV3L2Fubm90YXRpb24ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFubm90YXRpb25TZXQgZXh0ZW5kcyBBcGlQZXJzaXN0ZWQge1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG4gIGFubm90YXRpb25zOiBBbm5vdGF0aW9uW107XG59XG4iXX0=