@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,162 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { HttpClientModule } from '@angular/common/http';
5
+ import { A11yModule } from '@angular/cdk/a11y';
6
+ import { RouterModule } from '@angular/router';
7
+ import { MutableDivModule } from 'mutable-div';
8
+ import { TagInputModule } from 'ngx-chips';
9
+ import { NgxDatatableModule } from '@swimlane/ngx-datatable';
10
+ import { AnnotationApiService } from './services/annotation-api/annotation-api.service';
11
+ import { AnnotationViewComponent } from './annotation-set/annotation-view/annotation-view.component';
12
+ import { AnnotationSetComponent } from './annotation-set/annotation-set.component';
13
+ import { RectangleComponent } from './annotation-set/annotation-view/rectangle/rectangle.component';
14
+ import { CommentComponent } from './comment-set/comment/comment.component';
15
+ import { CtxToolbarComponent } from './annotation-set/ctx-toolbar/ctx-toolbar.component';
16
+ import { CommentSetComponent } from './comment-set/comment-set.component';
17
+ import { TextareaAutoExpandDirective } from './comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';
18
+ import { CommentsSummaryComponent } from './comments-summary/comments-summary.component';
19
+ import { CommentSetRenderService } from './comment-set/comment-set-render.service';
20
+ import { BoxHighlightCreateComponent } from './annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';
21
+ import { HighlightCreateService } from './annotation-set/annotation-create/highlight-create/highlight-create.service';
22
+ import { CommentSetHeaderComponent } from './comment-set/comment-set-header/comment-set-header.component';
23
+ import { CommentSearchComponent } from './comment-set/comment-set-header/comment-search/comment-search.component';
24
+ import { TextHighlightDirective } from './comment-set/comment/text-highlight/text-highlight.directive';
25
+ import { TagsComponent } from './tags/tags.component';
26
+ import { TagsServices } from './services/tags/tags.services';
27
+ import { CommentsNavigateComponent } from './comment-set/comment-navigate/comments-navigate.component';
28
+ import { CommentFilterComponent } from './comment-set/comment-set-header/comment-filter/comment-filter.component';
29
+ import { MomentDatePipe } from './pipes/date/date.pipe';
30
+ import { BookmarksApiService } from './services/bookmarks-api/bookmarks-api.service';
31
+ import { FilterPipe } from './pipes/filter/filter.pipe';
32
+ import { UnsnakePipe } from './pipes/unsnake/unsnake.pipe';
33
+ import { SharedModule } from '../shared/shared.module';
34
+ import { MetadataLayerComponent } from './annotation-set/metadata-layer/metadata-layer.component';
35
+ import { CommentService } from './comment-set/comment/comment.service';
36
+ import { RpxTranslationModule } from 'rpx-xui-translation';
37
+ import * as i0 from "@angular/core";
38
+ import * as i1 from "rpx-xui-translation";
39
+ export class AnnotationsModule {
40
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
41
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, declarations: [MetadataLayerComponent,
42
+ AnnotationViewComponent,
43
+ BoxHighlightCreateComponent,
44
+ AnnotationSetComponent,
45
+ RectangleComponent,
46
+ CommentComponent,
47
+ CommentSetHeaderComponent,
48
+ CommentSearchComponent,
49
+ TextHighlightDirective,
50
+ CtxToolbarComponent,
51
+ CommentSetComponent,
52
+ CommentsNavigateComponent,
53
+ TextareaAutoExpandDirective,
54
+ CommentsSummaryComponent,
55
+ TagsComponent,
56
+ MomentDatePipe,
57
+ CommentFilterComponent,
58
+ FilterPipe,
59
+ UnsnakePipe], imports: [A11yModule,
60
+ CommonModule,
61
+ FormsModule,
62
+ HttpClientModule,
63
+ MutableDivModule,
64
+ TagInputModule,
65
+ RouterModule,
66
+ ReactiveFormsModule,
67
+ NgxDatatableModule,
68
+ SharedModule, i1.RpxTranslationModule], exports: [AnnotationViewComponent,
69
+ BoxHighlightCreateComponent,
70
+ AnnotationSetComponent,
71
+ CommentSetComponent,
72
+ CommentSetHeaderComponent,
73
+ CommentSearchComponent,
74
+ CommentsSummaryComponent,
75
+ TagsComponent,
76
+ CommentFilterComponent,
77
+ MomentDatePipe,
78
+ FilterPipe,
79
+ UnsnakePipe,
80
+ MetadataLayerComponent] }); }
81
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, providers: [
82
+ AnnotationApiService,
83
+ BookmarksApiService,
84
+ CommentSetRenderService,
85
+ HighlightCreateService,
86
+ CommentService,
87
+ TagsServices
88
+ ], imports: [A11yModule,
89
+ CommonModule,
90
+ FormsModule,
91
+ HttpClientModule,
92
+ MutableDivModule,
93
+ TagInputModule,
94
+ RouterModule,
95
+ ReactiveFormsModule,
96
+ NgxDatatableModule,
97
+ SharedModule,
98
+ RpxTranslationModule.forChild()] }); }
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, decorators: [{
101
+ type: NgModule,
102
+ args: [{
103
+ imports: [
104
+ A11yModule,
105
+ CommonModule,
106
+ FormsModule,
107
+ HttpClientModule,
108
+ MutableDivModule,
109
+ TagInputModule,
110
+ RouterModule,
111
+ ReactiveFormsModule,
112
+ NgxDatatableModule,
113
+ SharedModule,
114
+ RpxTranslationModule.forChild()
115
+ ],
116
+ declarations: [
117
+ MetadataLayerComponent,
118
+ AnnotationViewComponent,
119
+ BoxHighlightCreateComponent,
120
+ AnnotationSetComponent,
121
+ RectangleComponent,
122
+ CommentComponent,
123
+ CommentSetHeaderComponent,
124
+ CommentSearchComponent,
125
+ TextHighlightDirective,
126
+ CtxToolbarComponent,
127
+ CommentSetComponent,
128
+ CommentsNavigateComponent,
129
+ TextareaAutoExpandDirective,
130
+ CommentsSummaryComponent,
131
+ TagsComponent,
132
+ MomentDatePipe,
133
+ CommentFilterComponent,
134
+ FilterPipe,
135
+ UnsnakePipe
136
+ ],
137
+ providers: [
138
+ AnnotationApiService,
139
+ BookmarksApiService,
140
+ CommentSetRenderService,
141
+ HighlightCreateService,
142
+ CommentService,
143
+ TagsServices
144
+ ],
145
+ exports: [
146
+ AnnotationViewComponent,
147
+ BoxHighlightCreateComponent,
148
+ AnnotationSetComponent,
149
+ CommentSetComponent,
150
+ CommentSetHeaderComponent,
151
+ CommentSearchComponent,
152
+ CommentsSummaryComponent,
153
+ TagsComponent,
154
+ CommentFilterComponent,
155
+ MomentDatePipe,
156
+ FilterPipe,
157
+ UnsnakePipe,
158
+ MetadataLayerComponent
159
+ ]
160
+ }]
161
+ }] });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8s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QUNkLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osb0JBQW9CLENBQUMsUUFBUSxFQUFFO3FCQUNoQztvQkFDRCxZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3dCQUMzQix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLFVBQVU7d0JBQ1YsV0FBVztxQkFDWjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Qsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLGNBQWM7d0JBQ2QsVUFBVTt3QkFDVixXQUFXO3dCQUNYLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBNdXRhYmxlRGl2TW9kdWxlIH0gZnJvbSAnbXV0YWJsZS1kaXYnO1xuaW1wb3J0IHsgVGFnSW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtY2hpcHMnO1xuaW1wb3J0IHsgTmd4RGF0YXRhYmxlTW9kdWxlIH0gZnJvbSAnQHN3aW1sYW5lL25neC1kYXRhdGFibGUnO1xuXG5pbXBvcnQgeyBBbm5vdGF0aW9uQXBpU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYW5ub3RhdGlvbi1hcGkvYW5ub3RhdGlvbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uVmlld0NvbXBvbmVudCB9IGZyb20gJy4vYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L2Fubm90YXRpb24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQW5ub3RhdGlvblNldENvbXBvbmVudCB9IGZyb20gJy4vYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY3RhbmdsZUNvbXBvbmVudCB9IGZyb20gJy4vYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L3JlY3RhbmdsZS9yZWN0YW5nbGUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtc2V0L2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3R4VG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vYW5ub3RhdGlvbi1zZXQvY3R4LXRvb2xiYXIvY3R4LXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRTZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtc2V0L2NvbW1lbnQtc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0YXJlYUF1dG9FeHBhbmREaXJlY3RpdmUgfSBmcm9tICcuL2NvbW1lbnQtc2V0L2NvbW1lbnQvdGV4dGFyZWEtYXV0by1leHBhbmQvdGV4dGFyZWEtYXV0by1leHBhbmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbW1lbnRzU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudHMtc3VtbWFyeS9jb21tZW50cy1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50U2V0UmVuZGVyU2VydmljZSB9IGZyb20gJy4vY29tbWVudC1zZXQvY29tbWVudC1zZXQtcmVuZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQm94SGlnaGxpZ2h0Q3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9ib3gtaGlnaGxpZ2h0LWNyZWF0ZS9ib3gtaGlnaGxpZ2h0LWNyZWF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSB9IGZyb20gJy4vYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvaGlnaGxpZ2h0LWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbWVudFNldEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC1zZXQvY29tbWVudC1zZXQtaGVhZGVyL2NvbW1lbnQtc2V0LWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbWVudFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC1zZXQvY29tbWVudC1zZXQtaGVhZGVyL2NvbW1lbnQtc2VhcmNoL2NvbW1lbnQtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlIH0gZnJvbSAnLi9jb21tZW50LXNldC9jb21tZW50L3RleHQtaGlnaGxpZ2h0L3RleHQtaGlnaGxpZ2h0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi90YWdzL3RhZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFRhZ3NTZXJ2aWNlcyB9IGZyb20gJy4vc2VydmljZXMvdGFncy90YWdzLnNlcnZpY2VzJztcbmltcG9ydCB7IENvbW1lbnRzTmF2aWdhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtc2V0L2NvbW1lbnQtbmF2aWdhdGUvY29tbWVudHMtbmF2aWdhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtc2V0L2NvbW1lbnQtc2V0LWhlYWRlci9jb21tZW50LWZpbHRlci9jb21tZW50LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9tZW50RGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2RhdGUvZGF0ZS5waXBlJztcbmltcG9ydCB7IEJvb2ttYXJrc0FwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Jvb2ttYXJrcy1hcGkvYm9va21hcmtzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci9maWx0ZXIucGlwZSc7XG5pbXBvcnQgeyBVbnNuYWtlUGlwZSB9IGZyb20gJy4vcGlwZXMvdW5zbmFrZS91bnNuYWtlLnBpcGUnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgTWV0YWRhdGFMYXllckNvbXBvbmVudCB9IGZyb20gJy4vYW5ub3RhdGlvbi1zZXQvbWV0YWRhdGEtbGF5ZXIvbWV0YWRhdGEtbGF5ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQTExeU1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBNdXRhYmxlRGl2TW9kdWxlLFxuICAgIFRhZ0lucHV0TW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5neERhdGF0YWJsZU1vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgUnB4VHJhbnNsYXRpb25Nb2R1bGUuZm9yQ2hpbGQoKVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNZXRhZGF0YUxheWVyQ29tcG9uZW50LFxuICAgIEFubm90YXRpb25WaWV3Q29tcG9uZW50LFxuICAgIEJveEhpZ2hsaWdodENyZWF0ZUNvbXBvbmVudCxcbiAgICBBbm5vdGF0aW9uU2V0Q29tcG9uZW50LFxuICAgIFJlY3RhbmdsZUNvbXBvbmVudCxcbiAgICBDb21tZW50Q29tcG9uZW50LFxuICAgIENvbW1lbnRTZXRIZWFkZXJDb21wb25lbnQsXG4gICAgQ29tbWVudFNlYXJjaENvbXBvbmVudCxcbiAgICBUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlLFxuICAgIEN0eFRvb2xiYXJDb21wb25lbnQsXG4gICAgQ29tbWVudFNldENvbXBvbmVudCxcbiAgICBDb21tZW50c05hdmlnYXRlQ29tcG9uZW50LFxuICAgIFRleHRhcmVhQXV0b0V4cGFuZERpcmVjdGl2ZSxcbiAgICBDb21tZW50c1N1bW1hcnlDb21wb25lbnQsXG4gICAgVGFnc0NvbXBvbmVudCxcbiAgICBNb21lbnREYXRlUGlwZSxcbiAgICBDb21tZW50RmlsdGVyQ29tcG9uZW50LFxuICAgIEZpbHRlclBpcGUsXG4gICAgVW5zbmFrZVBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQW5ub3RhdGlvbkFwaVNlcnZpY2UsXG4gICAgQm9va21hcmtzQXBpU2VydmljZSxcbiAgICBDb21tZW50U2V0UmVuZGVyU2VydmljZSxcbiAgICBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlLFxuICAgIENvbW1lbnRTZXJ2aWNlLFxuICAgIFRhZ3NTZXJ2aWNlc1xuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQW5ub3RhdGlvblZpZXdDb21wb25lbnQsXG4gICAgQm94SGlnaGxpZ2h0Q3JlYXRlQ29tcG9uZW50LFxuICAgIEFubm90YXRpb25TZXRDb21wb25lbnQsXG4gICAgQ29tbWVudFNldENvbXBvbmVudCxcbiAgICBDb21tZW50U2V0SGVhZGVyQ29tcG9uZW50LFxuICAgIENvbW1lbnRTZWFyY2hDb21wb25lbnQsXG4gICAgQ29tbWVudHNTdW1tYXJ5Q29tcG9uZW50LFxuICAgIFRhZ3NDb21wb25lbnQsXG4gICAgQ29tbWVudEZpbHRlckNvbXBvbmVudCxcbiAgICBNb21lbnREYXRlUGlwZSxcbiAgICBGaWx0ZXJQaXBlLFxuICAgIFVuc25ha2VQaXBlLFxuICAgIE1ldGFkYXRhTGF5ZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBbm5vdGF0aW9uc01vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,178 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { distinctUntilChanged } from 'rxjs/operators';
3
+ import * as fromSelector from '../../../store/selectors/annotation.selectors';
4
+ import { HtmlTemplatesHelper } from '../../../shared/util/helpers/html-templates.helper';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngrx/store";
7
+ import * as i2 from "./comment.service";
8
+ import * as i3 from "../../services/tags/tags.services";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "@angular/forms";
11
+ import * as i6 from "./text-highlight/text-highlight.directive";
12
+ import * as i7 from "./textarea-auto-expand/textarea-auto-expand.directive";
13
+ import * as i8 from "../../tags/tags.component";
14
+ import * as i9 from "rpx-xui-translation";
15
+ import * as i10 from "../../pipes/date/date.pipe";
16
+ export class CommentComponent {
17
+ constructor(store, commentService, tagsServices) {
18
+ this.store = store;
19
+ this.commentService = commentService;
20
+ this.tagsServices = tagsServices;
21
+ this.CHAR_LIMIT = 5000;
22
+ this.totalPrevPagesHeight = 0;
23
+ this.hasUnsavedChanges = false;
24
+ this.commentClick = new EventEmitter();
25
+ this.renderComments = new EventEmitter();
26
+ this.delete = new EventEmitter();
27
+ this.updated = new EventEmitter();
28
+ this.changes = new EventEmitter();
29
+ this.rotate = 0;
30
+ this.zoom = 1;
31
+ }
32
+ ngOnInit() {
33
+ this.subscriptions = this.store.select(fromSelector.getComponentSearchText)
34
+ .pipe(distinctUntilChanged()).subscribe(searchString => this.searchString = searchString);
35
+ this.reRenderComments();
36
+ this.marginToComment$ = this.commentService.marginToCommentEmitter.asObservable();
37
+ }
38
+ ngAfterContentInit() {
39
+ if (this.tagItems && this.tagItems.length) {
40
+ this.tagsServices.updateTagItems(this.tagItems, this._comment.annotationId);
41
+ }
42
+ }
43
+ ngOnDestroy() {
44
+ this.subscriptions.unsubscribe();
45
+ }
46
+ set comment(comment) {
47
+ this._comment = { ...comment };
48
+ this.page = this._comment.page;
49
+ this.lastUpdate = comment.lastModifiedDate ? comment.lastModifiedDate : comment.createdDate;
50
+ this.author = comment.createdByDetails;
51
+ this.createdBy = comment.createdBy;
52
+ this.editor = comment.lastModifiedByDetails;
53
+ this.originalComment = comment.content;
54
+ this.fullComment = this.originalComment;
55
+ this.selected = this._comment.selected;
56
+ this._editable = this._comment.editable;
57
+ this.tagItems = this._comment.tags;
58
+ const pageMarginBottom = 10;
59
+ this.totalPrevPagesHeight = 0;
60
+ for (let i = 0; i < this.page - 1; i++) {
61
+ const height = this._comment.pages[i + 1] ? this._comment.pages[i + 1].styles.height : undefined;
62
+ if (height) {
63
+ this.totalPrevPagesHeight += height + pageMarginBottom;
64
+ }
65
+ }
66
+ }
67
+ get comment() {
68
+ return this._comment;
69
+ }
70
+ set annotation(annotation) {
71
+ this._rectangle = annotation.rectangles
72
+ .reduce((prev, current) => prev.y < current.y ? prev : current);
73
+ const actualHeight = this._comment.pages[this.page].styles.height / this.zoom;
74
+ switch (this.rotate) {
75
+ case 90:
76
+ this.rectTop = this._rectangle.x;
77
+ break;
78
+ case 180:
79
+ this.rectTop = actualHeight - (this._rectangle.y + this._rectangle.height);
80
+ break;
81
+ case 270:
82
+ this.rectTop = actualHeight - (this._rectangle.x + this._rectangle.width);
83
+ break;
84
+ default: this.rectTop = this._rectangle.y;
85
+ }
86
+ this.rectLeft = this._rectangle.x;
87
+ }
88
+ get editable() {
89
+ return this._editable;
90
+ }
91
+ onCommentChange(updatedComment) {
92
+ this.hasUnsavedChanges =
93
+ this.originalComment.substring(0, this.CHAR_LIMIT) !== updatedComment.substring(0, this.CHAR_LIMIT);
94
+ this.commentService.onCommentChange(this.hasUnsavedChanges);
95
+ }
96
+ deleteOrCancel() {
97
+ if (!this.editable) {
98
+ this.delete.emit(this._comment);
99
+ }
100
+ else {
101
+ this.hasUnsavedChanges = false;
102
+ this._editable = false;
103
+ this.fullComment = this.originalComment;
104
+ this.changes.emit(false);
105
+ if (!this.author && !this.fullComment) {
106
+ this.delete.emit(this._comment);
107
+ }
108
+ }
109
+ }
110
+ editOrSave() {
111
+ if (!this.editable) {
112
+ this._editable = true;
113
+ }
114
+ else {
115
+ this._comment.content = this.fullComment.substring(0, this.CHAR_LIMIT);
116
+ const tags = this.tagsServices.getNewTags(this._comment.annotationId);
117
+ const payload = {
118
+ comment: this._comment,
119
+ tags
120
+ };
121
+ this.updated.emit(payload);
122
+ this.hasUnsavedChanges = false;
123
+ this._editable = false;
124
+ this.changes.emit(false);
125
+ }
126
+ }
127
+ onCommentClick() {
128
+ if (!this.selected) {
129
+ this.selected = true;
130
+ this._editable = false;
131
+ this.commentClick.emit({ annotationId: this._comment.annotationId, editable: this._editable, selected: true });
132
+ }
133
+ }
134
+ reRenderComments() {
135
+ this.renderComments.emit(this._comment);
136
+ }
137
+ get commentTop() {
138
+ return this.totalPrevPagesHeight + (this.rectTop * this.zoom);
139
+ }
140
+ get height() {
141
+ return HtmlTemplatesHelper.getAdjustedBoundingRect(this.form.nativeElement).height / this.zoom;
142
+ }
143
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentComponent, deps: [{ token: i1.Store }, { token: i2.CommentService }, { token: i3.TagsServices }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentComponent, selector: "mv-anno-comment", inputs: { rotate: "rotate", zoom: "zoom", index: "index", page: "page", comment: "comment", annotation: "annotation" }, outputs: { commentClick: "commentClick", renderComments: "renderComments", delete: "delete", updated: "updated", changes: "changes" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "editableComment", first: true, predicate: ["editableComment"], descendants: true }], ngImport: i0, template: "<div\n #form\n (click)=\"onCommentClick()\"\n class=\"aui-comment\"\n [ngClass]=\"{ stylestoggle: (marginToComment$ | async) }\"\n [style.top.px]=\"commentTop\"\n [style.zIndex]=\"selected ? 100 : 0\"\n>\n <div id=\"detailsWrapper {{ index }}\" class=\"aui-comment__header\">\n <span *ngIf=\"author && !editor\" class=\"aui-comment__author\">\n {{ author.forename }} {{ author.surname }}\n </span>\n <span *ngIf=\"editor\" class=\"aui-comment__author\">\n {{ editor.forename }} {{ editor.surname }}\n </span>\n <time [hidden]=\"!selected && !this.editable\" class=\"aui-comment__meta\">\n {{ lastUpdate | momentDate : \"d MMMM y h:mm a\" }}\n </time>\n </div>\n <mv-tags\n [tagItems]=\"tagItems\"\n [userId]=\"createdBy\"\n [editable]=\"editable\"\n [annoId]=\"_comment.annotationId\"\n >\n </mv-tags>\n <textarea\n *ngIf=\"selected && editable\"\n #editableComment\n mvTextAreaAutoExpand\n type=\"text\"\n required\n name=\"content\"\n [maxlength]=\"CHAR_LIMIT\"\n class=\"aui-comment__content form-control mimic-focus edit-mode expanded\"\n [ngModel]=\"fullComment\"\n (ngModelChange)=\"fullComment = $event; reRenderComments(); onCommentChange($event)\"\n aria-label=\"comment\"\n >\n </textarea>\n <p\n *ngIf=\"!editable\"\n mvTextHighlight\n class=\"commentText\"\n [textToHighlight]=\"searchString\"\n >\n {{ fullComment }}\n </p>\n <div\n *ngIf=\"\n selected ||\n this.editable ||\n (!fullComment.length && tagItems && !tagItems.length)\n \"\n class=\"aui-comment__footer commentBtns\"\n >\n <button\n class=\"govuk-button\"\n type=\"button\"\n role=\"button\"\n (click)=\"editOrSave()\"\n >\n {{ !editable ? (\"Edit\" | rpxTranslate) : (\"Save\" | rpxTranslate) }}\n </button>\n <button\n type=\"button\"\n role=\"button\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"deleteOrCancel()\"\n >\n {{ !editable ? (\"Delete\" | rpxTranslate) : (\"Cancel\" | rpxTranslate) }}\n </button>\n </div>\n <span class=\"aui-comment__private\">{{ \"private\" | rpxTranslate }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.TextHighlightDirective, selector: "[mvTextHighlight]", inputs: ["textToHighlight"] }, { kind: "directive", type: i7.TextareaAutoExpandDirective, selector: "[mvTextAreaAutoExpand]" }, { kind: "component", type: i8.TagsComponent, selector: "mv-tags", inputs: ["tagItems", "userId", "editable", "annoId"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: i10.MomentDatePipe, name: "momentDate" }] }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ selector: 'mv-anno-comment', template: "<div\n #form\n (click)=\"onCommentClick()\"\n class=\"aui-comment\"\n [ngClass]=\"{ stylestoggle: (marginToComment$ | async) }\"\n [style.top.px]=\"commentTop\"\n [style.zIndex]=\"selected ? 100 : 0\"\n>\n <div id=\"detailsWrapper {{ index }}\" class=\"aui-comment__header\">\n <span *ngIf=\"author && !editor\" class=\"aui-comment__author\">\n {{ author.forename }} {{ author.surname }}\n </span>\n <span *ngIf=\"editor\" class=\"aui-comment__author\">\n {{ editor.forename }} {{ editor.surname }}\n </span>\n <time [hidden]=\"!selected && !this.editable\" class=\"aui-comment__meta\">\n {{ lastUpdate | momentDate : \"d MMMM y h:mm a\" }}\n </time>\n </div>\n <mv-tags\n [tagItems]=\"tagItems\"\n [userId]=\"createdBy\"\n [editable]=\"editable\"\n [annoId]=\"_comment.annotationId\"\n >\n </mv-tags>\n <textarea\n *ngIf=\"selected && editable\"\n #editableComment\n mvTextAreaAutoExpand\n type=\"text\"\n required\n name=\"content\"\n [maxlength]=\"CHAR_LIMIT\"\n class=\"aui-comment__content form-control mimic-focus edit-mode expanded\"\n [ngModel]=\"fullComment\"\n (ngModelChange)=\"fullComment = $event; reRenderComments(); onCommentChange($event)\"\n aria-label=\"comment\"\n >\n </textarea>\n <p\n *ngIf=\"!editable\"\n mvTextHighlight\n class=\"commentText\"\n [textToHighlight]=\"searchString\"\n >\n {{ fullComment }}\n </p>\n <div\n *ngIf=\"\n selected ||\n this.editable ||\n (!fullComment.length && tagItems && !tagItems.length)\n \"\n class=\"aui-comment__footer commentBtns\"\n >\n <button\n class=\"govuk-button\"\n type=\"button\"\n role=\"button\"\n (click)=\"editOrSave()\"\n >\n {{ !editable ? (\"Edit\" | rpxTranslate) : (\"Save\" | rpxTranslate) }}\n </button>\n <button\n type=\"button\"\n role=\"button\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"deleteOrCancel()\"\n >\n {{ !editable ? (\"Delete\" | rpxTranslate) : (\"Cancel\" | rpxTranslate) }}\n </button>\n </div>\n <span class=\"aui-comment__private\">{{ \"private\" | rpxTranslate }}</span>\n</div>\n" }]
149
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.CommentService }, { type: i3.TagsServices }], propDecorators: { commentClick: [{
150
+ type: Output
151
+ }], renderComments: [{
152
+ type: Output
153
+ }], delete: [{
154
+ type: Output
155
+ }], updated: [{
156
+ type: Output
157
+ }], changes: [{
158
+ type: Output
159
+ }], rotate: [{
160
+ type: Input
161
+ }], zoom: [{
162
+ type: Input
163
+ }], index: [{
164
+ type: Input
165
+ }], page: [{
166
+ type: Input
167
+ }], form: [{
168
+ type: ViewChild,
169
+ args: ['form', { static: false }]
170
+ }], editableComment: [{
171
+ type: ViewChild,
172
+ args: ['editableComment', { static: false }]
173
+ }], comment: [{
174
+ type: Input
175
+ }], annotation: [{
176
+ type: Input
177
+ }] } });
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sS0FBSyxZQUFZLE1BQU0sK0NBQStDLENBQUM7QUFHOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7OztBQU16RixNQUFNLE9BQU8sZ0JBQWdCO0lBdUMzQixZQUNVLEtBQTBDLEVBQ2pDLGNBQThCLEVBQ3ZDLFlBQTBCO1FBRjFCLFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXhDcEMsZUFBVSxHQUFHLElBQUksQ0FBQztRQVVsQix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFJekIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBUWhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDdkQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzdDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBeUMs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Q0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2pHLENBQUM7a0lBeEtVLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLHlmQy9CN0Isa3FFQTJFQTs7NEZENUNhLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxpQkFBaUI7a0lBMkJqQixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRThCLElBQUk7c0JBQXZDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDYSxlQUFlO3NCQUE3RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkE2QnpDLE9BQU87c0JBRFYsS0FBSztnQkE2QkYsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1lbnR9IGZyb20gJy4vY29tbWVudC5tb2RlbCc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLm1vZGVsJztcbmltcG9ydCB7UmVjdGFuZ2xlfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQge1NlbGVjdGlvbkFubm90YXRpb259IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC1zZWxlY3QubW9kZWwnO1xuaW1wb3J0IHtDb21tZW50U2VydmljZX0gZnJvbSAnLi9jb21tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtUYWdzTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy90YWdzLm1vZGVsJztcbmltcG9ydCB7VGFnc1NlcnZpY2VzfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWdzL3RhZ3Muc2VydmljZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3RvcmV9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tU2VsZWN0b3IgZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Fubm90YXRpb24uc2VsZWN0b3JzJztcbmltcG9ydCB7IEFubm90YXRpb25TZXQgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L2Fubm90YXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgSHRtbFRlbXBsYXRlc0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlsL2hlbHBlcnMvaHRtbC10ZW1wbGF0ZXMuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtYW5uby1jb21tZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgQ0hBUl9MSU1JVCA9IDUwMDA7XG4gIGxhc3RVcGRhdGU6IHN0cmluZztcbiAgb3JpZ2luYWxDb21tZW50OiBzdHJpbmc7XG4gIGZ1bGxDb21tZW50OiBzdHJpbmc7XG4gIGF1dGhvcjogVXNlcjtcbiAgY3JlYXRlZEJ5OiBzdHJpbmc7XG4gIGVkaXRvcjogVXNlcjtcbiAgX2NvbW1lbnQ6IENvbW1lbnQ7XG4gIF9lZGl0YWJsZTogYm9vbGVhbjtcbiAgX3JlY3RhbmdsZTtcbiAgdG90YWxQcmV2UGFnZXNIZWlnaHQgPSAwO1xuICByZWN0VG9wO1xuICByZWN0TGVmdDtcbiAgcGFnZUhlaWdodDogbnVtYmVyO1xuICBoYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgc2VhcmNoU3RyaW5nOiBzdHJpbmc7XG4gIHB1YmxpYyB0YWdJdGVtczogVGFnc01vZGVsW107XG4gIG1hcmdpblRvQ29tbWVudCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gO1xuXG5cblxuICBAT3V0cHV0KCkgY29tbWVudENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25Bbm5vdGF0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVuZGVyQ29tbWVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnQ+KCk7XG4gIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnQ+KCk7XG4gIEBPdXRwdXQoKSB1cGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7Y29tbWVudDogQ29tbWVudCwgdGFnczogVGFnc01vZGVsW119PigpO1xuICBAT3V0cHV0KCkgY2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQElucHV0KCkgcm90YXRlID0gMDtcbiAgQElucHV0KCkgem9vbSA9IDE7XG4gIEBJbnB1dCgpIGluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2U6IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCdmb3JtJywge3N0YXRpYzogZmFsc2V9KSBmb3JtOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdlZGl0YWJsZUNvbW1lbnQnLCB7c3RhdGljOiBmYWxzZX0pIGVkaXRhYmxlQ29tbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tZW50U2VydmljZTogQ29tbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0YWdzU2VydmljZXM6IFRhZ3NTZXJ2aWNlc1xuICApIHt9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSB0aGlzLnN0b3JlLnNlbGVjdChmcm9tU2VsZWN0b3IuZ2V0Q29tcG9uZW50U2VhcmNoVGV4dClcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZShzZWFyY2hTdHJpbmcgPT4gdGhpcy5zZWFyY2hTdHJpbmcgPSBzZWFyY2hTdHJpbmcpO1xuICAgIHRoaXMucmVSZW5kZXJDb21tZW50cygpO1xuICAgIHRoaXMubWFyZ2luVG9Db21tZW50JCA9IHRoaXMuY29tbWVudFNlcnZpY2UubWFyZ2luVG9Db21tZW50RW1pdHRlci5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWdJdGVtcyAmJiB0aGlzLnRhZ0l0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy50YWdzU2VydmljZXMudXBkYXRlVGFnSXRlbXModGhpcy50YWdJdGVtcywgdGhpcy5fY29tbWVudC5hbm5vdGF0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbW1lbnQoY29tbWVudDogQ29tbWVudCkge1xuICAgIHRoaXMuX2NvbW1lbnQgPSB7Li4uY29tbWVudH07XG4gICAgdGhpcy5wYWdlID0gdGhpcy5fY29tbWVudC5wYWdlO1xuICAgIHRoaXMubGFzdFVwZGF0ZSA9IGNvbW1lbnQubGFzdE1vZGlmaWVkRGF0ZSA/IGNvbW1lbnQubGFzdE1vZGlmaWVkRGF0ZSA6IGNvbW1lbnQuY3JlYXRlZERhdGU7XG4gICAgdGhpcy5hdXRob3IgPSBjb21tZW50LmNyZWF0ZWRCeURldGFpbHM7XG4gICAgdGhpcy5jcmVhdGVkQnkgPSBjb21tZW50LmNyZWF0ZWRCeTtcbiAgICB0aGlzLmVkaXRvciA9IGNvbW1lbnQubGFzdE1vZGlmaWVkQnlEZXRhaWxzO1xuICAgIHRoaXMub3JpZ2luYWxDb21tZW50ID0gY29tbWVudC5jb250ZW50O1xuICAgIHRoaXMuZnVsbENvbW1lbnQgPSB0aGlzLm9yaWdpbmFsQ29tbWVudDtcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5fY29tbWVudC5zZWxlY3RlZDtcbiAgICB0aGlzLl9lZGl0YWJsZSA9IHRoaXMuX2NvbW1lbnQuZWRpdGFibGU7XG4gICAgdGhpcy50YWdJdGVtcyA9IHRoaXMuX2NvbW1lbnQudGFncztcbiAgICBjb25zdCBwYWdlTWFyZ2luQm90dG9tID0gMTA7XG4gICAgdGhpcy50b3RhbFByZXZQYWdlc0hlaWdodCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhZ2UgLSAxOyBpKyspIHtcbiAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuX2NvbW1lbnQucGFnZXNbaSArIDFdID8gdGhpcy5fY29tbWVudC5wYWdlc1tpICsgMV0uc3R5bGVzLmhlaWdodCA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgdGhpcy50b3RhbFByZXZQYWdlc0hlaWdodCArPSBoZWlnaHQgKyBwYWdlTWFyZ2luQm90dG9tO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgZ2V0IGNvbW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbW1lbnQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgYW5ub3RhdGlvbihhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKSB7XG4gICAgdGhpcy5fcmVjdGFuZ2xlID0gYW5ub3RhdGlvbi5yZWN0YW5nbGVzXG4gICAgICAucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBwcmV2LnkgPCBjdXJyZW50LnkgPyBwcmV2IDogY3VycmVudCk7XG4gICAgY29uc3QgYWN0dWFsSGVpZ2h0ID0gdGhpcy5fY29tbWVudC5wYWdlc1t0aGlzLnBhZ2VdLnN0eWxlcy5oZWlnaHQgLyB0aGlzLnpvb207XG4gICAgc3dpdGNoICh0aGlzLnJvdGF0ZSkge1xuICAgICAgY2FzZSA5MDogdGhpcy5yZWN0VG9wID0gdGhpcy5fcmVjdGFuZ2xlLng7XG4gICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOiB0aGlzLnJlY3RUb3AgPSBhY3R1YWxIZWlnaHQgLSAodGhpcy5fcmVjdGFuZ2xlLnkgKyB0aGlzLl9yZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNzA6IHRoaXMucmVjdFRvcCA9IGFjdHVhbEhlaWdodCAtICh0aGlzLl9yZWN0YW5nbGUueCArIHRoaXMuX3JlY3RhbmdsZS53aWR0aCk7XG4gICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IHRoaXMucmVjdFRvcCA9IHRoaXMuX3JlY3RhbmdsZS55O1xuICAgIH1cbiAgICB0aGlzLnJlY3RMZWZ0ID0gdGhpcy5fcmVjdGFuZ2xlLng7XG4gIH1cblxuICBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRhYmxlO1xuICB9XG5cbiAgb25Db21tZW50Q2hhbmdlKHVwZGF0ZWRDb21tZW50KSB7XG4gICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9XG4gICAgICB0aGlzLm9yaWdpbmFsQ29tbWVudC5zdWJzdHJpbmcoMCwgdGhpcy5DSEFSX0xJTUlUKSAhPT0gdXBkYXRlZENvbW1lbnQuc3Vic3RyaW5nKDAsIHRoaXMuQ0hBUl9MSU1JVCk7XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5vbkNvbW1lbnRDaGFuZ2UodGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyk7XG4gIH1cblxuICBkZWxldGVPckNhbmNlbCgpIHtcbiAgICBpZiAoIXRoaXMuZWRpdGFibGUpIHtcbiAgICAgIHRoaXMuZGVsZXRlLmVtaXQodGhpcy5fY29tbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2VkaXRhYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmZ1bGxDb21tZW50ID0gdGhpcy5vcmlnaW5hbENvbW1lbnQ7XG4gICAgICB0aGlzLmNoYW5nZXMuZW1pdChmYWxzZSk7XG4gICAgICBpZiAoIXRoaXMuYXV0aG9yICYmICF0aGlzLmZ1bGxDb21tZW50KSB7XG4gICAgICAgIHRoaXMuZGVsZXRlLmVtaXQodGhpcy5fY29tbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVkaXRPclNhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRhYmxlKSB7XG4gICAgICB0aGlzLl9lZGl0YWJsZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbW1lbnQuY29udGVudCA9IHRoaXMuZnVsbENvbW1lbnQuc3Vic3RyaW5nKDAsIHRoaXMuQ0hBUl9MSU1JVCk7XG4gICAgICBjb25zdCB0YWdzID0gdGhpcy50YWdzU2VydmljZXMuZ2V0TmV3VGFncyh0aGlzLl9jb21tZW50LmFubm90YXRpb25JZCk7XG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICBjb21tZW50OiB0aGlzLl9jb21tZW50LFxuICAgICAgICB0YWdzXG4gICAgICB9O1xuICAgICAgdGhpcy51cGRhdGVkLmVtaXQocGF5bG9hZCk7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICB0aGlzLl9lZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jaGFuZ2VzLmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29tbWVudENsaWNrKCkge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLl9lZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jb21tZW50Q2xpY2suZW1pdCh7IGFubm90YXRpb25JZDogdGhpcy5fY29tbWVudC5hbm5vdGF0aW9uSWQsIGVkaXRhYmxlOiB0aGlzLl9lZGl0YWJsZSwgc2VsZWN0ZWQ6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVSZW5kZXJDb21tZW50cygpIHtcbiAgICB0aGlzLnJlbmRlckNvbW1lbnRzLmVtaXQodGhpcy5fY29tbWVudCk7XG4gIH1cblxuICBnZXQgY29tbWVudFRvcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRvdGFsUHJldlBhZ2VzSGVpZ2h0ICsgKHRoaXMucmVjdFRvcCAqIHRoaXMuem9vbSk7XG4gIH1cblxuXG4gIGdldCBoZWlnaHQoKSB7XG4gICAgcmV0dXJuIEh0bWxUZW1wbGF0ZXNIZWxwZXIuZ2V0QWRqdXN0ZWRCb3VuZGluZ1JlY3QodGhpcy5mb3JtLm5hdGl2ZUVsZW1lbnQpLmhlaWdodCAvIHRoaXMuem9vbTtcbiAgfVxufVxuIiwiPGRpdlxuICAjZm9ybVxuICAoY2xpY2spPVwib25Db21tZW50Q2xpY2soKVwiXG4gIGNsYXNzPVwiYXVpLWNvbW1lbnRcIlxuICBbbmdDbGFzc109XCJ7IHN0eWxlc3RvZ2dsZTogKG1hcmdpblRvQ29tbWVudCQgfCBhc3luYykgfVwiXG4gIFtzdHlsZS50b3AucHhdPVwiY29tbWVudFRvcFwiXG4gIFtzdHlsZS56SW5kZXhdPVwic2VsZWN0ZWQgPyAxMDAgOiAwXCJcbj5cbiAgPGRpdiBpZD1cImRldGFpbHNXcmFwcGVyIHt7IGluZGV4IH19XCIgY2xhc3M9XCJhdWktY29tbWVudF9faGVhZGVyXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJhdXRob3IgJiYgIWVkaXRvclwiIGNsYXNzPVwiYXVpLWNvbW1lbnRfX2F1dGhvclwiPlxuICAgICAge3sgYXV0aG9yLmZvcmVuYW1lIH19IHt7IGF1dGhvci5zdXJuYW1lIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiZWRpdG9yXCIgY2xhc3M9XCJhdWktY29tbWVudF9fYXV0aG9yXCI+XG4gICAgICB7eyBlZGl0b3IuZm9yZW5hbWUgfX0ge3sgZWRpdG9yLnN1cm5hbWUgfX1cbiAgICA8L3NwYW4+XG4gICAgPHRpbWUgW2hpZGRlbl09XCIhc2VsZWN0ZWQgJiYgIXRoaXMuZWRpdGFibGVcIiBjbGFzcz1cImF1aS1jb21tZW50X19tZXRhXCI+XG4gICAgICB7eyBsYXN0VXBkYXRlIHwgbW9tZW50RGF0ZSA6IFwiZCBNTU1NIHkgaDptbSBhXCIgfX1cbiAgICA8L3RpbWU+XG4gIDwvZGl2PlxuICA8bXYtdGFnc1xuICAgIFt0YWdJdGVtc109XCJ0YWdJdGVtc1wiXG4gICAgW3VzZXJJZF09XCJjcmVhdGVkQnlcIlxuICAgIFtlZGl0YWJsZV09XCJlZGl0YWJsZVwiXG4gICAgW2Fubm9JZF09XCJfY29tbWVudC5hbm5vdGF0aW9uSWRcIlxuICA+XG4gIDwvbXYtdGFncz5cbiAgPHRleHRhcmVhXG4gICAgKm5nSWY9XCJzZWxlY3RlZCAmJiBlZGl0YWJsZVwiXG4gICAgI2VkaXRhYmxlQ29tbWVudFxuICAgIG12VGV4dEFyZWFBdXRvRXhwYW5kXG4gICAgdHlwZT1cInRleHRcIlxuICAgIHJlcXVpcmVkXG4gICAgbmFtZT1cImNvbnRlbnRcIlxuICAgIFttYXhsZW5ndGhdPVwiQ0hBUl9MSU1JVFwiXG4gICAgY2xhc3M9XCJhdWktY29tbWVudF9fY29udGVudCBmb3JtLWNvbnRyb2wgbWltaWMtZm9jdXMgZWRpdC1tb2RlIGV4cGFuZGVkXCJcbiAgICBbbmdNb2RlbF09XCJmdWxsQ29tbWVudFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiZnVsbENvbW1lbnQgPSAkZXZlbnQ7IHJlUmVuZGVyQ29tbWVudHMoKTsgb25Db21tZW50Q2hhbmdlKCRldmVudClcIlxuICAgIGFyaWEtbGFiZWw9XCJjb21tZW50XCJcbiAgPlxuICA8L3RleHRhcmVhPlxuICA8cFxuICAgICpuZ0lmPVwiIWVkaXRhYmxlXCJcbiAgICBtdlRleHRIaWdobGlnaHRcbiAgICBjbGFzcz1cImNvbW1lbnRUZXh0XCJcbiAgICBbdGV4dFRvSGlnaGxpZ2h0XT1cInNlYXJjaFN0cmluZ1wiXG4gID5cbiAgICB7eyBmdWxsQ29tbWVudCB9fVxuICA8L3A+XG4gIDxkaXZcbiAgICAqbmdJZj1cIlxuICAgICAgc2VsZWN0ZWQgfHxcbiAgICAgIHRoaXMuZWRpdGFibGUgfHxcbiAgICAgICghZnVsbENvbW1lbnQubGVuZ3RoICYmIHRhZ0l0ZW1zICYmICF0YWdJdGVtcy5sZW5ndGgpXG4gICAgXCJcbiAgICBjbGFzcz1cImF1aS1jb21tZW50X19mb290ZXIgY29tbWVudEJ0bnNcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJlZGl0T3JTYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICFlZGl0YWJsZSA/IChcIkVkaXRcIiB8IHJweFRyYW5zbGF0ZSkgOiAoXCJTYXZlXCIgfCBycHhUcmFuc2xhdGUpIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCJcbiAgICAgIChjbGljayk9XCJkZWxldGVPckNhbmNlbCgpXCJcbiAgICA+XG4gICAgICB7eyAhZWRpdGFibGUgPyAoXCJEZWxldGVcIiB8IHJweFRyYW5zbGF0ZSkgOiAoXCJDYW5jZWxcIiB8IHJweFRyYW5zbGF0ZSkgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxzcGFuIGNsYXNzPVwiYXVpLWNvbW1lbnRfX3ByaXZhdGVcIj57eyBcInByaXZhdGVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2NvbW1lbnQtc2V0L2NvbW1lbnQvY29tbWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpUGVyc2lzdGVkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwaS1wZXJzaXN0ZWQubW9kZWwnO1xuaW1wb3J0IHsgVGFnc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhZ3MubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnQgZXh0ZW5kcyBBcGlQZXJzaXN0ZWQge1xuICBhbm5vdGF0aW9uSWQ6IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nO1xuICB0YWdzOiBUYWdzTW9kZWxbXTtcbiAgcGFnZTogbnVtYmVyO1xuICBwYWdlczogb2JqZWN0O1xuICBwYWdlSGVpZ2h0OiBudW1iZXI7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBlZGl0YWJsZTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ // TODO: replace by NgRx
5
+ export class CommentService {
6
+ constructor() {
7
+ this.unsavedChanges = new Subject();
8
+ this.marginToCommentEmitter = new BehaviorSubject(false);
9
+ }
10
+ setCommentSet(commentSetComponent) {
11
+ this.commentSetComponent = commentSetComponent;
12
+ }
13
+ onCommentChange(changes) {
14
+ this.unsavedChanges.next(changes);
15
+ }
16
+ getUnsavedChanges() {
17
+ return this.unsavedChanges.asObservable();
18
+ }
19
+ hasUnsavedComments(annotation) {
20
+ if (annotation.comments.length > 0) {
21
+ const comment = this.getComment(annotation);
22
+ return comment.hasUnsavedChanges;
23
+ }
24
+ return false;
25
+ }
26
+ updateUnsavedCommentsStatus(annotation, hasUnsavedChanges) {
27
+ const comment = this.getComment(annotation);
28
+ comment.hasUnsavedChanges = hasUnsavedChanges;
29
+ this.allCommentsSaved();
30
+ }
31
+ getComment(annotation) {
32
+ return this.commentSetComponent.commentComponents
33
+ .find(c => c.comment.annotationId === annotation.comments[0].annotationId);
34
+ }
35
+ resetCommentSet() {
36
+ this.commentSetComponent = null;
37
+ }
38
+ allCommentsSaved() {
39
+ this.onCommentChange(this.commentSetComponent.commentComponents.some(comment => comment.hasUnsavedChanges === true));
40
+ }
41
+ createMarginToCommentEvent(margin) {
42
+ this.marginToCommentEmitter.next(margin);
43
+ }
44
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService, decorators: [{
48
+ type: Injectable
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLNUQsd0JBQXdCO0FBRXhCLE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBR2tCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN4QywyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztLQTZDOUU7SUExQ0MsYUFBYSxDQUFDLG1CQUFtQjtRQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFzQjtRQUN2QyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELDJCQUEyQixDQUFDLFVBQXNCLEVBQUUsaUJBQTBCO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCO2FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsTUFBZTtRQUN4QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7a0lBL0NVLGNBQWM7c0lBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBDb21tZW50U2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWVudC1zZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQuY29tcG9uZW50JztcblxuLy8gVE9ETzogcmVwbGFjZSBieSBOZ1J4XG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tbWVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyByZWFkb25seSB1bnNhdmVkQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBtYXJnaW5Ub0NvbW1lbnRFbWl0dGVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGNvbW1lbnRTZXRDb21wb25lbnQ6IENvbW1lbnRTZXRDb21wb25lbnQ7XG5cbiAgc2V0Q29tbWVudFNldChjb21tZW50U2V0Q29tcG9uZW50KSB7XG4gICAgdGhpcy5jb21tZW50U2V0Q29tcG9uZW50ID0gY29tbWVudFNldENvbXBvbmVudDtcbiAgfVxuXG4gIG9uQ29tbWVudENoYW5nZShjaGFuZ2VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy51bnNhdmVkQ2hhbmdlcy5uZXh0KGNoYW5nZXMpO1xuICB9XG5cbiAgZ2V0VW5zYXZlZENoYW5nZXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudW5zYXZlZENoYW5nZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBoYXNVbnNhdmVkQ29tbWVudHMoYW5ub3RhdGlvbjogQW5ub3RhdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmIChhbm5vdGF0aW9uLmNvbW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSB0aGlzLmdldENvbW1lbnQoYW5ub3RhdGlvbik7XG4gICAgICByZXR1cm4gY29tbWVudC5oYXNVbnNhdmVkQ2hhbmdlcztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdXBkYXRlVW5zYXZlZENvbW1lbnRzU3RhdHVzKGFubm90YXRpb246IEFubm90YXRpb24sIGhhc1Vuc2F2ZWRDaGFuZ2VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29tbWVudCA9IHRoaXMuZ2V0Q29tbWVudChhbm5vdGF0aW9uKTtcbiAgICBjb21tZW50Lmhhc1Vuc2F2ZWRDaGFuZ2VzID0gaGFzVW5zYXZlZENoYW5nZXM7XG4gICAgdGhpcy5hbGxDb21tZW50c1NhdmVkKCk7XG4gIH1cblxuICBnZXRDb21tZW50KGFubm90YXRpb246IEFubm90YXRpb24pOiBDb21tZW50Q29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb21tZW50U2V0Q29tcG9uZW50LmNvbW1lbnRDb21wb25lbnRzXG4gICAgICAuZmluZChjID0+IGMuY29tbWVudC5hbm5vdGF0aW9uSWQgPT09IGFubm90YXRpb24uY29tbWVudHNbMF0uYW5ub3RhdGlvbklkKTtcbiAgfVxuXG4gIHJlc2V0Q29tbWVudFNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1lbnRTZXRDb21wb25lbnQgPSBudWxsO1xuICB9XG5cbiAgYWxsQ29tbWVudHNTYXZlZCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ29tbWVudENoYW5nZSh0aGlzLmNvbW1lbnRTZXRDb21wb25lbnQuY29tbWVudENvbXBvbmVudHMuc29tZShjb21tZW50ID0+IGNvbW1lbnQuaGFzVW5zYXZlZENoYW5nZXMgPT09IHRydWUpKTtcbiAgfVxuXG4gIGNyZWF0ZU1hcmdpblRvQ29tbWVudEV2ZW50KG1hcmdpbjogYm9vbGVhbikge1xuICAgIHRoaXMubWFyZ2luVG9Db21tZW50RW1pdHRlci5uZXh0KG1hcmdpbik7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TextHighlightDirective {
4
+ constructor(element) {
5
+ this.element = element;
6
+ }
7
+ ngAfterViewChecked() {
8
+ if (this.textToHighlight) {
9
+ this.highlightInputText(this.textToHighlight);
10
+ }
11
+ }
12
+ highlightInputText(textToHighlight) {
13
+ this.resetHighlight();
14
+ this.textToHighlight = textToHighlight;
15
+ const searchPattern = new RegExp(textToHighlight, 'gi');
16
+ const hostElement = this.element.nativeElement;
17
+ if (hostElement.innerHTML.match(searchPattern)) {
18
+ hostElement.innerHTML = hostElement.innerHTML
19
+ .replace(searchPattern, this.highlightPattern('$&'));
20
+ }
21
+ this.textToHighlight = undefined;
22
+ }
23
+ resetHighlight() {
24
+ const hostElement = this.element.nativeElement;
25
+ const searchPattern = new RegExp(this.highlightPattern('(.*?)'), 'gi');
26
+ while (hostElement.innerHTML.match(searchPattern)) {
27
+ const matchGroups = searchPattern.exec(hostElement.innerHTML);
28
+ if (matchGroups) {
29
+ hostElement.innerHTML = hostElement.innerHTML.replace(matchGroups[0], matchGroups[1]);
30
+ }
31
+ }
32
+ }
33
+ highlightPattern(dynamicText) {
34
+ return '<span class="mvTextHighlight">' + dynamicText + '</span>';
35
+ }
36
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextHighlightDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
37
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TextHighlightDirective, selector: "[mvTextHighlight]", inputs: { textToHighlight: "textToHighlight" }, ngImport: i0 }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextHighlightDirective, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ selector: '[mvTextHighlight]'
43
+ }]
44
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { textToHighlight: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1oaWdobGlnaHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC90ZXh0LWhpZ2hsaWdodC90ZXh0LWhpZ2hsaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUsvRSxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO0lBQUcsQ0FBQztJQUV4RCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQXVCO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxNQUFNLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDL0MsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQy9DLFdBQVcsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVM7aUJBQzFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDL0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5RCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixXQUFXLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUMxQyxPQUFPLGdDQUFnQyxHQUFHLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFDcEUsQ0FBQztrSUFyQ1Usc0JBQXNCO3NIQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7K0VBR1UsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW212VGV4dEhpZ2hsaWdodF0nXG59KVxuZXhwb3J0IGNsYXNzIFRleHRIaWdobGlnaHREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcblxuICBASW5wdXQoKSB0ZXh0VG9IaWdobGlnaHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZXh0VG9IaWdobGlnaHQpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0SW5wdXRUZXh0KHRoaXMudGV4dFRvSGlnaGxpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBoaWdobGlnaHRJbnB1dFRleHQodGV4dFRvSGlnaGxpZ2h0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc2V0SGlnaGxpZ2h0KCk7XG4gICAgdGhpcy50ZXh0VG9IaWdobGlnaHQgPSB0ZXh0VG9IaWdobGlnaHQ7XG4gICAgY29uc3Qgc2VhcmNoUGF0dGVybiA9IG5ldyBSZWdFeHAodGV4dFRvSGlnaGxpZ2h0LCAnZ2knKTtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChob3N0RWxlbWVudC5pbm5lckhUTUwubWF0Y2goc2VhcmNoUGF0dGVybikpIHtcbiAgICAgIGhvc3RFbGVtZW50LmlubmVySFRNTCA9IGhvc3RFbGVtZW50LmlubmVySFRNTFxuICAgICAgICAucmVwbGFjZShzZWFyY2hQYXR0ZXJuLCB0aGlzLmhpZ2hsaWdodFBhdHRlcm4oJyQmJykpO1xuICAgIH1cbiAgICB0aGlzLnRleHRUb0hpZ2hsaWdodCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlc2V0SGlnaGxpZ2h0KCkge1xuICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2VhcmNoUGF0dGVybiA9IG5ldyBSZWdFeHAodGhpcy5oaWdobGlnaHRQYXR0ZXJuKCcoLio/KScpLCAnZ2knKTtcbiAgICB3aGlsZSAoaG9zdEVsZW1lbnQuaW5uZXJIVE1MLm1hdGNoKHNlYXJjaFBhdHRlcm4pKSB7XG4gICAgICBjb25zdCBtYXRjaEdyb3VwcyA9IHNlYXJjaFBhdHRlcm4uZXhlYyhob3N0RWxlbWVudC5pbm5lckhUTUwpO1xuICAgICAgaWYgKG1hdGNoR3JvdXBzKSB7XG4gICAgICAgIGhvc3RFbGVtZW50LmlubmVySFRNTCA9IGhvc3RFbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKG1hdGNoR3JvdXBzWzBdLCBtYXRjaEdyb3Vwc1sxXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHRQYXR0ZXJuKGR5bmFtaWNUZXh0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gJzxzcGFuIGNsYXNzPVwibXZUZXh0SGlnaGxpZ2h0XCI+JyArIGR5bmFtaWNUZXh0ICsgJzwvc3Bhbj4nO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TextareaAutoExpandDirective {
4
+ constructor(el) {
5
+ this.el = el;
6
+ }
7
+ ngAfterContentChecked() {
8
+ this.adjustHeight();
9
+ }
10
+ onMouseDown() {
11
+ this.adjustHeight();
12
+ }
13
+ adjustHeight() {
14
+ const nativeElement = this.el.nativeElement;
15
+ nativeElement.style.overflow = 'hidden';
16
+ nativeElement.style.height = 'auto';
17
+ nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';
18
+ }
19
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaAutoExpandDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TextareaAutoExpandDirective, selector: "[mvTextAreaAutoExpand]", host: { listeners: { "input": "onMouseDown()" } }, ngImport: i0 }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaAutoExpandDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: '[mvTextAreaAutoExpand]'
26
+ }]
27
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onMouseDown: [{
28
+ type: HostListener,
29
+ args: ['input']
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtYXV0by1leHBhbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC90ZXh0YXJlYS1hdXRvLWV4cGFuZC90ZXh0YXJlYS1hdXRvLWV4cGFuZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt6RixNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQ2xDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFc0IsV0FBVztRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM1QyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDeEMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNyRSxDQUFDO2tJQWxCVSwyQkFBMkI7c0hBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQzsrRUFVd0IsV0FBVztzQkFBakMsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW212VGV4dEFyZWFBdXRvRXhwYW5kXSdcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFBdXRvRXhwYW5kRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpIG9uTW91c2VEb3duKCkge1xuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gIH1cblxuICBhZGp1c3RIZWlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBuYXRpdmVFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgbmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgbmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBuYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIDUgKyAncHgnO1xuICB9XG5cbn1cbiJdfQ==