@hmcts/media-viewer 4.0.1 → 4.0.2

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 (236) hide show
  1. package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
  2. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
  3. package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +5 -5
  4. package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
  5. package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
  6. package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
  7. package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
  8. package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +86 -0
  9. package/{esm2022 → esm2020}/lib/annotations/annotations.module.mjs +61 -61
  10. package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +177 -0
  11. package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
  12. package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
  13. package/{esm2022 → esm2020}/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +5 -5
  14. package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
  15. package/{esm2022 → esm2020}/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +5 -5
  16. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +54 -0
  17. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
  18. package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
  19. package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +123 -0
  20. package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +120 -0
  21. package/{esm2022 → esm2020}/lib/annotations/pipes/date/date.pipe.mjs +4 -4
  22. package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
  23. package/{esm2022 → esm2020}/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +4 -4
  24. package/{esm2022 → esm2020}/lib/annotations/services/annotation-api/annotation-api.service.mjs +5 -5
  25. package/{esm2022 → esm2020}/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +5 -5
  26. package/{esm2022 → esm2020}/lib/annotations/services/tags/tags.services.mjs +5 -5
  27. package/esm2020/lib/annotations/tags/tags.component.mjs +53 -0
  28. package/{esm2022 → esm2020}/lib/bookmark/components/bookmark-icons.component.mjs +5 -5
  29. package/{esm2022 → esm2020}/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +5 -5
  30. package/esm2020/lib/icp/icp-follower.service.mjs +60 -0
  31. package/esm2020/lib/icp/icp-presenter.service.mjs +55 -0
  32. package/esm2020/lib/icp/icp-session-api.service.mjs +21 -0
  33. package/esm2020/lib/icp/icp-update.service.mjs +65 -0
  34. package/{esm2022 → esm2020}/lib/icp/icp.interfaces.mjs +1 -1
  35. package/esm2020/lib/icp/icp.service.mjs +95 -0
  36. package/{esm2022 → esm2020}/lib/icp/participants-list/participants-list.component.mjs +5 -5
  37. package/esm2020/lib/icp/socket.service.mjs +118 -0
  38. package/esm2020/lib/media-viewer.component.mjs +245 -0
  39. package/{esm2022 → esm2020}/lib/media-viewer.module.mjs +55 -55
  40. package/{esm2022 → esm2020}/lib/print.service.mjs +4 -4
  41. package/esm2020/lib/redaction/components/redaction.component.mjs +91 -0
  42. package/{esm2022 → esm2020}/lib/redaction/services/redaction-api.service.mjs +5 -5
  43. package/{esm2022 → esm2020}/lib/shared/gov-uk-date/gov-uk-date.component.mjs +4 -4
  44. package/{esm2022 → esm2020}/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +7 -7
  45. package/{esm2022 → esm2020}/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +6 -6
  46. package/{esm2022 → esm2020}/lib/shared/gov-uk-label/gov-uk-label.component.mjs +7 -7
  47. package/{esm2022 → esm2020}/lib/shared/shared.module.mjs +19 -19
  48. package/esm2020/lib/shared/util/helpers/html-templates.helper.mjs +18 -0
  49. package/{esm2022 → esm2020}/lib/shared/util/services/number.helper.service.mjs +5 -5
  50. package/esm2020/lib/store/actions/icp.actions.mjs +56 -0
  51. package/esm2020/lib/store/bookmarks-store-utils.mjs +49 -0
  52. package/esm2020/lib/store/effects/annotation.effects.mjs +51 -0
  53. package/{esm2022 → esm2020}/lib/store/effects/bookmarks.effects.mjs +5 -5
  54. package/{esm2022 → esm2020}/lib/store/effects/document.effects.mjs +5 -5
  55. package/esm2020/lib/store/effects/icp.effects.mjs +26 -0
  56. package/{esm2022 → esm2020}/lib/store/effects/redaction.effects.mjs +5 -5
  57. package/esm2020/lib/store/reducers/annotations.reducer.mjs +208 -0
  58. package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +116 -0
  59. package/esm2020/lib/store/reducers/document.reducer.mjs +135 -0
  60. package/esm2020/lib/store/reducers/icp.reducer.mjs +56 -0
  61. package/esm2020/lib/store/reducers/redaction.reducer.mjs +116 -0
  62. package/esm2020/lib/store/reducers/tags.reducer.mjs +93 -0
  63. package/esm2020/lib/store/selectors/annotation.selectors.mjs +81 -0
  64. package/{esm2022 → esm2020}/lib/store/selectors/bookmark.selectors.mjs +1 -1
  65. package/{esm2022 → esm2020}/lib/store/selectors/redaction.selectors.mjs +1 -1
  66. package/esm2020/lib/store/store-utils.mjs +131 -0
  67. package/esm2020/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +44 -0
  68. package/{esm2022 → esm2020}/lib/toolbar/icp-event.service.mjs +1 -1
  69. package/{esm2022 → esm2020}/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +5 -5
  70. package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +189 -0
  71. package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +236 -0
  72. package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +68 -0
  73. package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
  74. package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  75. package/esm2020/lib/toolbar/toolbar-event.service.mjs +178 -0
  76. package/{esm2022 → esm2020}/lib/toolbar/toolbar.module.mjs +25 -25
  77. package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
  78. package/{esm2022 → esm2020}/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +5 -5
  79. package/esm2020/lib/viewers/grab-n-drag.directive.mjs +57 -0
  80. package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  81. package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
  82. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +209 -0
  83. package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +5 -5
  84. package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +236 -0
  85. package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +352 -0
  86. package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  87. package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +5 -5
  88. package/{esm2022 → esm2020}/lib/viewers/rotation-persist/rotation-api.service.mjs +5 -5
  89. package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
  90. package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  91. package/{esm2022 → esm2020}/lib/viewers/viewer-event.service.mjs +5 -5
  92. package/{esm2022 → esm2020}/lib/viewers/viewer-util.service.mjs +5 -5
  93. package/fesm2015/hmcts-media-viewer.mjs +6953 -0
  94. package/fesm2015/hmcts-media-viewer.mjs.map +1 -0
  95. package/{fesm2022 → fesm2020}/hmcts-media-viewer.mjs +462 -453
  96. package/fesm2020/hmcts-media-viewer.mjs.map +1 -0
  97. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +1 -1
  98. package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -1
  99. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +1 -1
  100. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +1 -1
  101. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +1 -1
  102. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -1
  103. package/lib/annotations/comment-set/comment/comment.component.d.ts +1 -1
  104. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -1
  105. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -1
  106. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -1
  107. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -1
  108. package/lib/annotations/comment-set/comment-set.component.d.ts +1 -1
  109. package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
  110. package/lib/annotations/tags/tags.component.d.ts +1 -1
  111. package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -1
  112. package/lib/icp/icp-session-api.service.d.ts +4 -1
  113. package/lib/icp/icp-session-api.service.d.ts.map +1 -1
  114. package/lib/icp/icp-update.service.d.ts.map +1 -1
  115. package/lib/icp/icp.interfaces.d.ts +1 -0
  116. package/lib/icp/icp.interfaces.d.ts.map +1 -1
  117. package/lib/icp/icp.service.d.ts +1 -0
  118. package/lib/icp/icp.service.d.ts.map +1 -1
  119. package/lib/icp/socket.service.d.ts +6 -6
  120. package/lib/icp/socket.service.d.ts.map +1 -1
  121. package/lib/media-viewer.component.d.ts +2 -1
  122. package/lib/media-viewer.component.d.ts.map +1 -1
  123. package/lib/redaction/components/redaction.component.d.ts +1 -1
  124. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +1 -1
  125. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
  126. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
  127. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +1 -1
  128. package/lib/store/actions/icp.actions.d.ts +8 -2
  129. package/lib/store/actions/icp.actions.d.ts.map +1 -1
  130. package/lib/store/bookmarks-store-utils.d.ts.map +1 -1
  131. package/lib/store/effects/icp.effects.d.ts.map +1 -1
  132. package/lib/toolbar/icp-event.service.d.ts +4 -4
  133. package/lib/toolbar/icp-event.service.d.ts.map +1 -1
  134. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -1
  135. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +1 -1
  136. package/lib/toolbar/toolbar-event.service.d.ts +6 -6
  137. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  138. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -1
  139. package/lib/viewers/grab-n-drag.directive.d.ts +1 -1
  140. package/lib/viewers/image-viewer/image-viewer.component.d.ts +1 -1
  141. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -1
  142. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -1
  143. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -1
  144. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +1 -1
  145. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +1 -1
  146. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +1 -1
  147. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -1
  148. package/lib/viewers/viewer-event.service.d.ts +1 -1
  149. package/lib/viewers/viewer-event.service.d.ts.map +1 -1
  150. package/package.json +23 -16
  151. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -116
  152. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -109
  153. package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
  154. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
  155. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
  156. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -118
  157. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
  158. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +0 -177
  159. package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
  160. package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
  161. package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
  162. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
  163. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -68
  164. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +0 -54
  165. package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +0 -123
  166. package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
  167. package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
  168. package/esm2022/lib/annotations/tags/tags.component.mjs +0 -53
  169. package/esm2022/lib/icp/icp-follower.service.mjs +0 -60
  170. package/esm2022/lib/icp/icp-presenter.service.mjs +0 -55
  171. package/esm2022/lib/icp/icp-session-api.service.mjs +0 -21
  172. package/esm2022/lib/icp/icp-update.service.mjs +0 -57
  173. package/esm2022/lib/icp/icp.service.mjs +0 -93
  174. package/esm2022/lib/icp/socket.service.mjs +0 -118
  175. package/esm2022/lib/media-viewer.component.mjs +0 -244
  176. package/esm2022/lib/redaction/components/redaction.component.mjs +0 -91
  177. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +0 -18
  178. package/esm2022/lib/store/actions/icp.actions.mjs +0 -56
  179. package/esm2022/lib/store/bookmarks-store-utils.mjs +0 -49
  180. package/esm2022/lib/store/effects/annotation.effects.mjs +0 -51
  181. package/esm2022/lib/store/effects/icp.effects.mjs +0 -26
  182. package/esm2022/lib/store/reducers/annotations.reducer.mjs +0 -208
  183. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +0 -116
  184. package/esm2022/lib/store/reducers/document.reducer.mjs +0 -135
  185. package/esm2022/lib/store/reducers/icp.reducer.mjs +0 -56
  186. package/esm2022/lib/store/reducers/redaction.reducer.mjs +0 -116
  187. package/esm2022/lib/store/reducers/tags.reducer.mjs +0 -93
  188. package/esm2022/lib/store/selectors/annotation.selectors.mjs +0 -81
  189. package/esm2022/lib/store/store-utils.mjs +0 -131
  190. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -44
  191. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -189
  192. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -236
  193. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -68
  194. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
  195. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
  196. package/esm2022/lib/toolbar/toolbar-event.service.mjs +0 -178
  197. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
  198. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +0 -57
  199. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
  200. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
  201. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -210
  202. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -236
  203. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -352
  204. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
  205. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
  206. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
  207. package/fesm2022/hmcts-media-viewer.mjs.map +0 -1
  208. /package/{esm2022 → esm2020}/hmcts-media-viewer.mjs +0 -0
  209. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-set.model.mjs +0 -0
  210. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -0
  211. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -0
  212. /package/{esm2022 → esm2020}/lib/annotations/comment-set/comment/comment.model.mjs +0 -0
  213. /package/{esm2022 → esm2020}/lib/annotations/models/api-persisted.model.mjs +0 -0
  214. /package/{esm2022 → esm2020}/lib/annotations/models/event-select.model.mjs +0 -0
  215. /package/{esm2022 → esm2020}/lib/annotations/models/tags.model.mjs +0 -0
  216. /package/{esm2022 → esm2020}/lib/annotations/models/user.model.mjs +0 -0
  217. /package/{esm2022 → esm2020}/lib/icp/icp.events.mjs +0 -0
  218. /package/{esm2022 → esm2020}/lib/redaction/services/redaction.model.mjs +0 -0
  219. /package/{esm2022 → esm2020}/lib/store/actions/annotation.actions.mjs +0 -0
  220. /package/{esm2022 → esm2020}/lib/store/actions/bookmark.actions.mjs +0 -0
  221. /package/{esm2022 → esm2020}/lib/store/actions/document.actions.mjs +0 -0
  222. /package/{esm2022 → esm2020}/lib/store/actions/redaction.actions.mjs +0 -0
  223. /package/{esm2022 → esm2020}/lib/store/actions/tag.actions.mjs +0 -0
  224. /package/{esm2022 → esm2020}/lib/store/effects/index.mjs +0 -0
  225. /package/{esm2022 → esm2020}/lib/store/models/bookmarks.interface.mjs +0 -0
  226. /package/{esm2022 → esm2020}/lib/store/models/filters.interface.mjs +0 -0
  227. /package/{esm2022 → esm2020}/lib/store/reducers/reducers.mjs +0 -0
  228. /package/{esm2022 → esm2020}/lib/store/selectors/document.selectors.mjs +0 -0
  229. /package/{esm2022 → esm2020}/lib/store/selectors/icp.selectors.mjs +0 -0
  230. /package/{esm2022 → esm2020}/lib/store/selectors/tag.selectors.mjs +0 -0
  231. /package/{esm2022 → esm2020}/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -0
  232. /package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -0
  233. /package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -0
  234. /package/{esm2022 → esm2020}/lib/viewers/rotation-persist/rotation.model.mjs +0 -0
  235. /package/{esm2022 → esm2020}/lib/viewers/viewer-exception.model.mjs +0 -0
  236. /package/{esm2022 → esm2020}/public_api.mjs +0 -0
