@hmcts/media-viewer 3.0.3 → 4.0.0-RC.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-set.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +4 -4
  6. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/draggable-element.directive.mjs +143 -0
  7. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/model/handle-bar.model.mjs +2 -0
  8. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/model/position.model.mjs +2 -0
  9. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/model/size.model.mjs +2 -0
  10. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/mutable-div.module.mjs +32 -0
  11. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +117 -0
  12. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/resizable-element.directive.mjs +65 -0
  13. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/resize-handlers/resize-handlers.component.mjs +127 -0
  14. package/{esm2020 → esm2022}/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +4 -4
  16. package/esm2022/lib/annotations/annotations.module.mjs +162 -0
  17. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/comment.component.mjs +4 -4
  18. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/comment.service.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +4 -4
  20. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-set-render.service.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-set.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/annotations/comments-summary/comments-summary.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/annotations/pipes/date/date.pipe.mjs +4 -4
  29. package/{esm2020 → esm2022}/lib/annotations/pipes/filter/filter.pipe.mjs +4 -4
  30. package/{esm2020 → esm2022}/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +4 -4
  31. package/{esm2020 → esm2022}/lib/annotations/services/annotation-api/annotation-api.service.mjs +4 -4
  32. package/{esm2020 → esm2022}/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +4 -4
  33. package/{esm2020 → esm2022}/lib/annotations/services/tags/tags.services.mjs +4 -4
  34. package/{esm2020 → esm2022}/lib/annotations/tags/tags.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/bookmark/components/bookmark-icons.component.mjs +4 -4
  36. package/{esm2020 → esm2022}/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +4 -4
  37. package/{esm2020 → esm2022}/lib/icp/icp-follower.service.mjs +4 -4
  38. package/{esm2020 → esm2022}/lib/icp/icp-presenter.service.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/icp/icp-session-api.service.mjs +4 -4
  40. package/{esm2020 → esm2022}/lib/icp/icp-update.service.mjs +4 -4
  41. package/{esm2020 → esm2022}/lib/icp/icp.service.mjs +4 -4
  42. package/{esm2020 → esm2022}/lib/icp/participants-list/participants-list.component.mjs +4 -4
  43. package/esm2022/lib/icp/socket.service.mjs +118 -0
  44. package/{esm2020 → esm2022}/lib/media-viewer.component.mjs +4 -4
  45. package/esm2022/lib/media-viewer.module.mjs +155 -0
  46. package/esm2022/lib/print.service.mjs +30 -0
  47. package/{esm2020 → esm2022}/lib/redaction/components/redaction.component.mjs +4 -4
  48. package/{esm2020 → esm2022}/lib/redaction/services/redaction-api.service.mjs +4 -4
  49. package/{esm2020 → esm2022}/lib/shared/gov-uk-date/gov-uk-date.component.mjs +4 -4
  50. package/{esm2020 → esm2022}/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +6 -6
  51. package/{esm2020 → esm2022}/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +6 -6
  52. package/{esm2020 → esm2022}/lib/shared/gov-uk-label/gov-uk-label.component.mjs +6 -6
  53. package/{esm2020 → esm2022}/lib/shared/shared.module.mjs +19 -19
  54. package/{esm2020 → esm2022}/lib/shared/util/services/number.helper.service.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/store/effects/annotation.effects.mjs +4 -4
  56. package/{esm2020 → esm2022}/lib/store/effects/bookmarks.effects.mjs +4 -4
  57. package/{esm2020 → esm2022}/lib/store/effects/document.effects.mjs +4 -4
  58. package/{esm2020 → esm2022}/lib/store/effects/icp.effects.mjs +4 -4
  59. package/{esm2020 → esm2022}/lib/store/effects/redaction.effects.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/toolbar/icp-event.service.mjs +1 -1
  62. package/{esm2020 → esm2022}/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/toolbar/main-toolbar/main-toolbar.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +4 -4
  65. package/{esm2020 → esm2022}/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +4 -4
  66. package/{esm2020 → esm2022}/lib/toolbar/search-bar/search-bar.component.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/toolbar/toolbar-button-visibility.service.mjs +4 -4
  68. package/{esm2020 → esm2022}/lib/toolbar/toolbar-event.service.mjs +4 -4
  69. package/{esm2020 → esm2022}/lib/toolbar/toolbar.module.mjs +25 -25
  70. package/{esm2020 → esm2022}/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +4 -4
  71. package/{esm2020 → esm2022}/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +4 -4
  72. package/{esm2020 → esm2022}/lib/viewers/grab-n-drag.directive.mjs +4 -4
  73. package/{esm2020 → esm2022}/lib/viewers/image-viewer/image-viewer.component.mjs +4 -4
  74. package/{esm2020 → esm2022}/lib/viewers/multimedia-player/multimedia-player.component.mjs +4 -4
  75. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +209 -0
  76. package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +4 -4
  77. package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +4 -4
  78. package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +6 -6
  79. package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +4 -4
  80. package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +4 -4
  81. package/{esm2020 → esm2022}/lib/viewers/rotation-persist/rotation-api.service.mjs +4 -4
  82. package/{esm2020 → esm2022}/lib/viewers/rotation-persist/rotation-persist.directive.mjs +4 -4
  83. package/{esm2020 → esm2022}/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +4 -4
  84. package/{esm2020 → esm2022}/lib/viewers/viewer-event.service.mjs +4 -4
  85. package/{esm2020 → esm2022}/lib/viewers/viewer-util.service.mjs +4 -4
  86. package/{fesm2020 → fesm2022}/hmcts-media-viewer.mjs +737 -391
  87. package/fesm2022/hmcts-media-viewer.mjs.map +1 -0
  88. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +1 -1
  89. package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -1
  90. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +1 -1
  91. package/lib/annotations/annotation-set/annotation-view/rectangle/draggable-element.directive.d.ts +25 -0
  92. package/lib/annotations/annotation-set/annotation-view/rectangle/draggable-element.directive.d.ts.map +1 -0
  93. package/lib/annotations/annotation-set/annotation-view/rectangle/model/handle-bar.model.d.ts +7 -0
  94. package/lib/annotations/annotation-set/annotation-view/rectangle/model/handle-bar.model.d.ts.map +1 -0
  95. package/lib/annotations/annotation-set/annotation-view/rectangle/model/position.model.d.ts +5 -0
  96. package/lib/annotations/annotation-set/annotation-view/rectangle/model/position.model.d.ts.map +1 -0
  97. package/lib/annotations/annotation-set/annotation-view/rectangle/model/size.model.d.ts +7 -0
  98. package/lib/annotations/annotation-set/annotation-view/rectangle/model/size.model.d.ts.map +1 -0
  99. package/lib/annotations/annotation-set/annotation-view/rectangle/mutable-div.module.d.ts +11 -0
  100. package/lib/annotations/annotation-set/annotation-view/rectangle/mutable-div.module.d.ts.map +1 -0
  101. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +1 -1
  102. package/lib/annotations/annotation-set/annotation-view/rectangle/resizable-element.directive.d.ts +22 -0
  103. package/lib/annotations/annotation-set/annotation-view/rectangle/resizable-element.directive.d.ts.map +1 -0
  104. package/lib/annotations/annotation-set/annotation-view/rectangle/resize-handlers/resize-handlers.component.d.ts +23 -0
  105. package/lib/annotations/annotation-set/annotation-view/rectangle/resize-handlers/resize-handlers.component.d.ts.map +1 -0
  106. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +1 -1
  107. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -1
  108. package/lib/annotations/annotations.module.d.ts +1 -1
  109. package/lib/annotations/comment-set/comment/comment.component.d.ts +1 -1
  110. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -1
  111. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -1
  112. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -1
  113. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -1
  114. package/lib/annotations/comment-set/comment-set.component.d.ts +1 -1
  115. package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
  116. package/lib/annotations/tags/tags.component.d.ts +1 -1
  117. package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -1
  118. package/lib/icp/socket.service.d.ts +6 -6
  119. package/lib/icp/socket.service.d.ts.map +1 -1
  120. package/lib/media-viewer.component.d.ts +1 -1
  121. package/lib/media-viewer.module.d.ts +2 -2
  122. package/lib/print.service.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/toolbar/icp-event.service.d.ts +4 -4
  129. package/lib/toolbar/icp-event.service.d.ts.map +1 -1
  130. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -1
  131. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +1 -1
  132. package/lib/toolbar/toolbar-event.service.d.ts +6 -6
  133. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  134. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -1
  135. package/lib/viewers/grab-n-drag.directive.d.ts +1 -1
  136. package/lib/viewers/image-viewer/image-viewer.component.d.ts +1 -1
  137. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -1
  138. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -1
  139. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +2 -2
  140. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -1
  141. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +1 -1
  142. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +1 -1
  143. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -1
  144. package/lib/viewers/viewer-event.service.d.ts +1 -1
  145. package/lib/viewers/viewer-event.service.d.ts.map +1 -1
  146. package/package.json +16 -22
  147. package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
  148. package/esm2020/lib/annotations/annotations.module.mjs +0 -162
  149. package/esm2020/lib/icp/socket.service.mjs +0 -118
  150. package/esm2020/lib/media-viewer.module.mjs +0 -155
  151. package/esm2020/lib/print.service.mjs +0 -34
  152. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -209
  153. package/fesm2015/hmcts-media-viewer.mjs +0 -6785
  154. package/fesm2015/hmcts-media-viewer.mjs.map +0 -1
  155. package/fesm2020/hmcts-media-viewer.mjs.map +0 -1
  156. /package/{esm2020 → esm2022}/hmcts-media-viewer.mjs +0 -0
  157. /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-set.model.mjs +0 -0
  158. /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -0
  159. /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -0
  160. /package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/comment.model.mjs +0 -0
  161. /package/{esm2020 → esm2022}/lib/annotations/models/api-persisted.model.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/annotations/models/event-select.model.mjs +0 -0
  163. /package/{esm2020 → esm2022}/lib/annotations/models/tags.model.mjs +0 -0
  164. /package/{esm2020 → esm2022}/lib/annotations/models/user.model.mjs +0 -0
  165. /package/{esm2020 → esm2022}/lib/icp/icp.events.mjs +0 -0
  166. /package/{esm2020 → esm2022}/lib/icp/icp.interfaces.mjs +0 -0
  167. /package/{esm2020 → esm2022}/lib/redaction/services/redaction.model.mjs +0 -0
  168. /package/{esm2020 → esm2022}/lib/shared/util/helpers/html-templates.helper.mjs +0 -0
  169. /package/{esm2020 → esm2022}/lib/store/actions/annotation.actions.mjs +0 -0
  170. /package/{esm2020 → esm2022}/lib/store/actions/bookmark.actions.mjs +0 -0
  171. /package/{esm2020 → esm2022}/lib/store/actions/document.actions.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/store/actions/icp.actions.mjs +0 -0
  173. /package/{esm2020 → esm2022}/lib/store/actions/redaction.actions.mjs +0 -0
  174. /package/{esm2020 → esm2022}/lib/store/actions/tag.actions.mjs +0 -0
  175. /package/{esm2020 → esm2022}/lib/store/bookmarks-store-utils.mjs +0 -0
  176. /package/{esm2020 → esm2022}/lib/store/effects/index.mjs +0 -0
  177. /package/{esm2020 → esm2022}/lib/store/models/bookmarks.interface.mjs +0 -0
  178. /package/{esm2020 → esm2022}/lib/store/models/filters.interface.mjs +0 -0
  179. /package/{esm2020 → esm2022}/lib/store/reducers/annotations.reducer.mjs +0 -0
  180. /package/{esm2020 → esm2022}/lib/store/reducers/bookmarks.reducer.mjs +0 -0
  181. /package/{esm2020 → esm2022}/lib/store/reducers/document.reducer.mjs +0 -0
  182. /package/{esm2020 → esm2022}/lib/store/reducers/icp.reducer.mjs +0 -0
  183. /package/{esm2020 → esm2022}/lib/store/reducers/redaction.reducer.mjs +0 -0
  184. /package/{esm2020 → esm2022}/lib/store/reducers/reducers.mjs +0 -0
  185. /package/{esm2020 → esm2022}/lib/store/reducers/tags.reducer.mjs +0 -0
  186. /package/{esm2020 → esm2022}/lib/store/selectors/annotation.selectors.mjs +0 -0
  187. /package/{esm2020 → esm2022}/lib/store/selectors/bookmark.selectors.mjs +0 -0
  188. /package/{esm2020 → esm2022}/lib/store/selectors/document.selectors.mjs +0 -0
  189. /package/{esm2020 → esm2022}/lib/store/selectors/icp.selectors.mjs +0 -0
  190. /package/{esm2020 → esm2022}/lib/store/selectors/redaction.selectors.mjs +0 -0
  191. /package/{esm2020 → esm2022}/lib/store/selectors/tag.selectors.mjs +0 -0
  192. /package/{esm2020 → esm2022}/lib/store/store-utils.mjs +0 -0
  193. /package/{esm2020 → esm2022}/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -0
  194. /package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/viewers/rotation-persist/rotation.model.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/viewers/viewer-exception.model.mjs +0 -0
  198. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,155 +0,0 @@
1
- import { RpxTranslationModule } from 'rpx-xui-translation';
2
- import { NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { HttpClientModule } from '@angular/common/http';
6
- import { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';
7
- import { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';
8
- import { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';
9
- import { MediaViewerComponent } from './media-viewer.component';
10
- import { ToolbarModule } from './toolbar/toolbar.module';
11
- import { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';
12
- import { AnnotationsModule } from './annotations/annotations.module';
13
- import { CommentService } from './annotations/comment-set/comment/comment.service';
14
- import { GrabNDragDirective } from './viewers/grab-n-drag.directive';
15
- import { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';
16
- import { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';
17
- import { TagInputModule } from 'ngx-chips';
18
- import { RouterModule } from '@angular/router';
19
- import { EffectsModule } from '@ngrx/effects';
20
- import { StoreModule } from '@ngrx/store';
21
- import { RedactionComponent } from './redaction/components/redaction.component';
22
- import { IcpSessionApiService } from './icp/icp-session-api.service';
23
- import { IcpUpdateService } from './icp/icp-update.service';
24
- import { IcpService } from './icp/icp.service';
25
- import { SocketService } from './icp/socket.service';
26
- import { reducers } from './store/reducers/reducers';
27
- import { effects } from './store/effects/index';
28
- import { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';
29
- import { RedactionApiService } from './redaction/services/redaction-api.service';
30
- import { MutableDivModule } from 'mutable-div';
31
- import { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';
32
- import { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';
33
- import { IcpPresenterService } from './icp/icp-presenter.service';
34
- import { IcpFollowerService } from './icp/icp-follower.service';
35
- import { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';
36
- import { TreeModule } from '@circlon/angular-tree-component';
37
- import { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';
38
- import { RotationApiService } from './viewers/rotation-persist/rotation-api.service';
39
- import { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';
40
- import { ParticipantsListComponent } from './icp/participants-list/participants-list.component';
41
- import { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';
42
- import { MultimediaPlayerComponent } from './viewers/multimedia-player/multimedia-player.component';
43
- import * as i0 from "@angular/core";
44
- import * as i1 from "@ngrx/store";
45
- import * as i2 from "@ngrx/effects";
46
- import * as i3 from "rpx-xui-translation";
47
- export class MediaViewerModule {
48
- }
49
- /** @nocollapse */ MediaViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MediaViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
50
- /** @nocollapse */ MediaViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MediaViewerModule, declarations: [PdfViewerComponent,
51
- SideBarComponent,
52
- BookmarksComponent,
53
- OutlineItemComponent,
54
- ImageViewerComponent,
55
- UnsupportedViewerComponent,
56
- MultimediaPlayerComponent,
57
- MediaViewerComponent,
58
- ConvertibleContentViewerComponent,
59
- GrabNDragDirective,
60
- RotationPersistDirective,
61
- HighlightCreateDirective,
62
- ConfirmActionDialogComponent,
63
- RedactionComponent,
64
- BookmarkIconsComponent,
65
- ParticipantsListComponent], imports: [CommonModule,
66
- HttpClientModule,
67
- ToolbarModule,
68
- AnnotationsModule,
69
- TagInputModule,
70
- FormsModule,
71
- ReactiveFormsModule,
72
- RouterModule, i1.StoreFeatureModule, i2.EffectsFeatureModule, TreeModule,
73
- MutableDivModule, i3.RpxTranslationModule], exports: [MediaViewerComponent] });
74
- /** @nocollapse */ MediaViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MediaViewerModule, providers: [
75
- PdfJsWrapperFactory,
76
- CommentService,
77
- RedactionApiService,
78
- IcpSessionApiService,
79
- IcpUpdateService,
80
- SocketService,
81
- IcpService,
82
- IcpPresenterService,
83
- IcpFollowerService,
84
- RedactionApiService,
85
- DocumentConversionApiService,
86
- RotationApiService,
87
- ], imports: [CommonModule,
88
- HttpClientModule,
89
- ToolbarModule,
90
- AnnotationsModule,
91
- TagInputModule,
92
- FormsModule,
93
- ReactiveFormsModule,
94
- RouterModule,
95
- StoreModule.forFeature('media-viewer', reducers),
96
- EffectsModule.forFeature(effects),
97
- TreeModule,
98
- MutableDivModule,
99
- RpxTranslationModule.forChild()] });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MediaViewerModule, decorators: [{
101
- type: NgModule,
102
- args: [{
103
- imports: [
104
- CommonModule,
105
- HttpClientModule,
106
- ToolbarModule,
107
- AnnotationsModule,
108
- TagInputModule,
109
- FormsModule,
110
- ReactiveFormsModule,
111
- RouterModule,
112
- StoreModule.forFeature('media-viewer', reducers),
113
- EffectsModule.forFeature(effects),
114
- TreeModule,
115
- MutableDivModule,
116
- RpxTranslationModule.forChild()
117
- ],
118
- declarations: [
119
- PdfViewerComponent,
120
- SideBarComponent,
121
- BookmarksComponent,
122
- OutlineItemComponent,
123
- ImageViewerComponent,
124
- UnsupportedViewerComponent,
125
- MultimediaPlayerComponent,
126
- MediaViewerComponent,
127
- ConvertibleContentViewerComponent,
128
- GrabNDragDirective,
129
- RotationPersistDirective,
130
- HighlightCreateDirective,
131
- ConfirmActionDialogComponent,
132
- RedactionComponent,
133
- BookmarkIconsComponent,
134
- ParticipantsListComponent
135
- ],
136
- providers: [
137
- PdfJsWrapperFactory,
138
- CommentService,
139
- RedactionApiService,
140
- IcpSessionApiService,
141
- IcpUpdateService,
142
- SocketService,
143
- IcpService,
144
- IcpPresenterService,
145
- IcpFollowerService,
146
- RedactionApiService,
147
- DocumentConversionApiService,
148
- RotationApiService,
149
- ],
150
- exports: [
151
- MediaViewerComponent
152
- ]
153
- }]
154
- }] });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL21lZGlhLXZpZXdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDekcsT0FBTyxFQUFFLGNB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cnQgeyBScHhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdlcnMvcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZVZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9pbWFnZS12aWV3ZXIvaW1hZ2Utdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy91bnN1cHBvcnRlZC12aWV3ZXIvdW5zdXBwb3J0ZWQtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZWRpYVZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vbWVkaWEtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyTW9kdWxlIH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIubW9kdWxlJztcbmltcG9ydCB7IFBkZkpzV3JhcHBlckZhY3RvcnkgfSBmcm9tICcuL3ZpZXdlcnMvcGRmLXZpZXdlci9wZGYtanMvcGRmLWpzLXdyYXBwZXIucHJvdmlkZXInO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnNNb2R1bGUgfSBmcm9tICcuL2Fubm90YXRpb25zL2Fubm90YXRpb25zLm1vZHVsZSc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhYk5EcmFnRGlyZWN0aXZlIH0gZnJvbSAnLi92aWV3ZXJzL2dyYWItbi1kcmFnLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaWRlQmFyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL3BkZi12aWV3ZXIvc2lkZS1iYXIvc2lkZS1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE91dGxpbmVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXJzL3BkZi12aWV3ZXIvc2lkZS1iYXIvb3V0bGluZS1pdGVtL291dGxpbmUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFnSW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtY2hpcHMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVmZmVjdHNNb2R1bGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUmVkYWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9yZWRhY3Rpb24vY29tcG9uZW50cy9yZWRhY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEljcFNlc3Npb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi9pY3AvaWNwLXNlc3Npb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwVXBkYXRlU2VydmljZSB9IGZyb20gJy4vaWNwL2ljcC11cGRhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBJY3BTZXJ2aWNlIH0gZnJvbSAnLi9pY3AvaWNwLnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ja2V0U2VydmljZSB9IGZyb20gJy4vaWNwL3NvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IHJlZHVjZXJzIH0gZnJvbSAnLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgeyBlZmZlY3RzIH0gZnJvbSAnLi9zdG9yZS9lZmZlY3RzL2luZGV4JztcbmltcG9ydCB7IEJvb2ttYXJrc0NvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL2Jvb2ttYXJrcy9ib29rbWFya3MuY29tcG9uZW50JztcbmltcG9ydCB7IFJlZGFjdGlvbkFwaVNlcnZpY2UgfSBmcm9tICcuL3JlZGFjdGlvbi9zZXJ2aWNlcy9yZWRhY3Rpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXV0YWJsZURpdk1vZHVsZSB9IGZyb20gJ211dGFibGUtZGl2JztcbmltcG9ydCB7IENvbnZlcnRpYmxlQ29udGVudFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdmlld2Vycy9jb252ZXJ0aWJsZS1jb250ZW50LXZpZXdlci9jb252ZXJ0aWJsZS1jb250ZW50LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb252ZXJzaW9uQXBpU2VydmljZSB9IGZyb20gJy4vdmlld2Vycy9jb252ZXJ0aWJsZS1jb250ZW50LXZpZXdlci9kb2N1bWVudC1jb252ZXJzaW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFByZXNlbnRlclNlcnZpY2UgfSBmcm9tICcuL2ljcC9pY3AtcHJlc2VudGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwRm9sbG93ZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY3AvaWNwLWZvbGxvd2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybUFjdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaWNwL2NvbmZpcm0tZXhpdC9jb25maXJtLWFjdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVNb2R1bGUgfSBmcm9tICdAY2lyY2xvbi9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IEJvb2ttYXJrSWNvbnNDb21wb25lbnQgfSBmcm9tICcuL2Jvb2ttYXJrL2NvbXBvbmVudHMvYm9va21hcmstaWNvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFJvdGF0aW9uQXBpU2VydmljZSB9IGZyb20gJy4vdmlld2Vycy9yb3RhdGlvbi1wZXJzaXN0L3JvdGF0aW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdGF0aW9uUGVyc2lzdERpcmVjdGl2ZSB9IGZyb20gJy4vdmlld2Vycy9yb3RhdGlvbi1wZXJzaXN0L3JvdGF0aW9uLXBlcnNpc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBhcnRpY2lwYW50c0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2ljcC9wYXJ0aWNpcGFudHMtbGlzdC9wYXJ0aWNpcGFudHMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q3JlYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE11bHRpbWVkaWFQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdlcnMvbXVsdGltZWRpYS1wbGF5ZXIvbXVsdGltZWRpYS1wbGF5ZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIFRvb2xiYXJNb2R1bGUsXG4gICAgQW5ub3RhdGlvbnNNb2R1bGUsXG4gICAgVGFnSW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZSgnbWVkaWEtdmlld2VyJywgcmVkdWNlcnMpLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShlZmZlY3RzKSxcbiAgICBUcmVlTW9kdWxlLFxuICAgIE11dGFibGVEaXZNb2R1bGUsXG4gICAgUnB4VHJhbnNsYXRpb25Nb2R1bGUuZm9yQ2hpbGQoKVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQZGZWaWV3ZXJDb21wb25lbnQsXG4gICAgU2lkZUJhckNvbXBvbmVudCxcbiAgICBCb29rbWFya3NDb21wb25lbnQsXG4gICAgT3V0bGluZUl0ZW1Db21wb25lbnQsXG4gICAgSW1hZ2VWaWV3ZXJDb21wb25lbnQsXG4gICAgVW5zdXBwb3J0ZWRWaWV3ZXJDb21wb25lbnQsXG4gICAgTXVsdGltZWRpYVBsYXllckNvbXBvbmVudCxcbiAgICBNZWRpYVZpZXdlckNvbXBvbmVudCxcbiAgICBDb252ZXJ0aWJsZUNvbnRlbnRWaWV3ZXJDb21wb25lbnQsXG4gICAgR3JhYk5EcmFnRGlyZWN0aXZlLFxuICAgIFJvdGF0aW9uUGVyc2lzdERpcmVjdGl2ZSxcbiAgICBIaWdobGlnaHRDcmVhdGVEaXJlY3RpdmUsXG4gICAgQ29uZmlybUFjdGlvbkRpYWxvZ0NvbXBvbmVudCxcbiAgICBSZWRhY3Rpb25Db21wb25lbnQsXG4gICAgQm9va21hcmtJY29uc0NvbXBvbmVudCxcbiAgICBQYXJ0aWNpcGFudHNMaXN0Q29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFBkZkpzV3JhcHBlckZhY3RvcnksXG4gICAgQ29tbWVudFNlcnZpY2UsXG4gICAgUmVkYWN0aW9uQXBpU2VydmljZSxcbiAgICBJY3BTZXNzaW9uQXBpU2VydmljZSxcbiAgICBJY3BVcGRhdGVTZXJ2aWNlLFxuICAgIFNvY2tldFNlcnZpY2UsXG4gICAgSWNwU2VydmljZSxcbiAgICBJY3BQcmVzZW50ZXJTZXJ2aWNlLFxuICAgIEljcEZvbGxvd2VyU2VydmljZSxcbiAgICBSZWRhY3Rpb25BcGlTZXJ2aWNlLFxuICAgIERvY3VtZW50Q29udmVyc2lvbkFwaVNlcnZpY2UsXG4gICAgUm90YXRpb25BcGlTZXJ2aWNlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWVkaWFWaWV3ZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYVZpZXdlck1vZHVsZSB7IH1cbiJdfQ==
@@ -1,34 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PrintService {
4
- printDocumentNatively(url) {
5
- const printWindow = window.open(url);
6
- printWindow.focus();
7
- setTimeout((printer) => {
8
- printer.print();
9
- printer.onafterprint = () => {
10
- printer.close();
11
- window.close();
12
- };
13
- }, 3000, printWindow);
14
- }
15
- printElementNatively(element, width, height) {
16
- const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);
17
- const documentHead = document.head;
18
- printWindow.document.body.appendChild(documentHead.cloneNode(true));
19
- printWindow.document.body.appendChild(element.cloneNode(true));
20
- printWindow.document.close();
21
- printWindow.focus();
22
- printWindow.print();
23
- printWindow.close();
24
- }
25
- }
26
- /** @nocollapse */ PrintService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
27
- /** @nocollapse */ PrintService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrintService, providedIn: 'root' });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PrintService, decorators: [{
29
- type: Injectable,
30
- args: [{
31
- providedIn: 'root'
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ByaW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLFlBQVk7SUFFdkIscUJBQXFCLENBQUMsR0FBVztRQUUvQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVwQixVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQztRQUVKLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQW9CLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDdEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLHNCQUFzQixLQUFLLFdBQVcsTUFBTSxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3hILE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9ELFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7NkhBMUJVLFlBQVk7aUlBQVosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByaW50U2VydmljZSB7XG5cbiAgcHJpbnREb2N1bWVudE5hdGl2ZWx5KHVybDogc3RyaW5nKTogdm9pZCB7XG5cbiAgICBjb25zdCBwcmludFdpbmRvdyA9IHdpbmRvdy5vcGVuKHVybCk7XG4gICAgcHJpbnRXaW5kb3cuZm9jdXMoKTtcblxuICAgIHNldFRpbWVvdXQoKHByaW50ZXIpID0+IHtcbiAgICAgIHByaW50ZXIucHJpbnQoKTtcbiAgICAgIHByaW50ZXIub25hZnRlcnByaW50ID0gKCkgPT4ge1xuICAgICAgICBwcmludGVyLmNsb3NlKCk7XG4gICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgfTtcblxuICAgIH0sIDMwMDAsIHByaW50V2luZG93KTtcbiAgfVxuXG4gIHByaW50RWxlbWVudE5hdGl2ZWx5KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHByaW50V2luZG93ID0gd2luZG93Lm9wZW4oJycsICcnLCBgbGVmdD0wLHRvcD0wLHdpZHRoPSR7d2lkdGh9LGhlaWdodD0ke2hlaWdodH0sdG9vbGJhcj0wLHNjcm9sbGJhcnM9MCxzdGF0dXM9MGApO1xuICAgIGNvbnN0IGRvY3VtZW50SGVhZCA9IGRvY3VtZW50LmhlYWQ7XG4gICAgcHJpbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudEhlYWQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICBwcmludFdpbmRvdy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICBwcmludFdpbmRvdy5kb2N1bWVudC5jbG9zZSgpO1xuICAgIHByaW50V2luZG93LmZvY3VzKCk7XG4gICAgcHJpbnRXaW5kb3cucHJpbnQoKTtcbiAgICBwcmludFdpbmRvdy5jbG9zZSgpO1xuICB9XG59XG4iXX0=
@@ -1,209 +0,0 @@
1
- import * as pdfjsLib from 'pdfjs-dist';
2
- import 'pdfjs-dist/build/pdf.worker';
3
- pdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';
4
- /**
5
- * Values of the state field returned by the find events
6
- */
7
- var FindState;
8
- (function (FindState) {
9
- FindState[FindState["FOUND"] = 0] = "FOUND";
10
- FindState[FindState["NOT_FOUND"] = 1] = "NOT_FOUND";
11
- FindState[FindState["WRAPPED"] = 2] = "WRAPPED";
12
- FindState[FindState["PENDING"] = 3] = "PENDING";
13
- })(FindState || (FindState = {}));
14
- export class PdfJsWrapper {
15
- constructor(pdfViewer, downloadManager, toolbarEvents, documentLoadInit, documentLoadProgress, documentLoaded, outlineLoaded, documentLoadFailed, pageRendered, positionUpdated) {
16
- this.pdfViewer = pdfViewer;
17
- this.downloadManager = downloadManager;
18
- this.toolbarEvents = toolbarEvents;
19
- this.documentLoadInit = documentLoadInit;
20
- this.documentLoadProgress = documentLoadProgress;
21
- this.documentLoaded = documentLoaded;
22
- this.outlineLoaded = outlineLoaded;
23
- this.documentLoadFailed = documentLoadFailed;
24
- this.pageRendered = pageRendered;
25
- this.positionUpdated = positionUpdated;
26
- this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));
27
- this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));
28
- this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');
29
- this.pdfViewer.eventBus.on('pagerendered', e => { }); // not used left for future convenience
30
- this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));
31
- this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));
32
- this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));
33
- this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {
34
- this.sendSearchDetails(event);
35
- });
36
- this.pdfViewer.eventBus.on('updatefindmatchescount', event => {
37
- const result = { ...event.matchesCount, isPrevious: event?.source?.state?.findPrevious };
38
- this.toolbarEvents.searchResultsCountSubject.next(result);
39
- });
40
- this.zoomValue = 1;
41
- }
42
- sendSearchDetails(event) {
43
- if (event.state !== FindState.PENDING) {
44
- const result = { ...event.matchesCount, isPrevious: event?.source?.state?.findPrevious };
45
- this.toolbarEvents.searchResultsCountSubject.next(result);
46
- if (event?.source?.selected?.pageIdx !== -1 && event.matchesCount.total > 0) {
47
- this.toolbarEvents.redactionSerachSubject.next({
48
- page: event?.source?.selected?.pageIdx,
49
- matchedIndex: event?.source?.selected?.matchIdx,
50
- matchesCount: event.matchesCount.total
51
- });
52
- }
53
- }
54
- }
55
- emitDocumentInfo(e) {
56
- const allPages = [...this.pdfViewer._pages].map(page => {
57
- return {
58
- div: page.div,
59
- scale: page.scale,
60
- rotation: page.rotation,
61
- id: page.id,
62
- viewportScale: page.viewport.scale
63
- };
64
- });
65
- this.pageRendered.next(allPages);
66
- }
67
- async loadDocument(documentUrl) {
68
- const loadingTask = this.createLoadingTask(documentUrl);
69
- loadingTask.onProgress = ({ loaded, total }) => {
70
- this.documentLoadProgress.next({ loaded, total });
71
- };
72
- this.documentLoadInit.next(documentUrl);
73
- try {
74
- const pdfDocument = await loadingTask.promise;
75
- this.documentLoaded.next(pdfDocument);
76
- this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);
77
- this.pdfViewer.setDocument(pdfDocument);
78
- this.pdfViewer.linkService.setDocument(pdfDocument, null);
79
- const outlineNode = await pdfDocument.getOutline();
80
- const outline = outlineNode.map(x => {
81
- return {
82
- bold: x.bold,
83
- color: x.color,
84
- count: x.count,
85
- dest: x.dest,
86
- italic: x.italic,
87
- items: x.items,
88
- newWindow: x.newWindow,
89
- title: x.title,
90
- unsafeUrl: x.unsafeUrl,
91
- url: x.url
92
- };
93
- });
94
- if (outline) {
95
- await this.setOutlinePageNumbers(pdfDocument, outline);
96
- }
97
- this.documentOutline = outline;
98
- this.outlineLoaded.next(this.documentOutline);
99
- const pdfMetaData = await pdfDocument.getMetadata();
100
- this.setCurrentPDFTitle(pdfMetaData.info?.Title);
101
- }
102
- catch (e) {
103
- this.documentLoadFailed.next(e);
104
- }
105
- }
106
- createLoadingTask(documentUrl) {
107
- return pdfjsLib.getDocument({
108
- url: documentUrl,
109
- cMapUrl: 'assets/minified/cmaps',
110
- cMapPacked: true,
111
- withCredentials: true
112
- });
113
- }
114
- async setOutlinePageNumbers(pdfDocument, outlineArray) {
115
- outlineArray.forEach(async (outline) => {
116
- await this.setNestedOutlinePageNumbers(pdfDocument, outline);
117
- });
118
- }
119
- async setNestedOutlinePageNumbers(pdfDocument, outline) {
120
- outline.pageNumber = await this.getOutlinePageNumber(pdfDocument, outline);
121
- outline.items.forEach(async (outlineItem) => {
122
- outlineItem.pageNumber = await this.getOutlinePageNumber(pdfDocument, outlineItem);
123
- this.setNestedOutlinePageNumbers(pdfDocument, outlineItem);
124
- });
125
- }
126
- async getOutlinePageNumber(pdfDocument, outline) {
127
- const dest = outline.dest;
128
- const pageIndex = await pdfDocument.getPageIndex(dest[0]);
129
- return Number(pageIndex) + 1;
130
- }
131
- downloadFile(url, filename) {
132
- this.downloadManager.downloadUrl(url, filename);
133
- }
134
- setPageNumber(pageNumber) {
135
- this.pdfViewer.currentPageNumber = pageNumber;
136
- }
137
- getPageNumber() {
138
- return this.pdfViewer.currentPageNumber;
139
- }
140
- changePageNumber(numPages) {
141
- this.pdfViewer.currentPageNumber += numPages;
142
- }
143
- search(operation) {
144
- const command = operation.reset ? 'find' : 'findagain';
145
- this.pdfViewer.findController.executeCommand(command, {
146
- query: operation.searchTerm,
147
- phraseSearch: true,
148
- caseSensitive: operation.matchCase,
149
- entireWord: operation.wholeWord,
150
- highlightAll: operation.highlightAll,
151
- findPrevious: operation.previous,
152
- });
153
- }
154
- clearSearch() {
155
- this.pdfViewer.eventBus.dispatch('findbarclose');
156
- }
157
- navigateTo(destination) {
158
- if (destination instanceof Object) {
159
- if (!destination[1].name.includes('XYZ')) {
160
- destination[1] = { name: 'XYZ' };
161
- destination[2] = destination[2] || null;
162
- destination[3] = destination[3] || null;
163
- }
164
- destination[4] = this.zoomValue;
165
- }
166
- this.pdfViewer.linkService.navigateTo(destination);
167
- }
168
- setZoom(zoomValue) {
169
- this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue);
170
- this.zoomValue = this.pdfViewer.currentScaleValue;
171
- this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);
172
- }
173
- stepZoom(zoomValue) {
174
- this.pdfViewer.currentScaleValue = +this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue);
175
- this.zoomValue = this.pdfViewer.currentScaleValue;
176
- this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);
177
- }
178
- getZoomValue(zoomValue) {
179
- if (isNaN(zoomValue)) {
180
- return this.zoomValue;
181
- }
182
- if (zoomValue > 5) {
183
- return 5;
184
- }
185
- if (zoomValue < 0.1) {
186
- return 0.1;
187
- }
188
- return +zoomValue.toFixed(2);
189
- }
190
- rotate(rotation) {
191
- return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;
192
- }
193
- resetRotation(rotation) {
194
- return this.pdfViewer.pagesRotation = rotation;
195
- }
196
- getNormalisedPagesRotation() {
197
- return this.pdfViewer.pagesRotation;
198
- }
199
- getCurrentPDFZoomValue() {
200
- return this.pdfViewer.currentScaleValue;
201
- }
202
- setCurrentPDFTitle(title) {
203
- this.documentTitle = title;
204
- }
205
- getCurrentPDFTitle() {
206
- return this.documentTitle;
207
- }
208
- }
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLWpzL3BkZi1qcy13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE9BQU8sNkJBQTZCLENBQUM7QUFLckMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxpQ0FBaUMsQ0FBQztBQUUzRTs7R0FFRztBQUNILElBQUssU0FLSjtBQUxELFdBQUssU0FBUztJQUNaLDJDQUFTLENBQUE7SUFDVCxtREFBYSxDQUFBO0lBQ2IsK0NBQVcsQ0FBQTtJQUNYLCtDQUFXLENBQUE7QUFDYixDQUFDLEVBTEksU0FBUyxLQUFULFNBQVMsUUFLYjtBQUVELE1BQU0sT0FBTyxZQUFZO0lBTXZCLFlBQ21CLFNBQW9CLEVBQ3BCLGVBQWdDLEVBQ2hDLGFBQWtDLEVBQ25DLGdCQUFpQyxFQUNqQyxvQkFBbUQsRUFDbkQsY0FBNEIsRUFDNUIsYUFBaUMsRUFDakMsa0JBQWtDLEVBQ2xDLFlBQWtDLEVBQ2xDLGVBQW1EO1FBVGxELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBK0I7UUFDbkQsbUJBQWMsR0FBZCxjQUFjLENBQWM7UUFDNUIsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBQ2pDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBZ0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFvQztRQUVuRSxJQUFJLENBQUMsU0FBUyxDQUFD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QyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQWlCO1FBQ3BDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQUU7UUFDaEQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQUUsT0FBTyxDQUFDLENBQUM7U0FBRTtRQUNoQyxJQUFJLFNBQVMsR0FBRyxHQUFHLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQztTQUFFO1FBRXBDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN4RixDQUFDO0lBRU0sYUFBYSxDQUFDLFFBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO0lBQ2pELENBQUM7SUFFTSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztJQUMxQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdXRsaW5lIH0gZnJvbSAnLi8uLi9zaWRlLWJhci9vdXRsaW5lLWl0ZW0vb3V0bGluZS5tb2RlbCc7XG5pbXBvcnQgeyBSZWRhY3Rpb25TZWFyY2ggfSBmcm9tICcuLy4uLy4uLy4uL3Rvb2xiYXIvcmVkYWN0aW9uLXNlYXJjaC1iYXIvcmVkYWN0aW9uLXNlYXJjaC5tb2RlbCc7XG5pbXBvcnQgKiBhcyBwZGZqc0xpYiBmcm9tICdwZGZqcy1kaXN0JztcbmltcG9ydCB7IERvd25sb2FkTWFuYWdlciwgUERGVmlld2VyIH0gZnJvbSAncGRmanMtZGlzdC93ZWIvcGRmX3ZpZXdlcic7XG5pbXBvcnQgJ3BkZmpzLWRpc3QvYnVpbGQvcGRmLndvcmtlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWFyY2hPcGVyYXRpb24sIFNlYXJjaFJlc3VsdHNDb3VudCwgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBkZlBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvZG9jdW1lbnQucmVkdWNlcic7XG5cbnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID0gJy9hc3NldHMvYnVpbGQvcGRmLndvcmtlci5taW4uanMnO1xuXG4vKipcbiAqIFZhbHVlcyBvZiB0aGUgc3RhdGUgZmllbGQgcmV0dXJuZWQgYnkgdGhlIGZpbmQgZXZlbnRzXG4gKi9cbmVudW0gRmluZFN0YXRlIHtcbiAgRk9VTkQgPSAwLFxuICBOT1RfRk9VTkQgPSAxLFxuICBXUkFQUEVEID0gMixcbiAgUEVORElORyA9IDMsXG59XG5cbmV4cG9ydCBjbGFzcyBQZGZKc1dyYXBwZXIge1xuXG4gIHByaXZhdGUgem9vbVZhbHVlOiBudW1iZXI7XG4gIHByaXZhdGUgZG9jdW1lbnRUaXRsZTogc3RyaW5nO1xuICBwcml2YXRlIGRvY3VtZW50T3V0bGluZTogT3V0bGluZVtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGRmVmlld2VyOiBQREZWaWV3ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3dubG9hZE1hbmFnZXI6IERvd25sb2FkTWFuYWdlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50TG9hZEluaXQ6IFN1YmplY3Q8c3RyaW5nPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRMb2FkUHJvZ3Jlc3M6IFN1YmplY3Q8RG9jdW1lbnRMb2FkUHJvZ3Jlc3M+LFxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudExvYWRlZDogU3ViamVjdDxhbnk+LFxuICAgIHB1YmxpYyByZWFkb25seSBvdXRsaW5lTG9hZGVkOiBTdWJqZWN0PE91dGxpbmVbXT4sXG4gICAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50TG9hZEZhaWxlZDogU3ViamVjdDxFcnJvcj4sXG4gICAgcHVibGljIHJlYWRvbmx5IHBhZ2VSZW5kZXJlZDogU3ViamVjdDxQYWdlRXZlbnRbXT4sXG4gICAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uVXBkYXRlZDogU3ViamVjdDx7IGxvY2F0aW9uOiBQZGZQb3NpdGlvbiB9PlxuICApIHtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigndXBkYXRldmlld2FyZWEnLCBlID0+IHBvc2l0aW9uVXBkYXRlZC5uZXh0KGUpKTtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZWNoYW5naW5nJywgZSA9PiB0aGlzLnRvb2xiYXJFdmVudHMuc2V0Q3VycmVudFBhZ2VJbnB1dFZhbHVlU3ViamVjdC5uZXh0KGUucGFnZU51bWJlcikpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdwYWdlc2luaXQnLCAoKSA9PiB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9ICcxJyk7XG5cbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZXJlbmRlcmVkJywgZSA9PiB7IH0pOyAvLyBub3QgdXNlZCBsZWZ0IGZvciBmdXR1cmUgY29udmVuaWVuY2VcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigncGFnZXNsb2FkZWQnLCAoZSkgPT4gdGhpcy5lbWl0RG9jdW1lbnRJbmZvKGUpKTtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbignc2NhbGVjaGFuZ2luZycsIChlKSA9PiB0aGlzLmVtaXREb2N1bWVudEluZm8oZSkpO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCdyb3RhdGlvbmNoYW5naW5nJywgKGUpID0+IHRoaXMuZW1pdERvY3VtZW50SW5mbyhlKSk7XG5cbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5vbigndXBkYXRlZmluZGNvbnRyb2xzdGF0ZScsIGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuc2VuZFNlYXJjaERldGFpbHMoZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMucGRmVmlld2VyLmV2ZW50QnVzLm9uKCd1cGRhdGVmaW5kbWF0Y2hlc2NvdW50JywgZXZlbnQgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0geyAuLi5ldmVudC5tYXRjaGVzQ291bnQsIGlzUHJldmlvdXM6IGV2ZW50Py5zb3VyY2U/LnN0YXRlPy5maW5kUHJldmlvdXMgfSBhcyBTZWFyY2hSZXN1bHRzQ291bnRcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hSZXN1bHRzQ291bnRTdWJqZWN0Lm5leHQocmVzdWx0KTtcbiAgICB9KTtcbiAgICB0aGlzLnpvb21WYWx1ZSA9IDE7XG4gIH1cblxuICBzZW5kU2VhcmNoRGV0YWlscyhldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnN0YXRlICE9PSBGaW5kU3RhdGUuUEVORElORykge1xuICAgICAgY29uc3QgcmVzdWx0ID0geyAuLi5ldmVudC5tYXRjaGVzQ291bnQsIGlzUHJldmlvdXM6IGV2ZW50Py5zb3VyY2U/LnN0YXRlPy5maW5kUHJldmlvdXMgfSBhcyBTZWFyY2hSZXN1bHRzQ291bnRcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hSZXN1bHRzQ291bnRTdWJqZWN0Lm5leHQocmVzdWx0KTtcbiAgICAgIGlmIChldmVudD8uc291cmNlPy5zZWxlY3RlZD8ucGFnZUlkeCAhPT0gLTEgJiYgZXZlbnQubWF0Y2hlc0NvdW50LnRvdGFsID4gMCkge1xuICAgICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0aW9uU2VyYWNoU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICBwYWdlOiBldmVudD8uc291cmNlPy5zZWxlY3RlZD8ucGFnZUlkeCxcbiAgICAgICAgICBtYXRjaGVkSW5kZXg6IGV2ZW50Py5zb3VyY2U/LnNlbGVjdGVkPy5tYXRjaElkeCxcbiAgICAgICAgICBtYXRjaGVzQ291bnQ6IGV2ZW50Lm1hdGNoZXNDb3VudC50b3RhbFxuICAgICAgICB9IGFzIFJlZGFjdGlvblNlYXJjaFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdERvY3VtZW50SW5mbyhlKSB7XG4gICAgY29uc3QgYWxsUGFnZXM6IFBhZ2VFdmVudFtdID0gWy4uLnRoaXMucGRmVmlld2VyLl9wYWdlc10ubWFwKHBhZ2UgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiBwYWdlLmRpdixcbiAgICAgICAgc2NhbGU6IHBhZ2Uuc2NhbGUsXG4gICAgICAgIHJvdGF0aW9uOiBwYWdlLnJvdGF0aW9uLFxuICAgICAgICBpZDogcGFnZS5pZCxcbiAgICAgICAgdmlld3BvcnRTY2FsZTogcGFnZS52aWV3cG9ydC5zY2FsZVxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLnBhZ2VSZW5kZXJlZC5uZXh0KGFsbFBhZ2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkRG9jdW1lbnQoZG9jdW1lbnRVcmw6IHN0cmluZykge1xuICAgIGNvbnN0IGxvYWRpbmdUYXNrID0gdGhpcy5jcmVhdGVMb2FkaW5nVGFzayhkb2N1bWVudFVybCk7XG5cbiAgICBsb2FkaW5nVGFzay5vblByb2dyZXNzID0gKHsgbG9hZGVkLCB0b3RhbCB9KSA9PiB7XG4gICAgICB0aGlzLmRvY3VtZW50TG9hZFByb2dyZXNzLm5leHQoeyBsb2FkZWQsIHRvdGFsIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50TG9hZEluaXQubmV4dChkb2N1bWVudFVybCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGRmRG9jdW1lbnQgPSBhd2FpdCBsb2FkaW5nVGFzay5wcm9taXNlO1xuICAgICAgdGhpcy5kb2N1bWVudExvYWRlZC5uZXh0KHBkZkRvY3VtZW50KTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5wYWdlQ291bnRTdWJqZWN0Lm5leHQocGRmRG9jdW1lbnQubnVtUGFnZXMpO1xuXG4gICAgICB0aGlzLnBkZlZpZXdlci5zZXREb2N1bWVudChwZGZEb2N1bWVudCk7XG4gICAgICB0aGlzLnBkZlZpZXdlci5saW5rU2VydmljZS5zZXREb2N1bWVudChwZGZEb2N1bWVudCwgbnVsbCk7XG5cbiAgICAgIGNvbnN0IG91dGxpbmVOb2RlID0gYXdhaXQgcGRmRG9jdW1lbnQuZ2V0T3V0bGluZSgpO1xuICAgICAgY29uc3Qgb3V0bGluZSA9IG91dGxpbmVOb2RlLm1hcCh4ID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBib2xkOiB4LmJvbGQsXG4gICAgICAgICAgY29sb3I6IHguY29sb3IsXG4gICAgICAgICAgY291bnQ6IHguY291bnQsXG4gICAgICAgICAgZGVzdDogeC5kZXN0LFxuICAgICAgICAgIGl0YWxpYzogeC5pdGFsaWMsXG4gICAgICAgICAgaXRlbXM6IHguaXRlbXMsXG4gICAgICAgICAgbmV3V2luZG93OiB4Lm5ld1dpbmRvdyxcbiAgICAgICAgICB0aXRsZTogeC50aXRsZSxcbiAgICAgICAgICB1bnNhZmVVcmw6IHgudW5zYWZlVXJsLFxuICAgICAgICAgIHVybDogeC51cmxcbiAgICAgICAgfSBhcyBPdXRsaW5lXG4gICAgICB9KTtcblxuXG5cbiAgICAgIGlmIChvdXRsaW5lKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2V0T3V0bGluZVBhZ2VOdW1iZXJzKHBkZkRvY3VtZW50LCBvdXRsaW5lKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kb2N1bWVudE91dGxpbmUgPSBvdXRsaW5lO1xuICAgICAgdGhpcy5vdXRsaW5lTG9hZGVkLm5leHQodGhpcy5kb2N1bWVudE91dGxpbmUpO1xuICAgICAgY29uc3QgcGRmTWV0YURhdGEgPSBhd2FpdCBwZGZEb2N1bWVudC5nZXRNZXRhZGF0YSgpO1xuICAgICAgdGhpcy5zZXRDdXJyZW50UERGVGl0bGUoKHBkZk1ldGFEYXRhLmluZm8gYXMgYW55KT8uVGl0bGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRMb2FkRmFpbGVkLm5leHQoZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMb2FkaW5nVGFzayhkb2N1bWVudFVybDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBkZmpzTGliLmdldERvY3VtZW50KHtcbiAgICAgIHVybDogZG9jdW1lbnRVcmwsXG4gICAgICBjTWFwVXJsOiAnYXNzZXRzL21pbmlmaWVkL2NtYXBzJyxcbiAgICAgIGNNYXBQYWNrZWQ6IHRydWUsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2V0T3V0bGluZVBhZ2VOdW1iZXJzKHBkZkRvY3VtZW50LCBvdXRsaW5lQXJyYXk6IE91dGxpbmVbXSkge1xuICAgIG91dGxpbmVBcnJheS5mb3JFYWNoKGFzeW5jIChvdXRsaW5lOiBPdXRsaW5lKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLnNldE5lc3RlZE91dGxpbmVQYWdlTnVtYmVycyhwZGZEb2N1bWVudCwgb3V0bGluZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldE5lc3RlZE91dGxpbmVQYWdlTnVtYmVycyhwZGZEb2N1bWVudCwgb3V0bGluZTogT3V0bGluZSkge1xuICAgIG91dGxpbmUucGFnZU51bWJlciA9IGF3YWl0IHRoaXMuZ2V0T3V0bGluZVBhZ2VOdW1iZXIocGRmRG9jdW1lbnQsIG91dGxpbmUpO1xuICAgIG91dGxpbmUuaXRlbXMuZm9yRWFjaChhc3luYyAob3V0bGluZUl0ZW06IE91dGxpbmUpID0+IHtcbiAgICAgIG91dGxpbmVJdGVtLnBhZ2VOdW1iZXIgPSBhd2FpdCB0aGlzLmdldE91dGxpbmVQYWdlTnVtYmVyKHBkZkRvY3VtZW50LCBvdXRsaW5lSXRlbSk7XG4gICAgICB0aGlzLnNldE5lc3RlZE91dGxpbmVQYWdlTnVtYmVycyhwZGZEb2N1bWVudCwgb3V0bGluZUl0ZW0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRPdXRsaW5lUGFnZU51bWJlcihwZGZEb2N1bWVudCwgb3V0bGluZTogT3V0bGluZSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgZGVzdCA9IG91dGxpbmUuZGVzdDtcbiAgICBjb25zdCBwYWdlSW5kZXggPSBhd2FpdCBwZGZEb2N1bWVudC5nZXRQYWdlSW5kZXgoZGVzdFswXSk7XG4gICAgcmV0dXJuIE51bWJlcihwYWdlSW5kZXgpICsgMTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZEZpbGUodXJsOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRvd25sb2FkTWFuYWdlci5kb3dubG9hZFVybCh1cmwsIGZpbGVuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQYWdlTnVtYmVyKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRQYWdlTnVtYmVyID0gcGFnZU51bWJlcjtcbiAgfVxuICBwdWJsaWMgZ2V0UGFnZU51bWJlcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBkZlZpZXdlci5jdXJyZW50UGFnZU51bWJlcjtcbiAgfVxuICBwdWJsaWMgY2hhbmdlUGFnZU51bWJlcihudW1QYWdlczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wZGZWaWV3ZXIuY3VycmVudFBhZ2VOdW1iZXIgKz0gbnVtUGFnZXM7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKG9wZXJhdGlvbjogU2VhcmNoT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgY29tbWFuZCA9IG9wZXJhdGlvbi5yZXNldCA/ICdmaW5kJyA6ICdmaW5kYWdhaW4nO1xuXG4gICAgdGhpcy5wZGZWaWV3ZXIuZmluZENvbnRyb2xsZXIuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZCwge1xuICAgICAgcXVlcnk6IG9wZXJhdGlvbi5zZWFyY2hUZXJtLFxuICAgICAgcGhyYXNlU2VhcmNoOiB0cnVlLFxuICAgICAgY2FzZVNlbnNpdGl2ZTogb3BlcmF0aW9uLm1hdGNoQ2FzZSxcbiAgICAgIGVudGlyZVdvcmQ6IG9wZXJhdGlvbi53aG9sZVdvcmQsXG4gICAgICBoaWdobGlnaHRBbGw6IG9wZXJhdGlvbi5oaWdobGlnaHRBbGwsXG4gICAgICBmaW5kUHJldmlvdXM6IG9wZXJhdGlvbi5wcmV2aW91cyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5ldmVudEJ1cy5kaXNwYXRjaCgnZmluZGJhcmNsb3NlJyk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUbyhkZXN0aW5hdGlvbjogb2JqZWN0IHwgbnVtYmVyKSB7XG4gICAgaWYgKGRlc3RpbmF0aW9uIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICBpZiAoIWRlc3RpbmF0aW9uWzFdLm5hbWUuaW5jbHVkZXMoJ1hZWicpKSB7XG4gICAgICAgIGRlc3RpbmF0aW9uWzFdID0geyBuYW1lOiAnWFlaJyB9O1xuICAgICAgICBkZXN0aW5hdGlvblsyXSA9IGRlc3RpbmF0aW9uWzJdIHx8IG51bGw7XG4gICAgICAgIGRlc3RpbmF0aW9uWzNdID0gZGVzdGluYXRpb25bM10gfHwgbnVsbDtcbiAgICAgIH1cbiAgICAgIGRlc3RpbmF0aW9uWzRdID0gdGhpcy56b29tVmFsdWU7XG4gICAgfVxuICAgIHRoaXMucGRmVmlld2VyLmxpbmtTZXJ2aWNlLm5hdmlnYXRlVG8oZGVzdGluYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHNldFpvb20oem9vbVZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9IHRoaXMuZ2V0Wm9vbVZhbHVlKHpvb21WYWx1ZSk7XG4gICAgdGhpcy56b29tVmFsdWUgPSB0aGlzLnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC5uZXh0KHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwWm9vbSh6b29tVmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlID0gK3RoaXMuZ2V0Wm9vbVZhbHVlKCgrdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUpICsgem9vbVZhbHVlKTtcbiAgICB0aGlzLnpvb21WYWx1ZSA9IHRoaXMucGRmVmlld2VyLmN1cnJlbnRTY2FsZVZhbHVlO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tVmFsdWVTdWJqZWN0Lm5leHQodGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRab29tVmFsdWUoem9vbVZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChpc05hTih6b29tVmFsdWUpKSB7IHJldHVybiB0aGlzLnpvb21WYWx1ZTsgfVxuICAgIGlmICh6b29tVmFsdWUgPiA1KSB7IHJldHVybiA1OyB9XG4gICAgaWYgKHpvb21WYWx1ZSA8IDAuMSkgeyByZXR1cm4gMC4xOyB9XG5cbiAgICByZXR1cm4gK3pvb21WYWx1ZS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgcHVibGljIHJvdGF0ZShyb3RhdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wZGZWaWV3ZXIucGFnZXNSb3RhdGlvbiA9ICh0aGlzLnBkZlZpZXdlci5wYWdlc1JvdGF0aW9uICsgcm90YXRpb24pICUgMzYwO1xuICB9XG5cbiAgcHVibGljIHJlc2V0Um90YXRpb24ocm90YXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGRmVmlld2VyLnBhZ2VzUm90YXRpb24gPSByb3RhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXROb3JtYWxpc2VkUGFnZXNSb3RhdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBkZlZpZXdlci5wYWdlc1JvdGF0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRQREZab29tVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wZGZWaWV3ZXIuY3VycmVudFNjYWxlVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VycmVudFBERlRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50UERGVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudFRpdGxlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRMb2FkUHJvZ3Jlc3Mge1xuICBsb2FkZWQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlRXZlbnQge1xuICBkaXY6IG9iamVjdDtcbiAgc2NhbGU6IG51bWJlcjtcbiAgcm90YXRpb246IG51bWJlcjtcbiAgaWQ6IHN0cmluZztcbiAgdmlld3BvcnRTY2FsZTogbnVtYmVyO1xufVxuIl19