@@ -0,0 +1,177 @@
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 * as i0 from "@angular/core";
5
+ import * as i1 from "@ngrx/store";
6
+ import * as i2 from "./comment.service";
7
+ import * as i3 from "../../services/tags/tags.services";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@angular/forms";
10
+ import * as i6 from "./text-highlight/text-highlight.directive";
11
+ import * as i7 from "./textarea-auto-expand/textarea-auto-expand.directive";
12
+ import * as i8 from "../../tags/tags.component";
13
+ import * as i9 from "rpx-xui-translation";
14
+ import * as i10 from "../../pipes/date/date.pipe";
15
+ export class CommentComponent {
16
+ constructor(store, commentService, tagsServices) {
17
+ this.store = store;
18
+ this.commentService = commentService;
19
+ this.tagsServices = tagsServices;
20
+ this.CHAR_LIMIT = 5000;
21
+ this.totalPrevPagesHeight = 0;
22
+ this.hasUnsavedChanges = false;
23
+ this.commentClick = new EventEmitter();
24
+ this.renderComments = new EventEmitter();
25
+ this.delete = new EventEmitter();
26
+ this.updated = new EventEmitter();
27
+ this.changes = new EventEmitter();
28
+ this.rotate = 0;
29
+ this.zoom = 1;
30
+ }
31
+ ngOnInit() {
32
+ this.subscriptions = this.store.select(fromSelector.getComponentSearchText)
33
+ .pipe(distinctUntilChanged()).subscribe(searchString => this.searchString = searchString);
34
+ this.reRenderComments();
35
+ this.marginToComment$ = this.commentService.marginToCommentEmitter.asObservable();
36
+ }
37
+ ngAfterContentInit() {
38
+ if (this.tagItems && this.tagItems.length) {
39
+ this.tagsServices.updateTagItems(this.tagItems, this._comment.annotationId);
40
+ }
41
+ }
42
+ ngOnDestroy() {
43
+ this.subscriptions.unsubscribe();
44
+ }
45
+ set comment(comment) {
46
+ this._comment = { ...comment };
47
+ this.page = this._comment.page;
48
+ this.lastUpdate = comment.lastModifiedDate ? comment.lastModifiedDate : comment.createdDate;
49
+ this.author = comment.createdByDetails;
50
+ this.createdBy = comment.createdBy;
51
+ this.editor = comment.lastModifiedByDetails;
52
+ this.originalComment = comment.content;
53
+ this.fullComment = this.originalComment;
54
+ this.selected = this._comment.selected;
55
+ this._editable = this._comment.editable;
56
+ this.tagItems = this._comment.tags;
57
+ const pageMarginBottom = 10;
58
+ this.totalPrevPagesHeight = 0;
59
+ for (let i = 0; i < this.page - 1; i++) {
60
+ const height = this._comment.pages[i + 1] ? this._comment.pages[i + 1].styles.height : undefined;
61
+ if (height) {
62
+ this.totalPrevPagesHeight += height + pageMarginBottom;
63
+ }
64
+ }
65
+ }
66
+ get comment() {
67
+ return this._comment;
68
+ }
69
+ set annotation(annotation) {
70
+ this._rectangle = annotation.rectangles
71
+ .reduce((prev, current) => prev.y < current.y ? prev : current);
72
+ const actualHeight = this._comment.pages[this.page].styles.height / this.zoom;
73
+ switch (this.rotate) {
74
+ case 90:
75
+ this.rectTop = this._rectangle.x;
76
+ break;
77
+ case 180:
78
+ this.rectTop = actualHeight - (this._rectangle.y + this._rectangle.height);
79
+ break;
80
+ case 270:
81
+ this.rectTop = actualHeight - (this._rectangle.x + this._rectangle.width);
82
+ break;
83
+ default: this.rectTop = this._rectangle.y;
84
+ }
85
+ this.rectLeft = this._rectangle.x;
86
+ }
87
+ get editable() {
88
+ return this._editable;
89
+ }
90
+ onCommentChange(updatedComment) {
91
+ this.hasUnsavedChanges =
92
+ this.originalComment.substring(0, this.CHAR_LIMIT) !== updatedComment.substring(0, this.CHAR_LIMIT);
93
+ this.commentService.onCommentChange(this.hasUnsavedChanges);
94
+ }
95
+ deleteOrCancel() {
96
+ if (!this.editable) {
97
+ this.delete.emit(this._comment);
98
+ }
99
+ else {
100
+ this.hasUnsavedChanges = false;
101
+ this._editable = false;
102
+ this.fullComment = this.originalComment;
103
+ this.changes.emit(false);
104
+ if (!this.author && !this.fullComment) {
105
+ this.delete.emit(this._comment);
106
+ }
107
+ }
108
+ }
109
+ editOrSave() {
110
+ if (!this.editable) {
111
+ this._editable = true;
112
+ }
113
+ else {
114
+ this._comment.content = this.fullComment.substring(0, this.CHAR_LIMIT);
115
+ const tags = this.tagsServices.getNewTags(this._comment.annotationId);
116
+ const payload = {
117
+ comment: this._comment,
118
+ tags
119
+ };
120
+ this.updated.emit(payload);
121
+ this.hasUnsavedChanges = false;
122
+ this._editable = false;
123
+ this.changes.emit(false);
124
+ }
125
+ }
126
+ onCommentClick() {
127
+ if (!this.selected) {
128
+ this.selected = true;
129
+ this._editable = false;
130
+ this.commentClick.emit({ annotationId: this._comment.annotationId, editable: this._editable, selected: true });
131
+ }
132
+ }
133
+ reRenderComments() {
134
+ this.renderComments.emit(this._comment);
135
+ }
136
+ get commentTop() {
137
+ return this.totalPrevPagesHeight + (this.rectTop * this.zoom);
138
+ }
139
+ get height() {
140
+ return this.form.nativeElement.getBoundingClientRect().height / this.zoom;
141
+ }
142
+ }
143
+ /** @nocollapse */ CommentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentComponent, deps: [{ token: i1.Store }, { token: i2.CommentService }, { token: i3.TagsServices }], target: i0.ɵɵFactoryTarget.Component });
144
+ /** @nocollapse */ CommentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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)=\"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
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentComponent, decorators: [{
146
+ type: Component,
147
+ 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)=\"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" }]
148
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.CommentService }, { type: i3.TagsServices }]; }, propDecorators: { commentClick: [{
149
+ type: Output
150
+ }], renderComments: [{
151
+ type: Output
152
+ }], delete: [{
153
+ type: Output
154
+ }], updated: [{
155
+ type: Output
156
+ }], changes: [{
157
+ type: Output
158
+ }], rotate: [{
159
+ type: Input
160
+ }], zoom: [{
161
+ type: Input
162
+ }], index: [{
163
+ type: Input
164
+ }], page: [{
165
+ type: Input
166
+ }], form: [{
167
+ type: ViewChild,
168
+ args: ['form', { static: false }]
169
+ }], editableComment: [{
170
+ type: ViewChild,
171
+ args: ['editableComment', { static: false }]
172
+ }], comment: [{
173
+ type: Input
174
+ }], annotation: [{
175
+ type: Input
176
+ }] } });
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sS0FBSyxZQUFZLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7Ozs7OztBQVE5RSxNQUFNLE9BQU8sZ0JBQWdCO0lBdUMzQixZQUNVLEtBQTBDLEVBQ2pDLGNBQThCLEVBQ3ZDLFlBQTBCO1FBRjFCLFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXhDcEMsZUFBVSxHQUFHLElBQUksQ0FBQztRQVVsQix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFJekIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBUWhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDdkQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzdDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBeUMsQ0FBQztRQUNwRSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN2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QixTQUFTOytCQUNFLGlCQUFpQjtvSkEyQmpCLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFOEIsSUFBSTtzQkFBdkMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNhLGVBQWU7c0JBQTdELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQTZCekMsT0FBTztzQkFEVixLQUFLO2dCQTZCRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbWVudH0gZnJvbSAnLi9jb21tZW50Lm1vZGVsJztcbmltcG9ydCB7VXNlcn0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXIubW9kZWwnO1xuaW1wb3J0IHtSZWN0YW5nbGV9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCB7U2VsZWN0aW9uQW5ub3RhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50LXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQge0NvbW1lbnRTZXJ2aWNlfSBmcm9tICcuL2NvbW1lbnQuc2VydmljZSc7XG5pbXBvcnQge1RhZ3NNb2RlbH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhZ3MubW9kZWwnO1xuaW1wb3J0IHtUYWdzU2VydmljZXN9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhZ3MvdGFncy5zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTdG9yZX0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21TZWxlY3RvciBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvYW5ub3RhdGlvbi5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvblNldCB9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tc2V0Lm1vZGVsJztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWFubm8tY29tbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuXG4gIENIQVJfTElNSVQgPSA1MDAwO1xuICBsYXN0VXBkYXRlOiBzdHJpbmc7XG4gIG9yaWdpbmFsQ29tbWVudDogc3RyaW5nO1xuICBmdWxsQ29tbWVudDogc3RyaW5nO1xuICBhdXRob3I6IFVzZXI7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBlZGl0b3I6IFVzZXI7XG4gIF9jb21tZW50OiBDb21tZW50O1xuICBfZWRpdGFibGU6IGJvb2xlYW47XG4gIF9yZWN0YW5nbGU7XG4gIHRvdGFsUHJldlBhZ2VzSGVpZ2h0ID0gMDtcbiAgcmVjdFRvcDtcbiAgcmVjdExlZnQ7XG4gIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIHNlYXJjaFN0cmluZzogc3RyaW5nO1xuICBwdWJsaWMgdGFnSXRlbXM6IFRhZ3NNb2RlbFtdO1xuICBtYXJnaW5Ub0NvbW1lbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+IDtcblxuXG5cbiAgQE91dHB1dCgpIGNvbW1lbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQW5ub3RhdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlbmRlckNvbW1lbnRzID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50PigpO1xuICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50PigpO1xuICBAT3V0cHV0KCkgdXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e2NvbW1lbnQ6IENvbW1lbnQsIHRhZ3M6IFRhZ3NNb2RlbFtdfT4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBJbnB1dCgpIHJvdGF0ZSA9IDA7XG4gIEBJbnB1dCgpIHpvb20gPSAxO1xuICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgnZm9ybScsIHtzdGF0aWM6IGZhbHNlfSkgZm9ybTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZWRpdGFibGVDb21tZW50Jywge3N0YXRpYzogZmFsc2V9KSBlZGl0YWJsZUNvbW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFnc1NlcnZpY2VzOiBUYWdzU2VydmljZXNcbiAgKSB7fVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gdGhpcy5zdG9yZS5zZWxlY3QoZnJvbVNlbGVjdG9yLmdldENvbXBvbmVudFNlYXJjaFRleHQpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoc2VhcmNoU3RyaW5nID0+IHRoaXMuc2VhcmNoU3RyaW5nID0gc2VhcmNoU3RyaW5nKTtcbiAgICB0aGlzLnJlUmVuZGVyQ29tbWVudHMoKTtcbiAgICB0aGlzLm1hcmdpblRvQ29tbWVudCQgPSB0aGlzLmNvbW1lbnRTZXJ2aWNlLm1hcmdpblRvQ29tbWVudEVtaXR0ZXIuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFnSXRlbXMgJiYgdGhpcy50YWdJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudGFnc1NlcnZpY2VzLnVwZGF0ZVRhZ0l0ZW1zKHRoaXMudGFnSXRlbXMsIHRoaXMuX2NvbW1lbnQuYW5ub3RhdGlvbklkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBjb21tZW50KGNvbW1lbnQ6IENvbW1lbnQpIHtcbiAgICB0aGlzLl9jb21tZW50ID0gey4uLmNvbW1lbnR9O1xuICAgIHRoaXMucGFnZSA9IHRoaXMuX2NvbW1lbnQucGFnZTtcbiAgICB0aGlzLmxhc3RVcGRhdGUgPSBjb21tZW50Lmxhc3RNb2RpZmllZERhdGUgPyBjb21tZW50Lmxhc3RNb2RpZmllZERhdGUgOiBjb21tZW50LmNyZWF0ZWREYXRlO1xuICAgIHRoaXMuYXV0aG9yID0gY29tbWVudC5jcmVhdGVkQnlEZXRhaWxzO1xuICAgIHRoaXMuY3JlYXRlZEJ5ID0gY29tbWVudC5jcmVhdGVkQnk7XG4gICAgdGhpcy5lZGl0b3IgPSBjb21tZW50Lmxhc3RNb2RpZmllZEJ5RGV0YWlscztcbiAgICB0aGlzLm9yaWdpbmFsQ29tbWVudCA9IGNvbW1lbnQuY29udGVudDtcbiAgICB0aGlzLmZ1bGxDb21tZW50ID0gdGhpcy5vcmlnaW5hbENvbW1lbnQ7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuX2NvbW1lbnQuc2VsZWN0ZWQ7XG4gICAgdGhpcy5fZWRpdGFibGUgPSB0aGlzLl9jb21tZW50LmVkaXRhYmxlO1xuICAgIHRoaXMudGFnSXRlbXMgPSB0aGlzLl9jb21tZW50LnRhZ3M7XG4gICAgY29uc3QgcGFnZU1hcmdpbkJvdHRvbSA9IDEwO1xuICAgIHRoaXMudG90YWxQcmV2UGFnZXNIZWlnaHQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYWdlIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLl9jb21tZW50LnBhZ2VzW2kgKyAxXSA/IHRoaXMuX2NvbW1lbnQucGFnZXNbaSArIDFdLnN0eWxlcy5oZWlnaHQgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoaGVpZ2h0KSB7XG4gICAgICAgIHRoaXMudG90YWxQcmV2UGFnZXNIZWlnaHQgKz0gaGVpZ2h0ICsgcGFnZU1hcmdpbkJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIGdldCBjb21tZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jb21tZW50O1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGFubm90YXRpb24oYW5ub3RhdGlvbjogQW5ub3RhdGlvbikge1xuICAgIHRoaXMuX3JlY3RhbmdsZSA9IGFubm90YXRpb24ucmVjdGFuZ2xlc1xuICAgICAgLnJlZHVjZSgocHJldiwgY3VycmVudCkgPT4gcHJldi55IDwgY3VycmVudC55ID8gcHJldiA6IGN1cnJlbnQpO1xuICAgIGNvbnN0IGFjdHVhbEhlaWdodCA9IHRoaXMuX2NvbW1lbnQucGFnZXNbdGhpcy5wYWdlXS5zdHlsZXMuaGVpZ2h0IC8gdGhpcy56b29tO1xuICAgIHN3aXRjaCAodGhpcy5yb3RhdGUpIHtcbiAgICAgIGNhc2UgOTA6IHRoaXMucmVjdFRvcCA9IHRoaXMuX3JlY3RhbmdsZS54O1xuICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE4MDogdGhpcy5yZWN0VG9wID0gYWN0dWFsSGVpZ2h0IC0gKHRoaXMuX3JlY3RhbmdsZS55ICsgdGhpcy5fcmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICBicmVhaztcbiAgICAgIGNhc2UgMjcwOiB0aGlzLnJlY3RUb3AgPSBhY3R1YWxIZWlnaHQgLSAodGhpcy5fcmVjdGFuZ2xlLnggKyB0aGlzLl9yZWN0YW5nbGUud2lkdGgpO1xuICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OiB0aGlzLnJlY3RUb3AgPSB0aGlzLl9yZWN0YW5nbGUueTtcbiAgICB9XG4gICAgdGhpcy5yZWN0TGVmdCA9IHRoaXMuX3JlY3RhbmdsZS54O1xuICB9XG5cbiAgZ2V0IGVkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcbiAgfVxuXG4gIG9uQ29tbWVudENoYW5nZSh1cGRhdGVkQ29tbWVudCkge1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPVxuICAgICAgdGhpcy5vcmlnaW5hbENvbW1lbnQuc3Vic3RyaW5nKDAsIHRoaXMuQ0hBUl9MSU1JVCkgIT09IHVwZGF0ZWRDb21tZW50LnN1YnN0cmluZygwLCB0aGlzLkNIQVJfTElNSVQpO1xuICAgIHRoaXMuY29tbWVudFNlcnZpY2Uub25Db21tZW50Q2hhbmdlKHRoaXMuaGFzVW5zYXZlZENoYW5nZXMpO1xuICB9XG5cbiAgZGVsZXRlT3JDYW5jZWwoKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRhYmxlKSB7XG4gICAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMuX2NvbW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICB0aGlzLl9lZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mdWxsQ29tbWVudCA9IHRoaXMub3JpZ2luYWxDb21tZW50O1xuICAgICAgdGhpcy5jaGFuZ2VzLmVtaXQoZmFsc2UpO1xuICAgICAgaWYgKCF0aGlzLmF1dGhvciAmJiAhdGhpcy5mdWxsQ29tbWVudCkge1xuICAgICAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMuX2NvbW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlZGl0T3JTYXZlKCkge1xuICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgdGhpcy5fZWRpdGFibGUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jb21tZW50LmNvbnRlbnQgPSB0aGlzLmZ1bGxDb21tZW50LnN1YnN0cmluZygwLCB0aGlzLkNIQVJfTElNSVQpO1xuICAgICAgY29uc3QgdGFncyA9IHRoaXMudGFnc1NlcnZpY2VzLmdldE5ld1RhZ3ModGhpcy5fY29tbWVudC5hbm5vdGF0aW9uSWQpO1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgY29tbWVudDogdGhpcy5fY29tbWVudCxcbiAgICAgICAgdGFnc1xuICAgICAgfTtcbiAgICAgIHRoaXMudXBkYXRlZC5lbWl0KHBheWxvYWQpO1xuICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgdGhpcy5fZWRpdGFibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2hhbmdlcy5lbWl0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbW1lbnRDbGljaygpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fZWRpdGFibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29tbWVudENsaWNrLmVtaXQoeyBhbm5vdGF0aW9uSWQ6IHRoaXMuX2NvbW1lbnQuYW5ub3RhdGlvbklkLCBlZGl0YWJsZTogdGhpcy5fZWRpdGFibGUsIHNlbGVjdGVkOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlUmVuZGVyQ29tbWVudHMoKSB7XG4gICAgdGhpcy5yZW5kZXJDb21tZW50cy5lbWl0KHRoaXMuX2NvbW1lbnQpO1xuICB9XG5cbiAgZ2V0IGNvbW1lbnRUb3AoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50b3RhbFByZXZQYWdlc0hlaWdodCArICh0aGlzLnJlY3RUb3AgKiB0aGlzLnpvb20pO1xuICB9XG5cblxuICBnZXQgaGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLyB0aGlzLnpvb207XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2Zvcm1cbiAgKGNsaWNrKT1cIm9uQ29tbWVudENsaWNrKClcIlxuICBjbGFzcz1cImF1aS1jb21tZW50XCJcbiAgW25nQ2xhc3NdPVwieyBzdHlsZXN0b2dnbGU6IChtYXJnaW5Ub0NvbW1lbnQkIHwgYXN5bmMpIH1cIlxuICBbc3R5bGUudG9wLnB4XT1cImNvbW1lbnRUb3BcIlxuICBbc3R5bGUuekluZGV4XT1cInNlbGVjdGVkID8gMTAwIDogMFwiXG4+XG4gIDxkaXYgaWQ9XCJkZXRhaWxzV3JhcHBlciB7eyBpbmRleCB9fVwiIGNsYXNzPVwiYXVpLWNvbW1lbnRfX2hlYWRlclwiPlxuICAgIDxzcGFuICpuZ0lmPVwiYXV0aG9yICYmICFlZGl0b3JcIiBjbGFzcz1cImF1aS1jb21tZW50X19hdXRob3JcIj5cbiAgICAgIHt7IGF1dGhvci5mb3JlbmFtZSB9fSB7eyBhdXRob3Iuc3VybmFtZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cImVkaXRvclwiIGNsYXNzPVwiYXVpLWNvbW1lbnRfX2F1dGhvclwiPlxuICAgICAge3sgZWRpdG9yLmZvcmVuYW1lIH19IHt7IGVkaXRvci5zdXJuYW1lIH19XG4gICAgPC9zcGFuPlxuICAgIDx0aW1lIFtoaWRkZW5dPVwiIXNlbGVjdGVkICYmICF0aGlzLmVkaXRhYmxlXCIgY2xhc3M9XCJhdWktY29tbWVudF9fbWV0YVwiPlxuICAgICAge3sgbGFzdFVwZGF0ZSB8IG1vbWVudERhdGUgOiBcImQgTU1NTSB5IGg6bW0gYVwiIH19XG4gICAgPC90aW1lPlxuICA8L2Rpdj5cbiAgPG12LXRhZ3NcbiAgICBbdGFnSXRlbXNdPVwidGFnSXRlbXNcIlxuICAgIFt1c2VySWRdPVwiY3JlYXRlZEJ5XCJcbiAgICBbZWRpdGFibGVdPVwiZWRpdGFibGVcIlxuICAgIFthbm5vSWRdPVwiX2NvbW1lbnQuYW5ub3RhdGlvbklkXCJcbiAgPlxuICA8L212LXRhZ3M+XG4gIDx0ZXh0YXJlYVxuICAgICpuZ0lmPVwic2VsZWN0ZWQgJiYgZWRpdGFibGVcIlxuICAgICNlZGl0YWJsZUNvbW1lbnRcbiAgICBtdlRleHRBcmVhQXV0b0V4cGFuZFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9XCJjb250ZW50XCJcbiAgICBbbWF4bGVuZ3RoXT1cIkNIQVJfTElNSVRcIlxuICAgIGNsYXNzPVwiYXVpLWNvbW1lbnRfX2NvbnRlbnQgZm9ybS1jb250cm9sIG1pbWljLWZvY3VzIGVkaXQtbW9kZSBleHBhbmRlZFwiXG4gICAgWyhuZ01vZGVsKV09XCJmdWxsQ29tbWVudFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVSZW5kZXJDb21tZW50cygpOyBvbkNvbW1lbnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgYXJpYS1sYWJlbD1cImNvbW1lbnRcIlxuICA+XG4gIDwvdGV4dGFyZWE+XG4gIDxwXG4gICAgKm5nSWY9XCIhZWRpdGFibGVcIlxuICAgIG12VGV4dEhpZ2hsaWdodFxuICAgIGNsYXNzPVwiY29tbWVudFRleHRcIlxuICAgIFt0ZXh0VG9IaWdobGlnaHRdPVwic2VhcmNoU3RyaW5nXCJcbiAgPlxuICAgIHt7IGZ1bGxDb21tZW50IH19XG4gIDwvcD5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBzZWxlY3RlZCB8fFxuICAgICAgdGhpcy5lZGl0YWJsZSB8fFxuICAgICAgKCFmdWxsQ29tbWVudC5sZW5ndGggJiYgdGFnSXRlbXMgJiYgIXRhZ0l0ZW1zLmxlbmd0aClcbiAgICBcIlxuICAgIGNsYXNzPVwiYXVpLWNvbW1lbnRfX2Zvb3RlciBjb21tZW50QnRuc1wiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cImVkaXRPclNhdmUoKVwiXG4gICAgPlxuICAgICAge3sgIWVkaXRhYmxlID8gKFwiRWRpdFwiIHwgcnB4VHJhbnNsYXRlKSA6IChcIlNhdmVcIiB8IHJweFRyYW5zbGF0ZSkgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrKT1cImRlbGV0ZU9yQ2FuY2VsKClcIlxuICAgID5cbiAgICAgIHt7ICFlZGl0YWJsZSA/IChcIkRlbGV0ZVwiIHwgcnB4VHJhbnNsYXRlKSA6IChcIkNhbmNlbFwiIHwgcnB4VHJhbnNsYXRlKSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPHNwYW4gY2xhc3M9XCJhdWktY29tbWVudF9fcHJpdmF0ZVwiPnt7IFwicHJpdmF0ZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuPC9kaXY+XG4iXX0=
@@ -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
+ }
45
+ /** @nocollapse */ CommentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
+ /** @nocollapse */ CommentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentService });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentService, decorators: [{
48
+ type: Injectable
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLNUQsd0JBQXdCO0FBRXhCLE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBR2tCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN4QywyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztLQTZDOUU7SUExQ0MsYUFBYSxDQUFDLG1CQUFtQjtRQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFzQjtRQUN2QyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsMkJBQTJCLENBQUMsVUFBc0IsRUFBRSxpQkFBMEI7UUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFzQjtRQUMvQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUI7YUFDOUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxNQUFlO1FBQ3hDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7K0hBL0NVLGNBQWM7bUlBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnRTZXRDb21wb25lbnQgfSBmcm9tICcuLi9jb21tZW50LXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbiB9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9hbm5vdGF0aW9uLm1vZGVsJztcbmltcG9ydCB0eXBlIHsgQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC5jb21wb25lbnQnO1xuXG4vLyBUT0RPOiByZXBsYWNlIGJ5IE5nUnhcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21tZW50U2VydmljZSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVuc2F2ZWRDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG1hcmdpblRvQ29tbWVudEVtaXR0ZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgY29tbWVudFNldENvbXBvbmVudDogQ29tbWVudFNldENvbXBvbmVudDtcblxuICBzZXRDb21tZW50U2V0KGNvbW1lbnRTZXRDb21wb25lbnQpIHtcbiAgICB0aGlzLmNvbW1lbnRTZXRDb21wb25lbnQgPSBjb21tZW50U2V0Q29tcG9uZW50O1xuICB9XG5cbiAgb25Db21tZW50Q2hhbmdlKGNoYW5nZXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnVuc2F2ZWRDaGFuZ2VzLm5leHQoY2hhbmdlcyk7XG4gIH1cblxuICBnZXRVbnNhdmVkQ2hhbmdlcygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy51bnNhdmVkQ2hhbmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGhhc1Vuc2F2ZWRDb21tZW50cyhhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKGFubm90YXRpb24uY29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29tbWVudCA9IHRoaXMuZ2V0Q29tbWVudChhbm5vdGF0aW9uKTtcbiAgICAgIHJldHVybiBjb21tZW50Lmhhc1Vuc2F2ZWRDaGFuZ2VzO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB1cGRhdGVVbnNhdmVkQ29tbWVudHNTdGF0dXMoYW5ub3RhdGlvbjogQW5ub3RhdGlvbiwgaGFzVW5zYXZlZENoYW5nZXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjb21tZW50ID0gdGhpcy5nZXRDb21tZW50KGFubm90YXRpb24pO1xuICAgIGNvbW1lbnQuaGFzVW5zYXZlZENoYW5nZXMgPSBoYXNVbnNhdmVkQ2hhbmdlcztcbiAgICB0aGlzLmFsbENvbW1lbnRzU2F2ZWQoKTtcbiAgfVxuXG4gIGdldENvbW1lbnQoYW5ub3RhdGlvbjogQW5ub3RhdGlvbik6IENvbW1lbnRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLmNvbW1lbnRTZXRDb21wb25lbnQuY29tbWVudENvbXBvbmVudHNcbiAgICAgIC5maW5kKGMgPT4gYy5jb21tZW50LmFubm90YXRpb25JZCA9PT0gYW5ub3RhdGlvbi5jb21tZW50c1swXS5hbm5vdGF0aW9uSWQpO1xuICB9XG5cbiAgcmVzZXRDb21tZW50U2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY29tbWVudFNldENvbXBvbmVudCA9IG51bGw7XG4gIH1cblxuICBhbGxDb21tZW50c1NhdmVkKCk6IHZvaWQge1xuICAgIHRoaXMub25Db21tZW50Q2hhbmdlKHRoaXMuY29tbWVudFNldENvbXBvbmVudC5jb21tZW50Q29tcG9uZW50cy5zb21lKGNvbW1lbnQgPT4gY29tbWVudC5oYXNVbnNhdmVkQ2hhbmdlcyA9PT0gdHJ1ZSkpO1xuICB9XG5cbiAgY3JlYXRlTWFyZ2luVG9Db21tZW50RXZlbnQobWFyZ2luOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYXJnaW5Ub0NvbW1lbnRFbWl0dGVyLm5leHQobWFyZ2luKTtcbiAgfVxufVxuIl19
@@ -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
+ }
37
+ /** @nocollapse */ TextHighlightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextHighlightDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
38
+ /** @nocollapse */ TextHighlightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TextHighlightDirective, selector: "[mvTextHighlight]", inputs: { textToHighlight: "textToHighlight" }, ngImport: i0 });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextHighlightDirective, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ selector: '[mvTextHighlight]'
43
+ }]
44
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { textToHighlight: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1oaWdobGlnaHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC90ZXh0LWhpZ2hsaWdodC90ZXh0LWhpZ2hsaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUsvRSxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO0lBQUcsQ0FBQztJQUV4RCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsZUFBdUI7UUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzlDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVM7aUJBQzFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQy9DLE1BQU0sYUFBYSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RSxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlELElBQUksV0FBVyxFQUFFO2dCQUNmLFdBQVcsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBbUI7UUFDMUMsT0FBTyxnQ0FBZ0MsR0FBRyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQ3BFLENBQUM7O3VJQXJDVSxzQkFBc0I7MkhBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO2lHQUdVLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttdlRleHRIaWdobGlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBUZXh0SGlnaGxpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG5cbiAgQElucHV0KCkgdGV4dFRvSGlnaGxpZ2h0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGV4dFRvSGlnaGxpZ2h0KSB7XG4gICAgICB0aGlzLmhpZ2hsaWdodElucHV0VGV4dCh0aGlzLnRleHRUb0hpZ2hsaWdodCk7XG4gICAgfVxuICB9XG5cbiAgaGlnaGxpZ2h0SW5wdXRUZXh0KHRleHRUb0hpZ2hsaWdodDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXNldEhpZ2hsaWdodCgpO1xuICAgIHRoaXMudGV4dFRvSGlnaGxpZ2h0ID0gdGV4dFRvSGlnaGxpZ2h0O1xuICAgIGNvbnN0IHNlYXJjaFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRleHRUb0hpZ2hsaWdodCwgJ2dpJyk7XG4gICAgY29uc3QgaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoaG9zdEVsZW1lbnQuaW5uZXJIVE1MLm1hdGNoKHNlYXJjaFBhdHRlcm4pKSB7XG4gICAgICBob3N0RWxlbWVudC5pbm5lckhUTUwgPSBob3N0RWxlbWVudC5pbm5lckhUTUxcbiAgICAgICAgLnJlcGxhY2Uoc2VhcmNoUGF0dGVybiwgdGhpcy5oaWdobGlnaHRQYXR0ZXJuKCckJicpKTtcbiAgICB9XG4gICAgdGhpcy50ZXh0VG9IaWdobGlnaHQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICByZXNldEhpZ2hsaWdodCgpIHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHNlYXJjaFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuaGlnaGxpZ2h0UGF0dGVybignKC4qPyknKSwgJ2dpJyk7XG4gICAgd2hpbGUgKGhvc3RFbGVtZW50LmlubmVySFRNTC5tYXRjaChzZWFyY2hQYXR0ZXJuKSkge1xuICAgICAgY29uc3QgbWF0Y2hHcm91cHMgPSBzZWFyY2hQYXR0ZXJuLmV4ZWMoaG9zdEVsZW1lbnQuaW5uZXJIVE1MKTtcbiAgICAgIGlmIChtYXRjaEdyb3Vwcykge1xuICAgICAgICBob3N0RWxlbWVudC5pbm5lckhUTUwgPSBob3N0RWxlbWVudC5pbm5lckhUTUwucmVwbGFjZShtYXRjaEdyb3Vwc1swXSwgbWF0Y2hHcm91cHNbMV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0UGF0dGVybihkeW5hbWljVGV4dDogc3RyaW5nKSB7XG4gICAgcmV0dXJuICc8c3BhbiBjbGFzcz1cIm12VGV4dEhpZ2hsaWdodFwiPicgKyBkeW5hbWljVGV4dCArICc8L3NwYW4+JztcbiAgfVxufVxuIl19
@@ -16,16 +16,16 @@ export class TextareaAutoExpandDirective {
16
16
  nativeElement.style.height = 'auto';
17
17
  nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';
18
18
  }
19
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: TextareaAutoExpandDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.8", type: TextareaAutoExpandDirective, selector: "[mvTextAreaAutoExpand]", host: { listeners: { "input": "onMouseDown()" } }, ngImport: i0 }); }
21
19
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: TextareaAutoExpandDirective, decorators: [{
20
+ /** @nocollapse */ TextareaAutoExpandDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextareaAutoExpandDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
21
+ /** @nocollapse */ TextareaAutoExpandDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TextareaAutoExpandDirective, selector: "[mvTextAreaAutoExpand]", host: { listeners: { "input": "onMouseDown()" } }, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextareaAutoExpandDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: '[mvTextAreaAutoExpand]'
26
26
  }]
27
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onMouseDown: [{
27
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onMouseDown: [{
28
28
  type: HostListener,
29
29
  args: ['input']
30
30
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtYXV0by1leHBhbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC90ZXh0YXJlYS1hdXRvLWV4cGFuZC90ZXh0YXJlYS1hdXRvLWV4cGFuZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt6RixNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQ2xDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFc0IsV0FBVztRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM1QyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDeEMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNyRSxDQUFDO2lJQWxCVSwyQkFBMkI7cUhBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQzsrRUFVd0IsV0FBVztzQkFBakMsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW212VGV4dEFyZWFBdXRvRXhwYW5kXSdcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFBdXRvRXhwYW5kRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpIG9uTW91c2VEb3duKCkge1xuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gIH1cblxuICBhZGp1c3RIZWlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBuYXRpdmVFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgbmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgbmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBuYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIDUgKyAncHgnO1xuICB9XG5cbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtYXV0by1leHBhbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC90ZXh0YXJlYS1hdXRvLWV4cGFuZC90ZXh0YXJlYS1hdXRvLWV4cGFuZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt6RixNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQ2xDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFc0IsV0FBVztRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM1QyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDeEMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNyRSxDQUFDOzs0SUFsQlUsMkJBQTJCO2dJQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQztpR0FVd0IsV0FBVztzQkFBakMsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW212VGV4dEFyZWFBdXRvRXhwYW5kXSdcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFBdXRvRXhwYW5kRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpIG9uTW91c2VEb3duKCkge1xuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gIH1cblxuICBhZGp1c3RIZWlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBuYXRpdmVFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgbmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgbmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBuYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIDUgKyAncHgnO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,91 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import * as fromActions from '../../../store/actions/annotation.actions';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngrx/store";
5
+ import * as i2 from "../../../toolbar/toolbar-event.service";
6
+ import * as i3 from "@angular/router";
7
+ export class CommentsNavigateComponent {
8
+ constructor(store, toolbarEvents) {
9
+ this.store = store;
10
+ this.toolbarEvents = toolbarEvents;
11
+ this.autoSelect = false;
12
+ this.navigationList = [];
13
+ this.index = 0;
14
+ }
15
+ ngOnChanges(changes) {
16
+ if (changes.annotationList) {
17
+ this.initNavigationList();
18
+ }
19
+ }
20
+ initNavigationList() {
21
+ this.index = 0;
22
+ this.navigationList = [...this.annotationList || []]
23
+ .map(annotation => ({
24
+ content: annotation.comments[0].content,
25
+ annotationId: annotation.id,
26
+ page: annotation.page,
27
+ rectangle: this.upperRectangle(annotation.rectangles),
28
+ }))
29
+ .sort(this.sortComments);
30
+ if (this.autoSelect) {
31
+ this.toolbarEvents.setPage(Number.parseInt(this.navigationList[0].page, 0));
32
+ this.store.dispatch(new fromActions.SelectedAnnotation({
33
+ annotationId: this.navigationList[0].annotationId,
34
+ editable: false,
35
+ selected: true
36
+ }));
37
+ }
38
+ }
39
+ sortComments(mappedCommentA, mappedCommentB) {
40
+ if (mappedCommentA.page !== mappedCommentB.page) {
41
+ return mappedCommentA.page - mappedCommentB.page;
42
+ }
43
+ else {
44
+ const rectA = mappedCommentA.rectangle;
45
+ const rectB = mappedCommentB.rectangle;
46
+ if (rectA.y !== rectB.y) {
47
+ return rectA.y - rectB.y;
48
+ }
49
+ else {
50
+ return rectA.x - rectB.x;
51
+ }
52
+ }
53
+ }
54
+ nextItem() {
55
+ this.index += 1;
56
+ if (this.index === this.annotationList.length) {
57
+ this.index = 0;
58
+ }
59
+ this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));
60
+ this.store.dispatch(new fromActions.SelectedAnnotation({
61
+ annotationId: this.navigationList[this.index].annotationId, editable: false, selected: true
62
+ }));
63
+ }
64
+ prevItem() {
65
+ this.index -= 1;
66
+ if (this.index < 0) {
67
+ this.index = this.navigationList.length - 1;
68
+ }
69
+ this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));
70
+ this.store.dispatch(new fromActions.SelectedAnnotation({
71
+ annotationId: this.navigationList[this.index].annotationId,
72
+ editable: false,
73
+ selected: true
74
+ }));
75
+ }
76
+ upperRectangle(rectangles) {
77
+ [...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);
78
+ return { x: rectangles[0].x, y: rectangles[0].y };
79
+ }
80
+ }
81
+ /** @nocollapse */ CommentsNavigateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentsNavigateComponent, deps: [{ token: i1.Store }, { token: i2.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component });
82
+ /** @nocollapse */ CommentsNavigateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentsNavigateComponent, selector: "mv-comments-navigate", inputs: { annotationList: "annotationList", autoSelect: "autoSelect" }, usesOnChanges: true, ngImport: i0, template: "<p class=\"comment-search\">\n <span class=\"comment-search__item\">\n Showing {{ index + 1 }} of {{ navigationList.length }}\n </span>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Previous comment\"\n (click)=\"prevItem()\">Prev</a>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Next comment'\"\n (click)=\"nextItem()\">Next</a>\n</p>\n", dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentsNavigateComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'mv-comments-navigate', encapsulation: ViewEncapsulation.None, template: "<p class=\"comment-search\">\n <span class=\"comment-search__item\">\n Showing {{ index + 1 }} of {{ navigationList.length }}\n </span>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Previous comment\"\n (click)=\"prevItem()\">Prev</a>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Next comment'\"\n (click)=\"nextItem()\">Next</a>\n</p>\n" }]
86
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ToolbarEventService }]; }, propDecorators: { annotationList: [{
87
+ type: Input
88
+ }], autoSelect: [{
89
+ type: Input
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMtbmF2aWdhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1uYXZpZ2F0ZS9jb21tZW50cy1uYXZpZ2F0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50LW5hdmlnYXRlL2NvbW1lbnRzLW5hdmlnYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs5RixPQUFPLEtBQUssV0FBVyxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQVF6RSxNQUFNLE9BQU8seUJBQXlCO0lBUXBDLFlBQW9CLEtBQTBDLEVBQWtCLGFBQWtDO1FBQTlGLFVBQUssR0FBTCxLQUFLLENBQXFDO1FBQWtCLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUx6RyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRTVCLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLFVBQUssR0FBRyxDQUFDLENBQUM7SUFFMkcsQ0FBQztJQUV0SCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO2FBQ2pELEdBQUcsQ0FBQyxVQUFVLENBQUMs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QVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWTtZQUMxRCxRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQXVCO1FBQ3BDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwRCxDQUFDOzswSUFoRlUseUJBQXlCOzhIQUF6Qix5QkFBeUIseUpDYnRDLCtaQWFBOzRGREFhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUk7OEhBSXJCLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQge1N0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFjdGlvbnMgZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHtUb29sYmFyRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWNvbW1lbnRzLW5hdmlnYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnRzLW5hdmlnYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50c05hdmlnYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBwdWJsaWMgYW5ub3RhdGlvbkxpc3Q6IEFubm90YXRpb25bXTtcbiAgQElucHV0KCkgYXV0b1NlbGVjdCA9IGZhbHNlO1xuXG4gIG5hdmlnYXRpb25MaXN0OiBhbnlbXSA9IFtdO1xuICBpbmRleCA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5hbm5vdGF0aW9uTGlzdCkge1xuICAgICAgdGhpcy5pbml0TmF2aWdhdGlvbkxpc3QoKTtcbiAgICB9XG4gIH1cblxuICBpbml0TmF2aWdhdGlvbkxpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5pbmRleCA9IDA7XG4gICAgdGhpcy5uYXZpZ2F0aW9uTGlzdCA9IFsuLi50aGlzLmFubm90YXRpb25MaXN0IHx8IFtdXVxuICAgICAgLm1hcChhbm5vdGF0aW9uID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IGFubm90YXRpb24uY29tbWVudHNbMF0uY29udGVudCxcbiAgICAgICAgYW5ub3RhdGlvbklkOiBhbm5vdGF0aW9uLmlkLFxuICAgICAgICBwYWdlOiBhbm5vdGF0aW9uLnBhZ2UsXG4gICAgICAgIHJlY3RhbmdsZTogdGhpcy51cHBlclJlY3RhbmdsZShhbm5vdGF0aW9uLnJlY3RhbmdsZXMpLFxuICAgICAgfSkpXG4gICAgICAuc29ydCh0aGlzLnNvcnRDb21tZW50cyk7XG5cbiAgICBpZiAodGhpcy5hdXRvU2VsZWN0KSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0UGFnZShOdW1iZXIucGFyc2VJbnQodGhpcy5uYXZpZ2F0aW9uTGlzdFswXS5wYWdlLCAwKSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TZWxlY3RlZEFubm90YXRpb24oe1xuICAgICAgICBhbm5vdGF0aW9uSWQ6IHRoaXMubmF2aWdhdGlvbkxpc3RbMF0uYW5ub3RhdGlvbklkLFxuICAgICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICAgIHNlbGVjdGVkOiB0cnVlXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgc29ydENvbW1lbnRzKG1hcHBlZENvbW1lbnRBLCBtYXBwZWRDb21tZW50Qikge1xuICAgIGlmIChtYXBwZWRDb21tZW50QS5wYWdlICE9PSBtYXBwZWRDb21tZW50Qi5wYWdlKSB7XG4gICAgICByZXR1cm4gbWFwcGVkQ29tbWVudEEucGFnZSAtIG1hcHBlZENvbW1lbnRCLnBhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlY3RBID0gbWFwcGVkQ29tbWVudEEucmVjdGFuZ2xlO1xuICAgICAgY29uc3QgcmVjdEIgPSBtYXBwZWRDb21tZW50Qi5yZWN0YW5nbGU7XG4gICAgICBpZiAocmVjdEEueSAhPT0gcmVjdEIueSkge1xuICAgICAgICByZXR1cm4gcmVjdEEueSAtIHJlY3RCLnk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVjdEEueCAtIHJlY3RCLng7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmV4dEl0ZW0oKSB7XG4gICAgdGhpcy5pbmRleCArPSAxO1xuICAgIGlmICh0aGlzLmluZGV4ID09PSB0aGlzLmFubm90YXRpb25MaXN0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNldFBhZ2UoTnVtYmVyLnBhcnNlSW50KHRoaXMubmF2aWdhdGlvbkxpc3RbdGhpcy5pbmRleF0ucGFnZSwgMCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21BY3Rpb25zLlNlbGVjdGVkQW5ub3RhdGlvbih7XG4gICAgICBhbm5vdGF0aW9uSWQ6IHRoaXMubmF2aWdhdGlvbkxpc3RbdGhpcy5pbmRleF0uYW5ub3RhdGlvbklkLCBlZGl0YWJsZTogZmFsc2UsIHNlbGVjdGVkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cblxuICBwcmV2SXRlbSgpIHtcbiAgICB0aGlzLmluZGV4IC09IDE7XG4gICAgaWYgKHRoaXMuaW5kZXggPCAwKSB7XG4gICAgICB0aGlzLmluZGV4ID0gdGhpcy5uYXZpZ2F0aW9uTGlzdC5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0UGFnZShOdW1iZXIucGFyc2VJbnQodGhpcy5uYXZpZ2F0aW9uTGlzdFt0aGlzLmluZGV4XS5wYWdlLCAwKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHtcbiAgICAgIGFubm90YXRpb25JZDogdGhpcy5uYXZpZ2F0aW9uTGlzdFt0aGlzLmluZGV4XS5hbm5vdGF0aW9uSWQsXG4gICAgICBlZGl0YWJsZTogZmFsc2UsXG4gICAgICBzZWxlY3RlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHVwcGVyUmVjdGFuZ2xlKHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKSB7XG4gICAgWy4uLnJlY3RhbmdsZXNdLnNvcnQoKHJlY3QxLCByZWN0MikgPT4gcmVjdDEueSAtIHJlY3QyLnkpO1xuICAgIHJldHVybiB7IHg6IHJlY3RhbmdsZXNbMF0ueCwgeTogcmVjdGFuZ2xlc1swXS55IH07XG4gIH1cbn1cbiIsIjxwIGNsYXNzPVwiY29tbWVudC1zZWFyY2hcIj5cbiAgPHNwYW4gY2xhc3M9XCJjb21tZW50LXNlYXJjaF9faXRlbVwiPlxuICAgIFNob3dpbmcge3sgaW5kZXggKyAxIH19IG9mIHt7IG5hdmlnYXRpb25MaXN0Lmxlbmd0aCB9fVxuICA8L3NwYW4+XG4gIDxhIFtyb3V0ZXJMaW5rXT1cIltdXCJcbiAgICAgY2xhc3M9XCJjb21tZW50LXNlYXJjaF9faXRlbVwiXG4gICAgIHRpdGxlPVwiUHJldmlvdXMgY29tbWVudFwiXG4gICAgIChjbGljayk9XCJwcmV2SXRlbSgpXCI+UHJldjwvYT5cbiAgPGEgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICBjbGFzcz1cImNvbW1lbnQtc2VhcmNoX19pdGVtXCJcbiAgICAgdGl0bGU9XCJOZXh0IGNvbW1lbnQnXCJcbiAgICAgKGNsaWNrKT1cIm5leHRJdGVtKClcIj5OZXh0PC9hPlxuPC9wPlxuIl19
@@ -52,11 +52,11 @@ export class CommentFilterComponent {
52
52
  onToggleFilterView() {
53
53
  this.isPreview = !this.isPreview;
54
54
  }
55
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CommentFilterComponent, deps: [{ token: i1.Store }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
56
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: CommentFilterComponent, selector: "mv-comment-filter", ngImport: i0, template: "<div class=\"comment-filter\">\n <div class=\"hmcts-filter__content\">\n <div class=\"hmcts-filter__toggle-filters\">\n <p\n class=\"hmcts-filter__toggle-filters-link\"\n [ngClass]=\"{ 'govuk-accordion__section--expanded': isPreview }\"\n (click)=\"onToggleFilterView()\"\n >\n <strong>{{ \"Filter options\" | rpxTranslate }}</strong\n ><span class=\"govuk-accordion__icon\"></span>\n </p>\n </div>\n\n <ng-container *ngIf=\"filter$ | async as filters\">\n <div class=\"hmcts-filter__selected-heading\" *ngIf=\"filters.length\">\n <div class=\"hmcts-filter__heading-action\">\n <p>\n <a\n (click)=\"onClearFilters()\"\n class=\"govuk-link govuk-link--no-visited-state\"\n [routerLink]=\"[]\"\n >{{ \"Clear filters\" | rpxTranslate }}</a\n >\n </p>\n </div>\n </div>\n\n <h4\n class=\"govuk-heading-s govuk-!-margin-bottom-0\"\n *ngIf=\"filters.length\"\n >\n {{ \"Tag filters\" | rpxTranslate }}\n </h4>\n\n <ul class=\"hmcts-filter-tags\" *ngIf=\"filters.length\">\n <li *ngFor=\"let tagName of filters\">\n <a\n class=\"hmcts-filter__tag\"\n [routerLink]=\"[]\"\n (click)=\"onRemoveFilter(tagName)\"\n >\n <span class=\"govuk-visually-hidden\">{{\n \"Remove this filter\" | rpxTranslate\n }}</span\n >{{ tagName | unsnake }}</a\n >\n </li>\n </ul>\n </ng-container>\n\n <div class=\"hmcts-filter__options\" [ngClass]=\"{ isVisible: isPreview }\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-label--s\" for=\"keywords\">\n {{ \"Search Tags\" | rpxTranslate }}\n </label>\n <input\n class=\"govuk-input\"\n id=\"keywords\"\n name=\"keywords\"\n type=\"text\"\n [(ngModel)]=\"searchValue\"\n />\n </div>\n\n <div class=\"govuk-form-group\">\n <div [formGroup]=\"tagGroup\">\n <fieldset class=\"govuk-fieldset\" formGroupName=\"tagFilters\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--s\">\n Tags\n </legend>\n <div class=\"govuk-checkboxes--scroll\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"\n let item of allTags$ | async | filter : searchValue : 'key'\n \"\n >\n <input\n [formControlName]=\"item.key\"\n [id]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n [attr.aria-describedby]=\"item.key\"\n type=\"checkbox\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n [for]=\"item.key\"\n >\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: i6.FilterPipe, name: "filter" }, { kind: "pipe", type: i7.UnsnakePipe, name: "unsnake" }], encapsulation: i0.ViewEncapsulation.None }); }
57
55
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CommentFilterComponent, decorators: [{
56
+ /** @nocollapse */ CommentFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentFilterComponent, deps: [{ token: i1.Store }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
57
+ /** @nocollapse */ CommentFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentFilterComponent, selector: "mv-comment-filter", ngImport: i0, template: "<div class=\"comment-filter\">\n <div class=\"hmcts-filter__content\">\n <div class=\"hmcts-filter__toggle-filters\">\n <p\n class=\"hmcts-filter__toggle-filters-link\"\n [ngClass]=\"{ 'govuk-accordion__section--expanded': isPreview }\"\n (click)=\"onToggleFilterView()\"\n >\n <strong>{{ \"Filter options\" | rpxTranslate }}</strong\n ><span class=\"govuk-accordion__icon\"></span>\n </p>\n </div>\n\n <ng-container *ngIf=\"filter$ | async as filters\">\n <div class=\"hmcts-filter__selected-heading\" *ngIf=\"filters.length\">\n <div class=\"hmcts-filter__heading-action\">\n <p>\n <a\n (click)=\"onClearFilters()\"\n class=\"govuk-link govuk-link--no-visited-state\"\n [routerLink]=\"[]\"\n >{{ \"Clear filters\" | rpxTranslate }}</a\n >\n </p>\n </div>\n </div>\n\n <h4\n class=\"govuk-heading-s govuk-!-margin-bottom-0\"\n *ngIf=\"filters.length\"\n >\n {{ \"Tag filters\" | rpxTranslate }}\n </h4>\n\n <ul class=\"hmcts-filter-tags\" *ngIf=\"filters.length\">\n <li *ngFor=\"let tagName of filters\">\n <a\n class=\"hmcts-filter__tag\"\n [routerLink]=\"[]\"\n (click)=\"onRemoveFilter(tagName)\"\n >\n <span class=\"govuk-visually-hidden\">{{\n \"Remove this filter\" | rpxTranslate\n }}</span\n >{{ tagName | unsnake }}</a\n >\n </li>\n </ul>\n </ng-container>\n\n <div class=\"hmcts-filter__options\" [ngClass]=\"{ isVisible: isPreview }\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-label--s\" for=\"keywords\">\n {{ \"Search Tags\" | rpxTranslate }}\n </label>\n <input\n class=\"govuk-input\"\n id=\"keywords\"\n name=\"keywords\"\n type=\"text\"\n [(ngModel)]=\"searchValue\"\n />\n </div>\n\n <div class=\"govuk-form-group\">\n <div [formGroup]=\"tagGroup\">\n <fieldset class=\"govuk-fieldset\" formGroupName=\"tagFilters\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--s\">\n Tags\n </legend>\n <div class=\"govuk-checkboxes--scroll\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"\n let item of allTags$ | async | filter : searchValue : 'key'\n \"\n >\n <input\n [formControlName]=\"item.key\"\n [id]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n [attr.aria-describedby]=\"item.key\"\n type=\"checkbox\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n [for]=\"item.key\"\n >\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: i6.FilterPipe, name: "filter" }, { kind: "pipe", type: i7.UnsnakePipe, name: "unsnake" }], encapsulation: i0.ViewEncapsulation.None });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentFilterComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{ selector: 'mv-comment-filter', encapsulation: ViewEncapsulation.None, template: "<div class=\"comment-filter\">\n <div class=\"hmcts-filter__content\">\n <div class=\"hmcts-filter__toggle-filters\">\n <p\n class=\"hmcts-filter__toggle-filters-link\"\n [ngClass]=\"{ 'govuk-accordion__section--expanded': isPreview }\"\n (click)=\"onToggleFilterView()\"\n >\n <strong>{{ \"Filter options\" | rpxTranslate }}</strong\n ><span class=\"govuk-accordion__icon\"></span>\n </p>\n </div>\n\n <ng-container *ngIf=\"filter$ | async as filters\">\n <div class=\"hmcts-filter__selected-heading\" *ngIf=\"filters.length\">\n <div class=\"hmcts-filter__heading-action\">\n <p>\n <a\n (click)=\"onClearFilters()\"\n class=\"govuk-link govuk-link--no-visited-state\"\n [routerLink]=\"[]\"\n >{{ \"Clear filters\" | rpxTranslate }}</a\n >\n </p>\n </div>\n </div>\n\n <h4\n class=\"govuk-heading-s govuk-!-margin-bottom-0\"\n *ngIf=\"filters.length\"\n >\n {{ \"Tag filters\" | rpxTranslate }}\n </h4>\n\n <ul class=\"hmcts-filter-tags\" *ngIf=\"filters.length\">\n <li *ngFor=\"let tagName of filters\">\n <a\n class=\"hmcts-filter__tag\"\n [routerLink]=\"[]\"\n (click)=\"onRemoveFilter(tagName)\"\n >\n <span class=\"govuk-visually-hidden\">{{\n \"Remove this filter\" | rpxTranslate\n }}</span\n >{{ tagName | unsnake }}</a\n >\n </li>\n </ul>\n </ng-container>\n\n <div class=\"hmcts-filter__options\" [ngClass]=\"{ isVisible: isPreview }\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-label--s\" for=\"keywords\">\n {{ \"Search Tags\" | rpxTranslate }}\n </label>\n <input\n class=\"govuk-input\"\n id=\"keywords\"\n name=\"keywords\"\n type=\"text\"\n [(ngModel)]=\"searchValue\"\n />\n </div>\n\n <div class=\"govuk-form-group\">\n <div [formGroup]=\"tagGroup\">\n <fieldset class=\"govuk-fieldset\" formGroupName=\"tagFilters\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--s\">\n Tags\n </legend>\n <div class=\"govuk-checkboxes--scroll\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"\n let item of allTags$ | async | filter : searchValue : 'key'\n \"\n >\n <input\n [formControlName]=\"item.key\"\n [id]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n [attr.aria-describedby]=\"item.key\"\n type=\"checkbox\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n [for]=\"item.key\"\n >\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
61
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.UntypedFormBuilder }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1zZXQtaGVhZGVyL2NvbW1lbnQtZmlsdGVyL2NvbW1lbnQtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2NvbW1lbnQtc2V0L2NvbW1lbnQtc2V0LWhlYWRlci9jb21tZW50LWZpbHRlci9jb21tZW50LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5RSxPQUFPLEVBQUMsTUFBTSxFQUFRLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxhQUFhLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxLQUFLLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQztBQUVyRSxPQUFPLEVBQXVDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEYsT0FBTyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFDVSxLQUE2QixFQUM3QixFQUFzQjtRQUR0QixVQUFLLEdBQUwsS0FBSyxDQUF3QjtRQUM3QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUhoQyxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBR2lCLENBQUM7SUFFcEMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDNUIsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNoQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxVQUFVLEdBQXFCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JCLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBTztRQUNwQixNQUFNLFVBQVUsR0FBcUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO2lJQWxEVSxzQkFBc0I7cUhBQXRCLHNCQUFzQix5RENoQm5DLHcyR0FxR0E7OzJGRHJGYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUVkLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbVNlbGVjdG9ycyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvdGFnLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hY3Rpb25zL3RhZy5hY3Rpb25zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7VW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7YXVkaXRUaW1lLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1jb21tZW50LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgdGFnR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XG4gICRzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG4gIGZpbHRlciQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBhbGxUYWdzJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICBpc1ByZXZpZXcgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLlN0YXRlPixcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWdHcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgJ3RhZ0ZpbHRlcnMnOiB0aGlzLmZiLmdyb3VwKHt9KSxcbiAgICB9KTtcbiAgICB0aGlzLmZpbHRlciQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0VGFnRmlsdGVycykpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMgPSB0aGlzLnRhZ0dyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKGF1ZGl0VGltZSg1KSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHRhZ0ZpbHRlcnMgPSB2YWx1ZVsndGFnRmlsdGVycyddO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuQWRkRmlsdGVyVGFncyh0YWdGaWx0ZXJzKSk7XG4gICAgfSk7XG4gICAgdGhpcy5idWlsZEZyb20oKTtcblxuICB9XG5cbiAgYnVpbGRGcm9tKCkge1xuICAgIGNvbnN0IGNoZWNrYm94ZXMgPSA8VW50eXBlZEZvcm1Hcm91cD50aGlzLnRhZ0dyb3VwLmdldCgndGFnRmlsdGVycycpO1xuICAgIHRoaXMuYWxsVGFncyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0QWxsVGFnc0FycikpLnBpcGUodGFwKHRhZ3MgPT4ge1xuICAgICAgdGhpcy50YWdHcm91cC5yZXNldCgpO1xuICAgICAgdGFncy5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjaGVja2JveGVzLmFkZENvbnRyb2wodmFsdWUua2V5LCBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZhbHNlKSk7XG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBvbkNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLnRhZ0dyb3VwLnJlc2V0KCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuQ2xlYXJGaWx0ZXJUYWdzKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25SZW1vdmVGaWx0ZXIodGFnTmFtZSkge1xuICAgIGNvbnN0IGNoZWNrYm94ZXMgPSA8VW50eXBlZEZvcm1Hcm91cD50aGlzLnRhZ0dyb3VwLmdldCgndGFnRmlsdGVycycpO1xuICAgIGNoZWNrYm94ZXMuY29udHJvbHNbdGFnTmFtZV0uc2V0VmFsdWUoZmFsc2UpO1xuICB9XG5cbiAgb25Ub2dnbGVGaWx0ZXJWaWV3KCkge1xuICAgIHRoaXMuaXNQcmV2aWV3ID0gIXRoaXMuaXNQcmV2aWV3O1xuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbW1lbnQtZmlsdGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJobWN0cy1maWx0ZXJfX2NvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaG1jdHMtZmlsdGVyX190b2dnbGUtZmlsdGVyc1wiPlxuICAgICAgPHBcbiAgICAgICAgY2xhc3M9XCJobWN0cy1maWx0ZXJfX3RvZ2dsZS1maWx0ZXJzLWxpbmtcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdnb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tLWV4cGFuZGVkJzogaXNQcmV2aWV3IH1cIlxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVGaWx0ZXJWaWV3KClcIlxuICAgICAgPlxuICAgICAgICA8c3Ryb25nPnt7IFwiRmlsdGVyIG9wdGlvbnNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Ryb25nXG4gICAgICAgID48c3BhbiBjbGFzcz1cImdvdnVrLWFjY29yZGlvbl9faWNvblwiPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXIkIHwgYXN5bmMgYXMgZmlsdGVyc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImhtY3RzLWZpbHRlcl9fc2VsZWN0ZWQtaGVhZGluZ1wiICpuZ0lmPVwiZmlsdGVycy5sZW5ndGhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhtY3RzLWZpbHRlcl9faGVhZGluZy1hY3Rpb25cIj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyRmlsdGVycygpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1saW5rIGdvdnVrLWxpbmstLW5vLXZpc2l0ZWQtc3RhdGVcIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbXVwiXG4gICAgICAgICAgICAgID57eyBcIkNsZWFyIGZpbHRlcnNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGg0XG4gICAgICAgIGNsYXNzPVwiZ292dWstaGVhZGluZy1zIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCJcbiAgICAgICAgKm5nSWY9XCJmaWx0ZXJzLmxlbmd0aFwiXG4gICAgICA+XG4gICAgICAgIHt7IFwiVGFnIGZpbHRlcnNcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9oND5cblxuICAgICAgPHVsIGNsYXNzPVwiaG1jdHMtZmlsdGVyLXRhZ3NcIiAqbmdJZj1cImZpbHRlcnMubGVuZ3RoXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdGFnTmFtZSBvZiBmaWx0ZXJzXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwiaG1jdHMtZmlsdGVyX190YWdcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlRmlsdGVyKHRhZ05hbWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7XG4gICAgICAgICAgICAgIFwiUmVtb3ZlIHRoaXMgZmlsdGVyXCIgfCBycHhUcmFuc2xhdGVcbiAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICA+e3sgdGFnTmFtZSB8IHVuc25ha2UgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImhtY3RzLWZpbHRlcl9fb3B0aW9uc1wiIFtuZ0NsYXNzXT1cInsgaXNWaXNpYmxlOiBpc1ByZXZpZXcgfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLXNcIiBmb3I9XCJrZXl3b3Jkc1wiPlxuICAgICAgICAgIHt7IFwiU2VhcmNoIFRhZ3NcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWlucHV0XCJcbiAgICAgICAgICBpZD1cImtleXdvcmRzXCJcbiAgICAgICAgICBuYW1lPVwia2V5d29yZHNcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwidGFnR3JvdXBcIj5cbiAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGZvcm1Hcm91cE5hbWU9XCJ0YWdGaWx0ZXJzXCI+XG4gICAgICAgICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zXCI+XG4gICAgICAgICAgICAgIFRhZ3NcbiAgICAgICAgICAgIDwvbGVnZW5kPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXMtLXNjcm9sbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlcyBnb3Z1ay1jaGVja2JveGVzLS1zbWFsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgYWxsVGFncyQgfCBhc3luYyB8IGZpbHRlciA6IHNlYXJjaFZhbHVlIDogJ2tleSdcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpdGVtLmtleVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIml0ZW0ua2V5XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5rZXkgfCB1bnNuYWtlIH19ICh7eyBpdGVtLmxlbmd0aCB9fSlcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
61
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.UntypedFormBuilder }]; } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC1zZXQtaGVhZGVyL2NvbW1lbnQtZmlsdGVyL2NvbW1lbnQtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL2NvbW1lbnQtc2V0L2NvbW1lbnQtc2V0LWhlYWRlci9jb21tZW50LWZpbHRlci9jb21tZW50LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5RSxPQUFPLEVBQUMsTUFBTSxFQUFRLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxhQUFhLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxLQUFLLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQztBQUVyRSxPQUFPLEVBQXVDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEYsT0FBTyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFDVSxLQUE2QixFQUM3QixFQUFzQjtRQUR0QixVQUFLLEdBQUwsS0FBSyxDQUF3QjtRQUM3QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUhoQyxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBR2lCLENBQUM7SUFFcEMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDNUIsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNoQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEYsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxVQUFVLEdBQXFCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JCLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBTztRQUNwQixNQUFNLFVBQVUsR0FBcUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOzt1SUFsRFUsc0JBQXNCOzJIQUF0QixzQkFBc0IseURDaEJuQyx3MkdBcUdBOzRGRHJGYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUVkLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbVNlbGVjdG9ycyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvdGFnLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hY3Rpb25zL3RhZy5hY3Rpb25zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7VW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7YXVkaXRUaW1lLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1jb21tZW50LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgdGFnR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XG4gICRzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG4gIGZpbHRlciQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBhbGxUYWdzJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICBpc1ByZXZpZXcgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLlN0YXRlPixcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWdHcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgJ3RhZ0ZpbHRlcnMnOiB0aGlzLmZiLmdyb3VwKHt9KSxcbiAgICB9KTtcbiAgICB0aGlzLmZpbHRlciQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0VGFnRmlsdGVycykpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMgPSB0aGlzLnRhZ0dyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKGF1ZGl0VGltZSg1KSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHRhZ0ZpbHRlcnMgPSB2YWx1ZVsndGFnRmlsdGVycyddO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuQWRkRmlsdGVyVGFncyh0YWdGaWx0ZXJzKSk7XG4gICAgfSk7XG4gICAgdGhpcy5idWlsZEZyb20oKTtcblxuICB9XG5cbiAgYnVpbGRGcm9tKCkge1xuICAgIGNvbnN0IGNoZWNrYm94ZXMgPSA8VW50eXBlZEZvcm1Hcm91cD50aGlzLnRhZ0dyb3VwLmdldCgndGFnRmlsdGVycycpO1xuICAgIHRoaXMuYWxsVGFncyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0QWxsVGFnc0FycikpLnBpcGUodGFwKHRhZ3MgPT4ge1xuICAgICAgdGhpcy50YWdHcm91cC5yZXNldCgpO1xuICAgICAgdGFncy5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjaGVja2JveGVzLmFkZENvbnRyb2wodmFsdWUua2V5LCBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZhbHNlKSk7XG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBvbkNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLnRhZ0dyb3VwLnJlc2V0KCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuQ2xlYXJGaWx0ZXJUYWdzKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25SZW1vdmVGaWx0ZXIodGFnTmFtZSkge1xuICAgIGNvbnN0IGNoZWNrYm94ZXMgPSA8VW50eXBlZEZvcm1Hcm91cD50aGlzLnRhZ0dyb3VwLmdldCgndGFnRmlsdGVycycpO1xuICAgIGNoZWNrYm94ZXMuY29udHJvbHNbdGFnTmFtZV0uc2V0VmFsdWUoZmFsc2UpO1xuICB9XG5cbiAgb25Ub2dnbGVGaWx0ZXJWaWV3KCkge1xuICAgIHRoaXMuaXNQcmV2aWV3ID0gIXRoaXMuaXNQcmV2aWV3O1xuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbW1lbnQtZmlsdGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJobWN0cy1maWx0ZXJfX2NvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaG1jdHMtZmlsdGVyX190b2dnbGUtZmlsdGVyc1wiPlxuICAgICAgPHBcbiAgICAgICAgY2xhc3M9XCJobWN0cy1maWx0ZXJfX3RvZ2dsZS1maWx0ZXJzLWxpbmtcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdnb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tLWV4cGFuZGVkJzogaXNQcmV2aWV3IH1cIlxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVGaWx0ZXJWaWV3KClcIlxuICAgICAgPlxuICAgICAgICA8c3Ryb25nPnt7IFwiRmlsdGVyIG9wdGlvbnNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Ryb25nXG4gICAgICAgID48c3BhbiBjbGFzcz1cImdvdnVrLWFjY29yZGlvbl9faWNvblwiPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXIkIHwgYXN5bmMgYXMgZmlsdGVyc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImhtY3RzLWZpbHRlcl9fc2VsZWN0ZWQtaGVhZGluZ1wiICpuZ0lmPVwiZmlsdGVycy5sZW5ndGhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhtY3RzLWZpbHRlcl9faGVhZGluZy1hY3Rpb25cIj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyRmlsdGVycygpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1saW5rIGdvdnVrLWxpbmstLW5vLXZpc2l0ZWQtc3RhdGVcIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbXVwiXG4gICAgICAgICAgICAgID57eyBcIkNsZWFyIGZpbHRlcnNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGg0XG4gICAgICAgIGNsYXNzPVwiZ292dWstaGVhZGluZy1zIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCJcbiAgICAgICAgKm5nSWY9XCJmaWx0ZXJzLmxlbmd0aFwiXG4gICAgICA+XG4gICAgICAgIHt7IFwiVGFnIGZpbHRlcnNcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9oND5cblxuICAgICAgPHVsIGNsYXNzPVwiaG1jdHMtZmlsdGVyLXRhZ3NcIiAqbmdJZj1cImZpbHRlcnMubGVuZ3RoXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdGFnTmFtZSBvZiBmaWx0ZXJzXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwiaG1jdHMtZmlsdGVyX190YWdcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlRmlsdGVyKHRhZ05hbWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7XG4gICAgICAgICAgICAgIFwiUmVtb3ZlIHRoaXMgZmlsdGVyXCIgfCBycHhUcmFuc2xhdGVcbiAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICA+e3sgdGFnTmFtZSB8IHVuc25ha2UgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImhtY3RzLWZpbHRlcl9fb3B0aW9uc1wiIFtuZ0NsYXNzXT1cInsgaXNWaXNpYmxlOiBpc1ByZXZpZXcgfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLXNcIiBmb3I9XCJrZXl3b3Jkc1wiPlxuICAgICAgICAgIHt7IFwiU2VhcmNoIFRhZ3NcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWlucHV0XCJcbiAgICAgICAgICBpZD1cImtleXdvcmRzXCJcbiAgICAgICAgICBuYW1lPVwia2V5d29yZHNcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwidGFnR3JvdXBcIj5cbiAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGZvcm1Hcm91cE5hbWU9XCJ0YWdGaWx0ZXJzXCI+XG4gICAgICAgICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zXCI+XG4gICAgICAgICAgICAgIFRhZ3NcbiAgICAgICAgICAgIDwvbGVnZW5kPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXMtLXNjcm9sbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlcyBnb3Z1ay1jaGVja2JveGVzLS1zbWFsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgYWxsVGFncyQgfCBhc3luYyB8IGZpbHRlciA6IHNlYXJjaFZhbHVlIDogJ2tleSdcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpdGVtLmtleVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIml0ZW0ua2V5XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5rZXkgfCB1bnNuYWtlIH19ICh7eyBpdGVtLmxlbmd0aCB9fSlcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==