@hmcts/media-viewer 2.8.1 → 2.9.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.
- package/README.md +0 -1
- package/assets/sass/comment.scss +1 -1
- package/assets/sass/outline-attachment.scss +6 -1
- package/assets/sass/participants-list.scss +1 -1
- package/assets/sass/rectangle.scss +1 -4
- package/bundles/hmcts-media-viewer.umd.js +3367 -10784
- package/bundles/hmcts-media-viewer.umd.js.map +1 -1
- package/bundles/hmcts-media-viewer.umd.min.js +1 -16
- package/bundles/hmcts-media-viewer.umd.min.js.map +1 -1
- package/esm2015/hmcts-media-viewer.js +20 -24
- package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +9 -103
- package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +14 -111
- package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +4 -49
- package/esm2015/lib/annotations/annotation-set/annotation-set.component.js +2 -51
- package/esm2015/lib/annotations/annotation-set/annotation-set.model.js +2 -15
- package/esm2015/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +4 -74
- package/esm2015/lib/annotations/annotation-set/annotation-view/annotation.model.js +2 -29
- package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +5 -114
- package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.js +2 -21
- package/esm2015/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +8 -85
- package/esm2015/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +9 -105
- package/esm2015/lib/annotations/annotations.module.js +1 -5
- package/esm2015/lib/annotations/comment-set/comment/comment.component.js +4 -152
- package/esm2015/lib/annotations/comment-set/comment/comment.model.js +2 -27
- package/esm2015/lib/annotations/comment-set/comment/comment.service.js +3 -53
- package/esm2015/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.js +1 -37
- package/esm2015/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.js +1 -25
- package/esm2015/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +5 -63
- package/esm2015/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.js +10 -76
- package/esm2015/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.js +5 -53
- package/esm2015/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +6 -63
- package/esm2015/lib/annotations/comment-set/comment-set-render.service.js +5 -73
- package/esm2015/lib/annotations/comment-set/comment-set.component.js +11 -154
- package/esm2015/lib/annotations/comments-summary/comments-summary.component.js +8 -111
- package/esm2015/lib/annotations/models/api-persisted.model.js +2 -25
- package/esm2015/lib/annotations/models/event-select.model.js +2 -17
- package/esm2015/lib/annotations/models/tags.model.js +2 -19
- package/esm2015/lib/annotations/models/user.model.js +2 -17
- package/esm2015/lib/annotations/pipes/date/date.pipe.js +1 -12
- package/esm2015/lib/annotations/pipes/filter/filter.pipe.js +3 -17
- package/esm2015/lib/annotations/pipes/unsnake/unsnake.pipe.js +1 -9
- package/esm2015/lib/annotations/services/annotation-api/annotation-api.service.js +6 -93
- package/esm2015/lib/annotations/services/bookmarks-api/bookmarks-api.service.js +6 -69
- package/esm2015/lib/annotations/services/tags/tags.services.js +6 -54
- package/esm2015/lib/annotations/tags/tags.component.js +4 -50
- package/esm2015/lib/bookmark/components/bookmark-icons.component.js +2 -29
- package/esm2015/lib/icp/confirm-exit/confirm-action-dialog.component.js +2 -22
- package/esm2015/lib/icp/icp-follower.service.js +4 -63
- package/esm2015/lib/icp/icp-presenter.service.js +6 -69
- package/esm2015/lib/icp/icp-session-api.service.js +2 -26
- package/esm2015/lib/icp/icp-update.service.js +18 -92
- package/esm2015/lib/icp/icp.events.js +15 -0
- package/esm2015/lib/icp/icp.interfaces.js +2 -51
- package/esm2015/lib/icp/icp.service.js +18 -155
- package/esm2015/lib/icp/participants-list/participants-list.component.js +3 -43
- package/esm2015/lib/icp/socket.service.js +92 -86
- package/esm2015/lib/media-viewer.component.js +29 -199
- package/esm2015/lib/media-viewer.module.js +3 -7
- package/esm2015/lib/print.service.js +2 -18
- package/esm2015/lib/redaction/components/redaction.component.js +13 -127
- package/esm2015/lib/redaction/services/redaction-api.service.js +6 -75
- package/esm2015/lib/redaction/services/redaction.model.js +2 -19
- package/esm2015/lib/shared/gov-uk-date/gov-uk-date.component.js +2 -14
- package/esm2015/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +3 -14
- package/esm2015/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -17
- package/esm2015/lib/shared/gov-uk-label/gov-uk-label.component.js +3 -12
- package/esm2015/lib/shared/shared.module.js +1 -5
- package/esm2015/lib/shared/util/helpers/html-templates.helper.js +1 -10
- package/esm2015/lib/shared/util/services/number.helper.service.js +4 -14
- package/esm2015/lib/store/actions/annotation.actions.js +1 -140
- package/esm2015/lib/store/actions/bookmark.actions.js +1 -150
- package/esm2015/lib/store/actions/document.actions.js +1 -130
- package/esm2015/lib/store/actions/icp.actions.js +1 -80
- package/esm2015/lib/store/actions/redaction.actions.js +1 -155
- package/esm2015/lib/store/actions/tag.actions.js +1 -30
- package/esm2015/lib/store/bookmarks-store-utils.js +17 -69
- package/esm2015/lib/store/effects/annotation.effects.js +16 -90
- package/esm2015/lib/store/effects/bookmarks.effects.js +12 -127
- package/esm2015/lib/store/effects/document.effects.js +16 -97
- package/esm2015/lib/store/effects/icp.effects.js +5 -63
- package/esm2015/lib/store/effects/index.js +1 -6
- package/esm2015/lib/store/effects/redaction.effects.js +26 -137
- package/esm2015/lib/store/models/bookmarks.interface.js +2 -57
- package/esm2015/lib/store/models/filters.interface.js +2 -17
- package/esm2015/lib/store/reducers/annotations.reducer.js +14 -129
- package/esm2015/lib/store/reducers/bookmarks.reducer.js +12 -99
- package/esm2015/lib/store/reducers/document.reducer.js +10 -129
- package/esm2015/lib/store/reducers/icp.reducer.js +6 -47
- package/esm2015/lib/store/reducers/redaction.reducer.js +7 -73
- package/esm2015/lib/store/reducers/reducers.js +7 -31
- package/esm2015/lib/store/reducers/tags.reducer.js +12 -102
- package/esm2015/lib/store/selectors/annotation.selectors.js +29 -118
- package/esm2015/lib/store/selectors/bookmark.selectors.js +12 -51
- package/esm2015/lib/store/selectors/document.selectors.js +5 -26
- package/esm2015/lib/store/selectors/icp.selectors.js +9 -38
- package/esm2015/lib/store/selectors/redaction.selectors.js +10 -45
- package/esm2015/lib/store/selectors/tag.selectors.js +6 -28
- package/esm2015/lib/store/store-utils.js +26 -156
- package/esm2015/lib/toolbar/icp-event.service.js +13 -48
- package/esm2015/lib/toolbar/icp-toolbar/icp-toolbar.component.js +4 -56
- package/esm2015/lib/toolbar/main-toolbar/main-toolbar.component.js +9 -176
- package/esm2015/lib/toolbar/redaction-toolbar/redaction-toolbar.component.js +4 -58
- package/esm2015/lib/toolbar/search-bar/search-bar.component.js +11 -85
- package/esm2015/lib/toolbar/toolbar-button-visibility.service.js +2 -46
- package/esm2015/lib/toolbar/toolbar-event.service.js +2 -173
- package/esm2015/lib/toolbar/toolbar.module.js +1 -5
- package/esm2015/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.js +5 -75
- package/esm2015/lib/viewers/convertible-content-viewer/document-conversion-api.service.js +3 -34
- package/esm2015/lib/viewers/grab-n-drag.directive.js +1 -38
- package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +29 -196
- package/esm2015/lib/viewers/multimedia-player/multimedia-player.component.js +3 -55
- package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +61 -240
- package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +2 -40
- package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +34 -302
- package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +12 -107
- package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.js +2 -39
- package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +16 -25
- package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js +2 -31
- package/esm2015/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +16 -73
- package/esm2015/lib/viewers/rotation-persist/rotation-api.service.js +2 -35
- package/esm2015/lib/viewers/rotation-persist/rotation-persist.directive.js +8 -87
- package/esm2015/lib/viewers/rotation-persist/rotation.model.js +2 -15
- package/esm2015/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +4 -60
- package/esm2015/lib/viewers/viewer-event.service.js +2 -41
- package/esm2015/lib/viewers/viewer-exception.model.js +7 -32
- package/esm2015/lib/viewers/viewer-util.service.js +2 -20
- package/esm2015/public_api.js +28 -32
- package/fesm2015/hmcts-media-viewer.js +1540 -8065
- package/fesm2015/hmcts-media-viewer.js.map +1 -1
- package/hmcts-media-viewer-v2.9.1.tgz +0 -0
- package/hmcts-media-viewer.d.ts +19 -18
- package/hmcts-media-viewer.d.ts.map +1 -0
- package/hmcts-media-viewer.metadata.json +1 -1
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +5 -3
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +1 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +1 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -0
- package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-set.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-set.model.d.ts +1 -0
- package/lib/annotations/annotation-set/annotation-set.model.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +4 -3
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +1 -0
- package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +5 -2
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +1 -0
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts.map +1 -0
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +3 -1
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -0
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/annotations.module.d.ts +1 -0
- package/lib/annotations/annotations.module.d.ts.map +1 -0
- package/lib/annotations/annotations.module.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.component.d.ts +7 -5
- package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.model.d.ts +1 -0
- package/lib/annotations/comment-set/comment/comment.model.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.service.d.ts +1 -0
- package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.service.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -0
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +1 -0
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -0
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-render.service.d.ts +1 -0
- package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-render.service.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set.component.d.ts +1 -0
- package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
- package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -0
- package/lib/annotations/comments-summary/comments-summary.component.ngfactory.d.ts.map +1 -0
- package/lib/annotations/models/api-persisted.model.d.ts +1 -0
- package/lib/annotations/models/api-persisted.model.d.ts.map +1 -0
- package/lib/annotations/models/event-select.model.d.ts +1 -0
- package/lib/annotations/models/event-select.model.d.ts.map +1 -0
- package/lib/annotations/models/tags.model.d.ts +1 -0
- package/lib/annotations/models/tags.model.d.ts.map +1 -0
- package/lib/annotations/models/user.model.d.ts +1 -0
- package/lib/annotations/models/user.model.d.ts.map +1 -0
- package/lib/annotations/pipes/date/date.pipe.d.ts +2 -1
- package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -0
- package/lib/annotations/pipes/date/date.pipe.ngfactory.d.ts.map +1 -0
- package/lib/annotations/pipes/filter/filter.pipe.d.ts +1 -0
- package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -0
- package/lib/annotations/pipes/filter/filter.pipe.ngfactory.d.ts.map +1 -0
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +1 -0
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -0
- package/lib/annotations/pipes/unsnake/unsnake.pipe.ngfactory.d.ts.map +1 -0
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +3 -2
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -0
- package/lib/annotations/services/annotation-api/annotation-api.service.ngfactory.d.ts.map +1 -0
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +1 -0
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -0
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.ngfactory.d.ts.map +1 -0
- package/lib/annotations/services/tags/tags.services.d.ts +1 -0
- package/lib/annotations/services/tags/tags.services.d.ts.map +1 -0
- package/lib/annotations/services/tags/tags.services.ngfactory.d.ts.map +1 -0
- package/lib/annotations/tags/tags.component.d.ts +3 -2
- package/lib/annotations/tags/tags.component.d.ts.map +1 -0
- package/lib/annotations/tags/tags.component.ngfactory.d.ts.map +1 -0
- package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -0
- package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -0
- package/lib/bookmark/components/bookmark-icons.component.ngfactory.d.ts.map +1 -0
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +1 -0
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -0
- package/lib/icp/confirm-exit/confirm-action-dialog.component.ngfactory.d.ts.map +1 -0
- package/lib/icp/icp-follower.service.d.ts +1 -0
- package/lib/icp/icp-follower.service.d.ts.map +1 -0
- package/lib/icp/icp-follower.service.ngfactory.d.ts.map +1 -0
- package/lib/icp/icp-presenter.service.d.ts +1 -0
- package/lib/icp/icp-presenter.service.d.ts.map +1 -0
- package/lib/icp/icp-presenter.service.ngfactory.d.ts.map +1 -0
- package/lib/icp/icp-session-api.service.d.ts +1 -0
- package/lib/icp/icp-session-api.service.d.ts.map +1 -0
- package/lib/icp/icp-session-api.service.ngfactory.d.ts.map +1 -0
- package/lib/icp/icp-update.service.d.ts +1 -9
- package/lib/icp/icp-update.service.d.ts.map +1 -0
- package/lib/icp/icp-update.service.ngfactory.d.ts.map +1 -0
- package/lib/icp/icp.events.d.ts +14 -0
- package/lib/icp/icp.events.d.ts.map +1 -0
- package/lib/icp/icp.interfaces.d.ts +2 -0
- package/lib/icp/icp.interfaces.d.ts.map +1 -0
- package/lib/icp/icp.service.d.ts +1 -0
- package/lib/icp/icp.service.d.ts.map +1 -0
- package/lib/icp/icp.service.ngfactory.d.ts.map +1 -0
- package/lib/icp/participants-list/participants-list.component.d.ts +1 -0
- package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -0
- package/lib/icp/participants-list/participants-list.component.ngfactory.d.ts.map +1 -0
- package/lib/icp/socket.service.d.ts +14 -4
- package/lib/icp/socket.service.d.ts.map +1 -0
- package/lib/icp/socket.service.ngfactory.d.ts.map +1 -0
- package/lib/media-viewer.component.d.ts +2 -0
- package/lib/media-viewer.component.d.ts.map +1 -0
- package/lib/media-viewer.component.ngfactory.d.ts.map +1 -0
- package/lib/media-viewer.module.d.ts +1 -0
- package/lib/media-viewer.module.d.ts.map +1 -0
- package/lib/media-viewer.module.ngfactory.d.ts.map +1 -0
- package/lib/print.service.d.ts +1 -0
- package/lib/print.service.d.ts.map +1 -0
- package/lib/print.service.ngfactory.d.ts.map +1 -0
- package/lib/redaction/components/redaction.component.d.ts +1 -0
- package/lib/redaction/components/redaction.component.d.ts.map +1 -0
- package/lib/redaction/components/redaction.component.ngfactory.d.ts.map +1 -0
- package/lib/redaction/services/redaction-api.service.d.ts +1 -0
- package/lib/redaction/services/redaction-api.service.d.ts.map +1 -0
- package/lib/redaction/services/redaction-api.service.ngfactory.d.ts.map +1 -0
- package/lib/redaction/services/redaction.model.d.ts +1 -0
- package/lib/redaction/services/redaction.model.d.ts.map +1 -0
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +1 -0
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -0
- package/lib/shared/gov-uk-date/gov-uk-date.component.ngfactory.d.ts.map +1 -0
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -0
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -0
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ngfactory.d.ts.map +1 -0
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -0
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -0
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ngfactory.d.ts.map +1 -0
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +1 -0
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -0
- package/lib/shared/gov-uk-label/gov-uk-label.component.ngfactory.d.ts.map +1 -0
- package/lib/shared/shared.module.d.ts +1 -0
- package/lib/shared/shared.module.d.ts.map +1 -0
- package/lib/shared/shared.module.ngfactory.d.ts.map +1 -0
- package/lib/shared/util/helpers/html-templates.helper.d.ts +1 -0
- package/lib/shared/util/helpers/html-templates.helper.d.ts.map +1 -0
- package/lib/shared/util/services/number.helper.service.d.ts +1 -0
- package/lib/shared/util/services/number.helper.service.d.ts.map +1 -0
- package/lib/shared/util/services/number.helper.service.ngfactory.d.ts.map +1 -0
- package/lib/store/actions/annotation.actions.d.ts +1 -0
- package/lib/store/actions/annotation.actions.d.ts.map +1 -0
- package/lib/store/actions/bookmark.actions.d.ts +1 -0
- package/lib/store/actions/bookmark.actions.d.ts.map +1 -0
- package/lib/store/actions/document.actions.d.ts +1 -0
- package/lib/store/actions/document.actions.d.ts.map +1 -0
- package/lib/store/actions/icp.actions.d.ts +1 -0
- package/lib/store/actions/icp.actions.d.ts.map +1 -0
- package/lib/store/actions/redaction.actions.d.ts +1 -0
- package/lib/store/actions/redaction.actions.d.ts.map +1 -0
- package/lib/store/actions/tag.actions.d.ts +1 -0
- package/lib/store/actions/tag.actions.d.ts.map +1 -0
- package/lib/store/bookmarks-store-utils.d.ts +1 -0
- package/lib/store/bookmarks-store-utils.d.ts.map +1 -0
- package/lib/store/effects/annotation.effects.d.ts +1 -0
- package/lib/store/effects/annotation.effects.d.ts.map +1 -0
- package/lib/store/effects/annotation.effects.ngfactory.d.ts.map +1 -0
- package/lib/store/effects/bookmarks.effects.d.ts +1 -0
- package/lib/store/effects/bookmarks.effects.d.ts.map +1 -0
- package/lib/store/effects/bookmarks.effects.ngfactory.d.ts.map +1 -0
- package/lib/store/effects/document.effects.d.ts +1 -0
- package/lib/store/effects/document.effects.d.ts.map +1 -0
- package/lib/store/effects/document.effects.ngfactory.d.ts.map +1 -0
- package/lib/store/effects/icp.effects.d.ts +1 -0
- package/lib/store/effects/icp.effects.d.ts.map +1 -0
- package/lib/store/effects/icp.effects.ngfactory.d.ts.map +1 -0
- package/lib/store/effects/index.d.ts +1 -0
- package/lib/store/effects/index.d.ts.map +1 -0
- package/lib/store/effects/redaction.effects.d.ts +1 -0
- package/lib/store/effects/redaction.effects.d.ts.map +1 -0
- package/lib/store/effects/redaction.effects.ngfactory.d.ts.map +1 -0
- package/lib/store/models/bookmarks.interface.d.ts +1 -0
- package/lib/store/models/bookmarks.interface.d.ts.map +1 -0
- package/lib/store/models/filters.interface.d.ts +1 -0
- package/lib/store/models/filters.interface.d.ts.map +1 -0
- package/lib/store/reducers/annotations.reducer.d.ts +1 -0
- package/lib/store/reducers/annotations.reducer.d.ts.map +1 -0
- package/lib/store/reducers/bookmarks.reducer.d.ts +1 -0
- package/lib/store/reducers/bookmarks.reducer.d.ts.map +1 -0
- package/lib/store/reducers/document.reducer.d.ts +1 -0
- package/lib/store/reducers/document.reducer.d.ts.map +1 -0
- package/lib/store/reducers/icp.reducer.d.ts +1 -0
- package/lib/store/reducers/icp.reducer.d.ts.map +1 -0
- package/lib/store/reducers/redaction.reducer.d.ts +1 -0
- package/lib/store/reducers/redaction.reducer.d.ts.map +1 -0
- package/lib/store/reducers/reducers.d.ts +2 -1
- package/lib/store/reducers/reducers.d.ts.map +1 -0
- package/lib/store/reducers/tags.reducer.d.ts +1 -0
- package/lib/store/reducers/tags.reducer.d.ts.map +1 -0
- package/lib/store/selectors/annotation.selectors.d.ts +54 -15
- package/lib/store/selectors/annotation.selectors.d.ts.map +1 -0
- package/lib/store/selectors/bookmark.selectors.d.ts +18 -7
- package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -0
- package/lib/store/selectors/document.selectors.d.ts +15 -9
- package/lib/store/selectors/document.selectors.d.ts.map +1 -0
- package/lib/store/selectors/icp.selectors.d.ts +9 -8
- package/lib/store/selectors/icp.selectors.d.ts.map +1 -0
- package/lib/store/selectors/redaction.selectors.d.ts +18 -7
- package/lib/store/selectors/redaction.selectors.d.ts.map +1 -0
- package/lib/store/selectors/tag.selectors.d.ts +16 -6
- package/lib/store/selectors/tag.selectors.d.ts.map +1 -0
- package/lib/store/store-utils.d.ts +1 -0
- package/lib/store/store-utils.d.ts.map +1 -0
- package/lib/toolbar/icp-event.service.d.ts +1 -0
- package/lib/toolbar/icp-event.service.d.ts.map +1 -0
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +1 -0
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.ngfactory.d.ts.map +1 -0
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -0
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/main-toolbar/main-toolbar.component.ngfactory.d.ts.map +1 -0
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +1 -0
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ngfactory.d.ts.map +1 -0
- package/lib/toolbar/search-bar/search-bar.component.d.ts +2 -0
- package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -0
- package/lib/toolbar/search-bar/search-bar.component.ngfactory.d.ts.map +1 -0
- package/lib/toolbar/toolbar-button-visibility.service.d.ts +1 -0
- package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -0
- package/lib/toolbar/toolbar-button-visibility.service.ngfactory.d.ts.map +1 -0
- package/lib/toolbar/toolbar-event.service.d.ts +1 -0
- package/lib/toolbar/toolbar-event.service.d.ts.map +1 -0
- package/lib/toolbar/toolbar-event.service.ngfactory.d.ts.map +1 -0
- package/lib/toolbar/toolbar.module.d.ts +1 -0
- package/lib/toolbar/toolbar.module.d.ts.map +1 -0
- package/lib/toolbar/toolbar.module.ngfactory.d.ts.map +1 -0
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -0
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -0
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +1 -0
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -0
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.ngfactory.d.ts.map +1 -0
- package/lib/viewers/grab-n-drag.directive.d.ts +1 -0
- package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -0
- package/lib/viewers/grab-n-drag.directive.ngfactory.d.ts.map +1 -0
- package/lib/viewers/image-viewer/image-viewer.component.d.ts +5 -1
- package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -0
- package/lib/viewers/image-viewer/image-viewer.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -0
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -0
- package/lib/viewers/multimedia-player/multimedia-player.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +5 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +1 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ngfactory.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +6 -2
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/pdf-viewer.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +2 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +1 -0
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +7 -0
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +3 -1
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +4 -0
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts +1 -0
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation-api.service.ngfactory.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +1 -0
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation-persist.directive.ngfactory.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation.model.d.ts +1 -0
- package/lib/viewers/rotation-persist/rotation.model.d.ts.map +1 -0
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -0
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -0
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.ngfactory.d.ts.map +1 -0
- package/lib/viewers/viewer-event.service.d.ts +1 -0
- package/lib/viewers/viewer-event.service.d.ts.map +1 -0
- package/lib/viewers/viewer-event.service.ngfactory.d.ts.map +1 -0
- package/lib/viewers/viewer-exception.model.d.ts +1 -0
- package/lib/viewers/viewer-exception.model.d.ts.map +1 -0
- package/lib/viewers/viewer-util.service.d.ts +1 -0
- package/lib/viewers/viewer-util.service.d.ts.map +1 -0
- package/lib/viewers/viewer-util.service.ngfactory.d.ts.map +1 -0
- package/package.json +16 -17
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -0
- package/esm5/hmcts-media-viewer.js +0 -67
- package/esm5/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +0 -215
- package/esm5/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +0 -236
- package/esm5/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +0 -125
- package/esm5/lib/annotations/annotation-set/annotation-set.component.js +0 -109
- package/esm5/lib/annotations/annotation-set/annotation-set.model.js +0 -15
- package/esm5/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +0 -177
- package/esm5/lib/annotations/annotation-set/annotation-view/annotation.model.js +0 -29
- package/esm5/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +0 -250
- package/esm5/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.js +0 -21
- package/esm5/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +0 -216
- package/esm5/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +0 -200
- package/esm5/lib/annotations/annotations.module.js +0 -109
- package/esm5/lib/annotations/comment-set/comment/comment.component.js +0 -353
- package/esm5/lib/annotations/comment-set/comment/comment.model.js +0 -27
- package/esm5/lib/annotations/comment-set/comment/comment.service.js +0 -125
- package/esm5/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.js +0 -98
- package/esm5/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.js +0 -63
- package/esm5/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +0 -174
- package/esm5/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.js +0 -145
- package/esm5/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.js +0 -117
- package/esm5/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +0 -131
- package/esm5/lib/annotations/comment-set/comment-set-render.service.js +0 -177
- package/esm5/lib/annotations/comment-set/comment-set.component.js +0 -295
- package/esm5/lib/annotations/comments-summary/comments-summary.component.js +0 -239
- package/esm5/lib/annotations/models/api-persisted.model.js +0 -25
- package/esm5/lib/annotations/models/event-select.model.js +0 -17
- package/esm5/lib/annotations/models/tags.model.js +0 -19
- package/esm5/lib/annotations/models/user.model.js +0 -17
- package/esm5/lib/annotations/pipes/date/date.pipe.js +0 -48
- package/esm5/lib/annotations/pipes/filter/filter.pipe.js +0 -52
- package/esm5/lib/annotations/pipes/unsnake/unsnake.pipe.js +0 -28
- package/esm5/lib/annotations/services/annotation-api/annotation-api.service.js +0 -188
- package/esm5/lib/annotations/services/bookmarks-api/bookmarks-api.service.js +0 -132
- package/esm5/lib/annotations/services/tags/tags.services.js +0 -102
- package/esm5/lib/annotations/tags/tags.component.js +0 -112
- package/esm5/lib/bookmark/components/bookmark-icons.component.js +0 -55
- package/esm5/lib/icp/confirm-exit/confirm-action-dialog.component.js +0 -50
- package/esm5/lib/icp/icp-follower.service.js +0 -135
- package/esm5/lib/icp/icp-presenter.service.js +0 -135
- package/esm5/lib/icp/icp-session-api.service.js +0 -49
- package/esm5/lib/icp/icp-update.service.js +0 -165
- package/esm5/lib/icp/icp.interfaces.js +0 -51
- package/esm5/lib/icp/icp.service.js +0 -261
- package/esm5/lib/icp/participants-list/participants-list.component.js +0 -77
- package/esm5/lib/icp/socket.service.js +0 -142
- package/esm5/lib/media-viewer.component.js +0 -422
- package/esm5/lib/media-viewer.module.js +0 -110
- package/esm5/lib/print.service.js +0 -53
- package/esm5/lib/redaction/components/redaction.component.js +0 -247
- package/esm5/lib/redaction/services/redaction-api.service.js +0 -133
- package/esm5/lib/redaction/services/redaction.model.js +0 -19
- package/esm5/lib/shared/gov-uk-date/gov-uk-date.component.js +0 -37
- package/esm5/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +0 -36
- package/esm5/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -49
- package/esm5/lib/shared/gov-uk-label/gov-uk-label.component.js +0 -33
- package/esm5/lib/shared/shared.module.js +0 -42
- package/esm5/lib/shared/util/helpers/html-templates.helper.js +0 -36
- package/esm5/lib/shared/util/services/number.helper.service.js +0 -39
- package/esm5/lib/store/actions/annotation.actions.js +0 -226
- package/esm5/lib/store/actions/bookmark.actions.js +0 -242
- package/esm5/lib/store/actions/document.actions.js +0 -210
- package/esm5/lib/store/actions/icp.actions.js +0 -130
- package/esm5/lib/store/actions/redaction.actions.js +0 -255
- package/esm5/lib/store/actions/tag.actions.js +0 -50
- package/esm5/lib/store/bookmarks-store-utils.js +0 -110
- package/esm5/lib/store/effects/annotation.effects.js +0 -128
- package/esm5/lib/store/effects/bookmarks.effects.js +0 -193
- package/esm5/lib/store/effects/document.effects.js +0 -138
- package/esm5/lib/store/effects/icp.effects.js +0 -97
- package/esm5/lib/store/effects/index.js +0 -12
- package/esm5/lib/store/effects/redaction.effects.js +0 -190
- package/esm5/lib/store/models/bookmarks.interface.js +0 -57
- package/esm5/lib/store/models/filters.interface.js +0 -17
- package/esm5/lib/store/reducers/annotations.reducer.js +0 -231
- package/esm5/lib/store/reducers/bookmarks.reducer.js +0 -170
- package/esm5/lib/store/reducers/document.reducer.js +0 -222
- package/esm5/lib/store/reducers/icp.reducer.js +0 -83
- package/esm5/lib/store/reducers/redaction.reducer.js +0 -134
- package/esm5/lib/store/reducers/reducers.js +0 -47
- package/esm5/lib/store/reducers/tags.reducer.js +0 -159
- package/esm5/lib/store/selectors/annotation.selectors.js +0 -175
- package/esm5/lib/store/selectors/bookmark.selectors.js +0 -78
- package/esm5/lib/store/selectors/document.selectors.js +0 -37
- package/esm5/lib/store/selectors/icp.selectors.js +0 -47
- package/esm5/lib/store/selectors/redaction.selectors.js +0 -65
- package/esm5/lib/store/selectors/tag.selectors.js +0 -40
- package/esm5/lib/store/store-utils.js +0 -296
- package/esm5/lib/toolbar/icp-event.service.js +0 -65
- package/esm5/lib/toolbar/icp-toolbar/icp-toolbar.component.js +0 -112
- package/esm5/lib/toolbar/main-toolbar/main-toolbar.component.js +0 -408
- package/esm5/lib/toolbar/redaction-toolbar/redaction-toolbar.component.js +0 -130
- package/esm5/lib/toolbar/search-bar/search-bar.component.js +0 -226
- package/esm5/lib/toolbar/toolbar-button-visibility.service.js +0 -146
- package/esm5/lib/toolbar/toolbar-event.service.js +0 -416
- package/esm5/lib/toolbar/toolbar.module.js +0 -50
- package/esm5/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.js +0 -168
- package/esm5/lib/viewers/convertible-content-viewer/document-conversion-api.service.js +0 -57
- package/esm5/lib/viewers/grab-n-drag.directive.js +0 -98
- package/esm5/lib/viewers/image-viewer/image-viewer.component.js +0 -402
- package/esm5/lib/viewers/multimedia-player/multimedia-player.component.js +0 -125
- package/esm5/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +0 -446
- package/esm5/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +0 -87
- package/esm5/lib/viewers/pdf-viewer/pdf-viewer.component.js +0 -582
- package/esm5/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +0 -251
- package/esm5/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.js +0 -39
- package/esm5/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +0 -62
- package/esm5/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js +0 -31
- package/esm5/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +0 -146
- package/esm5/lib/viewers/rotation-persist/rotation-api.service.js +0 -68
- package/esm5/lib/viewers/rotation-persist/rotation-persist.directive.js +0 -163
- package/esm5/lib/viewers/rotation-persist/rotation.model.js +0 -15
- package/esm5/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +0 -120
- package/esm5/lib/viewers/viewer-event.service.js +0 -86
- package/esm5/lib/viewers/viewer-exception.model.js +0 -36
- package/esm5/lib/viewers/viewer-util.service.js +0 -44
- package/esm5/public_api.js +0 -35
- package/fesm5/hmcts-media-viewer.js +0 -14158
- package/fesm5/hmcts-media-viewer.js.map +0 -1
- package/hmcts-media-viewer-v2.8.1.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmcts-media-viewer.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.ts","ng://@hmcts/media-viewer/lib/toolbar/icp-event.service.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar-event.service.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ts","ng://@hmcts/media-viewer/lib/print.service.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-exception.model.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar-button-visibility.service.ts","ng://@hmcts/media-viewer/lib/store/actions/document.actions.ts","ng://@hmcts/media-viewer/lib/store/actions/tag.actions.ts","ng://@hmcts/media-viewer/lib/store/actions/icp.actions.ts","ng://@hmcts/media-viewer/lib/store/reducers/document.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/annotation.actions.ts","ng://@hmcts/media-viewer/lib/store/store-utils.ts","ng://@hmcts/media-viewer/lib/store/reducers/annotations.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/tags.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/bookmark.actions.ts","ng://@hmcts/media-viewer/lib/store/bookmarks-store-utils.ts","ng://@hmcts/media-viewer/lib/store/reducers/bookmarks.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/redaction.actions.ts","ng://@hmcts/media-viewer/lib/store/reducers/redaction.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/icp.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/reducers.ts","ng://@hmcts/media-viewer/lib/store/selectors/document.selectors.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-event.service.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-viewer.component.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-util.service.ts","ng://@hmcts/media-viewer/lib/viewers/image-viewer/image-viewer.component.ts","ng://@hmcts/media-viewer/lib/viewers/unsupported-viewer/unsupported-viewer.component.ts","ng://@hmcts/media-viewer/lib/annotations/services/annotation-api/annotation-api.service.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/comment.service.ts","ng://@hmcts/media-viewer/lib/store/selectors/tag.selectors.ts","ng://@hmcts/media-viewer/lib/store/selectors/annotation.selectors.ts","ng://@hmcts/media-viewer/lib/media-viewer.component.ts","ng://@hmcts/media-viewer/lib/shared/util/services/number.helper.service.ts","ng://@hmcts/media-viewer/lib/toolbar/main-toolbar/main-toolbar.component.ts","ng://@hmcts/media-viewer/lib/toolbar/search-bar/search-bar.component.ts","ng://@hmcts/media-viewer/lib/store/selectors/redaction.selectors.ts","ng://@hmcts/media-viewer/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ts","ng://@hmcts/media-viewer/lib/store/selectors/icp.selectors.ts","ng://@hmcts/media-viewer/lib/toolbar/icp-toolbar/icp-toolbar.component.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar.module.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-view/annotation-view.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-set.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ts","ng://@hmcts/media-viewer/lib/annotations/services/tags/tags.services.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/comment.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-render.service.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ts","ng://@hmcts/media-viewer/lib/annotations/comments-summary/comments-summary.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ts","ng://@hmcts/media-viewer/lib/annotations/tags/tags.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/date/date.pipe.ts","ng://@hmcts/media-viewer/lib/annotations/services/bookmarks-api/bookmarks-api.service.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/filter/filter.pipe.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/unsnake/unsnake.pipe.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-date/gov-uk-date.component.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ts","ng://@hmcts/media-viewer/lib/shared/util/helpers/html-templates.helper.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-label/gov-uk-label.component.ts","ng://@hmcts/media-viewer/lib/shared/shared.module.ts","ng://@hmcts/media-viewer/lib/store/selectors/bookmark.selectors.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotations.module.ts","ng://@hmcts/media-viewer/lib/viewers/grab-n-drag.directive.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/side-bar.component.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ts","ng://@hmcts/media-viewer/lib/redaction/components/redaction.component.ts","ng://@hmcts/media-viewer/lib/icp/icp-session-api.service.ts","ng://@hmcts/media-viewer/lib/icp/socket.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-update.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-presenter.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-follower.service.ts","ng://@hmcts/media-viewer/lib/icp/icp.service.ts","ng://@hmcts/media-viewer/lib/store/effects/annotation.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/bookmarks.effects.ts","ng://@hmcts/media-viewer/lib/redaction/services/redaction-api.service.ts","ng://@hmcts/media-viewer/lib/store/effects/redaction.effects.ts","ng://@hmcts/media-viewer/lib/viewers/convertible-content-viewer/document-conversion-api.service.ts","ng://@hmcts/media-viewer/lib/viewers/rotation-persist/rotation-api.service.ts","ng://@hmcts/media-viewer/lib/store/effects/document.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/icp.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/index.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ts","ng://@hmcts/media-viewer/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ts","ng://@hmcts/media-viewer/lib/icp/confirm-exit/confirm-action-dialog.component.ts","ng://@hmcts/media-viewer/lib/bookmark/components/bookmark-icons.component.ts","ng://@hmcts/media-viewer/lib/viewers/rotation-persist/rotation-persist.directive.ts","ng://@hmcts/media-viewer/lib/icp/participants-list/participants-list.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ts","ng://@hmcts/media-viewer/lib/viewers/multimedia-player/multimedia-player.component.ts","ng://@hmcts/media-viewer/lib/media-viewer.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as pdfjsLib from 'pdfjs-dist';\nimport { DownloadManager, PDFViewer } from 'pdfjs-dist/web/pdf_viewer';\nimport 'pdfjs-dist/build/pdf.worker';\nimport { Subject } from 'rxjs';\nimport { SearchOperation, ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\npdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';\n\n/**\n * Values of the state field returned by the find events\n */\nenum FindState {\n FOUND = 0,\n NOT_FOUND = 1,\n WRAPPED = 2,\n PENDING = 3,\n}\n\nexport class PdfJsWrapper {\n\n private zoomValue: number;\n private documentTitle: string;\n private documentOutline: Outline;\n\n constructor(\n private readonly pdfViewer: PDFViewer,\n private readonly downloadManager: DownloadManager,\n private readonly toolbarEvents: ToolbarEventService,\n public readonly documentLoadInit: Subject<string>,\n public readonly documentLoadProgress: Subject<DocumentLoadProgress>,\n public readonly documentLoaded: Subject<any>,\n public readonly outlineLoaded: Subject<Outline>,\n public readonly documentLoadFailed: Subject<Error>,\n public readonly pageRendered: Subject<PageEvent[]>,\n public readonly positionUpdated: Subject<{ location: PdfPosition }>,\n ) {\n this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));\n this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));\n this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');\n\n this.pdfViewer.eventBus.on('pagerendered', e => {}); // not used left for future convenience\n this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));\n\n this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {\n if (event.state !== FindState.PENDING) {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n }\n });\n this.pdfViewer.eventBus.on('updatefindmatchescount', event => {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n });\n this.zoomValue = 1;\n }\n\n private emitDocumentInfo(e) {\n const allPages: PageEvent[] = [...this.pdfViewer._pages].map(page => {\n return {\n div: page.div,\n scale: page.scale,\n rotation: page.rotation,\n id: page.id,\n viewportScale: page.viewport.scale\n };\n });\n this.pageRendered.next(allPages);\n }\n\n public async loadDocument(documentUrl: string) {\n const loadingTask = pdfjsLib.getDocument({\n url: documentUrl,\n cMapUrl: 'assets/minified/cmaps',\n cMapPacked: true,\n withCredentials: true\n });\n\n loadingTask.onProgress = ({ loaded, total }) => {\n this.documentLoadProgress.next({ loaded, total });\n };\n\n this.documentLoadInit.next(documentUrl);\n\n try {\n const pdfDocument = await loadingTask.promise;\n this.documentLoaded.next(pdfDocument);\n this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);\n\n this.pdfViewer.setDocument(pdfDocument);\n this.pdfViewer.linkService.setDocument(pdfDocument, null);\n\n this.documentOutline = await pdfDocument.getOutline();\n this.outlineLoaded.next(this.documentOutline);\n const pdfMetaData = await pdfDocument.getMetadata();\n this.setCurrentPDFTitle(pdfMetaData.info.Title);\n } catch (e) {\n this.documentLoadFailed.next(e);\n }\n }\n\n public downloadFile(url: string, filename: string): void {\n this.downloadManager.downloadUrl(url, filename);\n }\n\n public setPageNumber(pageNumber: number): void {\n this.pdfViewer.currentPageNumber = pageNumber;\n }\n public getPageNumber(): number {\n return this.pdfViewer.currentPageNumber;\n }\n public changePageNumber(numPages: number): void {\n this.pdfViewer.currentPageNumber += numPages;\n }\n\n public search(operation: SearchOperation): void {\n const command = operation.reset ? 'find' : 'findagain';\n\n this.pdfViewer.findController.executeCommand(command, {\n query: operation.searchTerm,\n phraseSearch: true,\n caseSensitive: operation.matchCase,\n entireWord: operation.wholeWord,\n highlightAll: operation.highlightAll,\n findPrevious: operation.previous,\n });\n }\n\n public clearSearch(): void {\n this.pdfViewer.eventBus.dispatch('findbarclose');\n }\n\n public navigateTo(destination: object | number) {\n if (destination instanceof Object) {\n if (!destination[1].name.includes('XYZ')) {\n destination[1] = { name: 'XYZ' };\n destination[2] = destination[2] || null;\n destination[3] = destination[3] || null;\n }\n destination[4] = this.zoomValue;\n }\n this.pdfViewer.linkService.navigateTo(destination);\n }\n\n public setZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n public stepZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = +this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n private getZoomValue(zoomValue: number): number {\n if (isNaN(zoomValue)) { return this.zoomValue; }\n if (zoomValue > 5) { return 5; }\n if (zoomValue < 0.1) { return 0.1; }\n\n return +zoomValue.toFixed(2);\n }\n\n public rotate(rotation: number): number {\n return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;\n }\n\n public resetRotation(rotation: number): number {\n return this.pdfViewer.pagesRotation = rotation;\n }\n\n public getNormalisedPagesRotation(): number {\n return this.pdfViewer.pagesRotation;\n }\n\n public getCurrentPDFZoomValue(): number {\n return this.pdfViewer.currentScaleValue;\n }\n\n public setCurrentPDFTitle(title: string) {\n this.documentTitle = title;\n }\n\n public getCurrentPDFTitle(): string {\n return this.documentTitle;\n }\n}\n\nexport interface DocumentLoadProgress {\n loaded: number;\n total: number;\n}\n\nexport interface PageEvent {\n div: object;\n scale: number;\n rotation: number;\n id: string;\n viewportScale: number;\n}\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n export const enabled = new BehaviorSubject(false);\n export const sessionLaunch = new Subject();\n export const becomingPresenter = new Subject();\n export const stoppingPresenting = new Subject();\n export const leavingSession = new BehaviorSubject(false);\n export const sessionExitConfirmed = new Subject();\n export const participantsListVisible = new BehaviorSubject(false);\n\nexport const launchSession = () => {\n sessionLaunch.next();\n};\n\nexport const enable = () => {\n enabled.next(true);\n launchSession();\n};\n\nexport const becomePresenter = () => {\n becomingPresenter.next();\n};\n\nexport const stopPresenting = () => {\n stoppingPresenting.next();\n};\n\nexport const leaveSession = () => {\n leavingSession.next(true);\n};\n\nexport const confirmExit = () => {\n sessionExitConfirmed.next();\n participantsListVisible.next(false);\n enabled.next(false);\n};\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport * as icpEvents from './icp-event.service';\nimport { participantsListVisible } from './icp-event.service';\n\n// Toolbar Custom-Event Types\nexport type HighlightMode = boolean;\nexport type DrawMode = boolean;\nexport interface SearchOperation {\n searchTerm: string;\n highlightAll: boolean;\n matchCase: boolean;\n wholeWord: boolean;\n previous: boolean;\n reset: boolean;\n}\nexport interface SearchResultsCount {\n current: number;\n total: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToolbarEventService {\n\n public readonly highlightModeSubject = new BehaviorSubject<HighlightMode>(false);\n public readonly drawModeSubject = new BehaviorSubject<DrawMode>(false);\n public readonly rotateSubject = new Subject<number>();\n public readonly searchSubject = new Subject<SearchOperation>();\n public readonly searchResultsCountSubject = new Subject<SearchResultsCount>();\n public readonly zoomSubject = new Subject<number>();\n public readonly stepZoomSubject = new Subject<number>();\n public readonly zoomValueSubject = new BehaviorSubject<number>(1);\n public readonly pageCountSubject = new Subject<number>();\n public readonly printSubject = new Subject();\n public readonly downloadSubject = new Subject();\n public readonly setCurrentPageSubject = new Subject<number>();\n public readonly setCurrentPageInputValueSubject = new Subject<number>();\n public readonly changePageByDeltaSubject = new Subject<number>();\n public readonly showCommentSummary = new BehaviorSubject<boolean>(false);\n public readonly grabNDrag = new BehaviorSubject<boolean>(false);\n public readonly saveRotationSubject = new Subject();\n\n public readonly redactionMode = new BehaviorSubject(false);\n public readonly redactionPreview = new Subject<boolean>();\n public readonly applyRedactToDocument = new Subject();\n public readonly clearAllRedactMarkers = new Subject();\n\n public readonly sidebarOpen = new BehaviorSubject(false);\n public readonly searchBarHidden = new BehaviorSubject(true);\n public readonly commentsPanelVisible = new BehaviorSubject(false);\n\n public readonly icp = icpEvents;\n\n\n /**\n * Reset the stateful behaviour subjects\n */\n public reset(): void {\n this.setCurrentPageSubject.next(1);\n this.zoomValueSubject.next(1);\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(false);\n this.showCommentSummary.next(false);\n }\n\n // Function to inform Observers that highlightMode has been enabled\n public toggleHighlightMode(): void {\n // Highlight and Draw states are mutually exclusive\n if (this.highlightModeSubject.getValue() === false) {\n this.drawModeSubject.next(false);\n this.highlightModeSubject.next(true);\n } else {\n this.highlightModeSubject.next(false);\n }\n }\n\n // Function to inform Observers that ToggleMode has been enabled\n public toggleDrawMode(): void {\n if (this.drawModeSubject.getValue() === false) {\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(true);\n } else {\n this.drawModeSubject.next(false);\n }\n }\n\n public rotate(angle: number): void {\n this.rotateSubject.next(angle);\n }\n\n public search(phrase: SearchOperation): void {\n this.searchSubject.next(phrase);\n }\n\n public getSearchResultsCount(): Observable<SearchResultsCount> {\n return this.searchResultsCountSubject.asObservable();\n }\n\n public zoom(value: number): void {\n this.zoomSubject.next(value);\n }\n\n public stepZoom(value: number): void {\n this.stepZoomSubject.next(value);\n }\n\n public getZoomValue(): Observable<number> {\n return this.zoomValueSubject.asObservable();\n }\n\n public getPageCount(): Observable<number> {\n return this.pageCountSubject.asObservable();\n }\n\n public print(): void {\n this.printSubject.next();\n }\n\n public download(): void {\n this.downloadSubject.next();\n }\n\n public setPage(value: number): void {\n this.setCurrentPageSubject.next(value);\n }\n\n public incrementPage(value: number): void {\n this.changePageByDeltaSubject.next(value);\n }\n\n public getCurrentPageNumber(): Observable<number> {\n return this.setCurrentPageInputValueSubject.asObservable();\n }\n\n public getShowCommentSummary(): Observable<boolean> {\n return this.showCommentSummary.asObservable();\n }\n\n public toggleCommentsSummary(value: boolean): void {\n this.showCommentSummary.next(value);\n }\n\n public saveRotation(): void {\n this.saveRotationSubject.next();\n }\n\n public toggleGrabNDrag(): void {\n this.grabNDrag.next(!this.grabNDrag.getValue());\n }\n\n toggleSideBar(toggle: boolean) {\n this.sidebarOpen.next(toggle);\n }\n\n public toggleRedactionMode(): void {\n this.redactionMode.next(!this.redactionMode.getValue());\n }\n\n public toggleRedactionPreview(viewMode: boolean): void {\n this.redactionPreview.next(viewMode);\n }\n\n public unmarkAll(): void {\n this.clearAllRedactMarkers.next();\n }\n\n public applyRedactionToDocument(): void {\n this.applyRedactToDocument.next();\n }\n\n public toggleCommentsPanel(isVisible: boolean) {\n if (isVisible) {\n this.toggleParticipantsList(!isVisible);\n }\n this.commentsPanelVisible.next(isVisible);\n }\n\n public toggleParticipantsList(isVisible: boolean) {\n if (isVisible) {\n this.toggleCommentsPanel(!isVisible);\n }\n this.icp.participantsListVisible.next(isVisible);\n }\n}\n","import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer';\nimport { ElementRef, Injectable } from '@angular/core';\nimport {DocumentLoadProgress, PageEvent, PdfJsWrapper} from './pdf-js-wrapper';\nimport { Subject } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\n@Injectable({providedIn: 'root'})\nexport class PdfJsWrapperFactory {\n\n private linkService: pdfjsViewer.PDFLinkService;\n private eventBus: pdfjsViewer.EventBus;\n private pdfJsWrapper: PdfJsWrapper;\n\n constructor(private readonly toolbarEvents: ToolbarEventService) {\n this.linkService = new pdfjsViewer.PDFLinkService();\n this.eventBus = new pdfjsViewer.EventBus();\n }\n\n public create(container: ElementRef): PdfJsWrapper {\n const pdfFindController = new pdfjsViewer.PDFFindController({\n linkService: this.linkService,\n eventBus: this.eventBus\n });\n\n const pdfViewer = new pdfjsViewer.PDFViewer({\n container: container.nativeElement,\n linkService: this.linkService,\n findController: pdfFindController,\n eventBus: this.eventBus,\n imageResourcesPath: '/assets/images/',\n textLayerMode: 2\n });\n\n this.linkService.setViewer(pdfViewer);\n\n this.pdfJsWrapper = new PdfJsWrapper(\n pdfViewer,\n new pdfjsViewer.DownloadManager({}),\n this.toolbarEvents,\n new Subject<string>(),\n new Subject<DocumentLoadProgress>(),\n new Subject<any>(),\n new Subject<Outline>(),\n new Subject(),\n new Subject<PageEvent[]>(),\n new Subject<{ location: PdfPosition }>()\n );\n\n return this.pdfJsWrapper;\n }\n\n pdfWrapper() {\n return this.pdfJsWrapper;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrintService {\n\n printDocumentNatively(url: string): void {\n const printWindow = window.open(url);\n printWindow.print();\n }\n\n printElementNatively(element: HTMLElement, width: number, height: number): void {\n const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);\n\n printWindow.document.write(element.innerHTML);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n","export enum ResponseType {\n SUCCESS = 'SUCCESS',\n FAILURE = 'FAILURE',\n UNSUPPORTED = 'UNSUPPORTED'\n}\n\nexport interface ExceptionDetail {\n httpResponseCode?: string;\n message?: string;\n}\n\nexport class ViewerException {\n exceptionType?: string;\n detail?: ExceptionDetail;\n\n constructor(exceptionType?: string, detail?: ExceptionDetail) {\n this.exceptionType = exceptionType;\n this.detail = detail;\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n@Injectable({providedIn: 'root'})\nexport class ToolbarButtonVisibilityService {\n\n public showPrint = false;\n public showDownload = false;\n public showNavigation = false;\n public showZoom = false;\n public showRotate = false;\n public showPresentationMode = false;\n public showRedact = false;\n public showOpenFile = false;\n public showBookmark = false;\n public showHighlightButton = false;\n public showDrawButton = false;\n public showSearchBar = false;\n public showSidebar = false;\n public showCommentSummary = false;\n public showGrabNDragButton = false;\n public showSaveRotationButton = false;\n\n /**\n * Reset the visibility of all buttons to false then set the value from the options\n */\n public setup(options: Partial<ToolbarButtonVisibilityService>): void {\n this.showPrint = false;\n this.showDownload = false;\n this.showNavigation = false;\n this.showZoom = false;\n this.showRotate = false;\n this.showPresentationMode = false;\n this.showRedact = false;\n this.showOpenFile = false;\n this.showBookmark = false;\n this.showHighlightButton = false;\n this.showDrawButton = false;\n this.showSearchBar = false;\n this.showSidebar = false;\n this.showCommentSummary = false;\n this.showGrabNDragButton = false;\n this.showSaveRotationButton = false;\n\n for (const key in options) {\n this[key] = options[key];\n }\n }\n}\n\n/**\n * Default toolbar state for the PDF viewer\n */\nexport const defaultPdfOptions = {\n showPrint: true,\n showDownload: true,\n showNavigation: true,\n showZoom: true,\n showRotate: true,\n showSearchBar: true,\n showSidebar: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showPresentationMode: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for the image viewer\n */\nexport const defaultImageOptions = {\n showPrint: true,\n showDownload: true,\n showZoom: true,\n showRotate: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for multimedia\n */\nexport const defaultMultimediaOptions = {\n showDownload: true\n};\n\n/**\n * Default toolbar state for unsupported media\n */\nexport const defaultUnsupportedOptions = {\n showDownload: true,\n showPrint: true\n};\n","import { Action } from '@ngrx/store';\nimport { PageEvent } from '../../viewers/pdf-viewer/pdf-js/pdf-js-wrapper';\nimport { Rotation } from '../../viewers/rotation-persist/rotation.model';\nimport { PdfPosition } from '../reducers/document.reducer';\n\nexport const SET_DOCUMENT_ID = '[Document] Set Document Id';\nexport const POSITION_UPDATED = '[Document] Position Updated';\nexport const ADD_PAGES = '[Document] Add Pages';\nexport const CONVERT = '[Document] Convert';\nexport const CONVERT_SUCCESS = '[Document] Convert Success';\nexport const CONVERT_FAIL = '[Document] Convert Fail';\nexport const CLEAR_CONVERT_DOC_URL = '[Document] Clear Convert Doc Url';\n\nexport const LOAD_ROTATION = '[Document] Load Rotation';\nexport const LOAD_ROTATION_SUCCESS = '[Document] Load Rotation Success';\nexport const LOAD_ROTATION_FAIL = '[Document] Load Rotation Fail';\nexport const SAVE_ROTATION = '[Document] Save Rotation';\nexport const SAVE_ROTATION_SUCCESS = '[Document] Save Rotation Success';\nexport const SAVE_ROTATION_FAIL = '[Document] Save Rotation Fail';\n\nexport class SetDocumentId implements Action {\n readonly type = SET_DOCUMENT_ID;\n constructor(public payload: string) { }\n}\n\nexport class AddPages implements Action {\n readonly type = ADD_PAGES;\n constructor(public payload: PageEvent[]) { }\n}\n\nexport class PdfPositionUpdate implements Action {\n readonly type = POSITION_UPDATED;\n constructor(public payload: PdfPosition) {}\n}\n\nexport class Convert implements Action {\n readonly type = CONVERT;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertSuccess implements Action {\n readonly type = CONVERT_SUCCESS;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertFailure implements Action {\n readonly type = CONVERT_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class ClearConvertDocUrl implements Action {\n readonly type = CLEAR_CONVERT_DOC_URL;\n}\n\nexport class LoadRotation implements Action {\n readonly type = LOAD_ROTATION;\n constructor(public payload: string) {\n }\n}\n\nexport class LoadRotationSuccess implements Action {\n readonly type = LOAD_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class LoadRotationFailure implements Action {\n readonly type = LOAD_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport class SaveRotation implements Action {\n readonly type = SAVE_ROTATION;\n constructor(public payload: Rotation) {\n }\n}\n\nexport class SaveRotationSuccess implements Action {\n readonly type = SAVE_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class SaveRotationFailure implements Action {\n readonly type = SAVE_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport type DocumentActions =\n | AddPages | SetDocumentId | Convert\n | ConvertSuccess | ConvertFailure | ClearConvertDocUrl\n | PdfPositionUpdate | LoadRotation | LoadRotationSuccess\n | LoadRotationFailure | SaveRotation | SaveRotationSuccess\n | SaveRotationFailure;\n","import { Action } from '@ngrx/store';\nimport {TagsModel} from '../../annotations/models/tags.model';\nexport const UPDATE_TAGS = '[Tags] Update Tags';\nexport const ADD_FILTER_TAGS = '[Tags] Add Filter Tags';\nexport const CLEAR_FILTER_TAGS = '[Tags] Clear Filter Tags';\n\nexport class UpdateTags implements Action {\n readonly type = UPDATE_TAGS;\n constructor(public payload: {tags: TagsModel[]; annoId: string}) {}\n}\n\nexport class AddFilterTags implements Action {\n readonly type = ADD_FILTER_TAGS;\n constructor(public payload: {[id: string]: boolean}) {}\n}\n\nexport class ClearFilterTags implements Action {\n readonly type = CLEAR_FILTER_TAGS;\n}\n\n\nexport type TagsActions =\n | UpdateTags\n | AddFilterTags\n | ClearFilterTags;\n","import { Action } from '@ngrx/store';\nimport { IcpParticipant, IcpSession } from '../../icp/icp.interfaces';\n\nexport const SET_CASE_ID = '[Icp] Set Case Id';\nexport const LOAD_ICP_SESSION = '[Icp] Load Session';\nexport const LOAD_ICP_SESSION_FAIL = '[Icp] Load Session Failure';\nexport const JOIN_ICP_SOCKET_SESSION = '[Icp] Join Socket Session';\nexport const ICP_SOCKET_SESSION_JOINED = '[Icp] Socket Session Joined';\nexport const LEAVE_ICP_SOCKET_SESSION = '[Icp] Leave Socket Session';\nexport const ICP_PRESENTER_UPDATED = '[Icp] Presenter Updated';\nexport const ICP_PARTICIPANT_LIST_UPDATED = '[Icp] Participant List Updated';\n\nexport class SetCaseId implements Action {\n readonly type = SET_CASE_ID;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSession implements Action {\n readonly type = LOAD_ICP_SESSION;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSessionFailure implements Action {\n readonly type = LOAD_ICP_SESSION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class JoinIcpSocketSession implements Action {\n readonly type = JOIN_ICP_SOCKET_SESSION;\n constructor(public payload: { username: string, session: IcpSession }) {}\n}\n\nexport class IcpSocketSessionJoined implements Action {\n readonly type = ICP_SOCKET_SESSION_JOINED;\n constructor(public payload: { session: IcpSession, participantInfo: { client: IcpParticipant, presenter: IcpParticipant } }) {}\n}\n\nexport class LeaveIcpSocketSession implements Action {\n readonly type = LEAVE_ICP_SOCKET_SESSION;\n constructor() {}\n}\n\nexport class IcpPresenterUpdated implements Action {\n readonly type = ICP_PRESENTER_UPDATED;\n constructor(public payload: IcpParticipant) {}\n}\n\nexport class IcpParticipantListUpdated implements Action {\n readonly type = ICP_PARTICIPANT_LIST_UPDATED;\n constructor(public payload: any) {}\n}\n\nexport type IcpActions =\n | SetCaseId\n | LoadIcpSession\n | LoadIcpSessionFailure\n | JoinIcpSocketSession\n | IcpSocketSessionJoined\n | LeaveIcpSocketSession\n | IcpPresenterUpdated\n | IcpParticipantListUpdated;\n","import * as fromActions from '../actions/document.actions';\n\nexport interface DocumentState {\n convertedDocument: {\n url: string;\n error: string;\n };\n documentId: string;\n pdfPosition: PdfPosition;\n pages: {[id: string]: DocumentPages};\n hasDifferentPageSize: boolean;\n rotation: number;\n rotationLoaded: boolean;\n loaded: boolean;\n loading: boolean;\n}\n\nexport interface DocumentPages {\n numberOfPages: number;\n styles: { left: number, height: number, width: number };\n scaleRotation: { scale: string; rotation: string };\n viewportScale: number;\n}\n\nexport interface PdfPosition {\n pageNumber: number;\n scale: number;\n top: number;\n left: number;\n rotation: number;\n}\n\nexport const initialDocumentState: DocumentState = {\n convertedDocument: undefined,\n documentId: undefined,\n pdfPosition: undefined,\n pages: {},\n hasDifferentPageSize: false,\n rotation: undefined,\n rotationLoaded: false,\n loading: false,\n loaded: false\n};\n\nexport function docReducer (state = initialDocumentState,\n action: fromActions.DocumentActions): DocumentState {\n\n switch (action.type) {\n\n case fromActions.CONVERT_SUCCESS: {\n const convertedDocument = {\n url: action.payload,\n error: undefined\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CONVERT_FAIL: {\n const convertedDocument = {\n url: undefined,\n error: action.payload\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CLEAR_CONVERT_DOC_URL: {\n const convertedDocument = undefined;\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.LOAD_ROTATION: {\n return {\n ...state,\n rotationLoaded: false\n };\n }\n\n case fromActions.LOAD_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata ? metadata.rotationAngle : 0;\n return {\n ...state,\n rotation,\n rotationLoaded: true\n };\n }\n\n case fromActions.LOAD_ROTATION_FAIL: {\n return {\n ...state,\n rotation: 0,\n rotationLoaded: true\n };\n }\n\n case fromActions.SAVE_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata.rotationAngle;\n return {\n ...state,\n rotation\n };\n }\n\n case fromActions.SET_DOCUMENT_ID : {\n return {\n ...state,\n documentId: action.payload\n };\n }\n\n case fromActions.ADD_PAGES: {\n const payload = action.payload;\n let pages = {};\n let pageHeight;\n let pageWidth;\n let hasDifferentPageSize = state.hasDifferentPageSize;\n payload.forEach(page => {\n if (!hasDifferentPageSize && pageHeight && pageWidth &&\n (pageHeight !== page.div['scrollHeight'] || pageWidth !== page.div['scrollWidth'])) {\n hasDifferentPageSize = true;\n } else {\n pageHeight = page.div['scrollHeight'];\n pageWidth = page.div['scrollWidth'];\n }\n const styles = {\n left: page.div['offsetLeft'],\n height: page.div['scrollHeight'],\n width: page.div['scrollWidth']\n };\n\n const scaleRotation = {\n scale: page.scale,\n rotation: page.rotation\n };\n\n const p = {\n styles,\n scaleRotation,\n viewportScale: page.viewportScale\n };\n\n pages = {\n ...pages,\n [page.id]: p\n };\n\n });\n return {\n ...state,\n pages,\n hasDifferentPageSize\n };\n }\n\n case fromActions.POSITION_UPDATED: {\n const pdfPosition = action.payload;\n return {\n ...state,\n pdfPosition\n };\n }\n }\n return state;\n}\nexport const getDocPages = (state: DocumentState) => state.pages;\nexport const getDocId = (state: DocumentState) => state.documentId;\nexport const getPdfPos = (state: DocumentState) => state.pdfPosition;\nexport const getHasDifferentPageSizes = (state: DocumentState) => state.hasDifferentPageSize;\nexport const getRotation = (state: DocumentState) => state.rotation;\nexport const rotationLoaded = (state: DocumentState) => state.rotationLoaded;\nexport const getConvertedDocument = (state: DocumentState) => state.convertedDocument;\n","import { Action } from '@ngrx/store';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { Filters } from '../models/filters.interface';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\n\nexport const LOAD_ANNOTATION_SET = '[Annotations] Load Annotation Set';\nexport const LOAD_ANNOTATION_SET_SUCCESS = '[Annotations] Load Annotation Set Success';\nexport const LOAD_ANNOTATION_SET_FAIL = '[Annotations] Load Annotation Set Fail';\n\nexport const SAVE_ANNOTATION = '[Annotations] Save Annotation';\nexport const SAVE_ANNOTATION_SUCCESS = '[Annotations] Save Annotation Success';\nexport const SAVE_ANNOTATION_FAIL = '[Annotations] Save Annotation Fail';\nexport const ADD_OR_EDIT_COMMENT = '[Annotations] Add or Edit Comment';\n\nexport const DELETE_ANNOTATION = '[Annotations] Delete Annotation';\nexport const DELETE_ANNOTATION_SUCCESS = '[Annotations] Delete Annotation Success';\nexport const DELETE_ANNOTATION_FAIL = '[Annotations] Delete Annotation Fail';\n\nexport const SELECT_ANNOTATION = '[Annotations] Select Annotation';\nexport const SEARCH_COMMENT = '[Comments] Search Comments';\nexport const APPLY_COMMENT_SUMMARY_FILTER = '[Comments] Apply Comment Summary Filter';\nexport const CLEAR_COMMENT_SUMMARY_FILTER = '[Comments] Clear Comment Summary Filter';\n\nexport class LoadAnnotationSet implements Action {\n readonly type = LOAD_ANNOTATION_SET;\n constructor(public payload: string) { }\n}\n\nexport class LoadAnnotationSetSucess implements Action {\n readonly type = LOAD_ANNOTATION_SET_SUCCESS;\n constructor(public payload: { status: number, body: AnnotationSet }) { }\n}\n\nexport class LoadAnnotationSetFail implements Action {\n readonly type = LOAD_ANNOTATION_SET_FAIL;\n constructor(public payload: { status: number, body: any }) { }\n}\n\nexport class SaveAnnotation implements Action {\n readonly type = SAVE_ANNOTATION;\n constructor(public payload: Annotation) { }\n}\n\nexport class SaveAnnotationSuccess implements Action {\n readonly type = SAVE_ANNOTATION_SUCCESS;\n constructor(public payload: any) { }\n}\n\nexport class SaveAnnotationFail implements Action {\n readonly type = SAVE_ANNOTATION_FAIL;\n constructor(public payload: Error) { }\n}\n\nexport class AddOrEditComment implements Action {\n readonly type = ADD_OR_EDIT_COMMENT;\n constructor(public payload: Comment) { }\n}\n\nexport class DeleteAnnotation implements Action {\n readonly type = DELETE_ANNOTATION;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationSuccess implements Action {\n readonly type = DELETE_ANNOTATION_SUCCESS;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationFail implements Action {\n readonly type = DELETE_ANNOTATION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class SelectedAnnotation implements Action {\n readonly type = SELECT_ANNOTATION;\n constructor(public payload: SelectionAnnotation) {}\n}\n\nexport class SearchComment implements Action {\n readonly type = SEARCH_COMMENT;\n constructor(public payload: string) {}\n}\n\nexport class ApplyCommentSymmaryFilter implements Action {\n readonly type = APPLY_COMMENT_SUMMARY_FILTER;\n constructor(public payload: Filters) {}\n}\n\nexport class ClearCommentSummaryFilters implements Action {\n readonly type = CLEAR_COMMENT_SUMMARY_FILTER;\n}\n\nexport type AnnotationsActions =\n | LoadAnnotationSet\n | LoadAnnotationSetSucess\n | LoadAnnotationSetFail\n | SaveAnnotation\n | SaveAnnotationSuccess\n | SaveAnnotationFail\n | AddOrEditComment\n | DeleteAnnotation\n | DeleteAnnotationSuccess\n | DeleteAnnotationFail\n | SelectedAnnotation\n | SearchComment\n | ApplyCommentSymmaryFilter\n | ClearCommentSummaryFilters;\n","import { Annotation } from '../annotations/annotation-set/annotation-view/annotation.model';\nimport moment from 'moment-timezone';\nimport { Redaction } from '../redaction/services/redaction.model';\nimport { Filters } from './models/filters.interface';\nimport { Comment } from '../annotations/comment-set/comment/comment.model';\n\n/*\n @dynamic\n marking class as dynamic to stop compiler throwing error for lambda in static function\n see https://github.com/angular/angular/issues/19698#issuecomment-338340211\n */\nexport class StoreUtils {\n\n static groupByKeyEntities(annotations, key): {[id: string]: any[]} {\n return annotations.reduce((h, obj) =>\n Object.assign(h, { [obj[key]]: ( h[obj[key]] || [] ).concat(obj) }), {});\n }\n\n static generateCommentsEntities(annotations): {[id: string]: Comment} {\n return annotations.reduce(\n (commentEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n if (annotation.comments.length) {\n const comment = {\n ...annotation.comments[0] || '',\n tags: [...annotation.tags || []]\n };\n return {\n ...commentEntities,\n [annotation.id]: comment\n };\n }\n return {\n ...commentEntities\n };\n }, {});\n }\n\n static genTagNameEntities(annotations) {\n const filterAnnoWithoutCommentsTags = annotations.filter(a => (a.comments.length && a.tags.length));\n const allTags = filterAnnoWithoutCommentsTags.map(anno => this.groupByKeyEntities(anno.tags, 'name'));\n const groupedByName = allTags.reduce(\n (tagEntitiy: { [id: string]: Annotation }, tagItem) => {\n return {\n ...tagEntitiy,\n ...tagItem\n };\n }, {});\n\n return this.genNameEnt(annotations, groupedByName);\n }\n\n static genNameEnt(annos, groupedByName) {\n return Object.keys(groupedByName).reduce(\n (tagNameEnt, key) => {\n const readyAnno = annos.filter(anno => anno.tags.find(tag => tag.name === key))\n .map(anno => anno.id)\n .reduce((obj: {[id: string]: string}, anno: string) => ({ ...obj, [anno]: anno }), {});\n\n return {\n ...tagNameEnt,\n [key]: readyAnno\n };\n }, {});\n\n }\n\n static generateAnnotationEntities(anno): {[id: string]: Annotation} {\n return anno.reduce(\n (annoEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n const annot = {\n ...annotation,\n positionTop: annotation.rectangles[0].y // todo remove this\n };\n return {\n ...annoEntities,\n [annotation.id]: annot\n };\n }, {});\n }\n\n static generateRedactionEntities(redactions: Redaction[]): { [id: string]: Redaction } {\n return redactions.reduce(\n (redactEntities: { [id: string]: Redaction }, redaction: Redaction) => {\n return {\n ...redactEntities,\n [redaction.redactionId]: redaction\n };\n }, {});\n }\n\n static resetCommentEntSelect(ent: { [id: string]: Comment }) {\n return Object.keys(ent).reduce((object, key) => {\n object[key] = {\n ...ent[key],\n editable: false,\n selected: false\n };\n return object;\n }, {});\n }\n\n static filterCommentsSummary(comments: Array<Comment>, filters: Filters) {\n if (Object.keys(filters).length) {\n const tagFilterApplied = Object.keys(filters.tagFilters)\n .filter(key => filters.tagFilters[key] === true).length;\n const dateFilterApplied = (filters.dateRangeFrom || filters.dateRangeTo);\n const filteredComments = comments.filter(comment => {\n let hasTagFilter = false;\n let hasDateFilter = false;\n // check tags\n if (filters.hasOwnProperty('tagFilters')) {\n Object.keys(filters.tagFilters).forEach(filter => {\n const label = filters.tagFilters[filter];\n if (label) {\n return comment.tags.forEach(tag => {\n if (tag.name === filter && !hasTagFilter) {\n hasTagFilter = true;\n }\n });\n }});\n }\n // check for dates\n if (dateFilterApplied) {\n const commentDate = moment(comment.lastModifiedDate);\n const dateFrom = filters.dateRangeFrom !== null ? moment(filters.dateRangeFrom) : undefined;\n const dateTo = filters.dateRangeTo !== null ? moment(filters.dateRangeTo) : undefined;\n\n if (dateTo && dateFrom) {\n if (commentDate > dateFrom && commentDate < dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateTo && !dateFrom) {\n if (commentDate <= dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateFrom && !dateTo) {\n if (commentDate > dateFrom) {\n hasDateFilter = true;\n }\n }\n }\n\n return (hasTagFilter || hasDateFilter);\n });\n return (tagFilterApplied || dateFilterApplied) ? filteredComments : comments;\n } else {\n return comments;\n }\n }\n}\n","import uuid from 'uuid/v4';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\nimport { StoreUtils } from '../store-utils';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { Filters } from '../models/filters.interface';\n\nexport interface AnnotationSetState {\n annotationSet: any;\n annotationEntities: {[id: string]: any};\n annotationPageEntities: {[id: string]: Annotation[]};\n commentEntities: {[id: string]: Comment};\n selectedAnnotation: SelectionAnnotation;\n commentSearchQueries: { commentSearch: string };\n commentSummaryFilters: {hasFilter: boolean; filters: Filters};\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialState: AnnotationSetState = {\n annotationSet: {},\n annotationEntities: {},\n commentEntities: {},\n annotationPageEntities: {},\n selectedAnnotation: null,\n commentSearchQueries: {commentSearch: ''},\n commentSummaryFilters: {hasFilter: false, filters: {}},\n loading: false,\n loaded: false,\n};\n\nexport function reducer (\n state = initialState,\n action: fromAnnotations.AnnotationsActions\n): AnnotationSetState {\n switch (action.type) {\n\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n const annotationSet = {\n ...state.annotationSet,\n documentId: action.payload\n };\n return {\n ...initialState,\n annotationSet,\n loading: true\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS:\n case fromAnnotations.LOAD_ANNOTATION_SET_FAIL: {\n const annotationSet = action.payload.status === 200 ? action.payload.body :\n {\n ...state.annotationSet,\n annotations: [],\n id: uuid()\n };\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotationSet.annotations);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotationSet.annotations, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotationSet.annotations);\n return {\n ...state,\n annotationSet,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const anno = action.payload;\n const annEntities = {\n ...state.annotationEntities,\n [anno.id]: anno\n };\n const annotArray = Object.keys(annEntities).map(key => annEntities[key]);\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotArray);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotArray, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotArray);\n const selectedAnnotation = {\n ...state.selectedAnnotation,\n annotationId : anno.id,\n editable: false\n };\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n selectedAnnotation,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const page = state.annotationEntities[id].page;\n const annotationEntities = {\n ...state.annotationEntities\n };\n delete annotationEntities[id];\n const pageAnnotationsRemoved = [\n ...state.annotationPageEntities[page].filter(anno => anno.id !== id)\n ];\n const annotationPageEntities = {\n ...state.annotationPageEntities,\n [page]: pageAnnotationsRemoved\n };\n const commentEntities = {\n ...state.commentEntities\n };\n if (state.commentEntities[id]) {\n delete commentEntities[id];\n }\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities\n };\n }\n\n case fromAnnotations.ADD_OR_EDIT_COMMENT: {\n const comment = {\n [action.payload.annotationId]: action.payload\n };\n const comments = {\n ...state.commentEntities,\n ...comment\n };\n return {\n ...state,\n commentEntities: comments\n };\n }\n\n case fromAnnotations.SELECT_ANNOTATION: {\n const payload = action.payload;\n const commentEntity = {\n ...state.commentEntities[payload.annotationId],\n editable: payload.editable,\n selected: payload.selected\n };\n\n const resetCommentEntSelect = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n\n const commentEntities = payload.annotationId && state.commentEntities[payload.annotationId] ? {\n ...resetCommentEntSelect,\n [payload.annotationId]: commentEntity\n } : {...resetCommentEntSelect};\n\n return {\n ...state,\n commentEntities,\n selectedAnnotation: action.payload\n };\n }\n\n case fromAnnotations.SEARCH_COMMENT: {\n const commentSearchQueries = {\n ...state.commentSearchQueries,\n commentSearch: action.payload\n };\n\n const commentEntities = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n return {\n ...state,\n commentEntities,\n commentSearchQueries\n };\n }\n\n case fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER: {\n const payload = action.payload;\n const hasTagFilter = () => {\n let isFiltered = false;\n if (payload.tagFilters) {\n Object.keys(payload.tagFilters).map(filter => {\n if (payload.tagFilters[filter] && !isFiltered) {\n isFiltered = true;\n }\n });\n }\n return isFiltered;\n };\n const hasFilter = (hasTagFilter() || !!payload.dateRangeFrom || !!payload.dateRangeTo);\n const commentSummaryFilters = {\n hasFilter,\n filters: payload\n };\n return {\n ...state,\n commentSummaryFilters: commentSummaryFilters\n };\n }\n\n case fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER: {\n\n return {\n ...state,\n commentSummaryFilters : {...initialState.commentSummaryFilters}\n };\n }\n }\n\n\n return state;\n}\n\nexport const getAnnoSet = (state: AnnotationSetState) => state.annotationSet;\nexport const getCommentEnts = (state: AnnotationSetState) => state.commentEntities;\nexport const getAnnoPageEnt = (state: AnnotationSetState) => state.annotationPageEntities;\nexport const getAnnoEnt = (state: AnnotationSetState) => state.annotationEntities;\nexport const getSelectedAnno = (state: AnnotationSetState) => state.selectedAnnotation;\nexport const commentSearchQ = (state: AnnotationSetState) => state.commentSearchQueries;\nexport const getSummaryFilters = (state: AnnotationSetState) => state.commentSummaryFilters;\n","import * as fromAnnotations from '../actions/annotation.actions';\nimport * as fromTags from '../actions/tag.actions';\nimport {StoreUtils} from '../store-utils';\nimport {Annotation} from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport interface TagsState {\n tagNameEnt: {[id: string]: string[]};\n filteredComments: {[id: string]: string[]};\n filteredPageEntities: {[id: string]: Annotation[]};\n annotations: Annotation[];\n formFilterState: {[id: string]: boolean};\n filters: string[];\n}\n\nexport const initialTagState: TagsState = {\n tagNameEnt: {},\n annotations: [],\n filteredPageEntities: {},\n filteredComments: {},\n formFilterState: {},\n filters: []\n};\n\nexport function tagsReducer (\n state = initialTagState,\n action: fromAnnotations.AnnotationsActions | fromTags.TagsActions\n): TagsState {\n switch (action.type) {\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n\n return {\n ...state,\n ...initialTagState\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS: {\n const annotations = action.payload.body.annotations;\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n tagNameEnt,\n annotations\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const payload = action.payload;\n\n const anno = [...state.annotations].filter(a => a.id !== payload.id) || [];\n const annotations = [...anno, payload];\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n annotations,\n tagNameEnt\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const annotations = [...state.annotations].filter(a => a.id !== id);\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n const filteredComments = {\n ...state.filteredComments\n };\n delete filteredComments[id];\n return {\n ...state,\n annotations,\n tagNameEnt,\n filteredComments,\n filteredPageEntities,\n filters: []\n };\n }\n\n\n case fromTags.ADD_FILTER_TAGS: {\n const formFilterState = action.payload;\n\n const filters = Object.keys(formFilterState).reduce((arr: string[], key: string) => {\n return formFilterState[key] ? [...arr, key] : arr;\n }, []);\n\n const filteredComments = filters.reduce((obj: {[id: string]: any}, f) => {\n return {\n ...obj,\n ...state.tagNameEnt[f]\n };\n }, {});\n\n const annotations = Object.keys(filteredComments).map(key => state.annotations.filter(a => a.id === key)[0]);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n return {\n ...state,\n filters,\n filteredComments,\n filteredPageEntities,\n };\n }\n\n case fromTags.CLEAR_FILTER_TAGS: {\n return {\n ...state,\n filters: [],\n filteredComments: {},\n filteredPageEntities: {},\n };\n }\n\n }\n\n return state;\n}\n\nexport const getTagNameEnt = (state: TagsState) => state.tagNameEnt;\nexport const getFilters = (state: TagsState) => state.filters;\nexport const getFilteredComments = (state: TagsState) => state.filteredComments;\nexport const getFilteredPageEnt = (state: TagsState) => state.filteredPageEntities;\n","import { Action } from '@ngrx/store';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const LOAD_BOOKMARKS = '[Bookmarks] Load Bookmarks';\nexport const LOAD_BOOKMARKS_SUCCESS = '[Bookmarks] Load Bookmarks Success';\nexport const LOAD_BOOKMARKS_FAIL = '[Bookmarks] Load Bookmarks Failure';\nexport const CREATE_BOOKMARK = '[Bookmarks] Create Bookmark';\nexport const CREATE_BOOKMARK_SUCCESS = '[Bookmarks] Create Bookmark Success';\nexport const CREATE_BOOKMARK_FAIL = '[Bookmarks] Create Bookmark Failure';\nexport const DELETE_BOOKMARK = '[Bookmarks] Delete Bookmark';\nexport const DELETE_BOOKMARK_SUCCESS = '[Bookmarks] Delete Bookmark Success';\nexport const DELETE_BOOKMARK_FAIL = '[Bookmarks] Delete Bookmark Failure';\nexport const MOVE_BOOKMARK = '[Bookmarks] Move Bookmark';\nexport const MOVE_BOOKMARK_SUCCESS = '[Bookmarks] Move Bookmark Success';\nexport const MOVE_BOOKMARK_FAIL = '[Bookmarks] Move Bookmark Failure';\nexport const UPDATE_BOOKMARK = '[Bookmarks] Update Bookmark';\nexport const UPDATE_BOOKMARK_SUCCESS = '[Bookmarks] Update Bookmark Success';\nexport const UPDATE_BOOKMARK_FAIL = '[Bookmarks] Update Bookmark Failure';\n\nexport class LoadBookmarks implements Action {\n readonly type = LOAD_BOOKMARKS;\n constructor() {}\n}\n\nexport class LoadBookmarksSuccess implements Action {\n readonly type = LOAD_BOOKMARKS_SUCCESS;\n constructor(public payload: { body: Bookmark[], status: number}) { }\n}\n\nexport class LoadBookmarksFailure implements Action {\n readonly type = LOAD_BOOKMARKS_FAIL;\n constructor(public payload: { body: any, status: number }) { }\n}\n\nexport class CreateBookmark implements Action {\n readonly type = CREATE_BOOKMARK;\n constructor(public payload: Bookmark) { }\n}\n\nexport class CreateBookmarkSuccess implements Action {\n readonly type = CREATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class CreateBookmarkFailure implements Action {\n readonly type = CREATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\nexport class DeleteBookmark implements Action {\n readonly type = DELETE_BOOKMARK;\n constructor(public payload: { deleted: string[], updated: Bookmark }) {}\n}\n\nexport class DeleteBookmarkSuccess implements Action {\n readonly type = DELETE_BOOKMARK_SUCCESS;\n constructor(public payload: string[]) {}\n}\n\nexport class DeleteBookmarkFailure implements Action {\n readonly type = DELETE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class MoveBookmark implements Action {\n readonly type = MOVE_BOOKMARK;\n constructor(public payload: Bookmark[]) {}\n}\n\nexport class MoveBookmarkSuccess implements Action {\n readonly type = MOVE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark[]) { }\n}\n\nexport class MoveBookmarkFailure implements Action {\n readonly type = MOVE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class UpdateBookmark implements Action {\n readonly type = UPDATE_BOOKMARK;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkSuccess implements Action {\n readonly type = UPDATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkFailure implements Action {\n readonly type = UPDATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\n\nexport type BookmarksActions =\n | LoadBookmarks | LoadBookmarksSuccess | LoadBookmarksFailure\n | CreateBookmark | CreateBookmarkSuccess | CreateBookmarkFailure\n | DeleteBookmark | DeleteBookmarkSuccess | DeleteBookmarkFailure\n | UpdateBookmark | UpdateBookmarkSuccess | UpdateBookmarkFailure\n | MoveBookmark | MoveBookmarkSuccess | MoveBookmarkFailure;\n","import { Bookmark } from '../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const getBookmarkChildren = (bookmarks: Bookmark[]) => {\n if (bookmarks) {\n return bookmarks.reduce((childIds, bookmark) => {\n if (bookmark.children && bookmark.children.length > 0) {\n return [...childIds, bookmark.id, ...getBookmarkChildren(bookmark.children)];\n }\n return [...childIds, bookmark.id];\n }, []);\n } else {\n return [];\n }\n};\n\nexport const generateBookmarkEntities = (bookmarks: Bookmark[]): {[id: string]: Bookmark} => {\n return bookmarks.reduce(\n (bookmarkEntities, bookmark) =>\n Object.assign(bookmarkEntities, { [bookmark.id]: bookmark }),\n {});\n};\n\nconst indexEntities = (entities: { [id: string]: Bookmark }) => {\n const entityIds = Object.keys(entities);\n for (let index = 0; entityIds.length > 0; index++) {\n let keysToRemove = [];\n entityIds.forEach(key => {\n if (!entities[key].previous || !entityIds.includes(entities[key].previous.toString())) {\n entities[key].index = index;\n keysToRemove.push(key);\n }\n });\n keysToRemove.forEach(key => entityIds.splice(entityIds.indexOf(key), 1));\n keysToRemove = [];\n }\n};\n\nexport const generateBookmarkNodes = (entities: { [id: string]: Bookmark }) => {\n const bookmarkEntities = JSON.parse(JSON.stringify(entities));\n indexEntities(bookmarkEntities);\n return Object.keys(bookmarkEntities).reduce((nodes, bookmarkId) => {\n const bookmarkEntity = bookmarkEntities[bookmarkId];\n if (bookmarkEntity.parent) {\n const parentEntity = bookmarkEntities[bookmarkEntity.parent];\n if (!parentEntity.children) {\n parentEntity.children = [];\n }\n parentEntity.children[bookmarkEntity.index] = bookmarkEntity;\n } else {\n nodes[bookmarkEntity.index] = bookmarkEntity;\n }\n return nodes;\n }, []);\n};\n","import * as fromBookmarks from '../actions/bookmark.actions';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport { StoreUtils } from '../store-utils';\nimport { generateBookmarkEntities } from '../bookmarks-store-utils';\n\nexport interface BookmarksState {\n bookmarks: Bookmark[];\n bookmarkEntities: { [id: string]: Bookmark };\n bookmarkPageEntities: {[id: string]: any};\n editableBookmark: string;\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialBookmarksState: BookmarksState = {\n bookmarks: [],\n bookmarkEntities: {},\n bookmarkPageEntities: {},\n editableBookmark: undefined,\n loaded: false,\n loading: false\n};\n\nexport function bookmarksReducer (state = initialBookmarksState,\n action: fromBookmarks.BookmarksActions): BookmarksState {\n\n switch (action.type) {\n\n case fromBookmarks.LOAD_BOOKMARKS: {\n return {\n ...state,\n loading: true\n };\n }\n\n case fromBookmarks.LOAD_BOOKMARKS_SUCCESS:\n case fromBookmarks.LOAD_BOOKMARKS_FAIL: {\n const bookmarks = action.payload.status === 200 ? action.payload.body : [];\n const bookmarkEntities = generateBookmarkEntities(bookmarks);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarks, 'pageNumber');\n\n return {\n ...state,\n bookmarks,\n bookmarkEntities,\n bookmarkPageEntities,\n loaded: true\n };\n }\n\n case fromBookmarks.CREATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: bookmark,\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = bookmark.id;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.MOVE_BOOKMARK_SUCCESS: {\n const movedBookmarks = generateBookmarkEntities(action.payload);\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n ...movedBookmarks\n };\n return {\n ...state,\n bookmarkEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.DELETE_BOOKMARK_SUCCESS: {\n const bookmarkIds: string[] = action.payload;\n const bookmarkEntities = { ...state.bookmarkEntities };\n const bookmarkPageEntities = { ...state.bookmarkPageEntities };\n const removeBookmarksByPage: {[pageNumber: number]: string[]} = {};\n bookmarkIds.forEach(bookmarkId => {\n if (removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] !== undefined &&\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].length > 0) {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].push(bookmarkId);\n } else {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] = [bookmarkId];\n }\n delete bookmarkEntities[bookmarkId];\n });\n\n Object.entries(removeBookmarksByPage).forEach(\n ([pageNumber, bmrkIds]) => {\n bookmarkPageEntities[pageNumber] = bookmarkPageEntities[pageNumber].filter(bookmarkId => bmrkIds.includes(bookmarkId));\n }\n );\n\n return {\n ...state,\n bookmarkEntities,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.UPDATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: { ...bookmark }\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = undefined;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n }\n return state;\n}\n\nexport const getBookmarks = (state: BookmarksState) => state.bookmarks;\nexport const getBookmarkEnts = (state: BookmarksState) => state.bookmarkEntities;\nexport const getBookmarkPageEnt = (state: BookmarksState) => state.bookmarkPageEntities;\nexport const getEditBookmark = (state: BookmarksState) => state.editableBookmark;\n","import { Action } from '@ngrx/store';\nimport { Redaction } from '../../redaction/services/redaction.model';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport const LOAD_REDACTIONS = '[Redaction] Load Redaction';\nexport const LOAD_REDACTION_SUCCESS = '[Redaction] Load Redaction Success';\nexport const LOAD_REDACTION_FAIL = '[Redaction] Load Redaction Fail';\n\nexport const SAVE_REDACTION = '[Redaction] Save Redaction';\nexport const SAVE_REDACTION_SUCCESS = '[Redaction] Save Redaction Success';\nexport const SAVE_REDACTION_FAIL = '[Redaction] Save Redaction Fail';\n\nexport const DELETE_REDACTION = '[Redaction] Delete Redaction';\nexport const DELETE_REDACTION_SUCCESS = '[Redaction] Delete Redaction Success';\nexport const DELETE_REDACTION_FAIL = '[Redaction] Delete Redaction Fail';\n\nexport const SELECT_REDACTION = '[Redaction] Select Redaction';\n\nexport const REDACT = '[Redaction] Redact';\nexport const REDACT_SUCCESS = '[Redaction] Redact Success';\nexport const REDACT_FAIL = '[Redaction] Redact Fail';\nexport const RESET_REDACTED_DOCUMENT = '[Redaction] Reset Redacted Document';\n\nexport const UNMARK_ALL = '[Redaction] Unmark All';\nexport const UNMARK_ALL_SUCCESS = '[Redaction] Unmark All Success';\n\n\nexport class LoadRedactions implements Action {\n readonly type = LOAD_REDACTIONS;\n constructor(public payload: any) {}\n}\n\nexport class LoadRedactionSuccess implements Action {\n readonly type = LOAD_REDACTION_SUCCESS;\n constructor(public payload: Redaction[]) {}\n}\n\nexport class LoadRedactionFailure implements Action {\n readonly type = LOAD_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SaveRedaction implements Action {\n readonly type = SAVE_REDACTION;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionSuccess implements Action {\n readonly type = SAVE_REDACTION_SUCCESS;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionFailure implements Action {\n readonly type = SAVE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedaction implements Action {\n readonly type = DELETE_REDACTION;\n constructor(public payload: Annotation) {}\n}\n\nexport class DeleteRedactionSuccess implements Action {\n readonly type = DELETE_REDACTION_SUCCESS;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedactionFailure implements Action {\n readonly type = DELETE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SelectRedaction implements Action {\n readonly type = SELECT_REDACTION;\n constructor(public payload: any) {}\n}\n\nexport class Redact implements Action {\n readonly type = REDACT;\n constructor(public payload: { redactions: Redaction[], documentId: string }) {}\n}\n\nexport class RedactSuccess implements Action {\n readonly type = REDACT_SUCCESS;\n constructor(public payload: { blob: Blob, filename: string }) {}\n}\n\nexport class RedactFailure implements Action {\n readonly type = REDACT_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class ResetRedactedDocument implements Action {\n readonly type = RESET_REDACTED_DOCUMENT;\n}\n\n\nexport class UnmarkAll implements Action {\n readonly type = UNMARK_ALL;\n constructor(public payload: string) {}\n}\n\nexport class UnmarkAllSuccess implements Action {\n readonly type = UNMARK_ALL_SUCCESS;\n}\n\nexport type RedactionActions =\n | LoadRedactions | LoadRedactionSuccess | LoadRedactionFailure\n | SaveRedaction | SaveRedactionSuccess | SaveRedactionFailure\n | DeleteRedaction | DeleteRedactionSuccess | DeleteRedactionFailure\n | SelectRedaction\n | Redact | RedactSuccess | RedactFailure | ResetRedactedDocument\n | UnmarkAll | UnmarkAllSuccess;\n","import * as fromRedaction from '../actions/redaction.actions';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport {StoreUtils} from '../store-utils';\nimport {SelectionAnnotation} from '../../annotations/models/event-select.model';\nimport { Redaction } from '../../redaction/services/redaction.model'; // todo rename\n\n\nexport interface RedactionState {\n redactionEntities: { [id: string]: Redaction };\n redactionPageEntities: { [id: string]: any };\n selectedRedaction: SelectionAnnotation | {};\n redactedDocumentInfo: { blob: Blob, filename: string };\n documentId: string;\n}\n\nexport const initialRedactionState: RedactionState = {\n redactionEntities: {},\n redactionPageEntities: {},\n selectedRedaction: {},\n redactedDocumentInfo: undefined,\n documentId: undefined\n};\n\nexport function redactionReducer (\n state = initialRedactionState,\n action: fromRedaction.RedactionActions | fromAnnotations.AnnotationsActions\n): RedactionState {\n switch (action.type) {\n\n case fromRedaction.LOAD_REDACTIONS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n\n case fromRedaction.LOAD_REDACTION_SUCCESS: {\n const payload = action.payload;\n if (payload) {\n const redactionEntities = StoreUtils.generateRedactionEntities(payload);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(payload, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n return {\n ...state\n };\n }\n\n case fromRedaction.SAVE_REDACTION_SUCCESS: {\n const { payload } = action;\n const redactionEntities = {\n ...state.redactionEntities,\n [payload.redactionId]: payload\n };\n const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n\n case fromRedaction.SELECT_REDACTION:\n case fromAnnotations.SELECT_ANNOTATION: {\n return {\n ...state,\n selectedRedaction: action.payload\n };\n }\n\n case fromRedaction.DELETE_REDACTION_SUCCESS: {\n const page = action.payload.page;\n const id = action.payload.redactionId;\n const redactionEntities = {\n ...state.redactionEntities\n };\n delete redactionEntities[id];\n const pageRedactionRemoved = [\n ...state.redactionPageEntities[page].filter(redaction => redaction.redactionId !== id)\n ];\n const redactionPageEntities = {\n ...state.redactionPageEntities,\n [page]: pageRedactionRemoved\n };\n\n return {\n ...state,\n redactionPageEntities,\n redactionEntities,\n };\n }\n\n case fromRedaction.REDACT_SUCCESS: {\n const redactedDocumentInfo = action.payload;\n return {\n ...state,\n ...initialRedactionState,\n redactedDocumentInfo\n };\n }\n\n case fromRedaction.RESET_REDACTED_DOCUMENT: {\n return {\n ...state,\n redactedDocumentInfo: undefined\n };\n }\n\n case fromRedaction.UNMARK_ALL_SUCCESS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n }\n\n return state;\n}\n\n\nexport const getRedactionEnt = (state: RedactionState) => state.redactionEntities;\nexport const getPageEnt = (state: RedactionState) => state.redactionPageEntities;\nexport const getSelectedRedaction = (state: RedactionState) => state.selectedRedaction;\nexport const getRedactedDocInfo = (state: RedactionState) => state.redactedDocumentInfo;\n","import * as fromIcpActions from '../actions/icp.actions';\nimport { IcpSession, IcpState } from '../../icp/icp.interfaces';\n\nexport const initialIcpSessionState: IcpState = {\n session: null,\n presenter: null,\n client: null,\n participants: []\n};\n\nexport function icpReducer (state = initialIcpSessionState,\n action: fromIcpActions.IcpActions): IcpState {\n\n switch (action.type) {\n\n case fromIcpActions.SET_CASE_ID: {\n const caseId = action.payload;\n const session = {...state.session, caseId};\n return {\n ...state,\n session\n };\n }\n\n case fromIcpActions.ICP_SOCKET_SESSION_JOINED: {\n const session: IcpSession = action.payload.session;\n const participantInfo = action.payload.participantInfo;\n return {\n ...state,\n session,\n client: participantInfo.client,\n presenter: participantInfo.presenter,\n };\n }\n\n case fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED: {\n const updatedParticipants: any = action.payload;\n const participants = Object.keys(updatedParticipants)\n .map(id => ({ id: id, username: updatedParticipants[id] }));\n return {\n ...state,\n participants\n };\n }\n\n case fromIcpActions.ICP_PRESENTER_UPDATED: {\n const presenter = action.payload;\n return {\n ...state, presenter\n };\n }\n\n case fromIcpActions.LEAVE_ICP_SOCKET_SESSION: {\n return {\n ...state,\n ...initialIcpSessionState\n };\n }\n }\n return state;\n}\n\nexport const getIcpSession = (state: IcpState) => state.session;\nexport const getPresenter = (state: IcpState) => state.presenter;\nexport const getClient = (state: IcpState) => state.client;\nexport const getParticipants = (state: IcpState) => state.participants;\n","import { ActionReducerMap, createFeatureSelector } from '@ngrx/store';\nimport * as fromDocument from './document.reducer';\nimport * as fromAnnotation from './annotations.reducer';\nimport * as fromTags from './tags.reducer';\nimport * as fromBookmarks from './bookmarks.reducer';\nimport * as fromRedaction from './redaction.reducer';\nimport * as fromIcp from './icp.reducer';\nimport { IcpState } from '../../icp/icp.interfaces';\n\nexport interface State {\n document: fromDocument.DocumentState;\n annotations: fromAnnotation.AnnotationSetState;\n tags: fromTags.TagsState;\n bookmarks: fromBookmarks.BookmarksState;\n redactions: fromRedaction.RedactionState;\n icp: IcpState;\n}\n\nexport const reducers: ActionReducerMap<State> = {\n document: fromDocument.docReducer,\n annotations: fromAnnotation.reducer,\n tags: fromTags.tagsReducer,\n bookmarks: fromBookmarks.bookmarksReducer,\n redactions: fromRedaction.redactionReducer,\n icp: fromIcp.icpReducer,\n};\n\nexport const getMVState = createFeatureSelector<State>('media-viewer');\n\nexport * from './document.reducer';\nexport * from './annotations.reducer';\nexport * from './tags.reducer';\nexport * from './bookmarks.reducer';\nexport * from './redaction.reducer';\nexport * from './icp.reducer';\n","import { createSelector } from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromDocument from '../reducers/document.reducer';\n\nexport const getDocumentState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.document\n);\n\nexport const getPages = createSelector(\n getDocumentState,\n fromDocument.getDocPages\n);\n\nexport const getPageList = createSelector(\n getPages,\n (pages) => Object.values(pages)\n);\n\nexport const getDocumentId = createSelector(\n getDocumentState,\n fromDocument.getDocId\n);\n\nexport const getPdfPosition = createSelector(\n getDocumentState,\n fromDocument.getPdfPos\n);\n\nexport const getPageDifference = createSelector(\n getDocumentState,\n fromDocument.getHasDifferentPageSizes\n);\n\nexport const getConvertedDocument = createSelector(\n getDocumentState,\n fromDocument.getConvertedDocument\n);\n\nexport const getRotation = createSelector(\n getDocumentState,\n fromDocument.getRotation\n);\n\nexport const rotationLoaded = createSelector(\n getDocumentState,\n fromDocument.rotationLoaded\n);\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Rectangle } from '../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\n\nexport interface Highlight {\n page: number;\n rectangles: Rectangle[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ViewerEventService {\n\n public readonly textHighlight = new Subject<Highlight>();\n public readonly boxHighlight = new Subject<Highlight>();\n public readonly ctxToolbarCleared = new Subject();\n public readonly navigationEvent = new Subject<any[]>();\n\n constructor() {}\n\n public textSelected(selectionData: Highlight): void {\n this.textHighlight.next(selectionData);\n }\n\n public boxSelected(selectionData: Highlight): void {\n this.boxHighlight.next(selectionData);\n }\n\n public clearCtxToolbar(): void {\n this.ctxToolbarCleared.next();\n }\n\n\n public goToDestination(destination: any[]) {\n this.navigationEvent.next(destination);\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { filter, tap, throttleTime } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\n\nimport { DocumentLoadProgress, PageEvent, PdfJsWrapper } from './pdf-js/pdf-js-wrapper';\nimport { PdfJsWrapperFactory } from './pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { PrintService } from '../../print.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { CommentSetComponent } from '../../annotations/comment-set/comment-set.component';\nimport { Outline } from './side-bar/outline-item/outline.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { PdfPositionUpdate } from '../../store/actions/document.actions';\nimport * as fromTagActions from '../../store/actions/tag.actions';\nimport { SetCaseId } from '../../store/actions/icp.actions';\nimport * as fromDocumentsSelector from '../../store/selectors/document.selectors';\nimport { IcpState } from '../../icp/icp.interfaces';\nimport { ViewerEventService } from '../viewer-event.service';\n\n@Component({\n selector: 'mv-pdf-viewer',\n templateUrl: './pdf-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class PdfViewerComponent implements AfterContentInit, OnChanges, OnDestroy {\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() pdfViewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n @Input() downloadUrl: string;\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() enableICP: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n pageHeights = [];\n rotation = 0;\n zoom = 1;\n\n @Input() caseId: string;\n\n highlightMode: Observable<boolean>;\n drawMode: BehaviorSubject<boolean>;\n\n documentOutline: Outline;\n loadingDocument = false;\n loadingDocumentProgress: number;\n errorMessage: string;\n hasDifferentPageSize = false;\n\n @ViewChild('viewerContainer', {static: true}) viewerContainer: ElementRef<HTMLDivElement>;\n @ViewChild('pdfViewer', {static: false}) pdfViewer: ElementRef<HTMLDivElement>;\n\n private pdfWrapper: PdfJsWrapper;\n private $subscription: Subscription;\n private viewerException: ViewerException;\n showCommentsPanel: boolean;\n showIcpParticipantsList: boolean;\n enableGrabNDrag = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private icpStore: Store<IcpState>,\n private readonly pdfJsWrapperFactory: PdfJsWrapperFactory,\n private readonly printService: PrintService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n ) {\n this.highlightMode = toolbarEvents.highlightModeSubject.pipe(tap(() => {\n this.store.dispatch(new fromTagActions.ClearFilterTags());\n }));\n this.drawMode = toolbarEvents.drawModeSubject;\n }\n\n async ngAfterContentInit(): Promise<void> {\n this.pdfWrapper.documentLoadProgress.subscribe(v => this.onDocumentLoadProgress(v));\n this.pdfWrapper.documentLoaded.subscribe(() => this.onDocumentLoaded());\n this.pdfWrapper.documentLoadFailed.subscribe((error) => this.onDocumentLoadFailed(error));\n this.pdfWrapper.outlineLoaded.subscribe(outline => this.documentOutline = outline);\n this.pdfWrapper.pageRendered.subscribe((event) => this.updatePages(event));\n this.$subscription = this.toolbarEvents.printSubject\n .subscribe(() => this.printService.printDocumentNatively(this.url));\n this.$subscription.add(this.toolbarEvents.downloadSubject.subscribe(() =>\n this.pdfWrapper.downloadFile(this.downloadUrl || this.url, this.downloadFileName)\n ));\n this.$subscription.add(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument(rotate)));\n this.$subscription.add(this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.searchSubject.subscribe(search => this.pdfWrapper.search(search)));\n this.$subscription.add(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.pdfWrapper.setPageNumber(pageNumber))\n );\n this.$subscription.add(\n this.toolbarEvents.changePageByDeltaSubject.subscribe(pageNumber => this.pdfWrapper.changePageNumber(pageNumber))\n );\n this.$subscription.add(this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag));\n this.$subscription.add(this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.showCommentsPanel = toggle;\n })\n );\n this.$subscription.add(this.viewerEvents.navigationEvent.subscribe(dest => this.goToDestination(dest)));\n this.$subscription.add(\n this.toolbarEvents.icp.participantsListVisible.subscribe(toggle => this.showIcpParticipantsList = toggle)\n );\n this.$subscription.add(this.pdfWrapper.positionUpdated.asObservable()\n .pipe(throttleTime(500, asyncScheduler, { leading: true, trailing: true }))\n .subscribe(event => this.store.dispatch(new PdfPositionUpdate(event.location)))\n );\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (!this.pdfWrapper) {\n this.pdfWrapper = this.pdfJsWrapperFactory.create(this.viewerContainer);\n }\n if (changes.url && this.pdfWrapper) {\n await this.loadDocument();\n if (this.enableRedactions) {\n this.toolbarEvents.redactionMode.pipe(filter(value => !!value))\n .subscribe(() => this.resetRotation());\n }\n }\n if (changes.caseId) {\n this.icpStore.dispatch(new SetCaseId(this.caseId));\n }\n }\n\n resetRotation() {\n if (this.hasDifferentPageSize) {\n this.pdfWrapper.resetRotation(0);\n this.rotation = 0;\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n private async loadDocument() {\n this.initDocumentProgress();\n await this.pdfWrapper.loadDocument(this.url);\n this.documentTitle.emit(this.pdfWrapper.getCurrentPDFTitle());\n this.setPageHeights();\n this.$subscription.add(this.store.pipe(select(fromDocumentsSelector.getPageDifference))\n .subscribe(hasDifferentPageSie => this.hasDifferentPageSize = hasDifferentPageSie));\n }\n\n private onDocumentLoadProgress(progress: DocumentLoadProgress) {\n if (progress.total) {\n this.loadingDocumentProgress = Math.min(100, Math.ceil(progress.loaded / progress.total * 100));\n }\n }\n\n private onDocumentLoaded() {\n this.loadingDocument = false;\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n }\n\n private onDocumentLoadFailed(error: Error) {\n this.loadingDocument = false;\n this.viewerException = new ViewerException(error.name, { message: error.message });\n this.errorMessage = `Could not load the document \"${this.url}\"`;\n\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.pdfViewerException.emit(this.viewerException);\n }\n\n private updatePages(event: PageEvent[]) {\n if (this.enableAnnotations) {\n this.store.dispatch(new fromDocumentActions.AddPages(event));\n }\n }\n\n @Input()\n set searchBarHidden(hidden: boolean) {\n if (this.pdfWrapper && hidden) {\n this.pdfWrapper.clearSearch();\n }\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n\n private rotateDocument(rotation: number) {\n const pageNumber = this.pdfWrapper.getPageNumber();\n this.pdfWrapper.rotate(rotation);\n this.pdfWrapper.setPageNumber(pageNumber);\n this.rotation = (this.rotation + rotation) % 360;\n\n this.setPageHeights();\n }\n\n private initDocumentProgress() {\n this.loadingDocument = true;\n this.loadingDocumentProgress = null;\n this.errorMessage = null;\n }\n\n private setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.setZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(zoomFactor);\n this.setPageHeights();\n }\n }\n\n private stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.stepZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(this.zoom, zoomFactor);\n this.setPageHeights();\n }\n }\n\n setPageHeights() {\n this.pageHeights = [];\n const pdfViewerChildren = this.pdfViewer.nativeElement.children;\n for (let i = 0; i < pdfViewerChildren.length; i++) {\n this.pageHeights.push(pdfViewerChildren[i].clientHeight);\n }\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) {\n return 5;\n }\n if (newZoomValue < 0.1) {\n return 0.1;\n }\n return +newZoomValue.toFixed(2);\n }\n\n private goToDestination(destination: any[]) {\n this.pdfWrapper.navigateTo(destination);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerUtilService {\n constructor(\n private http: HttpClient) {\n }\n\n public validateFile(url: string) {\n return this.http.head(url);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PrintService } from '../../print.service';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocument from '../../store/actions/document.actions';\n\n@Component({\n selector: 'mv-image-viewer',\n templateUrl: './image-viewer.component.html'\n})\nexport class ImageViewerComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() imageViewerException = new EventEmitter<ViewerException>();\n\n errorMessage: string;\n\n @ViewChild('img', {static: false}) img: ElementRef;\n rotation = 0;\n zoom = 1;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n private response: Subscription;\n\n showCommentsPanel: boolean;\n enableGrabNDrag = false;\n imageHeight: number;\n imageWidth: number;\n imageLeft: number;\n imageTop: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly viewerUtilService: ViewerUtilService,\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService\n ) { }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.rotateSubject.subscribe(rotation => this.rotateImage(rotation)),\n this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)),\n this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)),\n this.toolbarEvents.printSubject.subscribe(() => this.printService.printDocumentNatively(this.url)),\n this.toolbarEvents.downloadSubject.subscribe(() => this.download()),\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag),\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => this.showCommentsPanel = toggle)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n if (this.response) {\n this.response.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.errorMessage = null;\n this.toolbarEvents.reset();\n }\n }\n\n private rotateImage(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.initAnnoPage(this.img.nativeElement);\n }\n\n private async setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private async stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(this.zoom, zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private download() {\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = this.url;\n a.download = this.downloadFileName;\n a.click();\n a.remove();\n }\n\n // the returned promise is a work-around\n setZoomValue(zoomValue) {\n return new Promise((resolve) => {\n this.zoom = zoomValue;\n this.toolbarEvents.zoomValueSubject.next(zoomValue);\n resolve(true);\n });\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) { return 5; }\n if (newZoomValue < 0.1) { return 0.1; }\n return +newZoomValue.toFixed(2);\n }\n\n onLoadError(url) {\n this.response = this.viewerUtilService.validateFile(url)\n .subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n {httpResponseCode: error.status, message: error.message});\n });\n\n this.errorMessage = `Could not load the image \"${this.url}\"`;\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.imageViewerException.emit(this.viewerException);\n }\n\n onLoad(img: any) {\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n this.initAnnoPage(img);\n }\n\n initAnnoPage(img: any) {\n this.imageHeight = this.rotation % 180 !== 0 ? img.offsetWidth : img.offsetHeight;\n this.imageWidth = this.rotation % 180 !== 0 ? img.offsetHeight : img.offsetWidth;\n this.imageLeft = this.rotation % 180 !== 0 ? img.offsetTop : img.offsetLeft;\n this.imageTop = this.rotation % 180 !== 0 ? img.offsetLeft : img.offsetTop;\n const payload: any = [{\n div: {\n scrollHeight: this.imageHeight,\n scrollWidth: this.imageWidth,\n offsetLeft: this.imageLeft,\n },\n pageNumber: 1,\n scale: this.zoom,\n rotation: this.rotation,\n id: 1\n }];\n\n this.store.dispatch(new fromDocument.AddPages(payload));\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\n\n@Component({\n selector: 'mv-unsupported-viewer',\n templateUrl: './unsupported-viewer.component.html'\n})\nexport class UnsupportedViewerComponent implements OnInit, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() typeException: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n @Output() unsupportedViewerException = new EventEmitter<ViewerException>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerUtilService: ViewerUtilService,\n ) {}\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.downloadSubject.subscribe(() => this.downloadLink.nativeElement.click()),\n this.viewerUtilService.validateFile(this.url).subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n { httpResponseCode: error.status, message: error.message });\n }\n )\n );\n\n this.loadStatus.emit(ResponseType.UNSUPPORTED);\n\n if (!this.typeException) {\n this.unsupportedViewerException.emit(this.viewerException);\n }\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Injectable()\nexport class AnnotationApiService {\n\n public annotationApiUrl = '/em-anno';\n\n private annotationSetBaseUrl = '/annotation-sets';\n private annotationBaseUrl = '/annotations';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getAnnotationSet(documentId: string): Observable<any> { // todo add model\n const fixedUrl = `${this.annotationSetsFullUrl}/filter?documentId=${documentId}`;\n return this.httpClient\n .get<AnnotationSet>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public postAnnotationSet(body: Partial<AnnotationSet>): Observable<AnnotationSet> {\n return this.httpClient\n .post<AnnotationSet>(this.annotationSetsFullUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public getComments(annotationSet: Observable<AnnotationSet>): Observable<Comment[]> {\n return annotationSet\n .pipe(\n map(this.sortAnnotations),\n map(this.extractComments)\n );\n }\n\n /**\n * Sort the annotations in the response by page and then y position of their first rectangle\n */\n private sortAnnotations(r: AnnotationSet): Annotation[] {\n return r.annotations.sort((a, b) => a.page !== b.page ? a.page - b.page : a.rectangles[0].y - b.rectangles[0].y);\n }\n\n private extractComments(annotations: Annotation[]) {\n return [].concat(...annotations.map(a => a.comments));\n }\n\n public deleteAnnotation(annotationId: string): Observable<null> {\n const url = `${this.annotationFullsUrl}/${annotationId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public postAnnotation(annotation: Partial<Annotation>): Observable<Annotation> {\n return this.httpClient\n .post<Annotation>(this.annotationFullsUrl, annotation, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n get annotationSetsFullUrl() {\n return this.annotationApiUrl + this.annotationSetBaseUrl;\n }\n\n get annotationFullsUrl() {\n return this.annotationApiUrl + this.annotationBaseUrl;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CommentSetComponent } from '../comment-set.component';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { CommentComponent } from './comment.component';\n\n// TODO: replace by NgRx\n@Injectable()\nexport class CommentService {\n\n public readonly unsavedChanges = new Subject<boolean>();\n commentSetComponent: CommentSetComponent;\n\n setCommentSet(commentSetComponent) {\n this.commentSetComponent = commentSetComponent;\n }\n\n onCommentChange(changes: boolean): void {\n this.unsavedChanges.next(changes);\n }\n\n getUnsavedChanges(): Observable<boolean> {\n return this.unsavedChanges.asObservable();\n }\n\n hasUnsavedComments(annotation: Annotation): boolean {\n if (annotation.comments.length > 0) {\n const comment = this.getComment(annotation);\n return comment.hasUnsavedChanges;\n }\n return false;\n }\n\n updateUnsavedCommentsStatus(annotation: Annotation, hasUnsavedChanges: boolean): void {\n const comment = this.getComment(annotation);\n comment.hasUnsavedChanges = hasUnsavedChanges;\n this.allCommentsSaved();\n }\n\n getComment(annotation: Annotation): CommentComponent {\n return this.commentSetComponent.commentComponents\n .find(c => c.comment.annotationId === annotation.comments[0].annotationId);\n }\n\n resetCommentSet(): void {\n this.commentSetComponent = null;\n }\n\n allCommentsSaved(): void {\n this.onCommentChange(this.commentSetComponent.commentComponents.some(comment => comment.hasUnsavedChanges === true));\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromTags from '../reducers/tags.reducer';\n\nexport const getTagsRootState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.tags\n);\n\nexport const getTagEntities = createSelector(\n getTagsRootState,\n fromTags.getTagNameEnt\n);\n\nexport const getTagFilters = createSelector(\n getTagsRootState,\n fromTags.getFilters\n);\n\nexport const getTagFiltered = createSelector(\n getTagsRootState,\n fromTags.getFilteredComments\n);\n\nexport const getFilteredPageEntities = createSelector(\n getTagsRootState,\n fromTags.getFilteredPageEnt\n);\n\nexport const getAllTagsArr = createSelector(\n getTagEntities,\n (tagEnt) => Object.keys(tagEnt).map(key => {\n return {\n key,\n length: Object.keys(tagEnt[key]).length\n };\n })\n);\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromAnnotations from '../reducers/annotations.reducer';\nimport * as fromTags from './tag.selectors';\nimport * as fromDocument from './document.selectors';\nimport {StoreUtils} from '../store-utils';\nimport moment from 'moment-timezone';\nexport const getAnnotationsSetState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.annotations\n);\n\nexport const getAnnotationEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoEnt\n);\n\nexport const getSet = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoSet\n);\n\nexport const getDocumentIdSetId = createSelector(\n getSet,\n (annoSet) => {\n return {\n documentId: annoSet.documentId,\n annotationSetId: annoSet.id\n };\n }\n);\n\nexport const getAnnotationSet = createSelector(\n getAnnotationEntities,\n getSet,\n (entities, set) => {\n return {\n ...set,\n annotations: Object.keys(entities).map(key => entities[key])\n };\n }\n);\n\nexport const getSelectedAnnotation = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSelectedAnno\n);\n\nexport const getCommentEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getCommentEnts\n);\n\n\nexport const getPageEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoPageEnt\n);\n\nexport const getComponentSearchQueries = createSelector(\n getAnnotationsSetState,\n fromAnnotations.commentSearchQ\n);\n\nexport const getComponentSearchText = createSelector(\n getComponentSearchQueries,\n (queries) => queries.commentSearch\n);\n\nexport const getCommentSummaryFilters = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSummaryFilters\n);\n\nexport const getAnnoPerPage = createSelector(\n fromDocument.getPages,\n getPageEntities,\n fromTags.getFilteredPageEntities,\n (pages, pageEnt, filteredPageEnt) => {\n const isFiltered: boolean = !!Object.keys(filteredPageEnt).length;\n const entities = isFiltered ? filteredPageEnt : pageEnt;\n if (pages) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: entities[key] ? entities[key] : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n\nexport const getCommentsArray = createSelector(\n getCommentEntities,\n fromDocument.getPages,\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (commentEnts, pages, annoEnts, filtered) => {\n if (commentEnts && annoEnts && pages[1]) {\n const isFiltered: boolean = !!Object.keys(filtered).length;\n const com = isFiltered ? filtered : commentEnts;\n return Object.keys(com).map(key => {\n const page = annoEnts[key].page;\n return {\n ...commentEnts[key],\n page,\n pages\n };\n });\n }\n }\n);\n\nexport const getCommentSummary = createSelector(\n getCommentsArray,\n getCommentSummaryFilters,\n (commentSummary = [], filters) => {\n const comments = StoreUtils.filterCommentsSummary(commentSummary, filters.filters);\n if (comments.length) {\n return comments.map((comment) => {\n return {\n page: comment.page,\n user: comment.createdByDetails.forename.concat(' ').concat(comment.createdByDetails.surname),\n date: moment(comment.lastModifiedDate).format('D MMMM YYYY'),\n tags: comment.tags,\n comment: comment.content\n };\n });\n }\n return [''];\n }\n);\n\n\nexport const getFilteredAnnotations = createSelector(\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (annoEnt, filters) => {\n const isFiltered: boolean = !!Object.keys(filters).length;\n const anno = isFiltered ? filters : annoEnt;\n return Object.keys(anno).map(key => annoEnt[key])\n .filter(annotation => annotation.comments && annotation.comments.length > 0);\n }\n);\n","import {\n AfterContentInit, AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport {\n defaultImageOptions, defaultMultimediaOptions,\n defaultPdfOptions,\n defaultUnsupportedOptions,\n ToolbarButtonVisibilityService\n} from './toolbar/toolbar-button-visibility.service';\nimport { AnnotationSet } from './annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from './toolbar/toolbar-event.service';\nimport { AnnotationApiService } from './annotations/services/annotation-api/annotation-api.service';\nimport { ResponseType, ViewerException } from './viewers/viewer-exception.model';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport 'hammerjs';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from './store/reducers/reducers';\nimport * as fromAnnoSelectors from './store/selectors/annotation.selectors';\nimport * as fromDocumentsSelector from './store/selectors/document.selectors';\nimport * as fromAnnoActions from './store/actions/annotation.actions';\nimport * as fromRedactActions from './store/actions/redaction.actions';\nimport * as fromDocumentActions from './store/actions/document.actions';\n\nenum CoreContentTypes {\n PDF = 'pdf',\n IMAGE = 'image'\n}\n\nenum MultimediaContentTypes {\n MP4 = 'mp4',\n MP3 = 'mp3',\n}\n\nenum ConvertibleContentTypes {\n EXCEL = 'excel',\n WORD = 'word',\n POWERPOINT = 'powerpoint',\n TXT = 'txt',\n RTF = 'rtf'\n}\n\n@Component({\n selector: 'mv-media-viewer',\n templateUrl: './media-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MediaViewerComponent implements OnChanges, OnDestroy, AfterContentInit, AfterViewChecked {\n\n @ViewChild('viewerRef', {static: false}) viewerRef: ElementRef;\n\n @Input() url;\n @Input() downloadFileName: string;\n @Input() contentType: string;\n\n @Input() showToolbar = true;\n @Input() toolbarButtonOverrides: any = {};\n\n @Input()\n public height: string;\n public viewerHeight: string;\n\n @Input() width = '100%';\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() toolbarEventsOutput = new EventEmitter<ToolbarEventService>();\n @Output() unsavedChanges = new EventEmitter<boolean>();\n\n @Input() enableAnnotations = false;\n @Input() annotationApiUrl;\n\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() multimediaPlayerEnabled = false;\n\n\n @Input() caseId: string;\n\n multimediaContent = false;\n convertibleContent = false;\n unsupportedContent = false;\n\n documentTitle: string;\n showCommentSummary: boolean;\n annotationSet$: Observable<AnnotationSet | {}>;\n hasScrollBar: boolean;\n typeException = false;\n hasDifferentPageSize$: Observable<boolean>;\n\n private $subscriptions: Subscription;\n private prevOffset: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly api: AnnotationApiService,\n private readonly commentService: CommentService,\n private elRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n if (this.annotationApiUrl) {\n api.annotationApiUrl = this.annotationApiUrl;\n }\n }\n\n ngAfterContentInit() {\n this.annotationSet$ = this.store.pipe(select(fromAnnoSelectors.getAnnotationSet));\n this.hasDifferentPageSize$ = this.store.pipe(select(fromDocumentsSelector.getPageDifference));\n this.setToolbarButtons();\n this.toolbarEventsOutput.emit(this.toolbarEvents);\n this.$subscriptions = this.commentService.getUnsavedChanges()\n .subscribe(changes => this.onCommentChange(changes));\n this.$subscriptions.add(this.toolbarEvents.getShowCommentSummary()\n .subscribe(changes => this.showCommentSummary = changes));\n }\n\n ngAfterViewChecked(): void {\n if (this.height && this.viewerHeight !== this.height) {\n this.viewerHeight = this.height;\n this.cdr.detectChanges();\n return;\n }\n\n if (!this.height) {\n const compOffsetTop = this.elRef.nativeElement.getBoundingClientRect().top;\n const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;\n const offset = compOffsetTop + viewerOffsetTop;\n\n if (this.prevOffset !== offset) {\n this.viewerHeight = `calc(100vh - ${offset}px)`;\n this.prevOffset = offset;\n this.cdr.detectChanges();\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.annotationApiUrl) {\n this.api.annotationApiUrl = this.annotationApiUrl;\n }\n\n if (changes.url) {\n this.toolbarEvents.reset();\n this.commentService.resetCommentSet();\n const documentId = this.extractDMStoreDocId(this.url);\n this.store.dispatch(new fromDocumentActions.SetDocumentId(documentId));\n if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(documentId));\n }\n if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromRedactActions.LoadRedactions(documentId));\n }\n if (this.contentType === 'image') {\n this.documentTitle = null;\n }\n }\n\n if (changes.contentType) {\n this.convertibleContent = this.needsConverting();\n this.multimediaContent = this.isMultimedia();\n this.unsupportedContent = !this.isSupported();\n }\n\n this.setToolbarButtons();\n this.detectOs();\n this.typeException = false;\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n needsConverting(): boolean {\n return this.contentType !== null && Object.keys(ConvertibleContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isMultimedia(): boolean {\n return this.contentType !== null && Object.keys(MultimediaContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isSupported(): boolean {\n const supportedTypes = Object.assign({}, MultimediaContentTypes, ConvertibleContentTypes, CoreContentTypes);\n return this.contentType !== null && Object.keys(supportedTypes).includes(this.contentType.toUpperCase());\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n setToolbarButtons() {\n if (this.contentType === CoreContentTypes.PDF || this.needsConverting()) {\n this.toolbarButtons.setup({\n ...defaultPdfOptions, showHighlightButton: this.enableAnnotations, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.contentType === CoreContentTypes.IMAGE) {\n this.toolbarButtons.setup({\n ...defaultImageOptions, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.isMultimedia()) {\n this.toolbarButtons.setup({\n ...defaultMultimediaOptions,\n ...this.toolbarButtonOverrides\n });\n } else {\n this.toolbarButtons.setup({\n ...defaultUnsupportedOptions,\n ...this.toolbarButtonOverrides\n });\n }\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n if (!this.isSupported()) {\n this.typeException = false;\n } else {\n this.typeException = true;\n this.contentType = null;\n this.setToolbarButtons();\n }\n }\n\n onCommentChange(changes: boolean) {\n this.unsavedChanges.emit(changes);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle = title;\n }\n\n private extractDMStoreDocId(url: string): string {\n url = url.includes('/documents/') ? url.split('/documents/')[1] : url;\n return url.replace('/binary', '');\n }\n\n detectOs() {\n this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Number Helper Service\n * */\n@Injectable({\n providedIn: 'root'\n})\n\nexport class NumberHelperService {\n constructor() { }\n\n public isNumber(value: string | number): boolean {\n return (\n value !== null\n && value !== undefined\n && value !== ''\n && !isNaN(Number(value.toString()))\n );\n }\n }\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { NumberHelperService } from '../../../lib/shared/util/services/number.helper.service';\n\n@Component({\n selector: 'mv-main-toolbar',\n templateUrl: './main-toolbar.component.html'\n})\nexport class MainToolbarComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @Input() enableAnnotations = false;\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() contentType = null;\n\n @ViewChild('zoomSelect', {static: false}) public zoomSelect: ElementRef;\n @ViewChild('mvToolbarMain', {static: false}) public mvToolbarMain: ElementRef<HTMLElement>;\n @ViewChild('dropdownMenu', {static: false}) public mvMenuItems: ElementRef<HTMLElement>;\n\n private readonly subscriptions: Subscription[] = [];\n\n public icpEnabled = false;\n public redactionEnabled = false;\n public showCommentsPanel: boolean;\n\n public pageNumber = 1;\n public pageCount = 0;\n public isDropdownMenuOpen = false;\n public dropdownMenuPositions = [\n new ConnectionPositionPair(\n {\n originX: 'end',\n originY: 'bottom'\n },\n {\n overlayX: 'end',\n overlayY: 'top'\n },\n 0,\n 3)\n ];\n\n public zoomScales = [0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2.5, 3, 5];\n\n allButtonsWidth = 0;\n widthRequiredForBtn: { [id: string]: number } = {};\n\n public constructor(\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private readonly cdr: ChangeDetectorRef,\n private readonly numberHelper: NumberHelperService\n ) {\n }\n\n public ngOnInit() {\n this.subscriptions.push(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.setCurrentPage(pageNumber)),\n this.toolbarEvents.setCurrentPageInputValueSubject.subscribe(pageNumber => this.pageNumber = pageNumber),\n this.toolbarEvents.getPageCount().subscribe(count => this.pageCount = count),\n this.toolbarEvents.icp.enabled.subscribe(enabled => {\n this.icpEnabled = enabled;\n if (this.icpEnabled) {\n this.toolbarEvents.toggleCommentsPanel(!enabled);\n this.toolbarEvents.sidebarOpen.next(false);\n }\n }),\n this.toolbarEvents.redactionMode.subscribe(enabled => {\n this.redactionEnabled = enabled;\n }),\n );\n }\n\n public ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n public ngAfterViewInit() {\n Array.from(this.mvToolbarMain.nativeElement.children).forEach(button => {\n this.allButtonsWidth += button.getBoundingClientRect().width;\n this.widthRequiredForBtn[button.id] = this.allButtonsWidth;\n });\n this.cdr.detectChanges();\n }\n\n @HostListener('window:resize', [])\n public onResize() {\n this.cdr.detectChanges();\n }\n\n public onClickHighlightToggle() {\n this.toolbarEvents.toggleHighlightMode();\n }\n public onClickDrawToggle() {\n this.toolbarEvents.toggleDrawMode();\n }\n\n public toggleSideBar() {\n this.toolbarEvents.sidebarOpen.next(!this.toolbarEvents.sidebarOpen.getValue());\n }\n\n public togglePresentBar() {\n this.toolbarEvents.searchBarHidden.next(true);\n this.toolbarEvents.icp.enable();\n }\n\n public increasePageNumber() {\n this.toolbarEvents.incrementPage(1);\n }\n\n public decreasePageNumber() {\n this.toolbarEvents.incrementPage(-1);\n }\n\n public onPageNumberInputChange(pageNumber: string) {\n if (Number(pageNumber) < 1) {\n pageNumber = '1';\n }\n if (Number(pageNumber) > this.pageCount) {\n pageNumber = this.pageCount.toString();\n }\n\n this.toolbarEvents.setPage(Number.parseInt(pageNumber, 10));\n }\n\n private setCurrentPage(pageNumber: number) {\n this.pageNumber = pageNumber;\n }\n\n public rotate(rotation: number) {\n this.toolbarEvents.rotate(rotation);\n }\n\n public printFile() {\n this.toolbarEvents.print();\n }\n\n public downloadFile() {\n this.toolbarEvents.download();\n }\n\n public zoom(zoomFactor: string) {\n this.toolbarEvents.zoom(+zoomFactor);\n }\n\n public stepZoom(zoomFactor: number) {\n this.toolbarEvents.stepZoom(zoomFactor);\n this.zoomSelect.nativeElement.selected = 'selected';\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n public toggleRedactBar() {\n this.toolbarEvents.toggleRedactionMode();\n }\n\n public toggleGrabNDrag() {\n this.toolbarEvents.toggleGrabNDrag();\n }\n\n public isPdf() {\n return this.contentType === 'pdf';\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n\n public toggleMoreOptions() {\n this.isDropdownMenuOpen = !this.isDropdownMenuOpen;\n setTimeout(() => {\n if (this.mvMenuItems) {\n this.mvMenuItems.nativeElement.focus();\n }\n }, 100);\n }\n}\n","import { Component, ElementRef, HostListener, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { SearchResultsCount, ToolbarEventService } from '../toolbar-event.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'mv-search-bar',\n templateUrl: './search-bar.component.html'\n})\nexport class SearchBarComponent implements OnInit, OnDestroy {\n\n @ViewChild('findInput', {static: true}) findInput: ElementRef<HTMLInputElement>;\n\n highlightAll = true;\n matchCase = false;\n wholeWord = false;\n resultsText = '';\n searchText = '';\n resultCount = 0;\n\n private subscriptions: Subscription[] = [];\n\n public advancedSearchVisible = false;\n\n constructor(\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService\n ) { }\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.searchResultsCountSubject.subscribe(results => this.setSearchResultsCount(results))\n );\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n public onWindowKeyDown(e: KeyboardEvent): void {\n if (e.code === 'F3' || (e.ctrlKey && e.code === 'KeyF')) {\n e.preventDefault();\n\n this.toolbarEvents.searchBarHidden.next(false);\n setTimeout(() => this.findInput.nativeElement.focus(), 200);\n }\n }\n\n public searchNext(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: false\n });\n }\n\n public searchPrev(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: true,\n reset: false\n });\n }\n\n public search(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: true\n });\n }\n\n private setSearchResultsCount(results: SearchResultsCount): void {\n this.resultCount = results.total;\n this.resultsText = this.resultCount > 0\n ? `Found ${results.current} of ${results.total}`\n : 'No results found';\n }\n\n public onEscapeKeyPress(e: KeyboardEvent): void {\n this.toolbarEvents.searchBarHidden.next(true);\n }\n\n public onEnterKeyPress(e: KeyboardEvent): void {\n this.search();\n }\n\n\n public toggleAdvancedSearch(): void {\n this.advancedSearchVisible = !this.advancedSearchVisible;\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromRedactions from '../reducers/redaction.reducer';\nimport * as fromDocument from './document.selectors';\n\nexport const getRedactionState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.redactions\n);\n\nexport const getRedactionPages = createSelector(\n getRedactionState,\n fromRedactions.getPageEnt\n);\n\nexport const getSelected = createSelector(\n getRedactionState,\n fromRedactions.getSelectedRedaction\n);\n\nexport const getRedactedDocumentInfo = createSelector(\n getRedactionState,\n fromRedactions.getRedactedDocInfo\n);\n\nexport const getRedactionEnt = createSelector(\n getRedactionState,\n fromRedactions.getRedactionEnt\n);\n\nexport const getRedactionArray = createSelector(\n getRedactionEnt,\n fromDocument.getDocumentId,\n (ent, documentId) => {\n const redactions = Object.keys(ent).map(key => ent[key]);\n return { redactions, documentId };\n }\n);\n\nexport const getRedactionsPerPage = createSelector(\n fromDocument.getPages,\n getRedactionPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: pageEnt[key] ? pageEnt[key] : [],\n styles: pages[key].styles\n });\n });\n\n return arr;\n }\n }\n);\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRedactSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { Subscription } from 'rxjs';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\n\n@Component({\n selector: 'mv-redaction-toolbar',\n templateUrl: './redaction-toolbar.component.html'\n})\nexport class RedactionToolbarComponent implements OnInit, OnDestroy {\n\n preview = false;\n hasRedactions = false;\n $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(fromRedactSelectors.getRedactionArray)).subscribe(redactions => {\n this.hasRedactions = !!redactions.redactions.length;\n });\n }\n\n toggleTextRedactionMode() {\n this.toolbarEventService.highlightModeSubject.next(true);\n }\n\n toggleDrawMode() {\n this.toolbarEventService.drawModeSubject.next(true);\n }\n\n togglePreview() {\n this.preview = !this.preview;\n this.toolbarEventService.toggleRedactionPreview(this.preview);\n }\n\n unmarkAll() {\n this.toolbarEventService.unmarkAll();\n }\n\n redact() {\n this.toolbarEventService.applyRedactionToDocument();\n }\n\n toggleRedactBar() {\n this.toolbarEventService.toggleRedactionMode();\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n}\n","import { createSelector } from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromIcp from '../reducers/icp.reducer';\n\nexport const getIcpState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.icp\n);\n\nexport const getIcpSession = createSelector(\n getIcpState,\n fromIcp.getIcpSession\n);\n\nexport const getCaseId = createSelector(\n getIcpSession,\n session => session === null ? null : session.caseId\n);\n\nexport const getPresenter = createSelector(\n getIcpState,\n fromIcp.getPresenter\n);\n\nexport const getPresenterName = createSelector(\n getPresenter,\n presenter => presenter === null ? null : presenter.username\n);\n\nexport const getClient = createSelector(\n getIcpState,\n fromIcp.getClient\n);\n\nexport const isPresenter = createSelector(\n getPresenter,\n getClient,\n (presenter, client) => presenter === null ? undefined : presenter.id === client.id // isPresenter is called when = false.\n);\n\nexport const getParticipants = createSelector(\n getIcpState,\n fromIcp.getParticipants\n);\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpSelectors from '../../store/selectors/icp.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpState } from '../../icp/icp.interfaces';\n\n@Component({\n selector: 'mv-icp-toolbar',\n templateUrl: './icp-toolbar.component.html'\n})\nexport class IcpToolbarComponent implements OnInit, OnDestroy {\n\n presenterName: string;\n isPresenter: boolean;\n\n private $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.pipe(select(fromIcpSelectors.isPresenter))\n .subscribe(isPresenter => this.isPresenter = isPresenter);\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenterName))\n .subscribe(name => this.presenterName = name));\n }\n\n ngOnDestroy() {\n this.$subscription.unsubscribe();\n }\n\n present() {\n this.toolbarEventService.icp.becomePresenter();\n }\n\n stopPresenting() {\n this.toolbarEventService.icp.stopPresenting();\n }\n\n leaveIcpSession() {\n this.toolbarEventService.icp.leaveSession();\n }\n\n showParticipantsList() {\n this.toolbarEventService.toggleParticipantsList(!this.toolbarEventService.icp.participantsListVisible.getValue());\n }\n}\n"," import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MainToolbarComponent } from './main-toolbar/main-toolbar.component';\nimport { SearchBarComponent } from './search-bar/search-bar.component';\nimport { FormsModule } from '@angular/forms';\nimport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nimport { ToolbarEventService } from './toolbar-event.service';\nimport { RedactionToolbarComponent } from './redaction-toolbar/redaction-toolbar.component';\nimport { IcpToolbarComponent } from './icp-toolbar/icp-toolbar.component';\nexport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nexport { ToolbarEventService } from './toolbar-event.service';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [\n SearchBarComponent,\n MainToolbarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n providers: [\n ToolbarButtonVisibilityService,\n ToolbarEventService\n ],\n exports: [\n MainToolbarComponent,\n SearchBarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n RouterModule\n ]\n})\nexport class ToolbarModule { }\n","import { Component, EventEmitter, Input, Output, ViewChild, ElementRef } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { Annotation } from './annotation.model';\nimport { Rectangle } from './rectangle/rectangle.model';\nimport moment from 'moment-timezone';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Component({\n selector: 'mv-annotation',\n templateUrl: './annotation-view.component.html'\n})\nexport class AnnotationViewComponent { // todo rename this to selection vew c\n\n @Input() set annotation(value) {\n this.anno = {...value};\n }\n anno: Annotation;\n selected: boolean;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() set selectedAnnoId(selectedId: { annotationId: string }) {\n if (selectedId) {\n const id = this.anno.id || this.anno.redactionId; // todo make it unique\n this.selected = selectedId.annotationId ? (selectedId.annotationId === id) : false;\n }\n }\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Output() update = new EventEmitter<Annotation>();\n @Output() delete = new EventEmitter<Annotation>();\n @Output() annotationClick = new EventEmitter<SelectionAnnotation>();\n\n @ViewChild('container', {static: false}) container: ElementRef;\n\n constructor(\n private readonly toolbarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>\n ) {}\n\n public onSelect() {\n const annotationId = this.anno.id || this.anno.redactionId;\n this.annotationClick.emit({ annotationId, editable: false, selected: true });\n }\n\n public onRectangleUpdate(rectangle: Rectangle) {\n const annotation = {...this.anno};\n annotation.rectangles = annotation.rectangles.filter(r => r.id !== rectangle.id);\n annotation.rectangles.push(rectangle);\n this.update.emit(annotation);\n }\n\n public deleteHighlight() {\n this.delete.emit(this.anno);\n }\n\n public addOrEditComment() {\n if (this.anno.comments.length === 0) {\n const comment: Comment = {\n annotationId: this.anno.id,\n content: '',\n createdBy: this.anno.createdBy,\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n id: uuid(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n page: null,\n pages: {},\n pageHeight: null,\n selected: false,\n editable: false\n };\n this.store.dispatch(new fromActions.AddOrEditComment(comment));\n\n }\n this.selected = true;\n this.annotationClick.emit({ annotationId: this.anno.id, editable: true, selected: true });\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Annotation } from './annotation-view/annotation.model';\nimport { Observable } from 'rxjs';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { CommentService } from '../comment-set/comment/comment.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\n\n@Component({\n selector: 'mv-annotation-set',\n templateUrl: './annotation-set.component.html'\n})\nexport class AnnotationSetComponent implements OnInit {\n\n @Input() page: number;\n @Input() annotations: Annotation[] = [];\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n selectedAnnotation$: Observable<SelectionAnnotation>;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService\n ) {}\n\n ngOnInit(): void {\n this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation));\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n public onAnnotationDelete(annotation: Annotation) {\n if (annotation.comments.length > 0) {\n this.commentService.updateUnsavedCommentsStatus(annotation, false);\n }\n this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id));\n }\n\n selectAnnotation(selectedAnnotation: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport moment from 'moment-timezone';\n\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/annotation.selectors';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\nimport { Annotation } from '../../annotation-view/annotation.model';\n\n@Injectable()\nexport class HighlightCreateService {\n\n constructor(private toolBarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n saveAnnotation(rectangles: Rectangle[], page: number) {\n this.store.pipe(select(fromSelectors.getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {\n const anno: Annotation = {\n id: uuid(),\n color: 'FFFF00',\n comments: [],\n page: page,\n rectangles: rectangles,\n type: 'highlight',\n ...anoSetDocId,\n createdBy: '',\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n };\n this.store.dispatch(new fromActions.SaveAnnotation(anno));\n });\n }\n\n applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom ) {\n const { x, y, width, height } = {\n x: +(offsetLeft / zoom).toFixed(2),\n y: +(offsetTop / zoom).toFixed(2),\n width: +(offsetWidth / zoom).toFixed(2),\n height: +(offsetHeight / zoom).toFixed(2)\n };\n const rectangle = { x, y, width, height };\n switch (rotate) {\n case 90:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = y;\n rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);\n break;\n case 180:\n rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);\n rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);\n break;\n case 270:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);\n rectangle.y = x;\n break;\n }\n return rectangle as any;\n }\n\n resetHighlight() {\n window.getSelection().removeAllRanges();\n this.toolBarEvents.highlightModeSubject.next(false);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { Rectangle } from './rectangle.model';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar-event.service';\nimport { HighlightCreateService } from '../../annotation-create/highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-anno-rectangle',\n templateUrl: './rectangle.component.html'\n})\nexport class RectangleComponent implements OnChanges, AfterViewInit, OnDestroy {\n\n @Input() color: String;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() editable: boolean;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Output() select = new EventEmitter<Rectangle>();\n @Output() update = new EventEmitter<Rectangle>();\n\n @ViewChild('rectElement', {static: false}) viewRect: ElementRef;\n\n private subscriptions: Subscription[] = [];\n _selected: boolean;\n enableGrabNDrag = false;\n\n height: number;\n width: number;\n top: number;\n left: number;\n\n _annoRect: Rectangle;\n @Input()\n set annoRect(annoRect: Rectangle) {\n this._annoRect = { ...annoRect };\n this.height = +(annoRect.height * this.zoom).toFixed(2);\n this.width = +(annoRect.width * this.zoom).toFixed(2);\n this.left = +(annoRect.x * this.zoom).toFixed(2);\n this.top = +(annoRect.y * this.zoom).toFixed(2);\n }\n\n get annoRect() {\n return this._annoRect;\n }\n\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.rotate) {\n this.adjustForRotation(this.rotate);\n }\n }\n\n ngAfterViewInit() {\n this.subscriptions.push(\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n }\n\n @Input()\n set selected(selected: boolean) {\n this._selected = selected;\n if (this._selected && this.viewRect) {\n this.viewRect.nativeElement.focus();\n }\n }\n\n get selected() {\n return this._selected;\n }\n\n onClick() {\n this.select.emit(this.annoRect);\n }\n\n onUpdate(viewRect: any) {\n const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = viewRect;\n if (this.hasRectangleChanged(viewRect)) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, this.rotate, this.zoom);\n rectangle = { ...this.annoRect, ...rectangle };\n this.update.emit({ ...rectangle });\n }\n }\n\n adjustForRotation(rotation: number) {\n const { top, left, height, width } = this;\n switch (rotation) {\n case 90:\n this.width = height;\n this.height = width;\n this.left = this.pageWidth - top - height;\n this.top = left;\n break;\n case 180:\n this.left = this.pageWidth - left - width;\n this.top = this.pageHeight - top - height;\n break;\n case 270:\n this.width = height;\n this.height = width;\n this.left = top;\n this.top = this.pageHeight - left - width;\n break;\n }\n }\n\n hasRectangleChanged(viewRect): boolean {\n return this.left !== viewRect.offsetLeft ||\n this.top !== viewRect.offsetTop ||\n this.width !== viewRect.offsetWidth ||\n this.height !== viewRect.offsetHeight;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TagsModel } from '../../models/tags.model';\n\n@Injectable()\nexport class TagsServices {\n\n public tagItems: {[id: string]: TagsModel[]};\n\n constructor(private http: HttpClient) {}\n\n public getAllTags(createdBy: string): Observable<TagsModel[]> {\n const url = `/em-anno/tags/${createdBy}`;\n return this.http.get<TagsModel[]>(url);\n }\n\n // @TODO: Move everything below this to NgRx store\n getNewTags(annoid: string): TagsModel[] {\n return this.tagItems ? this.tagItems[annoid] : [];\n }\n\n updateTagItems(items: Array<TagsModel>, annoId: string) {\n const snakeCased = items.map(item => {\n return {\n ...item,\n name: this.snakeCase(item.name)\n };\n });\n\n this.tagItems = {\n ...this.tagItems,\n [annoId]: snakeCased\n };\n }\n\n private snakeCase = string => {\n // transform string_to_snake_case\n return string.replace(/ +/g, ' ') // find space\n .split(/ |\\B(?=[A-Z])/) // split it into array\n .map(word => word.toLowerCase()) // transform to lover case\n .join('_'); // trun array into sting using _\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {Comment} from './comment.model';\nimport {User} from '../../models/user.model';\nimport {Rectangle} from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {CommentService} from './comment.service';\nimport {TagsModel} from '../../models/tags.model';\nimport {TagsServices} from '../../services/tags/tags.services';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromSelector from '../../../store/selectors/annotation.selectors';\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\n\n@Component({\n selector: 'mv-anno-comment',\n templateUrl: './comment.component.html'\n})\nexport class CommentComponent implements OnInit, OnDestroy, AfterContentInit {\n\n CHAR_LIMIT = 5000;\n lastUpdate: string;\n originalComment: string;\n fullComment: string;\n author: User;\n createdBy: string;\n editor: User;\n _comment: Comment;\n _editable: boolean;\n _rectangle;\n totalPrevPagesHeight = 0;\n rectTop;\n rectLeft;\n pageHeight: number;\n hasUnsavedChanges = false;\n selected: boolean;\n searchString: string;\n public tagItems: TagsModel[];\n\n\n @Output() commentClick = new EventEmitter<SelectionAnnotation>();\n @Output() renderComments = new EventEmitter<Comment>();\n @Output() delete = new EventEmitter<Comment>();\n @Output() updated = new EventEmitter<{comment: Comment, tags: TagsModel[]}>();\n @Output() changes = new EventEmitter<boolean>();\n @Input() rotate = 0;\n @Input() zoom = 1;\n @Input() index: number;\n @Input() page: number;\n\n @ViewChild('form', {static: false}) form: ElementRef;\n @ViewChild('editableComment', {static: false}) editableComment: ElementRef<HTMLElement>;\n\n private subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private tagsServices: TagsServices\n ) {}\n\n\n ngOnInit(): void {\n this.subscriptions = this.store.select(fromSelector.getComponentSearchText)\n .pipe(distinctUntilChanged()).subscribe(searchString => this.searchString = searchString);\n this.reRenderComments();\n }\n\n ngAfterContentInit(): void {\n if (this.tagItems && this.tagItems.length) {\n this.tagsServices.updateTagItems(this.tagItems, this._comment.annotationId);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n @Input()\n set comment(comment: Comment) {\n this._comment = {...comment};\n this.page = this._comment.page;\n this.lastUpdate = comment.lastModifiedDate ? comment.lastModifiedDate : comment.createdDate;\n this.author = comment.createdByDetails;\n this.createdBy = comment.createdBy;\n this.editor = comment.lastModifiedByDetails;\n this.originalComment = comment.content;\n this.fullComment = this.originalComment;\n this.selected = this._comment.selected;\n this._editable = this._comment.editable;\n this.tagItems = this._comment.tags;\n const pageMarginBottom = 10;\n this.totalPrevPagesHeight = 0;\n for (let i = 0; i < this.page - 1; i++) {\n const height = this._comment.pages[i + 1] ? this._comment.pages[i + 1].styles.height : undefined;\n if (height) {\n this.totalPrevPagesHeight += height + pageMarginBottom;\n }\n }\n\n }\n\n get comment() {\n return this._comment;\n }\n\n @Input()\n set annotation(annotation: Annotation) {\n this._rectangle = annotation.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n const actualHeight = this._comment.pages[this.page].styles.height / this.zoom;\n switch (this.rotate) {\n case 90: this.rectTop = this._rectangle.x;\n break;\n case 180: this.rectTop = actualHeight - (this._rectangle.y + this._rectangle.height);\n break;\n case 270: this.rectTop = actualHeight - (this._rectangle.x + this._rectangle.width);\n break;\n default: this.rectTop = this._rectangle.y;\n }\n this.rectLeft = this._rectangle.x;\n }\n\n get editable(): boolean {\n return this._editable;\n }\n\n onCommentChange(updatedComment) {\n this.hasUnsavedChanges =\n this.originalComment.substring(0, this.CHAR_LIMIT) !== updatedComment.substring(0, this.CHAR_LIMIT);\n this.commentService.onCommentChange(this.hasUnsavedChanges);\n }\n\n deleteOrCancel() {\n if (!this.editable) {\n this.delete.emit(this._comment);\n } else {\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.fullComment = this.originalComment;\n this.changes.emit(false);\n if (!this.author && !this.fullComment) {\n this.delete.emit(this._comment);\n }\n }\n }\n\n public editOrSave() {\n if (!this.editable) {\n this._editable = true;\n } else {\n this._comment.content = this.fullComment.substring(0, this.CHAR_LIMIT);\n const tags = this.tagsServices.getNewTags(this._comment.annotationId);\n const payload = {\n comment: this._comment,\n tags\n };\n this.updated.emit(payload);\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.changes.emit(false);\n }\n }\n\n onCommentClick() {\n if (!this.selected) {\n this.selected = true;\n this._editable = false;\n this.commentClick.emit({ annotationId: this._comment.annotationId, editable: this._editable, selected: true });\n }\n }\n\n reRenderComments() {\n this.renderComments.emit(this._comment);\n }\n\n get commentTop(): number {\n return this.totalPrevPagesHeight + (this.rectTop * this.zoom);\n }\n\n\n get height() {\n return this.form.nativeElement.getBoundingClientRect().height / this.zoom;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\n\n@Component({\n selector: 'mv-ctx-toolbar',\n templateUrl: './ctx-toolbar.component.html'\n})\nexport class CtxToolbarComponent implements OnChanges {\n\n readonly defaultHeight;\n readonly defaultWidth;\n\n @Input() zoom;\n @Input() rotate;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Input() canHighlight: boolean;\n @Input() canBookmark: boolean;\n @Input() canComment: boolean;\n @Input() canDelete: boolean;\n\n @Output() createHighlightEvent = new EventEmitter();\n @Output() deleteHighlightEvent = new EventEmitter();\n @Output() addOrEditCommentEvent = new EventEmitter();\n @Output() createBookmarkEvent = new EventEmitter<Rectangle>();\n\n rectangle: Rectangle;\n _rectangles: Rectangle[];\n top: number;\n left: number;\n\n constructor() {\n this.defaultHeight = 70;\n this.defaultWidth = 300;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.setRectangle();\n this.top = this.popupTop();\n this.left = this.popupLeft();\n }\n\n @Input() set rectangles(rectangles: Rectangle[]) {\n if (rectangles) {\n this._rectangles = rectangles;\n this.setRectangle();\n }\n }\n\n get rectangles() {\n return this._rectangles;\n }\n\n createHighlight() {\n this.createHighlightEvent.emit();\n this.rectangle = undefined;\n }\n\n deleteHighlight() {\n this.deleteHighlightEvent.emit();\n }\n\n addOrEditComment() {\n this.addOrEditCommentEvent.emit();\n }\n\n createBookmark() {\n this.createBookmarkEvent.emit(this.rectangle);\n this.rectangle = undefined;\n }\n\n setRectangle() {\n const rectangle = this.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n this.rectangle = { ...rectangle };\n switch (this.rotate) {\n case 90:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;\n this.rectangle.y = rectangle.x;\n break;\n case 180:\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.x - rectangle.width;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.y - rectangle.height;\n break;\n case 270:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = rectangle.y;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.x - rectangle.width;\n break;\n }\n }\n\n popupTop() {\n const popupTop = this.rectangle.y * this.zoom - this.defaultHeight;\n return popupTop <= 0 ? this.defaultHeight : popupTop;\n }\n\n popupLeft() {\n const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);\n if (popupLeft <= 0) {\n return 0;\n } else if (popupLeft >= this.pageWidth - this.defaultWidth) {\n return this.pageWidth - this.defaultWidth;\n } else {\n return popupLeft;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CommentComponent } from './comment/comment.component';\n\n@Injectable()\nexport class CommentSetRenderService {\n\n redrawComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n let prevComment: CommentComponent;\n this.sortComponents(commentComponents, pageHeights, rotate, zoom).forEach((comment: CommentComponent) => {\n this.adjustIfOverlapping(comment, prevComment, zoom);\n prevComment = comment;\n });\n }\n\n sortComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n return commentComponents.sort((a: CommentComponent, b: CommentComponent) => {\n a.rectTop = this.top(a._rectangle, pageHeights[a.page - 1], rotate, zoom);\n b.rectTop = this.top(b._rectangle, pageHeights[b.page - 1], rotate, zoom);\n return this.processSort(a, b);\n });\n }\n\n private adjustIfOverlapping(comment: CommentComponent, prevComment: CommentComponent, zoom: number): void {\n if (prevComment) {\n const endOfPrevComment = prevComment.commentTop + this.height(prevComment);\n if (comment.commentTop <= endOfPrevComment) {\n comment.rectTop = (endOfPrevComment - comment.totalPrevPagesHeight) / zoom;\n }\n }\n }\n\n private processSort(a: CommentComponent, b: CommentComponent): number {\n if (this.onSameLine(a, b)) {\n return a.rectLeft >= b.rectLeft ? 1 : -1;\n }\n return a.commentTop >= b.commentTop ? 1 : -1;\n }\n\n private onSameLine(a: CommentComponent, b: CommentComponent): boolean {\n return this.difference(a.commentTop, b.commentTop) === 0;\n }\n\n private top(rectangle: { x, y, height, width }, height: number, rotate: number, zoom: number) {\n const actualHeight = height / zoom;\n switch (rotate) {\n case 90: return rectangle.x;\n case 180: return actualHeight - (rectangle.y + rectangle.height);\n case 270: return actualHeight - (rectangle.x + rectangle.width);\n default: return rectangle.y;\n }\n }\n\n private height(element: any) {\n return element.form.nativeElement.getBoundingClientRect().height;\n }\n\n private difference(a: number, b: number): number { return Math.abs(a - b); }\n}\n","import {\n Component,\n ElementRef,\n Input, OnChanges,\n OnDestroy,\n OnInit,\n QueryList, SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\n\nimport { AnnotationSet } from '../annotation-set/annotation-set.model';\nimport { Annotation } from '../annotation-set/annotation-view/annotation.model';\nimport { Comment } from './comment/comment.model';\nimport { CommentComponent } from './comment/comment.component';\nimport { CommentService } from './comment/comment.service';\nimport { CommentSetRenderService } from './comment-set-render.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport { TagsModel } from '../models/tags.model';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set',\n templateUrl: './comment-set.component.html',\n })\nexport class CommentSetComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() annotationSet: AnnotationSet;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() height: number;\n @Input() pageHeights = [];\n @Input() contentScrollTop: number;\n\n comments: Comment[];\n tags: TagsModel[];\n private subscriptions: Subscription[] = [];\n public comments$: Observable<Annotation[]>;\n public annoEntities$: Observable<{ [id: string]: Annotation }>;\n\n @ViewChild('container', {static: false}) container: ElementRef<HTMLDivElement>;\n @ViewChild('panel', {static: false}) panel: ElementRef<HTMLDivElement>;\n @ViewChildren('commentComponent') commentComponents: QueryList<CommentComponent>;\n\n showCommentsPanel: boolean;\n\n constructor(private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private readonly renderService: CommentSetRenderService,\n private readonly toolbarEvents: ToolbarEventService) {\n this.clearSelection();\n }\n\n ngOnInit() {\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentsArray));\n this.annoEntities$ = this.store.pipe(select(fromSelectors.getAnnotationEntities));\n this.subscriptions.push(\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.redrawComments();\n this.showCommentsPanel = toggle;\n })\n );\n this.subscriptions.push(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument()));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationSet) {\n this.commentService.setCommentSet(this);\n }\n if (changes.contentScrollTop) {\n if (this.container) {\n this.container.nativeElement.scrollTo(0, this.contentScrollTop);\n }\n }\n }\n\n ngOnDestroy() {\n if (this.subscriptions.length > 0) {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n }\n\n public onSelect(annotationId: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(annotationId));\n }\n\n public onCommentDelete(comment: Comment) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === comment.annotationId);\n const comments = [];\n const annot = {\n ...annotation,\n comments\n };\n this.onAnnotationUpdate(annot);\n this.redrawComments();\n }\n\n redrawComments() {\n setTimeout(() => {\n const componentList: CommentComponent[] = this.commentComponents.map(comment => comment);\n this.renderService.redrawComponents(componentList, this.pageHeights, this.rotate, this.zoom);\n }, 0);\n }\n\n private rotateDocument() {\n if (this.panel) {\n this.panel.nativeElement.style.height = '0';\n }\n }\n\n public onCommentUpdate(payload: {comment: Comment, tags: TagsModel[]} ) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === payload.comment.annotationId);\n const comments = [payload.comment];\n const tags = payload.tags;\n const annot = {\n ...annotation,\n comments,\n tags\n };\n this.onAnnotationUpdate(annot);\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n onContainerClick(e) {\n if (e.path && e.path[0] === this.panel.nativeElement) {\n this.clearSelection();\n }\n }\n\n clearSelection() {\n this.store.dispatch(new fromActions.SelectedAnnotation({ annotationId: '', editable: false, selected: false}));\n }\n\n allCommentsSaved() {\n this.commentService.allCommentsSaved();\n }\n}\n","import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[mvTextAreaAutoExpand]'\n})\nexport class TextareaAutoExpandDirective implements AfterContentChecked {\n\n constructor(private el: ElementRef) {\n }\n\n ngAfterContentChecked(): void {\n this.adjustHeight();\n }\n\n @HostListener('input') onMouseDown() {\n this.adjustHeight();\n }\n\n adjustHeight(): void {\n const nativeElement = this.el.nativeElement;\n nativeElement.style.overflow = 'hidden';\n nativeElement.style.height = 'auto';\n nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';\n }\n\n}\n","import {Component, Input, ViewChild, ElementRef, OnInit, OnDestroy} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport {select, Store} from '@ngrx/store';\n\nimport { PrintService } from '../../print.service';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromAnnoActions from '../../store/actions/annotation.actions';\nimport * as fromTagSelectors from '../../store/selectors/tag.selectors';\n\n@Component({\n selector: 'mv-comments-summary',\n templateUrl: './comments-summary.component.html',\n})\nexport class CommentsSummaryComponent implements OnInit, OnDestroy {\n\n @Input() title: string;\n @Input() contentType: string;\n @ViewChild('outerContainer', {static: false}) container: ElementRef;\n @ViewChild('commentContainer', {static: false}) commentsTable: ElementRef;\n public comments$: Observable<any>;\n public filtersFg: FormGroup;\n private $subscriptions: Subscription;\n allTags$: Observable<{key: string; length: number}[]>;\n showFilters = false;\n hasFilter = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly toolbarEvents: ToolbarEventService,\n private fb: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.filtersFg = this.fb.group({\n dateRangeFrom: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n dateRangeTo: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n tagFilters: this.fb.group({}),\n });\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentSummary));\n this.buildCheckBoxForm();\n }\n\n ngAfterViewInit() {\n this.container.nativeElement.focus();\n }\n\n buildCheckBoxForm() {\n this.filtersFg.reset();\n const checkboxes = <FormGroup>this.filtersFg.get('tagFilters');\n const filters$ = this.store.pipe(select(fromSelectors.getCommentSummaryFilters));\n this.allTags$ = this.store.pipe(select(fromTagSelectors.getAllTagsArr));\n this.$subscriptions = combineLatest([this.allTags$, filters$]).subscribe(([tags, filters]) => {\n this.hasFilter = filters.hasFilter;\n tags.forEach((val) => {\n const checkBoxValue = (filters.filters.tagFilters &&\n filters.filters.tagFilters.hasOwnProperty(val.key)) ?\n filters.filters.tagFilters[val.key] : false;\n checkboxes.addControl(val.key, new FormControl(checkBoxValue));\n });\n this.filtersFg.updateValueAndValidity();\n });\n }\n\n onClearFilters() {\n this.store.dispatch(new fromAnnoActions.ClearCommentSummaryFilters());\n this.buildCheckBoxForm();\n }\n\n onFilter() {\n const { value } = this.filtersFg;\n const hasDateFrom = (value.dateRangeFrom.year && value.dateRangeFrom.month && value.dateRangeFrom.day);\n const hasDateTo = (value.dateRangeTo.year && value.dateRangeTo.month && value.dateRangeTo.day);\n const dateRangeFrom = hasDateFrom ?\n new Date(value.dateRangeFrom.year, value.dateRangeFrom.month - 1, value.dateRangeFrom.day).getTime() : null;\n const dateRangeTo = hasDateTo ?\n new Date(value.dateRangeTo.year, value.dateRangeTo.month - 1, value.dateRangeTo.day).getTime() : null;\n this.store.dispatch(new fromAnnoActions.ApplyCommentSymmaryFilter({...value, dateRangeFrom, dateRangeTo}));\n }\n\n onFiltersToggle() {\n this.showFilters = !this.showFilters;\n }\n\n public onClose(): void {\n this.toolbarEvents.toggleCommentsSummary(false);\n }\n\n public onPrint(): void {\n this.printService.printElementNatively(this.commentsTable.nativeElement, 1000, 900);\n }\n\n navigateToPage(pageNumber: number) {\n if (this.contentType === 'pdf') {\n this.toolbarEvents.setPage(pageNumber);\n }\n this.toolbarEvents.toggleCommentsSummary(false);\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport uuid from 'uuid';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { HighlightCreateService } from '../highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-box-highlight-create',\n templateUrl: './box-highlight-create.component.html',\n})\nexport class BoxHighlightCreateComponent implements OnInit, OnDestroy {\n\n @Input() page: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Input() rotate: number;\n @Input() zoom: number;\n @Input() container: { top: number, left: number };\n\n @Output() saveSelection = new EventEmitter<{ rectangles: Rectangle[], page: number }>();\n\n @ViewChild('boxHighlight', {static: false}) highlight: ElementRef;\n\n drawStartX = -1;\n drawStartY = -1;\n top: number;\n left: number;\n height: number;\n width: number;\n display: string;\n drawMode: boolean;\n defaultHeight: string;\n defaultWidth: string;\n position: string;\n backgroundColor = 'none';\n\n private subscriptions: Subscription[] = [];\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnInit(): void {\n this.subscriptions = [\n this.toolbarEvents.drawModeSubject.subscribe(drawMode => {\n this.defaultHeight = drawMode ? '100%' : '0px';\n this.defaultWidth = drawMode ? '100%' : '0px';\n })\n ];\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n\n initHighlight({ offsetX, offsetY }) {\n this.position = 'absolute';\n this.backgroundColor = 'yellow';\n this.drawStartX = offsetX;\n this.drawStartY = offsetY;\n\n this.display = 'block';\n this.height = 50;\n this.width = 50;\n\n this.top = this.drawStartY;\n this.left = this.drawStartX;\n\n switch (this.rotate) {\n case 90:\n this.top = this.drawStartY - this.height;\n break;\n case 180:\n this.top = this.drawStartY - this.height;\n this.left = this.drawStartX - this.width;\n break;\n case 270:\n this.left = this.drawStartX - this.width;\n break;\n }\n }\n\n updateHighlight({ offsetX, offsetY }) {\n if (this.drawStartX > 0 && this.drawStartY > 0) {\n this.height = Math.abs(offsetY - this.drawStartY);\n this.width = Math.abs(offsetX - this.drawStartX);\n this.top = Math.min(offsetY, this.drawStartY);\n this.left = Math.min(offsetX, this.drawStartX);\n }\n }\n\n createHighlight() {\n if (this.height / this.zoom > 5 || this.width / this.zoom > 5) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle } as any;\n this.saveSelection.emit({ rectangles: [rectangle], page: this.page });\n this.resetHighlight();\n }\n }\n\n private resetHighlight() {\n this.drawStartX = -1;\n this.drawStartY = -1;\n this.display = 'none';\n this.width = 0;\n this.height = 0;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromTagSelectors from '../../../store/selectors/tag.selectors';\nimport * as fromAnnoSelector from '../../../store/selectors/annotation.selectors';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set-header',\n templateUrl: './comment-set-header.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSetHeaderComponent implements OnInit, OnDestroy {\n\n @Input() public showCommentSummary: boolean;\n @Output() public readonly showCommentSummaryDialog = new EventEmitter();\n\n tabs: {isFiltered?: boolean; label: string}[] = [];\n tabSelected = '';\n isFiltered: boolean;\n navigationList: Annotation[];\n $subscriptions: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n public toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n const tagFilter$ = this.store.pipe(select(fromTagSelectors.getTagFilters));\n const filteredAnnotation$ = this.store.pipe(select(fromAnnoSelector.getFilteredAnnotations));\n\n this.$subscriptions = combineLatest([tagFilter$, filteredAnnotation$]).subscribe(([formData, filteredAnno]) => {\n this.navigationList = filteredAnno;\n this.tabs = this.navigationList.length > 0 ?\n [{label: 'comments'}, {label: 'filter'}, {label: 'search'}] : [{label: 'comments'}];\n this.isFiltered = !formData.length;\n this.tabs = [...this.tabs].map((tab) => {\n return !this.isFiltered && tab.label === 'filter' ? {...tab, isFiltered: true} : {...tab, isFiltered: false};\n });\n });\n }\n\n public toggleCommentsSummary(): void {\n this.showCommentSummaryDialog.emit();\n }\n\n selectTab(tab: string) {\n this.tabSelected = tab !== this.tabSelected ? tab : undefined;\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../../annotation-set/annotation-view/annotation.model';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\n\n@Component({\n selector: 'mv-comment-search',\n templateUrl: './comment-search.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSearchComponent implements AfterViewInit, OnDestroy {\n\n @Input() public readonly annotations: Annotation[];\n\n @ViewChild('searchInput', {static: false}) searchInput: ElementRef<HTMLInputElement>;\n\n searchString: string;\n searchResults: Annotation[] = [];\n searchIndex = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>) {}\n\n ngAfterViewInit(): void {\n if (this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n }\n\n ngOnDestroy(): void {\n // TODO workaround for tab error\n setTimeout(() => {this.store.dispatch(new fromActions.SearchComment('')); }, 250);\n }\n\n searchComments(searchText: string): void {\n this.clearSearch();\n if (searchText.length > 2) {\n this.searchString = searchText;\n this.searchResults = this.annotations\n .filter(annotation => annotation.comments.length > 0)\n .filter(annotation =>\n annotation.comments[0].content.toLowerCase().includes(this.searchString.toLowerCase()));\n if (this.searchResults.length > 0) {\n this.store.dispatch(new fromActions.SearchComment(searchText));\n }\n }\n }\n\n clearSearch() {\n this.searchString = undefined;\n this.searchResults = [];\n this.searchIndex = 0;\n this.store.dispatch(new fromActions.SearchComment(''));\n }\n}\n","import { AfterViewChecked, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[mvTextHighlight]'\n})\nexport class TextHighlightDirective implements AfterViewChecked {\n\n @Input() textToHighlight: string;\n\n constructor(private element: ElementRef<HTMLElement>) {}\n\n ngAfterViewChecked(): void {\n if (this.textToHighlight) {\n this.highlightInputText(this.textToHighlight);\n }\n }\n\n highlightInputText(textToHighlight: string) {\n this.resetHighlight();\n this.textToHighlight = textToHighlight;\n const searchPattern = new RegExp(textToHighlight, 'gi');\n const hostElement = this.element.nativeElement;\n if (hostElement.innerHTML.match(searchPattern)) {\n hostElement.innerHTML = hostElement.innerHTML\n .replace(searchPattern, this.highlightPattern('$&'));\n }\n this.textToHighlight = undefined;\n }\n\n resetHighlight() {\n const hostElement = this.element.nativeElement;\n const searchPattern = new RegExp(this.highlightPattern('(.*?)'), 'gi');\n while (hostElement.innerHTML.match(searchPattern)) {\n const matchGroups = searchPattern.exec(hostElement.innerHTML);\n if (matchGroups) {\n hostElement.innerHTML = hostElement.innerHTML.replace(matchGroups[0], matchGroups[1]);\n }\n }\n }\n\n private highlightPattern(dynamicText: string) {\n return '<span class=\"mvTextHighlight\">' + dynamicText + '</span>';\n }\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {TagsModel} from '../models/tags.model';\nimport {TagsServices} from '../services/tags/tags.services';\nimport {FormControl} from '@angular/forms';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'mv-tags',\n templateUrl: './tags.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TagsComponent {\n @Input() tagItems: TagsModel[];\n @Input() userId: string;\n @Input() editable: boolean;\n @Input() annoId: string;\n\n public validators = [this.minLength, this.maxLength20];\n public errorMessages: {[id: string]: string} = {\n 'minLength': 'Minimum of 2 characters',\n 'maxLength20': 'Maximum of 20 characters'\n };\n\n constructor(private tagsServices: TagsServices) {}\n\n onUpdateTags(value) {\n this.tagsServices.updateTagItems(value, this.annoId);\n }\n\n public requestAutocompleteItems = (text: string): Observable<any[]> => {\n return this.tagsServices.getAllTags(this.userId);\n }\n\n private minLength(control: FormControl) {\n if (control.value.length < 2) {\n return {\n 'minLength': true\n };\n }\n return null;\n }\n\n private maxLength20(control: FormControl) {\n if (control.value.length >= 20) {\n return {\n 'maxLength20': true\n };\n }\n return null;\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { Rectangle } from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comments-navigate',\n templateUrl: './comments-navigate.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentsNavigateComponent implements OnChanges {\n\n @Input() public annotationList: Annotation[];\n @Input() autoSelect = false;\n\n navigationList: any[] = [];\n index = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>, public readonly toolbarEvents: ToolbarEventService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationList) {\n this.initNavigationList();\n }\n }\n\n initNavigationList(): void {\n this.index = 0;\n this.navigationList = [...this.annotationList || []]\n .map(annotation => ({\n content: annotation.comments[0].content,\n annotationId: annotation.id,\n page: annotation.page,\n rectangle: this.upperRectangle(annotation.rectangles),\n }))\n .sort(this.sortComments);\n\n if (this.autoSelect) {\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[0].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[0].annotationId,\n editable: false,\n selected: true\n }));\n }\n }\n\n sortComments(mappedCommentA, mappedCommentB) {\n if (mappedCommentA.page !== mappedCommentB.page) {\n return mappedCommentA.page - mappedCommentB.page;\n } else {\n const rectA = mappedCommentA.rectangle;\n const rectB = mappedCommentB.rectangle;\n if (rectA.y !== rectB.y) {\n return rectA.y - rectB.y;\n } else {\n return rectA.x - rectB.x;\n }\n }\n }\n\n nextItem() {\n this.index += 1;\n if (this.index === this.annotationList.length) {\n this.index = 0;\n }\n\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId, editable: false, selected: true\n }));\n }\n\n\n prevItem() {\n this.index -= 1;\n if (this.index < 0) {\n this.index = this.navigationList.length - 1;\n }\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId,\n editable: false,\n selected: true\n }));\n }\n\n upperRectangle(rectangles: Rectangle[]) {\n [...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);\n return { x: rectangles[0].x, y: rectangles[0].y };\n }\n}\n","import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\n\nimport {select, Store} from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/tag.selectors';\nimport * as fromActions from '../../../../store/actions/tag.actions';\nimport {Observable, Subscription} from 'rxjs';\nimport {FormGroup, FormBuilder, FormControl} from '@angular/forms';\nimport {auditTime, tap} from 'rxjs/operators';\n\n\n@Component({\n selector: 'mv-comment-filter',\n templateUrl: './comment-filter.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentFilterComponent implements OnInit, OnDestroy {\n tagGroup: FormGroup;\n $subscriptions: Subscription;\n filter$: Observable<string[]>;\n allTags$: Observable<any>;\n searchValue: string;\n isPreview = false;\n constructor(\n private store: Store<fromStore.State>,\n private fb: FormBuilder) {}\n\n ngOnInit(): void {\n this.tagGroup = this.fb.group({\n 'tagFilters': this.fb.group({}),\n });\n this.filter$ = this.store.pipe(select(fromSelectors.getTagFilters));\n this.$subscriptions = this.tagGroup.valueChanges.pipe(auditTime(5)).subscribe(value => {\n const tagFilters = value['tagFilters'];\n this.store.dispatch(new fromActions.AddFilterTags(tagFilters));\n });\n this.buildFrom();\n\n }\n\n buildFrom() {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n this.allTags$ = this.store.pipe(select(fromSelectors.getAllTagsArr)).pipe(tap(tags => {\n this.tagGroup.reset();\n tags.forEach((value) => {\n checkboxes.addControl(value.key, new FormControl(false));\n });\n }));\n }\n\n onClearFilters() {\n this.tagGroup.reset();\n this.store.dispatch(new fromActions.ClearFilterTags());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n onRemoveFilter(tagName) {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n checkboxes.controls[tagName].setValue(false);\n }\n\n onToggleFilterView() {\n this.isPreview = !this.isPreview;\n }\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport moment from 'moment-timezone';\n/**\n * A moment timezone pipe to support parsing based on time zone abbreviations\n * covers all cases of offset variation due to daylight saving.\n *\n * Same API as DatePipe with additional timezone abbreviation support\n * Official date pipe dropped support for abbreviations names from Angular V5\n */\n@Pipe({\n name: 'momentDate'\n})\nexport class MomentDatePipe extends DatePipe implements PipeTransform {\n\n transform(\n value: string | Date,\n format: string = 'mediumDate',\n timezone: string = 'Europe/London'\n ): string {\n const timezoneOffset = moment(value).tz(timezone).format('Z');\n return super.transform(value, format, timezoneOffset);\n }\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { Bookmark } from '../../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\n@Injectable()\nexport class BookmarksApiService {\n\n private readonly ANNOTATIONS_API = '/em-anno';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getBookmarks(documentId: string): Observable<any> {\n return this.httpClient\n .get(`${this.ANNOTATIONS_API}/${documentId}/bookmarks`,\n { observe: 'response' , withCredentials: true });\n }\n\n public createBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .post<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .put<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateMultipleBookmarks(bookmarks: Partial<Bookmark[]>): Observable<Bookmark[]> {\n return this.httpClient\n .put<Bookmark[]>(`${this.ANNOTATIONS_API}/bookmarks_multiple`,\n bookmarks, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteBookmark(bookmarkId: string): Observable<void> {\n return this.httpClient\n .delete<void>(`${this.ANNOTATIONS_API}/bookmarks/${bookmarkId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteMultipleBookmarks(payload: { deleted: string[], updated: Bookmark }): Observable<void> {\n return this.httpClient\n .request<void>('DELETE', `${this.ANNOTATIONS_API}/bookmarks_multiple`,\n { body: payload, observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchText: string, fieldName: string): any[] {\n\n if (!items) {\n return [];\n }\n\n if (!searchText) {\n return items;\n }\n\n return items.filter(item => {\n if (item) {\n if (item[fieldName]) {\n return item[fieldName].toLowerCase().includes(searchText.toLowerCase());\n } else {\n return item.toLowerCase().includes(searchText.toLowerCase());\n }\n }\n return false;\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'unsnake'\n})\nexport class UnsnakePipe implements PipeTransform {\n\n transform(items: string): string {\n return items.split('_').join(' ');\n }\n\n}\n","import {Component, Input} from '@angular/core';\n/*\n* Gov UK Date Component\n* Responsible for displaying 3 input fields:\n* day / month / year\n* displaying errorMessage messages\n* */\n@Component({\n selector: 'mv-gov-uk-date',\ntemplateUrl: './gov-uk-date.component.html'\n})\nexport class GovUkDateComponent {\n @Input() config: { id: string; legend: string };\n @Input() errorMessage: {isInvalid: boolean; messages: string[]};\n @Input() formGroup;\n}\n","import {Component, Directive, Input} from '@angular/core';\n/*\n* Gov UK Error Message\n* Responsible for displaying in-line error messages\n* @prop config - obj with properties\n* @prop errorMessage - all error bject with messages property that is arry of strings.\n* */\n@Component({\n selector: ' mv-gov-uk-error-message',\n template: `\n <span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{message}}\n </span>\n `\n})\nexport class GovUkErrorMessageComponent {\n constructor () { }\n @Input() config: { id: string };\n @Input() errorMessage;\n}\n","/**\n * Helper Class\n * Used for dynamic templates manipulation\n * */\n\nexport class HtmlTemplatesHelper {\n\n static setDescribedBy(errorMessage, config) {\n if (!errorMessage) {\n return config.hint ? `${config.id}-hint` : null;\n } else if (errorMessage && errorMessage.isInvalid) {\n return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;\n } else {\n return config.hint ? `${config.id}-hint` : null;\n }\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {HtmlTemplatesHelper} from '../util/helpers/html-templates.helper';\n/*\n* Gov Uk Fieldset Component\n* Used to wrap group fieldset elements\n* it can conditionally display h1 tag\n* @param config\n* @param isHeading\n* @param errorMessage - used for aria tag\n* */\n@Component({\n selector: 'mv-gov-uk-fieldset',\n template: `\n <fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!isHeading\">\n {{config.legend}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"isHeading\">\n <h1>{{config.legend}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint}}\n </span>\n <ng-content></ng-content>\n </fieldset>\n `\n})\nexport class GovUkFieldsetComponent {\n @Input() config: {legend: string; classes: string, id: string, hint: string, key: string};\n @Input() isHeading: boolean;\n @Input() errorMessage: string[];\n\n setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input} from '@angular/core';\n\n/*\n* Gov UK Label component\n* Responsible for displaying label tag\n* @prop isPageHading - boolean to display h1\n* @prop config - obj with properties\n* */\n@Component({\n selector: 'mv-gov-label',\n template: `<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </h1>\n <ng-template #noHeading>\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </ng-template>\n `\n})\nexport class GovUkLabelComponent {\n constructor () { }\n @Input() config: { label: string, name: string; id: string, isPageHeading, classes: string };\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {GovUkDateComponent} from './gov-uk-date/gov-uk-date.component';\nimport {GovUkErrorMessageComponent} from './gov-uk-error-message/gov-uk-error-message.component';\nimport {GovUkFieldsetComponent} from './gov-uk-fieldset/gov-uk-fieldset.component';\nimport {GovUkLabelComponent} from './gov-uk-label/gov-uk-label.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n RouterModule\n ],\n declarations: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n\n ],\n exports: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n ]\n})\nexport class SharedModule {}\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport { generateBookmarkNodes } from '../bookmarks-store-utils';\nimport * as fromDocument from './document.selectors';\n\nexport const getBookmarkState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.bookmarks\n);\n\nexport const getBookmarkPages = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkPageEnt\n);\n\nexport const getBookmarkEntities = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkEnts\n);\n\nexport const getBookmarkNodes = createSelector(\n getBookmarkEntities,\n (entities) => generateBookmarkNodes(entities)\n);\n\nexport const getEditableBookmark = createSelector(\n getBookmarkState,\n fromBookmarks.getEditBookmark\n);\n\nexport const getBookmarkInfo = createSelector(\n getBookmarkNodes,\n fromDocument.getDocumentId,\n fromDocument.getPdfPosition,\n fromDocument.getPages,\n (bookmarkNodes, docId, pdfPosition, pages) => {\n return {\n pageNumber: pdfPosition.pageNumber - 1,\n xCoordinate: pdfPosition.left,\n yCoordinate: pages[pdfPosition.pageNumber].styles.height - (pdfPosition.top * pages[pdfPosition.pageNumber].viewportScale),\n previous: bookmarkNodes.length > 0 ? bookmarkNodes[bookmarkNodes.length - 1].id : undefined,\n documentId: docId\n };\n }\n);\n\nexport const getBookmarksPerPage = createSelector(\n fromDocument.getPages,\n getBookmarkPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n const pageIdx = Number(key) - 1; // -1 as the thisPages array is 0 indexed\n const thisPage = pageEnt[pageIdx];\n arr.push({\n bookmark: thisPage ? thisPage : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\n\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromDocument from '../../../store/selectors/document.selectors';\nimport * as fromSelectors from '../../../store/selectors/annotation.selectors';\nimport { HighlightCreateService } from '../annotation-create/highlight-create/highlight-create.service';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\nimport { CreateBookmark } from '../../../store/actions/bookmark.actions';\nimport * as fromBookmarks from '../../../store/selectors/bookmark.selectors';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Highlight, ViewerEventService } from '../../../viewers/viewer-event.service';\n\n@Component({\n selector: 'mv-metadata-layer',\n templateUrl: './metadata-layer.component.html'\n})\nexport class MetadataLayerComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n pages: any[] = []; // todo add type\n annoPages$: Observable<any>; // todo add type\n\n drawMode = false;\n highlightPage: number;\n rectangles: Rectangle[];\n\n private $subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly highlightService: HighlightCreateService,\n private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService) {}\n\n ngOnInit(): void {\n this.$subscriptions = this.store.pipe(select(fromDocument.getPages))\n .subscribe(pages => this.pages = Object.values(pages));\n this.annoPages$ = this.store.pipe(select(fromSelectors.getPageEntities));\n\n this.$subscriptions\n .add(this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode))\n .add(this.viewerEvents.textHighlight.subscribe(highlight => this.showContextToolbar(highlight)))\n .add(this.viewerEvents.ctxToolbarCleared.subscribe(() => this.clearContextToolbar()));\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n showContextToolbar(highlight: Highlight) {\n this.highlightPage = highlight.page;\n this.rectangles = highlight.rectangles;\n if (this.rectangles) {\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n }\n\n clearContextToolbar() {\n this.rectangles = undefined;\n }\n\n createHighlight() {\n this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n }\n\n createBookmark(rectangle: Rectangle) {\n this.store.pipe(select(fromBookmarks.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n const selection = window.getSelection().toString();\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo,\n name: selection.length > 0 ? selection.substr(0, 30) : 'new bookmark',\n id: uuid(),\n pageNumber: this.highlightPage - 1,\n xCoordinate: rectangle.x,\n yCoordinate: rectangle.y\n } as any));\n this.toolbarEvents.toggleSideBar(true);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n\n });\n }\n\n saveAnnotation({ rectangles, page }: { rectangles: Rectangle[], page: any}) {\n this.highlightService.saveAnnotation(rectangles, page);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { RouterModule } from '@angular/router';\n\nimport { MutableDivModule } from 'mutable-div';\nimport { TagInputModule } from 'ngx-chips';\nimport {NgxDatatableModule} from '@swimlane/ngx-datatable';\n\nimport { AnnotationApiService } from './services/annotation-api/annotation-api.service';\nimport { AnnotationViewComponent } from './annotation-set/annotation-view/annotation-view.component';\nimport { AnnotationSetComponent } from './annotation-set/annotation-set.component';\nimport { RectangleComponent } from './annotation-set/annotation-view/rectangle/rectangle.component';\nimport { CommentComponent } from './comment-set/comment/comment.component';\nimport { CtxToolbarComponent } from './annotation-set/ctx-toolbar/ctx-toolbar.component';\nimport { CommentSetComponent } from './comment-set/comment-set.component';\nimport { TextareaAutoExpandDirective } from './comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';\nimport { CommentsSummaryComponent } from './comments-summary/comments-summary.component';\nimport { CommentSetRenderService } from './comment-set/comment-set-render.service';\nimport { BoxHighlightCreateComponent } from './annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';\nimport { HighlightCreateService } from './annotation-set/annotation-create/highlight-create/highlight-create.service';\nimport { CommentSetHeaderComponent } from './comment-set/comment-set-header/comment-set-header.component';\nimport { CommentSearchComponent } from './comment-set/comment-set-header/comment-search/comment-search.component';\nimport { TextHighlightDirective } from './comment-set/comment/text-highlight/text-highlight.directive';\nimport { TagsComponent } from './tags/tags.component';\nimport { TagsServices } from './services/tags/tags.services';\nimport { CommentsNavigateComponent } from './comment-set/comment-navigate/comments-navigate.component';\nimport {CommentFilterComponent} from './comment-set/comment-set-header/comment-filter/comment-filter.component';\nimport {MomentDatePipe} from './pipes/date/date.pipe';\nimport { BookmarksApiService } from './services/bookmarks-api/bookmarks-api.service';\nimport {FilterPipe} from './pipes/filter/filter.pipe';\nimport {UnsnakePipe} from './pipes/unsnake/unsnake.pipe';\nimport {SharedModule} from '../shared/shared.module';\nimport { MetadataLayerComponent } from './annotation-set/metadata-layer/metadata-layer.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n HttpClientModule,\n MutableDivModule,\n TagInputModule,\n RouterModule,\n ReactiveFormsModule,\n NgxDatatableModule,\n SharedModule\n ],\n declarations: [\n MetadataLayerComponent,\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n RectangleComponent,\n CommentComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n TextHighlightDirective,\n CtxToolbarComponent,\n CommentSetComponent,\n CommentsNavigateComponent,\n TextareaAutoExpandDirective,\n CommentsSummaryComponent,\n TagsComponent,\n MomentDatePipe,\n CommentFilterComponent,\n FilterPipe,\n UnsnakePipe\n ],\n entryComponents: [\n AnnotationViewComponent,\n AnnotationSetComponent,\n CommentSetComponent\n ],\n providers: [\n AnnotationApiService,\n BookmarksApiService,\n CommentSetRenderService,\n HighlightCreateService,\n TagsServices\n ],\n exports: [\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n CommentSetComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n CommentsSummaryComponent,\n TagsComponent,\n CommentFilterComponent,\n MomentDatePipe,\n FilterPipe,\n UnsnakePipe,\n MetadataLayerComponent\n ]\n})\nexport class AnnotationsModule { }\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n\n@Directive({\n selector: '[mvGrabNDrag]'\n})\nexport class GrabNDragDirective {\n\n originalPosition: { left: number; top: number };\n private pointerDown = false;\n\n @Input() dragEnabled = false;\n @Input() dragX: Element;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('pointerdown', ['$event'])\n onPointerDown(event: PointerEvent) {\n if (this.dragEnabled) {\n event.preventDefault();\n this.pointerDown = true;\n this.originalPosition = {\n left: event.clientX + this.el.nativeElement.scrollLeft,\n top: event.clientY + this.el.nativeElement.scrollTop,\n };\n }\n }\n\n @HostListener('window:pointermove', ['$event'])\n onPointerMove(event: PointerEvent) {\n if (this.pointerDown && this.dragEnabled) {\n event.preventDefault();\n const scrollDiff = {\n left: this.originalPosition.left - (event.clientX + this.el.nativeElement.scrollLeft),\n top: this.originalPosition.top - (event.clientY + this.el.nativeElement.scrollTop)\n };\n if (this.dragEnabled) {\n this.dragX.scrollLeft += scrollDiff.left;\n this.el.nativeElement.scrollTop += scrollDiff.top;\n }\n }\n }\n\n @HostListener('window:pointerup') onWindowPointerUp() {\n this.pointerDown = false;\n }\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Outline } from './outline-item/outline.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport * as bookmarksSelectors from '../../../store/selectors/bookmark.selectors';\nimport { BookmarkNode } from '../../../store/models/bookmarks.interface';\nimport { CreateBookmark, LoadBookmarks } from '../../../store/actions/bookmark.actions';\nimport { take } from 'rxjs/operators';\nimport uuid from 'uuid';\nimport { ViewerEventService } from '../../viewer-event.service';\nimport { BookmarksState } from '../../../store/reducers/bookmarks.reducer';\n\n@Component({\n selector: 'mv-side-bar',\n templateUrl: './side-bar.component.html'\n})\nexport class SideBarComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() annotationsEnabled: boolean;\n @Input() outline: Outline;\n @Input() url: string;\n @Input() zoom: number;\n @Input() rotate: number;\n\n selectedView = 'outline';\n bookmarkNodes$: Observable<BookmarkNode[]>;\n\n $subscription: Subscription;\n\n constructor(private viewerEvents: ViewerEventService,\n private store: Store<BookmarksState>\n ) {}\n\n ngOnInit(): void {\n this.bookmarkNodes$ = this.store.pipe(select(bookmarksSelectors.getBookmarkNodes));\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editable => this.selectedView = editable ? 'bookmarks' : this.selectedView);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.url && this.url) {\n this.store.dispatch(new LoadBookmarks());\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n goToDestination(destination: any[]) {\n this.viewerEvents.goToDestination(destination);\n }\n\n toggleSidebarView(sidebarView: string) {\n this.selectedView = sidebarView;\n }\n\n onAddBookmarkClick() {\n this.toggleSidebarView('bookmarks');\n this.store.pipe(select(bookmarksSelectors.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo, name: 'new bookmark', id: uuid()\n } as any));\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Outline } from './outline.model';\n\n@Component({\n selector: 'mv-outline-item',\n templateUrl: './outline-item.component.html'\n})\nexport class OutlineItemComponent implements OnInit {\n\n @Input() outline: Outline;\n @Output() navigationEvent = new EventEmitter();\n\n showOutlineItems: boolean;\n\n ngOnInit() {\n this.showOutlineItems = true;\n }\n\n goToDestination(destination: any) {\n if (destination) {\n this.navigationEvent.emit(destination);\n }\n }\n\n toggleOutline() {\n this.showOutlineItems = !this.showOutlineItems;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport {filter, take} from 'rxjs/operators';\n\nimport { Rectangle } from '../../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromRedaSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromDocument from '../../store/selectors/document.selectors';\nimport * as fromActions from '../../store/actions/redaction.actions';\nimport * as fromRedactionActions from '../../store/actions/redaction.actions';\nimport * as fromRedaActions from '../../store/actions/redaction.actions';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\nimport { ViewerEventService } from '../../viewers/viewer-event.service';\nimport { Redaction } from '../services/redaction.model';\n\n@Component({\n selector: 'mv-redactions',\n templateUrl: './redaction.component.html'\n})\nexport class RedactionComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n redactionsPerPage$: Observable<any>; // todo add type\n selectedRedaction$: Observable<SelectionAnnotation | {}>;\n rectangles: Rectangle[];\n drawMode: boolean;\n documentId: string;\n\n private $subscription: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n private readonly viewerEvents: ViewerEventService,\n private toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n this.redactionsPerPage$ = this.store.pipe(select(fromSelectors.getRedactionsPerPage));\n this.selectedRedaction$ = this.store.pipe(select(fromSelectors.getSelected));\n this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);\n this.$subscription.add(this.store.pipe(select(fromSelectors.getRedactedDocumentInfo), filter(value => !!value))\n .subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));\n this.$subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));\n this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));\n this.toolbarEvents.applyRedactToDocument.subscribe(() => {\n this.store.pipe(select(fromRedaSelectors.getRedactionArray), take(1)).subscribe(redactions => {\n this.store.dispatch(new fromRedaActions.Redact(redactions));\n });\n });\n this.toolbarEvents.clearAllRedactMarkers.subscribe(() => {\n this.store.dispatch(new fromRedaActions.UnmarkAll(this.documentId));\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n markTextRedaction(highlight) {\n const redactionHighlight = highlight.rectangles;\n if (redactionHighlight && redactionHighlight.length) {\n this.saveRedaction(highlight.page, [...redactionHighlight]);\n }\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n\n markBoxRedaction({ rectangles, page }) {\n this.saveRedaction(page, rectangles);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n\n saveRedaction(page: number, rectangles: Rectangle[]) {\n const redaction = { page, rectangles, redactionId: uuid(), documentId: this.documentId };\n this.store.dispatch(new fromRedactionActions.SaveRedaction(redaction));\n }\n\n onMarkerDelete(event) {\n this.store.dispatch(new fromActions.DeleteRedaction(event));\n }\n\n selectRedaction(event) {\n this.store.dispatch(new fromActions.SelectRedaction(event));\n }\n\n onMarkerUpdate(redaction: Redaction) {\n this.store.dispatch(new fromActions.SaveRedaction(redaction));\n }\n\n downloadDocument({ blob, filename }) {\n if (navigator && navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = filename;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n }\n this.store.dispatch(new fromRedactionActions.ResetRedactedDocument());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpSessionApiService {\n\n public ICP_SESSION_API = '/icp/sessions';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public loadSession(caseId: string): Observable<any> {\n return this.httpClient\n .get<{username: string, session: IcpSession}>(`${this.ICP_SESSION_API}/${caseId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport socketio from 'socket.io-client/dist/socket.io.js';\n\n@Injectable()\nexport class SocketService implements OnDestroy {\n\n private socket: any;\n subscription: Subscription;\n\n connected$ = new BehaviorSubject<boolean>(false);\n\n constructor() {}\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n connect() {\n this.socket = this.getSocketClient();\n this.socket.on('connect', () => this.connected$.next(true));\n this.socket.on('disconnect', () => this.connected$.next(false));\n }\n\n join(session) {\n this.subscription = this.connected$.subscribe(connected => {\n if (connected) {\n this.socket.emit('join', session);\n }\n });\n }\n\n leave(session) {\n this.socket.emit('leave', session);\n this.subscription.unsubscribe();\n }\n\n emit(event: string, data: any) {\n this.socket.emit(event, data);\n }\n\n listen(event: string): Observable<any> {\n return new Observable( observer => {\n this.socket.on(event, data => {\n observer.next(data);\n });\n return () => this.socket.off(event);\n });\n }\n\n getSocketClient() {\n return socketio('/', {\n path: '/icp/socket.io', agent: true\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SocketService } from './socket.service';\nimport { IcpParticipant, IcpScreenUpdate, IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpUpdateService {\n\n SESSION_JOINED = '[Icp] Client Joined Session';\n CLIENT_DISCONNECTED = '[Icp] Client Disconnected From Session';\n NEW_PARTICIPANT_JOINED = '[Icp] New Participant Joined Session';\n REMOVE_PARTICIPANT = '[Icp] Remove Participant from List';\n PARTICIPANTS_UPDATED = '[Icp] Participants List Updated';\n UPDATE_PRESENTER = '[Icp] New Presenter Starts Presenting';\n PRESENTER_UPDATED = '[Icp] Presenter Updated';\n UPDATE_SCREEN = '[Icp] Update Screen';\n SCREEN_UPDATED = '[Icp] Screen Updated';\n\n session: IcpSession;\n\n constructor(private socket: SocketService) {}\n\n joinSession(username: string, session: IcpSession) {\n this.session = session;\n this.socket.connect();\n this.socket.join({...this.session, username});\n return this.socket.listen(this.SESSION_JOINED);\n }\n\n leaveSession() {\n this.socket.leave(this.session);\n }\n\n newParticipantJoined() {\n return this.socket.listen(this.NEW_PARTICIPANT_JOINED);\n }\n\n clientDisconnected() {\n return this.socket.listen(this.CLIENT_DISCONNECTED);\n }\n\n removeParticipant(participantId) {\n this.socket.emit(this.REMOVE_PARTICIPANT, {\n participantId: participantId, caseId: this.session.caseId\n });\n }\n\n participantListUpdated() {\n return this.socket.listen(this.PARTICIPANTS_UPDATED);\n }\n\n updatePresenter(presenter: IcpParticipant) {\n this.socket.emit(this.UPDATE_PRESENTER, {\n ...this.session, presenterId: presenter.id, presenterName: presenter.username\n });\n }\n\n presenterUpdated() {\n return this.socket.listen(this.PRESENTER_UPDATED);\n }\n\n updateScreen(screen: IcpScreenUpdate) {\n const update = { body: screen, sessionId: this.session.sessionId };\n this.socket.emit(this.UPDATE_SCREEN, update);\n }\n\n screenUpdated() {\n return this.socket.listen(this.SCREEN_UPDATED);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpState, IcpScreenUpdate, IcpSession, IcpParticipant } from './icp.interfaces';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { PdfPosition } from '../store/reducers/document.reducer';\n\n@Injectable()\nexport class IcpPresenterService {\n\n session: IcpSession;\n presenter: IcpParticipant;\n pdfPosition: PdfPosition;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n update(isPresenter: boolean) {\n if (isPresenter) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.store.pipe(select(fromDocSelectors.getPdfPosition)).subscribe(pdfPosition => {\n this.pdfPosition = pdfPosition;\n this.onPositionUpdate(pdfPosition);\n });\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => {\n this.presenter = presenter;\n }));\n this.$subscription.add(this.socketService.newParticipantJoined().subscribe(() => this.onNewParticipantJoined()));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n onPositionUpdate(pdfPosition: PdfPosition) {\n const screen: IcpScreenUpdate = { pdfPosition, document: undefined };\n this.socketService.updateScreen(screen);\n }\n\n onNewParticipantJoined() {\n this.onPositionUpdate(this.pdfPosition);\n this.socketService.updatePresenter(this.presenter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { take } from 'rxjs/operators';\nimport { IcpState, IcpSession } from './icp.interfaces';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\n\n@Injectable()\nexport class IcpFollowerService {\n\n session: IcpSession;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n\n update(isFollower: boolean) {\n if (isFollower) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.socketService.screenUpdated()\n .subscribe(screen => this.followScreenUpdate(screen));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n followScreenUpdate({ pdfPosition }) {\n if (pdfPosition) {\n this.viewerEvents.goToDestination([\n pdfPosition.pageNumber - 1,\n { 'name': 'XYZ' },\n pdfPosition.left,\n pdfPosition.top\n ]);\n }\n this.store.pipe(select(fromDocSelectors.getPdfPosition), take(1))\n .subscribe(position => {\n const rotationDelta = (pdfPosition.rotation - position.rotation) % 360;\n if (rotationDelta !== 0) {\n this.toolbarEvents.rotate(rotationDelta);\n }\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { IcpParticipant, IcpState } from './icp.interfaces';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpPresenterService } from './icp-presenter.service';\nimport { IcpFollowerService } from './icp-follower.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpActions from '../store/actions/icp.actions';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { filter, take } from 'rxjs/operators';\n\n@Injectable()\nexport class IcpService implements OnDestroy {\n\n caseId: string;\n client: IcpParticipant;\n presenter: IcpParticipant;\n isPresenter: boolean;\n\n subscription: Subscription;\n sessionSubscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private readonly presenterSubscriptions: IcpPresenterService,\n private readonly followerSubscriptions: IcpFollowerService,\n private store: Store<IcpState>) {\n this.subscription = this.store.pipe(select(fromIcpSelectors.getCaseId), filter(value => !!value)).subscribe(caseId => {\n this.caseId = caseId;\n });\n this.subscription.add(this.toolbarEvents.icp.sessionLaunch.subscribe(() => {\n if (this.caseId) { this.launchSession(); }\n }));\n }\n\n ngOnDestroy() {\n this.unsubscribeSession();\n this.subscription.unsubscribe();\n }\n\n launchSession() {\n this.store.dispatch(new fromIcpActions.LoadIcpSession(this.caseId));\n this.subscription.add(this.store.pipe(select(fromIcpSelectors.getIcpSession),\n filter(value => !!value && Object.keys(value).length > 1 ),\n take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));\n }\n\n setUpSessionSubscriptions() {\n this.sessionSubscription = this.toolbarEvents.icp.becomingPresenter.subscribe(() => this.becomePresenter());\n this.sessionSubscription.add(this.toolbarEvents.icp.stoppingPresenting.subscribe(() => this.stopPresenting()));\n this.sessionSubscription.add(this.toolbarEvents.icp.sessionExitConfirmed.subscribe(() => this.leavePresentation()));\n this.sessionSubscription.add(\n this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => this.presenter = presenter )\n );\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.getClient)).subscribe(client => this.client = client));\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.isPresenter)).subscribe(isPresenter => {\n this.isPresenter = isPresenter;\n this.presenterSubscriptions.update(isPresenter);\n this.followerSubscriptions.update(!isPresenter);\n }));\n this.sessionSubscription.add(this.socketService.clientDisconnected().subscribe(cli => this.clientDisconnected(cli)));\n this.sessionSubscription.add(this.socketService.presenterUpdated().subscribe(pres => {\n this.store.dispatch(new fromIcpActions.IcpPresenterUpdated(pres));\n }));\n this.sessionSubscription.add(this.socketService.participantListUpdated().subscribe(participants => {\n this.store.dispatch(new fromIcpActions.IcpParticipantListUpdated(participants));\n }));\n }\n\n unsubscribeSession() {\n this.presenterSubscriptions.update(false);\n this.followerSubscriptions.update(false);\n this.sessionSubscription.unsubscribe();\n }\n\n leavePresentation() {\n if (this.isPresenter) {\n this.stopPresenting();\n }\n this.removeParticipant(this.client.id);\n this.socketService.leaveSession();\n this.store.dispatch(new fromIcpActions.LeaveIcpSocketSession());\n this.unsubscribeSession();\n }\n\n stopPresenting() {\n const presenter: IcpParticipant = {username: '', id: ''};\n this.socketService.updatePresenter(presenter);\n }\n\n becomePresenter() {\n this.socketService.updatePresenter(this.client);\n }\n\n clientDisconnected(client) {\n if (client === this.presenter.id) {\n this.stopPresenting();\n }\n this.removeParticipant(client);\n }\n\n removeParticipant(participantId) {\n this.socketService.removeParticipant(participantId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport {catchError, exhaustMap, map, switchMap} from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport {AnnotationApiService} from '../../annotations/services/annotation-api/annotation-api.service';\nimport * as annotationsActions from '../actions/annotation.actions';\n\n@Injectable()\nexport class AnnotationEffects {\n constructor(\n private actions$: Actions,\n private annotationApiService: AnnotationApiService,\n ) { }\n\n @Effect()\n loadAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.LOAD_ANNOTATION_SET),\n map((action: annotationsActions.LoadAnnotationSet) => action.payload),\n switchMap((documentId) => {\n return this.annotationApiService.getAnnotationSet(documentId).pipe(\n map(res => {\n return new annotationsActions.LoadAnnotationSetSucess(res);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n postAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.SAVE_ANNOTATION),\n map((action: annotationsActions.SaveAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.postAnnotation(annotation).pipe(\n map(annotations => {\n return new annotationsActions.SaveAnnotationSuccess(annotations);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n deleteAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.DELETE_ANNOTATION),\n map((action: annotationsActions.DeleteAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.deleteAnnotation(annotation).pipe(\n map(result => {\n return new annotationsActions.DeleteAnnotationSuccess(annotation);\n }),\n catchError(error => {\n return of(new annotationsActions.DeleteAnnotationFail(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { BookmarksApiService } from '../../annotations/services/bookmarks-api/bookmarks-api.service';\nimport * as bookmarksActions from '../actions/bookmark.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocument from '../selectors/document.selectors';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport * as fromStore from '../reducers/reducers';\n\n@Injectable()\nexport class BookmarksEffects {\n\n constructor(private actions$: Actions,\n private store: Store<fromStore.AnnotationSetState|fromBookmarks.BookmarksState>,\n private bookmarksApiService: BookmarksApiService) {}\n\n @Effect()\n loadBookmarks$ = this.actions$.pipe(\n ofType(bookmarksActions.LOAD_BOOKMARKS),\n withLatestFrom(this.store.pipe(select(fromDocument.getDocumentId))),\n map(([, documentId]) => documentId),\n exhaustMap((documentId) =>\n this.bookmarksApiService.getBookmarks(documentId)\n .pipe(\n map(res => new bookmarksActions.LoadBookmarksSuccess(res)),\n catchError(err => of(new bookmarksActions.LoadBookmarksFailure(err)))\n )\n ));\n\n @Effect()\n createBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.CREATE_BOOKMARK),\n map((action: bookmarksActions.CreateBookmark) => action.payload),\n exhaustMap((bookmark) =>\n this.bookmarksApiService.createBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.CreateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.CreateBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n moveBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.MOVE_BOOKMARK),\n map((action: bookmarksActions.MoveBookmark) => action.payload),\n exhaustMap((bookmarks) =>\n this.bookmarksApiService.updateMultipleBookmarks(bookmarks)\n .pipe(\n map(bmrks => new bookmarksActions.MoveBookmarkSuccess(bmrks)),\n catchError(error => of(new bookmarksActions.MoveBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n deleteBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.DELETE_BOOKMARK),\n map((action: bookmarksActions.DeleteBookmark) => action.payload),\n exhaustMap(({ deleted, updated }) =>\n this.bookmarksApiService.deleteMultipleBookmarks({ deleted, updated })\n .pipe(\n switchMap(() => {\n if (updated) {\n return [\n new bookmarksActions.DeleteBookmarkSuccess(deleted),\n new bookmarksActions.UpdateBookmarkSuccess(updated)\n ];\n } else {\n return [new bookmarksActions.DeleteBookmarkSuccess(deleted)];\n }\n }),\n catchError(error => of(new bookmarksActions.DeleteBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n updateBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.UPDATE_BOOKMARK),\n map((action: bookmarksActions.UpdateBookmark) => action.payload),\n switchMap((bookmark) =>\n this.bookmarksApiService.updateBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.UpdateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.UpdateBookmarkFailure(error)))\n )\n ));\n}\n","import {Observable} from 'rxjs';\nimport {HttpClient, HttpResponse} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {catchError, map} from 'rxjs/operators';\nimport { Redaction } from './redaction.model';\n\n@Injectable()\nexport class RedactionApiService {\n\n private markupsApiUrl = '/api/markups';\n private redactApiUrl = '/api/redaction';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRedactions(documentId: string): Observable<HttpResponse<Redaction[]>> {\n const fixedUrl = `${this.markupsApiUrl}/${documentId}`;\n return this.httpClient\n .get<Redaction[]>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRedaction(body): Observable<Redaction> {\n return this.httpClient\n .post<Redaction>(this.markupsApiUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public deleteRedaction(payload): Observable<null> {\n const url = `${this.markupsApiUrl}/${payload.documentId}/${payload.redactionId}`;\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteAllMarkers(documentId): Observable<null> {\n const url = `${this.markupsApiUrl}/${documentId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public redact(payload): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(this.redactApiUrl, payload, { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { RedactionApiService } from '../../redaction/services/redaction-api.service';\nimport * as redactionActions from '../actions/redaction.actions';\nimport { HttpResponse } from '@angular/common/http';\n\n@Injectable()\nexport class RedactionEffects {\n constructor(\n private actions$: Actions,\n private redactionApiService: RedactionApiService,\n ) { }\n\n @Effect()\n loadRedactions$ = this.actions$.pipe(\n ofType(redactionActions.LOAD_REDACTIONS),\n map((action: redactionActions.LoadRedactions) => action.payload),\n switchMap((documentId) => {\n return this.redactionApiService.getRedactions(documentId).pipe(\n map(resp => {\n return new redactionActions.LoadRedactionSuccess(resp.body);\n }),\n catchError(error => {\n return of(new redactionActions.LoadRedactionFailure(error));\n }));\n }));\n\n @Effect()\n saveRedaction$ = this.actions$.pipe(\n ofType(redactionActions.SAVE_REDACTION),\n map((action: redactionActions.SaveRedaction) => action.payload),\n exhaustMap((redaction) => {\n return this.redactionApiService.saveRedaction(redaction).pipe(\n map(resp => {\n return new redactionActions.SaveRedactionSuccess(resp);\n }),\n catchError(error => {\n return of(new redactionActions.SaveRedactionFailure(error));\n }));\n }));\n\n @Effect()\n deleteRedaction$ = this.actions$.pipe(\n ofType(redactionActions.DELETE_REDACTION),\n map((action: redactionActions.DeleteRedaction) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.deleteRedaction(redactionPayload).pipe(\n map(() => {\n return new redactionActions.DeleteRedactionSuccess(redactionPayload);\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n\n @Effect()\n redact$ = this.actions$.pipe(\n ofType(redactionActions.REDACT),\n map((action: redactionActions.Redact) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.redact(redactionPayload).pipe(\n map((result: HttpResponse<Blob>) => {\n const header = result.headers.get('content-disposition').split('filename=');\n const filename = header.length > 1 ? header[1].replace(/\"/g, '')\n : `redacted-document-${redactionPayload.documentId}`;\n return new redactionActions.RedactSuccess({ blob: result.body, filename });\n }),\n catchError(error => {\n return of(new redactionActions.RedactFailure(error));\n }));\n }));\n\n @Effect()\n unmarkAll$ = this.actions$.pipe(\n ofType(redactionActions.UNMARK_ALL),\n map((action: redactionActions.UnmarkAll) => action.payload),\n exhaustMap((documentId) => {\n return this.redactionApiService.deleteAllMarkers(documentId).pipe(\n map(result => {\n return new redactionActions.UnmarkAllSuccess();\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class DocumentConversionApiService {\n\n private documentConversionUrl = '/doc-assembly/convert';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public convert(documentId): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(`${this.documentConversionUrl}/${documentId}`, {},\n { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(error => of(error))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\n\n@Injectable()\nexport class RotationApiService {\n\n public rotationApiUrl = '/em-anno/metadata';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRotation(documentId: string): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/${documentId}`;\n return this.httpClient\n .get<Rotation>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRotation(payload: Rotation): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/`;\n return this.httpClient\n .post<any>(fixedUrl, payload, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Injectable } from '@angular/core';\nimport { HttpResponse } from '@angular/common/http';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { DocumentConversionApiService } from '../../viewers/convertible-content-viewer/document-conversion-api.service';\nimport { RotationApiService } from '../../viewers/rotation-persist/rotation-api.service';\nimport { of } from 'rxjs';\nimport * as documentActions from '../actions/document.actions';\n\n@Injectable()\nexport class DocumentEffects {\n constructor(\n private actions$: Actions,\n private documentConversionService: DocumentConversionApiService,\n private rotationApiService: RotationApiService,\n ) { }\n\n @Effect()\n convert$ = this.actions$.pipe(\n ofType(documentActions.CONVERT),\n map((action: documentActions.Convert) => action.payload),\n exhaustMap((documentId) => {\n return this.documentConversionService.convert(documentId).pipe(\n map((result: HttpResponse<Blob>) => {\n const url = URL.createObjectURL(result.body);\n return new documentActions.ConvertSuccess(url);\n }),\n catchError(error => {\n return of(new documentActions.ConvertFailure(error));\n }));\n }));\n\n @Effect()\n loadRotation$ = this.actions$.pipe(\n ofType(documentActions.LOAD_ROTATION),\n map((action: documentActions.LoadRotation) => action.payload),\n switchMap((documentId) => {\n return this.rotationApiService.getRotation(documentId).pipe(\n map(resp => {\n return new documentActions.LoadRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.LoadRotationFailure(error));\n }));\n }));\n\n @Effect()\n saveRotation$ = this.actions$.pipe(\n ofType(documentActions.SAVE_ROTATION),\n map((action: documentActions.SaveRotation) => action.payload),\n switchMap((payload) => {\n return this.rotationApiService.saveRotation(payload).pipe(\n map(resp => {\n return new documentActions.SaveRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.SaveRotationFailure(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { IcpSessionApiService } from '../../icp/icp-session-api.service';\nimport { IcpUpdateService } from '../../icp/icp-update.service';\nimport * as icpActions from '../actions/icp.actions' ;\nimport { IcpSession } from '../../icp/icp.interfaces';\n\n@Injectable()\nexport class IcpEffects {\n\n constructor(private actions$: Actions,\n private icpApiService: IcpSessionApiService,\n private icpUpdateService: IcpUpdateService) {}\n\n @Effect()\n loadIcpSession$ = this.actions$.pipe(\n ofType(icpActions.LOAD_ICP_SESSION),\n map((action: icpActions.LoadIcpSession) => action.payload),\n exhaustMap((caseId: string) =>\n this.icpApiService.loadSession(caseId)\n .pipe(\n map(res => new icpActions.JoinIcpSocketSession(res)),\n catchError(error => of(new icpActions.LoadIcpSessionFailure(error)))\n )\n ));\n\n\n @Effect()\n joinIcpSocketSession$ = this.actions$.pipe(\n ofType(icpActions.JOIN_ICP_SOCKET_SESSION),\n map((action: icpActions.JoinIcpSocketSession) => action.payload),\n switchMap((res: {username: string, session: IcpSession}) =>\n this.icpUpdateService.joinSession(res.username, res.session)\n .pipe(map(participants => new icpActions.IcpSocketSessionJoined({session: res.session, participantInfo: participants})))\n ));\n}\n","import { AnnotationEffects } from './annotation.effects';\nimport { BookmarksEffects } from './bookmarks.effects';\nimport { RedactionEffects } from './redaction.effects';\nimport { DocumentEffects } from './document.effects';\nimport { IcpEffects } from './icp.effects';\n\nexport const effects: any[] = [AnnotationEffects, BookmarksEffects, RedactionEffects, DocumentEffects, IcpEffects];\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { TreeNode } from 'angular-tree-component';\n\nimport { DeleteBookmark, MoveBookmark, UpdateBookmark } from '../../../../store/actions/bookmark.actions';\nimport { Bookmark, BookmarkNode } from '../../../../store/models/bookmarks.interface';\nimport * as bookmarksSelectors from '../../../../store/selectors/bookmark.selectors';\nimport { AnnotationSetState} from '../../../../store/reducers/annotations.reducer';\nimport { DocumentPages } from '../../../../store/reducers/document.reducer';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport * as fromBookmarks from '../../../../store/reducers/bookmarks.reducer';\nimport { getBookmarkChildren } from '../../../../store/bookmarks-store-utils';\n\n@Component({\n selector: 'mv-bookmarks',\n templateUrl: './bookmarks.component.html'\n})\nexport class BookmarksComponent implements OnInit, OnDestroy {\n\n @Input() bookmarkNodes: BookmarkNode[];\n @Input() zoom: number;\n @Input() rotate: number;\n @Output() goToDestination = new EventEmitter<any[]>();\n\n pageLookup: {[pageId: number]: DocumentPages } = {};\n editableBookmark: string;\n BOOKMARK_CHAR_LIMIT = 30;\n\n options = {\n allowDrag: true,\n allowDrop: true\n };\n\n $subscription: Subscription;\n\n constructor(private store: Store<fromBookmarks.BookmarksState|AnnotationSetState>) {}\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editableId => this.editableBookmark = editableId);\n this.$subscription.add(this.store.select(fromDocument.getPages)\n .subscribe(pages => {\n\n Object.keys(pages).map(key => {\n this.pageLookup[key] = pages[key];\n });\n\n }));\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n editBookmark(id) {\n this.editableBookmark = id;\n }\n\n onBookmarkMove({ node, from, to }: any) {\n let movedBookmarks = [{\n ...node,\n previous: to.index > 0 ? to.parent.children[to.index - 1].id : undefined,\n parent: to.parent.documentId ? to.parent.id : undefined\n }];\n let fromNext = this.getSibling(from, from.index);\n fromNext = fromNext && fromNext.id === node.previous ? this.getSibling(from, from.index + 1) : fromNext;\n if (fromNext) {\n movedBookmarks = [...movedBookmarks, { ...fromNext, previous: node.previous }];\n }\n const toNext = this.getSibling(to, to.index + 1);\n if (toNext) {\n movedBookmarks = [ ...movedBookmarks, { ...toNext, previous: node.id }];\n }\n this.store.dispatch(new MoveBookmark(movedBookmarks));\n }\n\n deleteBookmark(node: TreeNode) {\n let next: Bookmark;\n const siblings = node.parent.children;\n if (siblings.length > node.index + 1) {\n next = siblings[node.index + 1].data;\n next.previous = node.data.previous;\n }\n this.store.dispatch(new DeleteBookmark({\n deleted: [node.data.id, ...getBookmarkChildren(node.data.children)], updated: next\n }));\n }\n\n updateBookmark(bookmark: Bookmark, name) {\n const editedBookmark = {\n ... bookmark,\n name\n };\n this.store.dispatch(new UpdateBookmark(editedBookmark));\n this.editableBookmark = undefined;\n }\n\n goToBookmark(bookmark: Bookmark) {\n const thisPage = this.pageLookup[bookmark.pageNumber + 1];\n const defaultHeight = thisPage.styles.height;\n const defaultScaleY = this.scaledY(bookmark.yCoordinate, defaultHeight, thisPage);\n\n let top = 0, left = 0;\n switch (this.rotate) {\n case 90:\n left = - defaultScaleY;\n break;\n case 180:\n top = this.scaledY(bookmark.yCoordinate, (defaultHeight - (24 * this.zoom)), thisPage);\n break;\n case 270:\n left = defaultScaleY;\n break;\n default:\n top = defaultScaleY;\n }\n\n this.goToDestination.emit([\n bookmark.pageNumber,\n { 'name': 'XYZ' },\n left,\n top\n ]);\n }\n\n private getSibling(node, index) {\n return node.parent.children.length > index ? node.parent.children[index] : undefined;\n }\n\n private scaledY(yCoordinate: number, height: number, page: DocumentPages): number {\n const viewportScale = page.viewportScale / this.zoom;\n return ((height / this.zoom) - yCoordinate) / viewportScale;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/document.reducer';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { Subscription } from 'rxjs';\nimport * as fromSelectors from '../../store/selectors/document.selectors';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'mv-conversion-viewer',\n templateUrl: './convertible-content-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ConvertibleContentViewerComponent implements OnInit, OnDestroy {\n\n @Input() originalUrl;\n @Input() downloadFileName: string;\n\n @Input() height;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n private $subscription: Subscription;\n convertedUrl: string;\n\n constructor(private store: Store<fromStore.DocumentState>) {\n }\n\n ngOnInit(): void {\n this.store.dispatch(new fromDocumentActions.Convert(this.extractDMStoreDocId(this.originalUrl)));\n this.$subscription = this.store.pipe(select(fromSelectors.getConvertedDocument), filter(value => !!value))\n .subscribe((docInfo) => {\n if (docInfo.url) {\n this.convertedUrl = docInfo.url;\n this.store.dispatch(new fromDocumentActions.ClearConvertDocUrl());\n } else {\n this.onLoadException(new ViewerException(docInfo.error));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle.emit(title);\n }\n\n // todo move this to common place for media viewer and pdf\n private extractDMStoreDocId(url: string): string {\n\n if (url.includes('/documents/')) {\n url = url.split('/documents/')[1];\n } else if (url.includes('/documentsv2/')) {\n url = url.split('/documentsv2/')[1];\n }\n return url.replace('/binary', '');\n }\n}\n","import { Component } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\n\n@Component({\n selector: 'mv-confirm-action',\n templateUrl: './confirm-action-dialog.component.html',\n})\nexport class ConfirmActionDialogComponent {\n\n constructor(private toolbarEvents: ToolbarEventService) {}\n\n onCancel() {\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n\n onConfirm() {\n this.toolbarEvents.icp.confirmExit();\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n}\n","import {Bookmark, BookmarksPerPage} from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport {Component, Input, OnInit} from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/bookmark.selectors';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'mv-bookmark-icons',\n templateUrl: './bookmark-icons.component.html'\n})\nexport class BookmarkIconsComponent implements OnInit {\n\n @Input() zoom: number;\n @Input() rotate: number;\n bookmarksPerPage$: Observable<BookmarksPerPage[]>;\n bookmarks: Bookmark[];\n documentId: string;\n\n constructor(private store: Store<fromStore.State>) {}\n\n ngOnInit(): void {\n this.bookmarksPerPage$ = this.store.pipe(select(fromSelectors.getBookmarksPerPage));\n }\n\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocuments from '../../store/selectors/document.selectors';\nimport { filter, take } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\nimport { ResponseType } from '../viewer-exception.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Subscription } from 'rxjs';\n\n\n@Directive({\n selector: '[mvRotationPersist]'\n})\nexport class RotationPersistDirective implements OnInit, OnDestroy {\n\n documentId: string;\n rotation = 0;\n savedRotation = 0;\n\n $subscriptions: Subscription;\n\n constructor(private el: ElementRef,\n private store: Store<fromStore.DocumentState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private toolbarEvents: ToolbarEventService) {\n }\n\n ngOnInit() {\n this.$subscriptions = this.toolbarEvents.rotateSubject.subscribe(rotation => this.onRotate(rotation));\n this.$subscriptions\n .add(this.toolbarEvents.saveRotationSubject.subscribe(() => this.saveRotation()))\n .add(this.store.pipe(select(fromDocuments.getRotation))\n .subscribe(rotation => this.savedRotation = rotation))\n .add(this.store.pipe(select(fromDocuments.getDocumentId))\n .subscribe(documentId => this.documentId = documentId));\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n @HostListener('mediaLoadStatus', ['$event'])\n onMediaLoad(status: ResponseType) {\n this.rotation = 0;\n this.store.dispatch(new fromDocumentActions.LoadRotation(this.documentId));\n this.store.pipe(select(fromDocuments.rotationLoaded),\n filter(value => !!value),\n take(1))\n .subscribe(() => {\n if (this.savedRotation) {\n this.toolbarEvents.rotateSubject.next(this.savedRotation);\n }\n });\n }\n\n private onRotate(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.toolbarButtons.showSaveRotationButton = this.savedRotation !== this.rotation;\n }\n\n private saveRotation() {\n const payload: Rotation = {\n documentId: this.documentId,\n rotationAngle: this.rotation\n };\n this.store.dispatch(new fromDocumentActions.SaveRotation(payload));\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { IcpParticipant, IcpState } from '../icp.interfaces';\nimport { select, Store } from '@ngrx/store';\nimport * as fromSelectors from '../../store/selectors/icp.selectors';\n\n@Component({\n selector: 'mv-participants-list',\n templateUrl: './participants-list.component.html'\n})\nexport class ParticipantsListComponent implements OnInit, OnDestroy {\n\n subscription: Subscription;\n participants$: Observable<IcpParticipant[]>;\n presenter$: Observable<IcpParticipant>;\n isPresenter$: Observable<boolean>;\n\n showParticipantsList = false;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.participants$ = this.store.pipe(select(fromSelectors.getParticipants));\n this.presenter$ = this.store.pipe(select(fromSelectors.getPresenter));\n this.isPresenter$ = this.store.pipe(select(fromSelectors.isPresenter));\n\n this.subscription = this.toolbarEvents.icp.participantsListVisible.subscribe(isVisible => this.showParticipantsList = isVisible);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport uuid from 'uuid';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport { ViewerEventService } from '../../../../viewers/viewer-event.service';\nimport * as fromAnnotationActions from '../../../../store/actions/annotation.actions';\nimport { HighlightCreateService } from './highlight-create.service';\n\n@Directive({\n selector: '[mvCreateTextHighlight]'\n})\nexport class HighlightCreateDirective implements OnInit, OnDestroy {\n\n pageHeight: number;\n pageWidth: number;\n zoom: number;\n rotate: number;\n allPages: object;\n\n $subscription: Subscription;\n\n constructor(private element: ElementRef<HTMLElement>,\n private toolbarEvents: ToolbarEventService,\n private viewerEvents: ViewerEventService,\n private highlightService: HighlightCreateService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.select(fromDocument.getPages).subscribe(pages => {\n if (pages[1]) {\n this.allPages = pages;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n }\n }\n\n @HostListener('mouseup', ['$event'])\n onMouseUp(mouseEvent: MouseEvent) {\n const pageElement = (<HTMLElement>(mouseEvent.target as HTMLElement).offsetParent).offsetParent;\n const page = parseInt(pageElement.getAttribute('data-page-number'), 10);\n if (this.toolbarEvents.highlightModeSubject.getValue()) {\n const rectangles = this.getRectangles(mouseEvent, page);\n this.viewerEvents.textSelected({ page, rectangles });\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onPdfViewerClick(event: MouseEvent) {\n this.store.dispatch(new fromAnnotationActions.SelectedAnnotation({\n annotationId: '', selected: false, editable: false\n }));\n this.viewerEvents.clearCtxToolbar();\n }\n\n private getRectangles(event: MouseEvent, page) {\n this.pageHeight = this.allPages[page].styles.height;\n this.pageWidth = this.allPages[page].styles.width;\n this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);\n this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);\n const selection = window.getSelection();\n if (selection) {\n const localElement = <HTMLElement>event.target;\n\n this.removeEnhancedTextModeStyling(localElement);\n\n if (selection.rangeCount && !selection.isCollapsed) {\n const range = selection.getRangeAt(0).cloneRange();\n const clientRects = range.getClientRects();\n\n if (clientRects) {\n const parentRect = localElement.parentElement.getBoundingClientRect();\n const selectionRectangles: Rectangle[] = [];\n for (let i = 0; i < clientRects.length; i++) {\n const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);\n selectionRectangles.push(selectionRectangle);\n }\n return selectionRectangles;\n }\n }\n }\n }\n\n private createTextRectangle(rect: any, parentRect: any): Rectangle {\n const height = rect.bottom - rect.top;\n const width = rect.right - rect.left;\n const top = rect.top - parentRect.top;\n const left = rect.left - parentRect.left;\n\n let rectangle = this.highlightService.applyRotation(this.pageHeight, this.pageWidth, height, width, top, left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle };\n\n return rectangle as Rectangle;\n }\n\n private removeEnhancedTextModeStyling(element: HTMLElement) {\n if (element.parentElement.children) {\n for (let i = 0; i < element.parentElement.children.length; i++) {\n const child = <HTMLElement>element.parentElement.children[i];\n\n child.style.padding = '0';\n // regex will be targeting the translate style in string\n // e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)\n const translateCSSRegex = /translate[XYZ]\\(-?\\d*(\\.\\d+)?(px)?\\)/g;\n child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType } from '../viewer-exception.model';\n\n@Component({\n selector: 'mv-multimedia-player',\n templateUrl: './multimedia-player.component.html'\n})\nexport class MultimediaPlayerComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() multimediaOn: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n @ViewChild('videoPlayer', {static: false}) videoPlayer: ElementRef;\n\n playbackMsg = 'loading';\n\n private subscription: Subscription;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n ) {}\n\n public ngOnInit(): void {\n this.subscription = this.toolbarEvents.downloadSubject\n .subscribe(() => this.downloadLink.nativeElement.click());\n this.loadStatus.emit(ResponseType.SUCCESS);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.reloadVideo();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n reloadVideo() {\n if (this.videoPlayer) {\n this.playbackMsg = 'loading';\n this.videoPlayer.nativeElement.load();\n }\n }\n\n onSuccess() {\n this.playbackMsg = 'success';\n }\n\n onError() {\n this.playbackMsg = 'error';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';\nimport { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';\nimport { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';\nimport { MediaViewerComponent } from './media-viewer.component';\nimport { ToolbarModule } from './toolbar/toolbar.module';\nimport { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationsModule } from './annotations/annotations.module';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport { GrabNDragDirective } from './viewers/grab-n-drag.directive';\nimport { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';\nimport { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule} from '@ngrx/store';\nimport { RedactionComponent } from './redaction/components/redaction.component';\nimport { IcpSessionApiService } from './icp/icp-session-api.service';\nimport { IcpUpdateService } from './icp/icp-update.service';\nimport { IcpService } from './icp/icp.service';\nimport { SocketService } from './icp/socket.service';\nimport { reducers} from './store/reducers/reducers';\nimport { effects } from './store/effects/index';\nimport { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';\nimport { RedactionApiService } from './redaction/services/redaction-api.service';\nimport { MutableDivModule } from 'mutable-div';\nimport { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';\nimport { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';\nimport { IcpPresenterService } from './icp/icp-presenter.service';\nimport { IcpFollowerService } from './icp/icp-follower.service';\nimport { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';\nimport { TreeModule } from 'angular-tree-component';\nimport { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';\nimport { RotationApiService } from './viewers/rotation-persist/rotation-api.service';\nimport { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';\nimport { ParticipantsListComponent } from './icp/participants-list/participants-list.component';\nimport { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';\nimport {MultimediaPlayerComponent} from './viewers/multimedia-player/multimedia-player.component';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n ToolbarModule,\n AnnotationsModule,\n TagInputModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n StoreModule.forFeature('media-viewer', reducers),\n EffectsModule.forFeature(effects),\n TreeModule.forRoot(),\n MutableDivModule\n ],\n declarations: [\n PdfViewerComponent,\n SideBarComponent,\n BookmarksComponent,\n OutlineItemComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent,\n MultimediaPlayerComponent,\n MediaViewerComponent,\n ConvertibleContentViewerComponent,\n GrabNDragDirective,\n RotationPersistDirective,\n HighlightCreateDirective,\n ConfirmActionDialogComponent,\n RedactionComponent, // todo made put this into module\n BookmarkIconsComponent,\n ParticipantsListComponent\n ],\n entryComponents: [\n PdfViewerComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent\n ],\n providers: [\n PdfJsWrapperFactory,\n CommentService,\n RedactionApiService,\n IcpSessionApiService,\n IcpUpdateService,\n SocketService,\n IcpService,\n IcpPresenterService,\n IcpFollowerService,\n RedactionApiService,\n DocumentConversionApiService,\n RotationApiService,\n ],\n exports: [\n MediaViewerComponent\n ]\n})\nexport class MediaViewerModule { }\n"],"names":["pdfjsLib.GlobalWorkerOptions","pdfjsLib.getDocument","BehaviorSubject","Subject","Injectable","pdfjsViewer.PDFLinkService","pdfjsViewer.EventBus","pdfjsViewer.PDFFindController","pdfjsViewer.PDFViewer","pdfjsViewer.DownloadManager","fromActions.CONVERT_SUCCESS","fromActions.CONVERT_FAIL","fromActions.CLEAR_CONVERT_DOC_URL","fromActions.LOAD_ROTATION","fromActions.LOAD_ROTATION_SUCCESS","fromActions.LOAD_ROTATION_FAIL","fromActions.SAVE_ROTATION_SUCCESS","fromActions.SET_DOCUMENT_ID","fromActions.ADD_PAGES","fromActions.POSITION_UPDATED","fromAnnotations.LOAD_ANNOTATION_SET","fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS","fromAnnotations.LOAD_ANNOTATION_SET_FAIL","fromAnnotations.SAVE_ANNOTATION_SUCCESS","fromAnnotations.DELETE_ANNOTATION_SUCCESS","fromAnnotations.ADD_OR_EDIT_COMMENT","fromAnnotations.SELECT_ANNOTATION","fromAnnotations.SEARCH_COMMENT","fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER","fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER","fromTags.ADD_FILTER_TAGS","fromTags.CLEAR_FILTER_TAGS","fromBookmarks.LOAD_BOOKMARKS","fromBookmarks.LOAD_BOOKMARKS_SUCCESS","fromBookmarks.LOAD_BOOKMARKS_FAIL","fromBookmarks.CREATE_BOOKMARK_SUCCESS","fromBookmarks.MOVE_BOOKMARK_SUCCESS","fromBookmarks.DELETE_BOOKMARK_SUCCESS","fromBookmarks.UPDATE_BOOKMARK_SUCCESS","fromRedaction.LOAD_REDACTIONS","fromRedaction.LOAD_REDACTION_SUCCESS","fromRedaction.SAVE_REDACTION_SUCCESS","fromRedaction.SELECT_REDACTION","fromRedaction.DELETE_REDACTION_SUCCESS","fromRedaction.REDACT_SUCCESS","fromRedaction.RESET_REDACTED_DOCUMENT","fromRedaction.UNMARK_ALL_SUCCESS","fromIcpActions.SET_CASE_ID","fromIcpActions.ICP_SOCKET_SESSION_JOINED","fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED","fromIcpActions.ICP_PRESENTER_UPDATED","fromIcpActions.LEAVE_ICP_SOCKET_SESSION","fromDocument.docReducer","fromAnnotation.reducer","fromTags.tagsReducer","fromBookmarks.bookmarksReducer","fromRedaction.redactionReducer","fromIcp.icpReducer","createFeatureSelector","createSelector","fromFeature.getMVState","fromDocument.getDocPages","fromDocument.getDocId","fromDocument.getPdfPos","fromDocument.getHasDifferentPageSizes","getConvertedDocument","fromDocument.getConvertedDocument","getRotation","fromDocument.getRotation","rotationLoaded","fromDocument.rotationLoaded","EventEmitter","tap","fromTagActions.ClearFilterTags","throttleTime","asyncScheduler","filter","select","fromDocumentsSelector.getPageDifference","fromDocumentActions.AddPages","Component","ViewEncapsulation","Store","Output","Input","ViewChild","HttpClient","fromDocument.AddPages","map","catchError","fromTags.getTagNameEnt","fromTags.getFilters","fromTags.getFilteredComments","fromTags.getFilteredPageEnt","fromAnnotations.getAnnoEnt","fromAnnotations.getAnnoSet","fromAnnotations.getSelectedAnno","fromAnnotations.getCommentEnts","fromAnnotations.getAnnoPageEnt","fromAnnotations.commentSearchQ","fromAnnotations.getSummaryFilters","fromDocument.getPages","fromTags.getFilteredPageEntities","fromTags.getTagFiltered","fromAnnoSelectors.getAnnotationSet","fromDocumentActions.SetDocumentId","fromAnnoActions.LoadAnnotationSet","fromRedactActions.LoadRedactions","ElementRef","ChangeDetectorRef","ConnectionPositionPair","HostListener","fromRedactions.getPageEnt","fromRedactions.getSelectedRedaction","fromRedactions.getRedactedDocInfo","getRedactionEnt","fromRedactions.getRedactionEnt","fromDocument.getDocumentId","fromRedactSelectors.getRedactionArray","getIcpSession","fromIcp.getIcpSession","getPresenter","fromIcp.getPresenter","getClient","fromIcp.getClient","getParticipants","fromIcp.getParticipants","fromIcpSelectors.isPresenter","fromIcpSelectors.getPresenterName","NgModule","CommonModule","FormsModule","OverlayModule","RouterModule","uuid","fromActions.AddOrEditComment","fromSelectors.getSelectedAnnotation","fromActions.SaveAnnotation","fromActions.DeleteAnnotation","fromActions.SelectedAnnotation","fromSelectors.getDocumentIdSetId","take","fromSelector.getComponentSearchText","distinctUntilChanged","fromSelectors.getCommentsArray","fromSelectors.getAnnotationEntities","ViewChildren","Directive","FormGroup","FormControl","fromSelectors.getCommentSummary","fromSelectors.getCommentSummaryFilters","fromTagSelectors.getAllTagsArr","combineLatest","fromAnnoActions.ClearCommentSummaryFilters","fromAnnoActions.ApplyCommentSymmaryFilter","FormBuilder","fromTagSelectors.getTagFilters","fromAnnoSelector.getFilteredAnnotations","fromActions.SearchComment","fromSelectors.getTagFilters","auditTime","fromActions.AddFilterTags","fromSelectors.getAllTagsArr","fromActions.ClearFilterTags","Pipe","DatePipe","ReactiveFormsModule","fromBookmarks.getBookmarkPageEnt","fromBookmarks.getBookmarkEnts","fromBookmarks.getEditBookmark","fromDocument.getPdfPosition","fromSelectors.getPageEntities","fromBookmarks.getBookmarkInfo","A11yModule","HttpClientModule","MutableDivModule","TagInputModule","NgxDatatableModule","bookmarksSelectors.getBookmarkNodes","bookmarksSelectors.getEditableBookmark","bookmarksSelectors.getBookmarkInfo","fromSelectors.getRedactionsPerPage","fromSelectors.getSelected","fromSelectors.getRedactedDocumentInfo","fromRedaSelectors.getRedactionArray","fromRedaActions.Redact","fromRedaActions.UnmarkAll","fromRedactionActions.SaveRedaction","fromActions.DeleteRedaction","fromActions.SelectRedaction","fromActions.SaveRedaction","fromRedactionActions.ResetRedactedDocument","Observable","fromDocSelectors.getPdfPosition","fromIcpSelectors.getPresenter","store","fromIcpSelectors.getCaseId","fromIcpActions.LoadIcpSession","fromIcpSelectors.getIcpSession","fromIcpSelectors.getClient","fromIcpActions.IcpPresenterUpdated","fromIcpActions.IcpParticipantListUpdated","fromIcpActions.LeaveIcpSocketSession","ofType","annotationsActions.LOAD_ANNOTATION_SET","switchMap","annotationsActions.LoadAnnotationSetSucess","of","annotationsActions.LoadAnnotationSetFail","annotationsActions.SAVE_ANNOTATION","exhaustMap","annotationsActions.SaveAnnotationSuccess","annotationsActions.DELETE_ANNOTATION","annotationsActions.DeleteAnnotationSuccess","annotationsActions.DeleteAnnotationFail","Actions","Effect","bookmarksActions.LOAD_BOOKMARKS","withLatestFrom","bookmarksActions.LoadBookmarksSuccess","bookmarksActions.LoadBookmarksFailure","bookmarksActions.CREATE_BOOKMARK","bookmarksActions.CreateBookmarkSuccess","bookmarksActions.CreateBookmarkFailure","bookmarksActions.MOVE_BOOKMARK","bookmarksActions.MoveBookmarkSuccess","bookmarksActions.MoveBookmarkFailure","bookmarksActions.DELETE_BOOKMARK","bookmarksActions.DeleteBookmarkSuccess","bookmarksActions.UpdateBookmarkSuccess","bookmarksActions.DeleteBookmarkFailure","bookmarksActions.UPDATE_BOOKMARK","bookmarksActions.UpdateBookmarkFailure","redactionActions.LOAD_REDACTIONS","redactionActions.LoadRedactionSuccess","redactionActions.LoadRedactionFailure","redactionActions.SAVE_REDACTION","redactionActions.SaveRedactionSuccess","redactionActions.SaveRedactionFailure","redactionActions.DELETE_REDACTION","redactionActions.DeleteRedactionSuccess","redactionActions.DeleteRedactionFailure","redactionActions.REDACT","redactionActions.RedactSuccess","redactionActions.RedactFailure","redactionActions.UNMARK_ALL","redactionActions.UnmarkAllSuccess","documentActions.CONVERT","documentActions.ConvertSuccess","documentActions.ConvertFailure","documentActions.LOAD_ROTATION","documentActions.LoadRotationSuccess","documentActions.LoadRotationFailure","documentActions.SAVE_ROTATION","documentActions.SaveRotationSuccess","documentActions.SaveRotationFailure","icpActions.LOAD_ICP_SESSION","icpActions.JoinIcpSocketSession","icpActions.LoadIcpSessionFailure","icpActions.JOIN_ICP_SOCKET_SESSION","icpActions.IcpSocketSessionJoined","fromDocumentActions.Convert","fromSelectors.getConvertedDocument","fromDocumentActions.ClearConvertDocUrl","fromSelectors.getBookmarksPerPage","fromDocuments.getRotation","fromDocuments.getDocumentId","fromDocumentActions.LoadRotation","fromDocuments.rotationLoaded","fromDocumentActions.SaveRotation","fromSelectors.getParticipants","fromSelectors.getPresenter","fromSelectors.isPresenter","fromAnnotationActions.SelectedAnnotation","StoreModule","EffectsModule","TreeModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hmcts-media-viewer.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.ts","../../../projects/media-viewer/src/lib/toolbar/icp-event.service.ts","../../../projects/media-viewer/src/lib/toolbar/toolbar-event.service.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ts","../../../projects/media-viewer/src/lib/print.service.ts","../../../projects/media-viewer/src/lib/viewers/viewer-exception.model.ts","../../../projects/media-viewer/src/lib/toolbar/toolbar-button-visibility.service.ts","../../../projects/media-viewer/src/lib/store/actions/document.actions.ts","../../../projects/media-viewer/src/lib/store/actions/tag.actions.ts","../../../projects/media-viewer/src/lib/store/actions/icp.actions.ts","../../../projects/media-viewer/src/lib/store/reducers/document.reducer.ts","../../../projects/media-viewer/src/lib/store/actions/annotation.actions.ts","../../../projects/media-viewer/src/lib/store/store-utils.ts","../../../projects/media-viewer/src/lib/store/reducers/annotations.reducer.ts","../../../projects/media-viewer/src/lib/store/reducers/tags.reducer.ts","../../../projects/media-viewer/src/lib/store/actions/bookmark.actions.ts","../../../projects/media-viewer/src/lib/store/bookmarks-store-utils.ts","../../../projects/media-viewer/src/lib/store/reducers/bookmarks.reducer.ts","../../../projects/media-viewer/src/lib/store/actions/redaction.actions.ts","../../../projects/media-viewer/src/lib/store/reducers/redaction.reducer.ts","../../../projects/media-viewer/src/lib/store/reducers/icp.reducer.ts","../../../projects/media-viewer/src/lib/store/reducers/reducers.ts","../../../projects/media-viewer/src/lib/store/selectors/document.selectors.ts","../../../projects/media-viewer/src/lib/viewers/viewer-event.service.ts","../../../projects/media-viewer/src/lib/icp/icp.events.ts","../../../projects/media-viewer/src/lib/icp/socket.service.ts","../../../projects/media-viewer/src/lib/icp/icp-update.service.ts","../../../projects/media-viewer/src/lib/store/selectors/icp.selectors.ts","../../../projects/media-viewer/src/lib/icp/icp-presenter.service.ts","../../../projects/media-viewer/src/lib/icp/icp-follower.service.ts","../../../projects/media-viewer/src/lib/icp/icp.service.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/pdf-viewer.component.ts","../../../projects/media-viewer/src/lib/viewers/viewer-util.service.ts","../../../projects/media-viewer/src/lib/viewers/image-viewer/image-viewer.component.ts","../../../projects/media-viewer/src/lib/viewers/unsupported-viewer/unsupported-viewer.component.ts","../../../projects/media-viewer/src/lib/annotations/services/annotation-api/annotation-api.service.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/comment.service.ts","../../../projects/media-viewer/src/lib/store/selectors/tag.selectors.ts","../../../projects/media-viewer/src/lib/store/selectors/annotation.selectors.ts","../../../projects/media-viewer/src/lib/media-viewer.component.ts","../../../projects/media-viewer/src/lib/shared/util/services/number.helper.service.ts","../../../projects/media-viewer/src/lib/toolbar/main-toolbar/main-toolbar.component.ts","../../../projects/media-viewer/src/lib/toolbar/search-bar/search-bar.component.ts","../../../projects/media-viewer/src/lib/store/selectors/redaction.selectors.ts","../../../projects/media-viewer/src/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ts","../../../projects/media-viewer/src/lib/toolbar/icp-toolbar/icp-toolbar.component.ts","../../../projects/media-viewer/src/lib/toolbar/toolbar.module.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-view/annotation-view.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-set.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ts","../../../projects/media-viewer/src/lib/annotations/services/tags/tags.services.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/comment.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-render.service.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ts","../../../projects/media-viewer/src/lib/annotations/comments-summary/comments-summary.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ts","../../../projects/media-viewer/src/lib/annotations/tags/tags.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ts","../../../projects/media-viewer/src/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ts","../../../projects/media-viewer/src/lib/annotations/pipes/date/date.pipe.ts","../../../projects/media-viewer/src/lib/annotations/services/bookmarks-api/bookmarks-api.service.ts","../../../projects/media-viewer/src/lib/annotations/pipes/filter/filter.pipe.ts","../../../projects/media-viewer/src/lib/annotations/pipes/unsnake/unsnake.pipe.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-date/gov-uk-date.component.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ts","../../../projects/media-viewer/src/lib/shared/util/helpers/html-templates.helper.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ts","../../../projects/media-viewer/src/lib/shared/gov-uk-label/gov-uk-label.component.ts","../../../projects/media-viewer/src/lib/shared/shared.module.ts","../../../projects/media-viewer/src/lib/store/selectors/bookmark.selectors.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ts","../../../projects/media-viewer/src/lib/annotations/annotations.module.ts","../../../projects/media-viewer/src/lib/viewers/grab-n-drag.directive.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/side-bar/side-bar.component.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ts","../../../projects/media-viewer/src/lib/redaction/components/redaction.component.ts","../../../projects/media-viewer/src/lib/icp/icp-session-api.service.ts","../../../projects/media-viewer/src/lib/store/effects/annotation.effects.ts","../../../projects/media-viewer/src/lib/store/effects/bookmarks.effects.ts","../../../projects/media-viewer/src/lib/redaction/services/redaction-api.service.ts","../../../projects/media-viewer/src/lib/store/effects/redaction.effects.ts","../../../projects/media-viewer/src/lib/viewers/convertible-content-viewer/document-conversion-api.service.ts","../../../projects/media-viewer/src/lib/viewers/rotation-persist/rotation-api.service.ts","../../../projects/media-viewer/src/lib/store/effects/document.effects.ts","../../../projects/media-viewer/src/lib/store/effects/icp.effects.ts","../../../projects/media-viewer/src/lib/store/effects/index.ts","../../../projects/media-viewer/src/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ts","../../../projects/media-viewer/src/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ts","../../../projects/media-viewer/src/lib/icp/confirm-exit/confirm-action-dialog.component.ts","../../../projects/media-viewer/src/lib/bookmark/components/bookmark-icons.component.ts","../../../projects/media-viewer/src/lib/viewers/rotation-persist/rotation-persist.directive.ts","../../../projects/media-viewer/src/lib/icp/participants-list/participants-list.component.ts","../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ts","../../../projects/media-viewer/src/lib/viewers/multimedia-player/multimedia-player.component.ts","../../../projects/media-viewer/src/lib/media-viewer.module.ts","../../../projects/media-viewer/src/public_api.ts","../../../projects/media-viewer/src/hmcts-media-viewer.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import * as pdfjsLib from 'pdfjs-dist';\nimport { DownloadManager, PDFViewer } from 'pdfjs-dist/web/pdf_viewer';\nimport 'pdfjs-dist/build/pdf.worker';\nimport { Subject } from 'rxjs';\nimport { SearchOperation, ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\npdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';\n\n/**\n * Values of the state field returned by the find events\n */\nenum FindState {\n FOUND = 0,\n NOT_FOUND = 1,\n WRAPPED = 2,\n PENDING = 3,\n}\n\nexport class PdfJsWrapper {\n\n private zoomValue: number;\n private documentTitle: string;\n private documentOutline: Outline;\n\n constructor(\n private readonly pdfViewer: PDFViewer,\n private readonly downloadManager: DownloadManager,\n private readonly toolbarEvents: ToolbarEventService,\n public readonly documentLoadInit: Subject<string>,\n public readonly documentLoadProgress: Subject<DocumentLoadProgress>,\n public readonly documentLoaded: Subject<any>,\n public readonly outlineLoaded: Subject<Outline>,\n public readonly documentLoadFailed: Subject<Error>,\n public readonly pageRendered: Subject<PageEvent[]>,\n public readonly positionUpdated: Subject<{ location: PdfPosition }>,\n ) {\n this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));\n this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));\n this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');\n\n this.pdfViewer.eventBus.on('pagerendered', e => {}); // not used left for future convenience\n this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));\n\n this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {\n if (event.state !== FindState.PENDING) {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n }\n });\n this.pdfViewer.eventBus.on('updatefindmatchescount', event => {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n });\n this.zoomValue = 1;\n }\n\n private emitDocumentInfo(e) {\n const allPages: PageEvent[] = [...this.pdfViewer._pages].map(page => {\n return {\n div: page.div,\n scale: page.scale,\n rotation: page.rotation,\n id: page.id,\n viewportScale: page.viewport.scale\n };\n });\n this.pageRendered.next(allPages);\n }\n\n public async loadDocument(documentUrl: string) {\n const loadingTask = this.createLoadingTask(documentUrl);\n\n loadingTask.onProgress = ({ loaded, total }) => {\n this.documentLoadProgress.next({ loaded, total });\n };\n\n this.documentLoadInit.next(documentUrl);\n\n try {\n const pdfDocument = await loadingTask.promise;\n this.documentLoaded.next(pdfDocument);\n this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);\n\n this.pdfViewer.setDocument(pdfDocument);\n this.pdfViewer.linkService.setDocument(pdfDocument, null);\n\n const outline = await pdfDocument.getOutline();\n\n await this.setOutlinePageNumbers(pdfDocument, outline);\n\n this.documentOutline = outline;\n this.outlineLoaded.next(this.documentOutline);\n const pdfMetaData = await pdfDocument.getMetadata();\n this.setCurrentPDFTitle(pdfMetaData.info.Title);\n } catch (e) {\n this.documentLoadFailed.next(e);\n }\n }\n\n private createLoadingTask(documentUrl: string) {\n return pdfjsLib.getDocument({\n url: documentUrl,\n cMapUrl: 'assets/minified/cmaps',\n cMapPacked: true,\n withCredentials: true\n });\n }\n\n private async setOutlinePageNumbers(pdfDocument, outlineArray: Outline[]) {\n outlineArray.forEach ( async (outline: Outline) => {\n await this.setNestedOutlinePageNumbers(pdfDocument, outline);\n });\n }\n\n private async setNestedOutlinePageNumbers(pdfDocument, outline: Outline) {\n outline.pageNumber = await this.getOutlinePageNumber(pdfDocument, outline);\n outline.items.forEach( async (outlineItem: Outline) => {\n outlineItem.pageNumber = await this.getOutlinePageNumber(pdfDocument, outlineItem);\n this.setNestedOutlinePageNumbers(pdfDocument, outlineItem);\n });\n }\n\n private async getOutlinePageNumber(pdfDocument, outline: Outline): Promise <number> {\n const dest = outline.dest;\n const pageIndex = await pdfDocument.getPageIndex(dest[0]);\n return Number(pageIndex) + 1;\n }\n\n public downloadFile(url: string, filename: string): void {\n this.downloadManager.downloadUrl(url, filename);\n }\n\n public setPageNumber(pageNumber: number): void {\n this.pdfViewer.currentPageNumber = pageNumber;\n }\n public getPageNumber(): number {\n return this.pdfViewer.currentPageNumber;\n }\n public changePageNumber(numPages: number): void {\n this.pdfViewer.currentPageNumber += numPages;\n }\n\n public search(operation: SearchOperation): void {\n const command = operation.reset ? 'find' : 'findagain';\n\n this.pdfViewer.findController.executeCommand(command, {\n query: operation.searchTerm,\n phraseSearch: true,\n caseSensitive: operation.matchCase,\n entireWord: operation.wholeWord,\n highlightAll: operation.highlightAll,\n findPrevious: operation.previous,\n });\n }\n\n public clearSearch(): void {\n this.pdfViewer.eventBus.dispatch('findbarclose');\n }\n\n public navigateTo(destination: object | number) {\n if (destination instanceof Object) {\n if (!destination[1].name.includes('XYZ')) {\n destination[1] = { name: 'XYZ' };\n destination[2] = destination[2] || null;\n destination[3] = destination[3] || null;\n }\n destination[4] = this.zoomValue;\n }\n this.pdfViewer.linkService.navigateTo(destination);\n }\n\n public setZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n public stepZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = +this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n private getZoomValue(zoomValue: number): number {\n if (isNaN(zoomValue)) { return this.zoomValue; }\n if (zoomValue > 5) { return 5; }\n if (zoomValue < 0.1) { return 0.1; }\n\n return +zoomValue.toFixed(2);\n }\n\n public rotate(rotation: number): number {\n return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;\n }\n\n public resetRotation(rotation: number): number {\n return this.pdfViewer.pagesRotation = rotation;\n }\n\n public getNormalisedPagesRotation(): number {\n return this.pdfViewer.pagesRotation;\n }\n\n public getCurrentPDFZoomValue(): number {\n return this.pdfViewer.currentScaleValue;\n }\n\n public setCurrentPDFTitle(title: string) {\n this.documentTitle = title;\n }\n\n public getCurrentPDFTitle(): string {\n return this.documentTitle;\n }\n}\n\nexport interface DocumentLoadProgress {\n loaded: number;\n total: number;\n}\n\nexport interface PageEvent {\n div: object;\n scale: number;\n rotation: number;\n id: string;\n viewportScale: number;\n}\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n export const enabled = new BehaviorSubject(false);\n export const sessionLaunch = new Subject();\n export const becomingPresenter = new Subject();\n export const stoppingPresenting = new Subject();\n export const leavingSession = new BehaviorSubject(false);\n export const sessionExitConfirmed = new Subject();\n export const participantsListVisible = new BehaviorSubject(false);\n\nexport const launchSession = () => {\n sessionLaunch.next();\n};\n\nexport const enable = () => {\n enabled.next(true);\n launchSession();\n};\n\nexport const becomePresenter = () => {\n becomingPresenter.next();\n};\n\nexport const stopPresenting = () => {\n stoppingPresenting.next();\n};\n\nexport const leaveSession = () => {\n leavingSession.next(true);\n};\n\nexport const confirmExit = () => {\n sessionExitConfirmed.next();\n participantsListVisible.next(false);\n enabled.next(false);\n};\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport * as icpEvents from './icp-event.service';\nimport { participantsListVisible } from './icp-event.service';\n\n// Toolbar Custom-Event Types\nexport type HighlightMode = boolean;\nexport type DrawMode = boolean;\nexport interface SearchOperation {\n searchTerm: string;\n highlightAll: boolean;\n matchCase: boolean;\n wholeWord: boolean;\n previous: boolean;\n reset: boolean;\n}\nexport interface SearchResultsCount {\n current: number;\n total: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToolbarEventService {\n\n public readonly highlightModeSubject = new BehaviorSubject<HighlightMode>(false);\n public readonly drawModeSubject = new BehaviorSubject<DrawMode>(false);\n public readonly rotateSubject = new Subject<number>();\n public readonly searchSubject = new Subject<SearchOperation>();\n public readonly searchResultsCountSubject = new Subject<SearchResultsCount>();\n public readonly zoomSubject = new Subject<number>();\n public readonly stepZoomSubject = new Subject<number>();\n public readonly zoomValueSubject = new BehaviorSubject<number>(1);\n public readonly pageCountSubject = new Subject<number>();\n public readonly printSubject = new Subject();\n public readonly downloadSubject = new Subject();\n public readonly setCurrentPageSubject = new Subject<number>();\n public readonly setCurrentPageInputValueSubject = new Subject<number>();\n public readonly changePageByDeltaSubject = new Subject<number>();\n public readonly showCommentSummary = new BehaviorSubject<boolean>(false);\n public readonly grabNDrag = new BehaviorSubject<boolean>(false);\n public readonly saveRotationSubject = new Subject();\n\n public readonly redactionMode = new BehaviorSubject(false);\n public readonly redactionPreview = new Subject<boolean>();\n public readonly applyRedactToDocument = new Subject();\n public readonly clearAllRedactMarkers = new Subject();\n\n public readonly sidebarOpen = new BehaviorSubject(false);\n public readonly searchBarHidden = new BehaviorSubject(true);\n public readonly commentsPanelVisible = new BehaviorSubject(false);\n\n public readonly icp = icpEvents;\n\n\n /**\n * Reset the stateful behaviour subjects\n */\n public reset(): void {\n this.setCurrentPageSubject.next(1);\n this.zoomValueSubject.next(1);\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(false);\n this.showCommentSummary.next(false);\n }\n\n // Function to inform Observers that highlightMode has been enabled\n public toggleHighlightMode(): void {\n // Highlight and Draw states are mutually exclusive\n if (this.highlightModeSubject.getValue() === false) {\n this.drawModeSubject.next(false);\n this.highlightModeSubject.next(true);\n } else {\n this.highlightModeSubject.next(false);\n }\n }\n\n // Function to inform Observers that ToggleMode has been enabled\n public toggleDrawMode(): void {\n if (this.drawModeSubject.getValue() === false) {\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(true);\n } else {\n this.drawModeSubject.next(false);\n }\n }\n\n public rotate(angle: number): void {\n this.rotateSubject.next(angle);\n }\n\n public search(phrase: SearchOperation): void {\n this.searchSubject.next(phrase);\n }\n\n public getSearchResultsCount(): Observable<SearchResultsCount> {\n return this.searchResultsCountSubject.asObservable();\n }\n\n public zoom(value: number): void {\n this.zoomSubject.next(value);\n }\n\n public stepZoom(value: number): void {\n this.stepZoomSubject.next(value);\n }\n\n public getZoomValue(): Observable<number> {\n return this.zoomValueSubject.asObservable();\n }\n\n public getPageCount(): Observable<number> {\n return this.pageCountSubject.asObservable();\n }\n\n public print(): void {\n this.printSubject.next();\n }\n\n public download(): void {\n this.downloadSubject.next();\n }\n\n public setPage(value: number): void {\n this.setCurrentPageSubject.next(value);\n }\n\n public incrementPage(value: number): void {\n this.changePageByDeltaSubject.next(value);\n }\n\n public getCurrentPageNumber(): Observable<number> {\n return this.setCurrentPageInputValueSubject.asObservable();\n }\n\n public getShowCommentSummary(): Observable<boolean> {\n return this.showCommentSummary.asObservable();\n }\n\n public toggleCommentsSummary(value: boolean): void {\n this.showCommentSummary.next(value);\n }\n\n public saveRotation(): void {\n this.saveRotationSubject.next();\n }\n\n public toggleGrabNDrag(): void {\n this.grabNDrag.next(!this.grabNDrag.getValue());\n }\n\n toggleSideBar(toggle: boolean) {\n this.sidebarOpen.next(toggle);\n }\n\n public toggleRedactionMode(): void {\n this.redactionMode.next(!this.redactionMode.getValue());\n }\n\n public toggleRedactionPreview(viewMode: boolean): void {\n this.redactionPreview.next(viewMode);\n }\n\n public unmarkAll(): void {\n this.clearAllRedactMarkers.next();\n }\n\n public applyRedactionToDocument(): void {\n this.applyRedactToDocument.next();\n }\n\n public toggleCommentsPanel(isVisible: boolean) {\n if (isVisible) {\n this.toggleParticipantsList(!isVisible);\n }\n this.commentsPanelVisible.next(isVisible);\n }\n\n public toggleParticipantsList(isVisible: boolean) {\n if (isVisible) {\n this.toggleCommentsPanel(!isVisible);\n }\n this.icp.participantsListVisible.next(isVisible);\n }\n}\n","import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer';\nimport { ElementRef, Injectable } from '@angular/core';\nimport {DocumentLoadProgress, PageEvent, PdfJsWrapper} from './pdf-js-wrapper';\nimport { Subject } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\n@Injectable({providedIn: 'root'})\nexport class PdfJsWrapperFactory {\n\n private linkService: pdfjsViewer.PDFLinkService;\n private eventBus: pdfjsViewer.EventBus;\n private pdfJsWrapper: PdfJsWrapper;\n\n constructor(private readonly toolbarEvents: ToolbarEventService) {\n this.linkService = new pdfjsViewer.PDFLinkService();\n this.eventBus = new pdfjsViewer.EventBus();\n }\n\n public create(container: ElementRef): PdfJsWrapper {\n const pdfFindController = new pdfjsViewer.PDFFindController({\n linkService: this.linkService,\n eventBus: this.eventBus\n });\n\n const pdfViewer = new pdfjsViewer.PDFViewer({\n container: container.nativeElement,\n linkService: this.linkService,\n findController: pdfFindController,\n eventBus: this.eventBus,\n imageResourcesPath: '/assets/images/',\n textLayerMode: 2\n });\n\n this.linkService.setViewer(pdfViewer);\n\n this.pdfJsWrapper = new PdfJsWrapper(\n pdfViewer,\n new pdfjsViewer.DownloadManager({}),\n this.toolbarEvents,\n new Subject<string>(),\n new Subject<DocumentLoadProgress>(),\n new Subject<any>(),\n new Subject<Outline>(),\n new Subject(),\n new Subject<PageEvent[]>(),\n new Subject<{ location: PdfPosition }>()\n );\n\n return this.pdfJsWrapper;\n }\n\n pdfWrapper() {\n return this.pdfJsWrapper;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrintService {\n\n printDocumentNatively(url: string): void {\n const printWindow = window.open(url);\n printWindow.print();\n }\n\n printElementNatively(element: HTMLElement, width: number, height: number): void {\n const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);\n\n printWindow.document.write(element.innerHTML);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n","export enum ResponseType {\n SUCCESS = 'SUCCESS',\n FAILURE = 'FAILURE',\n UNSUPPORTED = 'UNSUPPORTED'\n}\n\nexport interface ExceptionDetail {\n httpResponseCode?: string;\n message?: string;\n}\n\nexport class ViewerException {\n exceptionType?: string;\n detail?: ExceptionDetail;\n\n constructor(exceptionType?: string, detail?: ExceptionDetail) {\n this.exceptionType = exceptionType;\n this.detail = detail;\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n@Injectable({providedIn: 'root'})\nexport class ToolbarButtonVisibilityService {\n\n public showPrint = false;\n public showDownload = false;\n public showNavigation = false;\n public showZoom = false;\n public showRotate = false;\n public showPresentationMode = false;\n public showRedact = false;\n public showOpenFile = false;\n public showBookmark = false;\n public showHighlightButton = false;\n public showDrawButton = false;\n public showSearchBar = false;\n public showSidebar = false;\n public showCommentSummary = false;\n public showGrabNDragButton = false;\n public showSaveRotationButton = false;\n\n /**\n * Reset the visibility of all buttons to false then set the value from the options\n */\n public setup(options: Partial<ToolbarButtonVisibilityService>): void {\n this.showPrint = false;\n this.showDownload = false;\n this.showNavigation = false;\n this.showZoom = false;\n this.showRotate = false;\n this.showPresentationMode = false;\n this.showRedact = false;\n this.showOpenFile = false;\n this.showBookmark = false;\n this.showHighlightButton = false;\n this.showDrawButton = false;\n this.showSearchBar = false;\n this.showSidebar = false;\n this.showCommentSummary = false;\n this.showGrabNDragButton = false;\n this.showSaveRotationButton = false;\n\n for (const key in options) {\n this[key] = options[key];\n }\n }\n}\n\n/**\n * Default toolbar state for the PDF viewer\n */\nexport const defaultPdfOptions = {\n showPrint: true,\n showDownload: true,\n showNavigation: true,\n showZoom: true,\n showRotate: true,\n showSearchBar: true,\n showSidebar: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showPresentationMode: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for the image viewer\n */\nexport const defaultImageOptions = {\n showPrint: true,\n showDownload: true,\n showZoom: true,\n showRotate: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for multimedia\n */\nexport const defaultMultimediaOptions = {\n showDownload: true\n};\n\n/**\n * Default toolbar state for unsupported media\n */\nexport const defaultUnsupportedOptions = {\n showDownload: true,\n showPrint: true\n};\n","import { Action } from '@ngrx/store';\nimport { PageEvent } from '../../viewers/pdf-viewer/pdf-js/pdf-js-wrapper';\nimport { Rotation } from '../../viewers/rotation-persist/rotation.model';\nimport { PdfPosition } from '../reducers/document.reducer';\n\nexport const SET_DOCUMENT_ID = '[Document] Set Document Id';\nexport const POSITION_UPDATED = '[Document] Position Updated';\nexport const ADD_PAGES = '[Document] Add Pages';\nexport const CONVERT = '[Document] Convert';\nexport const CONVERT_SUCCESS = '[Document] Convert Success';\nexport const CONVERT_FAIL = '[Document] Convert Fail';\nexport const CLEAR_CONVERT_DOC_URL = '[Document] Clear Convert Doc Url';\n\nexport const LOAD_ROTATION = '[Document] Load Rotation';\nexport const LOAD_ROTATION_SUCCESS = '[Document] Load Rotation Success';\nexport const LOAD_ROTATION_FAIL = '[Document] Load Rotation Fail';\nexport const SAVE_ROTATION = '[Document] Save Rotation';\nexport const SAVE_ROTATION_SUCCESS = '[Document] Save Rotation Success';\nexport const SAVE_ROTATION_FAIL = '[Document] Save Rotation Fail';\n\nexport class SetDocumentId implements Action {\n readonly type = SET_DOCUMENT_ID;\n constructor(public payload: string) { }\n}\n\nexport class AddPages implements Action {\n readonly type = ADD_PAGES;\n constructor(public payload: PageEvent[]) { }\n}\n\nexport class PdfPositionUpdate implements Action {\n readonly type = POSITION_UPDATED;\n constructor(public payload: PdfPosition) {}\n}\n\nexport class Convert implements Action {\n readonly type = CONVERT;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertSuccess implements Action {\n readonly type = CONVERT_SUCCESS;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertFailure implements Action {\n readonly type = CONVERT_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class ClearConvertDocUrl implements Action {\n readonly type = CLEAR_CONVERT_DOC_URL;\n}\n\nexport class LoadRotation implements Action {\n readonly type = LOAD_ROTATION;\n constructor(public payload: string) {\n }\n}\n\nexport class LoadRotationSuccess implements Action {\n readonly type = LOAD_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class LoadRotationFailure implements Action {\n readonly type = LOAD_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport class SaveRotation implements Action {\n readonly type = SAVE_ROTATION;\n constructor(public payload: Rotation) {\n }\n}\n\nexport class SaveRotationSuccess implements Action {\n readonly type = SAVE_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class SaveRotationFailure implements Action {\n readonly type = SAVE_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport type DocumentActions =\n | AddPages | SetDocumentId | Convert\n | ConvertSuccess | ConvertFailure | ClearConvertDocUrl\n | PdfPositionUpdate | LoadRotation | LoadRotationSuccess\n | LoadRotationFailure | SaveRotation | SaveRotationSuccess\n | SaveRotationFailure;\n","import { Action } from '@ngrx/store';\nimport {TagsModel} from '../../annotations/models/tags.model';\nexport const UPDATE_TAGS = '[Tags] Update Tags';\nexport const ADD_FILTER_TAGS = '[Tags] Add Filter Tags';\nexport const CLEAR_FILTER_TAGS = '[Tags] Clear Filter Tags';\n\nexport class UpdateTags implements Action {\n readonly type = UPDATE_TAGS;\n constructor(public payload: {tags: TagsModel[]; annoId: string}) {}\n}\n\nexport class AddFilterTags implements Action {\n readonly type = ADD_FILTER_TAGS;\n constructor(public payload: {[id: string]: boolean}) {}\n}\n\nexport class ClearFilterTags implements Action {\n readonly type = CLEAR_FILTER_TAGS;\n}\n\n\nexport type TagsActions =\n | UpdateTags\n | AddFilterTags\n | ClearFilterTags;\n","import { Action } from '@ngrx/store';\nimport { IcpParticipant, IcpSession } from '../../icp/icp.interfaces';\n\nexport const SET_CASE_ID = '[Icp] Set Case Id';\nexport const LOAD_ICP_SESSION = '[Icp] Load Session';\nexport const LOAD_ICP_SESSION_FAIL = '[Icp] Load Session Failure';\nexport const JOIN_ICP_SOCKET_SESSION = '[Icp] Join Socket Session';\nexport const ICP_SOCKET_SESSION_JOINED = '[Icp] Socket Session Joined';\nexport const LEAVE_ICP_SOCKET_SESSION = '[Icp] Leave Socket Session';\nexport const ICP_PRESENTER_UPDATED = '[Icp] Presenter Updated';\nexport const ICP_PARTICIPANT_LIST_UPDATED = '[Icp] Participant List Updated';\n\nexport class SetCaseId implements Action {\n readonly type = SET_CASE_ID;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSession implements Action {\n readonly type = LOAD_ICP_SESSION;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSessionFailure implements Action {\n readonly type = LOAD_ICP_SESSION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class JoinIcpSocketSession implements Action {\n readonly type = JOIN_ICP_SOCKET_SESSION;\n constructor(public payload: { username: string, session: IcpSession }) {}\n}\n\nexport class IcpSocketSessionJoined implements Action {\n readonly type = ICP_SOCKET_SESSION_JOINED;\n constructor(public payload: { session: IcpSession, participantInfo: { client: IcpParticipant, presenter: IcpParticipant } }) {}\n}\n\nexport class LeaveIcpSocketSession implements Action {\n readonly type = LEAVE_ICP_SOCKET_SESSION;\n constructor() {}\n}\n\nexport class IcpPresenterUpdated implements Action {\n readonly type = ICP_PRESENTER_UPDATED;\n constructor(public payload: IcpParticipant) {}\n}\n\nexport class IcpParticipantListUpdated implements Action {\n readonly type = ICP_PARTICIPANT_LIST_UPDATED;\n constructor(public payload: any) {}\n}\n\nexport type IcpActions =\n | SetCaseId\n | LoadIcpSession\n | LoadIcpSessionFailure\n | JoinIcpSocketSession\n | IcpSocketSessionJoined\n | LeaveIcpSocketSession\n | IcpPresenterUpdated\n | IcpParticipantListUpdated;\n","import * as fromActions from '../actions/document.actions';\n\nexport interface DocumentState {\n convertedDocument: {\n url: string;\n error: string;\n };\n documentId: string;\n pdfPosition: PdfPosition;\n pages: {[id: string]: DocumentPages};\n hasDifferentPageSize: boolean;\n rotation: number;\n rotationLoaded: boolean;\n loaded: boolean;\n loading: boolean;\n}\n\nexport interface DocumentPages {\n numberOfPages: number;\n styles: { left: number, height: number, width: number };\n scaleRotation: { scale: string; rotation: string };\n viewportScale: number;\n}\n\nexport interface PdfPosition {\n pageNumber: number;\n scale: number;\n top: number;\n left: number;\n rotation: number;\n}\n\nexport const initialDocumentState: DocumentState = {\n convertedDocument: undefined,\n documentId: undefined,\n pdfPosition: undefined,\n pages: {},\n hasDifferentPageSize: false,\n rotation: undefined,\n rotationLoaded: false,\n loading: false,\n loaded: false\n};\n\nexport function docReducer (state = initialDocumentState,\n action: fromActions.DocumentActions): DocumentState {\n\n switch (action.type) {\n\n case fromActions.CONVERT_SUCCESS: {\n const convertedDocument = {\n url: action.payload,\n error: undefined\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CONVERT_FAIL: {\n const convertedDocument = {\n url: undefined,\n error: action.payload\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CLEAR_CONVERT_DOC_URL: {\n const convertedDocument = undefined;\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.LOAD_ROTATION: {\n return {\n ...state,\n rotationLoaded: false\n };\n }\n\n case fromActions.LOAD_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata ? metadata.rotationAngle : 0;\n return {\n ...state,\n rotation,\n rotationLoaded: true\n };\n }\n\n case fromActions.LOAD_ROTATION_FAIL: {\n return {\n ...state,\n rotation: 0,\n rotationLoaded: true\n };\n }\n\n case fromActions.SAVE_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata.rotationAngle;\n return {\n ...state,\n rotation\n };\n }\n\n case fromActions.SET_DOCUMENT_ID : {\n return {\n ...state,\n documentId: action.payload\n };\n }\n\n case fromActions.ADD_PAGES: {\n const payload = action.payload;\n let pages = {};\n let pageHeight;\n let pageWidth;\n let hasDifferentPageSize = state.hasDifferentPageSize;\n payload.forEach(page => {\n if (!hasDifferentPageSize && pageHeight && pageWidth &&\n (pageHeight !== page.div['scrollHeight'] || pageWidth !== page.div['scrollWidth'])) {\n hasDifferentPageSize = true;\n } else {\n pageHeight = page.div['scrollHeight'];\n pageWidth = page.div['scrollWidth'];\n }\n const styles = {\n left: page.div['offsetLeft'],\n height: page.div['scrollHeight'],\n width: page.div['scrollWidth']\n };\n\n const scaleRotation = {\n scale: page.scale,\n rotation: page.rotation\n };\n\n const p = {\n styles,\n scaleRotation,\n viewportScale: page.viewportScale\n };\n\n pages = {\n ...pages,\n [page.id]: p\n };\n\n });\n return {\n ...state,\n pages,\n hasDifferentPageSize\n };\n }\n\n case fromActions.POSITION_UPDATED: {\n const pdfPosition = action.payload;\n return {\n ...state,\n pdfPosition\n };\n }\n }\n return state;\n}\nexport const getDocPages = (state: DocumentState) => state.pages;\nexport const getDocId = (state: DocumentState) => state.documentId;\nexport const getPdfPos = (state: DocumentState) => state.pdfPosition;\nexport const getHasDifferentPageSizes = (state: DocumentState) => state.hasDifferentPageSize;\nexport const getRotation = (state: DocumentState) => state.rotation;\nexport const rotationLoaded = (state: DocumentState) => state.rotationLoaded;\nexport const getConvertedDocument = (state: DocumentState) => state.convertedDocument;\n","import { Action } from '@ngrx/store';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { Filters } from '../models/filters.interface';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\n\nexport const LOAD_ANNOTATION_SET = '[Annotations] Load Annotation Set';\nexport const LOAD_ANNOTATION_SET_SUCCESS = '[Annotations] Load Annotation Set Success';\nexport const LOAD_ANNOTATION_SET_FAIL = '[Annotations] Load Annotation Set Fail';\n\nexport const SAVE_ANNOTATION = '[Annotations] Save Annotation';\nexport const SAVE_ANNOTATION_SUCCESS = '[Annotations] Save Annotation Success';\nexport const SAVE_ANNOTATION_FAIL = '[Annotations] Save Annotation Fail';\nexport const ADD_OR_EDIT_COMMENT = '[Annotations] Add or Edit Comment';\n\nexport const DELETE_ANNOTATION = '[Annotations] Delete Annotation';\nexport const DELETE_ANNOTATION_SUCCESS = '[Annotations] Delete Annotation Success';\nexport const DELETE_ANNOTATION_FAIL = '[Annotations] Delete Annotation Fail';\n\nexport const SELECT_ANNOTATION = '[Annotations] Select Annotation';\nexport const SEARCH_COMMENT = '[Comments] Search Comments';\nexport const APPLY_COMMENT_SUMMARY_FILTER = '[Comments] Apply Comment Summary Filter';\nexport const CLEAR_COMMENT_SUMMARY_FILTER = '[Comments] Clear Comment Summary Filter';\n\nexport class LoadAnnotationSet implements Action {\n readonly type = LOAD_ANNOTATION_SET;\n constructor(public payload: string) { }\n}\n\nexport class LoadAnnotationSetSucess implements Action {\n readonly type = LOAD_ANNOTATION_SET_SUCCESS;\n constructor(public payload: { status: number, body: AnnotationSet }) { }\n}\n\nexport class LoadAnnotationSetFail implements Action {\n readonly type = LOAD_ANNOTATION_SET_FAIL;\n constructor(public payload: { status: number, body: any }) { }\n}\n\nexport class SaveAnnotation implements Action {\n readonly type = SAVE_ANNOTATION;\n constructor(public payload: Annotation) { }\n}\n\nexport class SaveAnnotationSuccess implements Action {\n readonly type = SAVE_ANNOTATION_SUCCESS;\n constructor(public payload: any) { }\n}\n\nexport class SaveAnnotationFail implements Action {\n readonly type = SAVE_ANNOTATION_FAIL;\n constructor(public payload: Error) { }\n}\n\nexport class AddOrEditComment implements Action {\n readonly type = ADD_OR_EDIT_COMMENT;\n constructor(public payload: Comment) { }\n}\n\nexport class DeleteAnnotation implements Action {\n readonly type = DELETE_ANNOTATION;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationSuccess implements Action {\n readonly type = DELETE_ANNOTATION_SUCCESS;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationFail implements Action {\n readonly type = DELETE_ANNOTATION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class SelectedAnnotation implements Action {\n readonly type = SELECT_ANNOTATION;\n constructor(public payload: SelectionAnnotation) {}\n}\n\nexport class SearchComment implements Action {\n readonly type = SEARCH_COMMENT;\n constructor(public payload: string) {}\n}\n\nexport class ApplyCommentSymmaryFilter implements Action {\n readonly type = APPLY_COMMENT_SUMMARY_FILTER;\n constructor(public payload: Filters) {}\n}\n\nexport class ClearCommentSummaryFilters implements Action {\n readonly type = CLEAR_COMMENT_SUMMARY_FILTER;\n}\n\nexport type AnnotationsActions =\n | LoadAnnotationSet\n | LoadAnnotationSetSucess\n | LoadAnnotationSetFail\n | SaveAnnotation\n | SaveAnnotationSuccess\n | SaveAnnotationFail\n | AddOrEditComment\n | DeleteAnnotation\n | DeleteAnnotationSuccess\n | DeleteAnnotationFail\n | SelectedAnnotation\n | SearchComment\n | ApplyCommentSymmaryFilter\n | ClearCommentSummaryFilters;\n","import { Annotation } from '../annotations/annotation-set/annotation-view/annotation.model';\nimport moment from 'moment-timezone';\nimport { Redaction } from '../redaction/services/redaction.model';\nimport { Filters } from './models/filters.interface';\nimport { Comment } from '../annotations/comment-set/comment/comment.model';\n\n/*\n @dynamic\n marking class as dynamic to stop compiler throwing error for lambda in static function\n see https://github.com/angular/angular/issues/19698#issuecomment-338340211\n */\nexport class StoreUtils {\n\n static groupByKeyEntities(annotations, key): {[id: string]: any[]} {\n return annotations.reduce((h, obj) =>\n Object.assign(h, { [obj[key]]: ( h[obj[key]] || [] ).concat(obj) }), {});\n }\n\n static generateCommentsEntities(annotations): {[id: string]: Comment} {\n return annotations.reduce(\n (commentEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n if (annotation.comments.length) {\n const comment = {\n ...annotation.comments[0] || '',\n tags: [...annotation.tags || []]\n };\n return {\n ...commentEntities,\n [annotation.id]: comment\n };\n }\n return {\n ...commentEntities\n };\n }, {});\n }\n\n static genTagNameEntities(annotations) {\n const filterAnnoWithoutCommentsTags = annotations.filter(a => (a.comments.length && a.tags.length));\n const allTags = filterAnnoWithoutCommentsTags.map(anno => this.groupByKeyEntities(anno.tags, 'name'));\n const groupedByName = allTags.reduce(\n (tagEntitiy: { [id: string]: Annotation }, tagItem) => {\n return {\n ...tagEntitiy,\n ...tagItem\n };\n }, {});\n\n return this.genNameEnt(annotations, groupedByName);\n }\n\n static genNameEnt(annos, groupedByName) {\n return Object.keys(groupedByName).reduce(\n (tagNameEnt, key) => {\n const readyAnno = annos.filter(anno => anno.tags.find(tag => tag.name === key))\n .map(anno => anno.id)\n .reduce((obj: {[id: string]: string}, anno: string) => ({ ...obj, [anno]: anno }), {});\n\n return {\n ...tagNameEnt,\n [key]: readyAnno\n };\n }, {});\n\n }\n\n static generateAnnotationEntities(anno): {[id: string]: Annotation} {\n return anno.reduce(\n (annoEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n const annot = {\n ...annotation,\n positionTop: annotation.rectangles[0].y // todo remove this\n };\n return {\n ...annoEntities,\n [annotation.id]: annot\n };\n }, {});\n }\n\n static generateRedactionEntities(redactions: Redaction[]): { [id: string]: Redaction } {\n return redactions.reduce(\n (redactEntities: { [id: string]: Redaction }, redaction: Redaction) => {\n return {\n ...redactEntities,\n [redaction.redactionId]: redaction\n };\n }, {});\n }\n\n static resetCommentEntSelect(ent: { [id: string]: Comment }) {\n return Object.keys(ent).reduce((object, key) => {\n object[key] = {\n ...ent[key],\n editable: false,\n selected: false\n };\n return object;\n }, {});\n }\n\n static filterCommentsSummary(comments: Array<Comment>, filters: Filters) {\n if (Object.keys(filters).length) {\n const tagFilterApplied = Object.keys(filters.tagFilters)\n .filter(key => filters.tagFilters[key] === true).length;\n const dateFilterApplied = (filters.dateRangeFrom || filters.dateRangeTo);\n const filteredComments = comments.filter(comment => {\n let hasTagFilter = false;\n let hasDateFilter = false;\n // check tags\n if (filters.hasOwnProperty('tagFilters')) {\n Object.keys(filters.tagFilters).forEach(filter => {\n const label = filters.tagFilters[filter];\n if (label) {\n return comment.tags.forEach(tag => {\n if (tag.name === filter && !hasTagFilter) {\n hasTagFilter = true;\n }\n });\n }});\n }\n // check for dates\n if (dateFilterApplied) {\n const commentDate = moment(comment.lastModifiedDate);\n const dateFrom = filters.dateRangeFrom !== null ? moment(filters.dateRangeFrom) : undefined;\n const dateTo = filters.dateRangeTo !== null ? moment(filters.dateRangeTo) : undefined;\n\n if (dateTo && dateFrom) {\n if (commentDate > dateFrom && commentDate < dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateTo && !dateFrom) {\n if (commentDate <= dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateFrom && !dateTo) {\n if (commentDate > dateFrom) {\n hasDateFilter = true;\n }\n }\n }\n\n return (hasTagFilter || hasDateFilter);\n });\n return (tagFilterApplied || dateFilterApplied) ? filteredComments : comments;\n } else {\n return comments;\n }\n }\n}\n","import uuid from 'uuid/v4';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\nimport { StoreUtils } from '../store-utils';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { Filters } from '../models/filters.interface';\n\nexport interface AnnotationSetState {\n annotationSet: any;\n annotationEntities: {[id: string]: any};\n annotationPageEntities: {[id: string]: Annotation[]};\n commentEntities: {[id: string]: Comment};\n selectedAnnotation: SelectionAnnotation;\n commentSearchQueries: { commentSearch: string };\n commentSummaryFilters: {hasFilter: boolean; filters: Filters};\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialState: AnnotationSetState = {\n annotationSet: {},\n annotationEntities: {},\n commentEntities: {},\n annotationPageEntities: {},\n selectedAnnotation: null,\n commentSearchQueries: {commentSearch: ''},\n commentSummaryFilters: {hasFilter: false, filters: {}},\n loading: false,\n loaded: false,\n};\n\nexport function reducer (\n state = initialState,\n action: fromAnnotations.AnnotationsActions\n): AnnotationSetState {\n switch (action.type) {\n\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n const annotationSet = {\n ...state.annotationSet,\n documentId: action.payload\n };\n return {\n ...initialState,\n annotationSet,\n loading: true\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS:\n case fromAnnotations.LOAD_ANNOTATION_SET_FAIL: {\n const annotationSet = action.payload.status === 200 ? action.payload.body :\n {\n ...state.annotationSet,\n annotations: [],\n id: uuid()\n };\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotationSet.annotations);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotationSet.annotations, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotationSet.annotations);\n return {\n ...state,\n annotationSet,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const anno = action.payload;\n const annEntities = {\n ...state.annotationEntities,\n [anno.id]: anno\n };\n const annotArray = Object.keys(annEntities).map(key => annEntities[key]);\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotArray);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotArray, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotArray);\n const selectedAnnotation = {\n ...state.selectedAnnotation,\n annotationId : anno.id,\n editable: false\n };\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n selectedAnnotation,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const page = state.annotationEntities[id].page;\n const annotationEntities = {\n ...state.annotationEntities\n };\n delete annotationEntities[id];\n const pageAnnotationsRemoved = [\n ...state.annotationPageEntities[page].filter(anno => anno.id !== id)\n ];\n const annotationPageEntities = {\n ...state.annotationPageEntities,\n [page]: pageAnnotationsRemoved\n };\n const commentEntities = {\n ...state.commentEntities\n };\n if (state.commentEntities[id]) {\n delete commentEntities[id];\n }\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities\n };\n }\n\n case fromAnnotations.ADD_OR_EDIT_COMMENT: {\n const comment = {\n [action.payload.annotationId]: action.payload\n };\n const comments = {\n ...state.commentEntities,\n ...comment\n };\n return {\n ...state,\n commentEntities: comments\n };\n }\n\n case fromAnnotations.SELECT_ANNOTATION: {\n const payload = action.payload;\n const commentEntity = {\n ...state.commentEntities[payload.annotationId],\n editable: payload.editable,\n selected: payload.selected\n };\n\n const resetCommentEntSelect = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n\n const commentEntities = payload.annotationId && state.commentEntities[payload.annotationId] ? {\n ...resetCommentEntSelect,\n [payload.annotationId]: commentEntity\n } : {...resetCommentEntSelect};\n\n return {\n ...state,\n commentEntities,\n selectedAnnotation: action.payload\n };\n }\n\n case fromAnnotations.SEARCH_COMMENT: {\n const commentSearchQueries = {\n ...state.commentSearchQueries,\n commentSearch: action.payload\n };\n\n const commentEntities = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n return {\n ...state,\n commentEntities,\n commentSearchQueries\n };\n }\n\n case fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER: {\n const payload = action.payload;\n const hasTagFilter = () => {\n let isFiltered = false;\n if (payload.tagFilters) {\n Object.keys(payload.tagFilters).map(filter => {\n if (payload.tagFilters[filter] && !isFiltered) {\n isFiltered = true;\n }\n });\n }\n return isFiltered;\n };\n const hasFilter = (hasTagFilter() || !!payload.dateRangeFrom || !!payload.dateRangeTo);\n const commentSummaryFilters = {\n hasFilter,\n filters: payload\n };\n return {\n ...state,\n commentSummaryFilters: commentSummaryFilters\n };\n }\n\n case fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER: {\n\n return {\n ...state,\n commentSummaryFilters : {...initialState.commentSummaryFilters}\n };\n }\n }\n\n\n return state;\n}\n\nexport const getAnnoSet = (state: AnnotationSetState) => state.annotationSet;\nexport const getCommentEnts = (state: AnnotationSetState) => state.commentEntities;\nexport const getAnnoPageEnt = (state: AnnotationSetState) => state.annotationPageEntities;\nexport const getAnnoEnt = (state: AnnotationSetState) => state.annotationEntities;\nexport const getSelectedAnno = (state: AnnotationSetState) => state.selectedAnnotation;\nexport const commentSearchQ = (state: AnnotationSetState) => state.commentSearchQueries;\nexport const getSummaryFilters = (state: AnnotationSetState) => state.commentSummaryFilters;\n","import * as fromAnnotations from '../actions/annotation.actions';\nimport * as fromTags from '../actions/tag.actions';\nimport {StoreUtils} from '../store-utils';\nimport {Annotation} from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport interface TagsState {\n tagNameEnt: {[id: string]: string[]};\n filteredComments: {[id: string]: string[]};\n filteredPageEntities: {[id: string]: Annotation[]};\n annotations: Annotation[];\n formFilterState: {[id: string]: boolean};\n filters: string[];\n}\n\nexport const initialTagState: TagsState = {\n tagNameEnt: {},\n annotations: [],\n filteredPageEntities: {},\n filteredComments: {},\n formFilterState: {},\n filters: []\n};\n\nexport function tagsReducer (\n state = initialTagState,\n action: fromAnnotations.AnnotationsActions | fromTags.TagsActions\n): TagsState {\n switch (action.type) {\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n\n return {\n ...state,\n ...initialTagState\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS: {\n const annotations = action.payload.body.annotations;\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n tagNameEnt,\n annotations\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const payload = action.payload;\n\n const anno = [...state.annotations].filter(a => a.id !== payload.id) || [];\n const annotations = [...anno, payload];\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n annotations,\n tagNameEnt\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const annotations = [...state.annotations].filter(a => a.id !== id);\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n const filteredComments = {\n ...state.filteredComments\n };\n delete filteredComments[id];\n return {\n ...state,\n annotations,\n tagNameEnt,\n filteredComments,\n filteredPageEntities,\n filters: []\n };\n }\n\n\n case fromTags.ADD_FILTER_TAGS: {\n const formFilterState = action.payload;\n\n const filters = Object.keys(formFilterState).reduce((arr: string[], key: string) => {\n return formFilterState[key] ? [...arr, key] : arr;\n }, []);\n\n const filteredComments = filters.reduce((obj: {[id: string]: any}, f) => {\n return {\n ...obj,\n ...state.tagNameEnt[f]\n };\n }, {});\n\n const annotations = Object.keys(filteredComments).map(key => state.annotations.filter(a => a.id === key)[0]);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n return {\n ...state,\n filters,\n filteredComments,\n filteredPageEntities,\n };\n }\n\n case fromTags.CLEAR_FILTER_TAGS: {\n return {\n ...state,\n filters: [],\n filteredComments: {},\n filteredPageEntities: {},\n };\n }\n\n }\n\n return state;\n}\n\nexport const getTagNameEnt = (state: TagsState) => state.tagNameEnt;\nexport const getFilters = (state: TagsState) => state.filters;\nexport const getFilteredComments = (state: TagsState) => state.filteredComments;\nexport const getFilteredPageEnt = (state: TagsState) => state.filteredPageEntities;\n","import { Action } from '@ngrx/store';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const LOAD_BOOKMARKS = '[Bookmarks] Load Bookmarks';\nexport const LOAD_BOOKMARKS_SUCCESS = '[Bookmarks] Load Bookmarks Success';\nexport const LOAD_BOOKMARKS_FAIL = '[Bookmarks] Load Bookmarks Failure';\nexport const CREATE_BOOKMARK = '[Bookmarks] Create Bookmark';\nexport const CREATE_BOOKMARK_SUCCESS = '[Bookmarks] Create Bookmark Success';\nexport const CREATE_BOOKMARK_FAIL = '[Bookmarks] Create Bookmark Failure';\nexport const DELETE_BOOKMARK = '[Bookmarks] Delete Bookmark';\nexport const DELETE_BOOKMARK_SUCCESS = '[Bookmarks] Delete Bookmark Success';\nexport const DELETE_BOOKMARK_FAIL = '[Bookmarks] Delete Bookmark Failure';\nexport const MOVE_BOOKMARK = '[Bookmarks] Move Bookmark';\nexport const MOVE_BOOKMARK_SUCCESS = '[Bookmarks] Move Bookmark Success';\nexport const MOVE_BOOKMARK_FAIL = '[Bookmarks] Move Bookmark Failure';\nexport const UPDATE_BOOKMARK = '[Bookmarks] Update Bookmark';\nexport const UPDATE_BOOKMARK_SUCCESS = '[Bookmarks] Update Bookmark Success';\nexport const UPDATE_BOOKMARK_FAIL = '[Bookmarks] Update Bookmark Failure';\n\nexport class LoadBookmarks implements Action {\n readonly type = LOAD_BOOKMARKS;\n constructor() {}\n}\n\nexport class LoadBookmarksSuccess implements Action {\n readonly type = LOAD_BOOKMARKS_SUCCESS;\n constructor(public payload: { body: Bookmark[], status: number}) { }\n}\n\nexport class LoadBookmarksFailure implements Action {\n readonly type = LOAD_BOOKMARKS_FAIL;\n constructor(public payload: { body: any, status: number }) { }\n}\n\nexport class CreateBookmark implements Action {\n readonly type = CREATE_BOOKMARK;\n constructor(public payload: Bookmark) { }\n}\n\nexport class CreateBookmarkSuccess implements Action {\n readonly type = CREATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class CreateBookmarkFailure implements Action {\n readonly type = CREATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\nexport class DeleteBookmark implements Action {\n readonly type = DELETE_BOOKMARK;\n constructor(public payload: { deleted: string[], updated: Bookmark }) {}\n}\n\nexport class DeleteBookmarkSuccess implements Action {\n readonly type = DELETE_BOOKMARK_SUCCESS;\n constructor(public payload: string[]) {}\n}\n\nexport class DeleteBookmarkFailure implements Action {\n readonly type = DELETE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class MoveBookmark implements Action {\n readonly type = MOVE_BOOKMARK;\n constructor(public payload: Bookmark[]) {}\n}\n\nexport class MoveBookmarkSuccess implements Action {\n readonly type = MOVE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark[]) { }\n}\n\nexport class MoveBookmarkFailure implements Action {\n readonly type = MOVE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class UpdateBookmark implements Action {\n readonly type = UPDATE_BOOKMARK;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkSuccess implements Action {\n readonly type = UPDATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkFailure implements Action {\n readonly type = UPDATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\n\nexport type BookmarksActions =\n | LoadBookmarks | LoadBookmarksSuccess | LoadBookmarksFailure\n | CreateBookmark | CreateBookmarkSuccess | CreateBookmarkFailure\n | DeleteBookmark | DeleteBookmarkSuccess | DeleteBookmarkFailure\n | UpdateBookmark | UpdateBookmarkSuccess | UpdateBookmarkFailure\n | MoveBookmark | MoveBookmarkSuccess | MoveBookmarkFailure;\n","import { Bookmark } from '../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const getBookmarkChildren = (bookmarks: Bookmark[]) => {\n if (bookmarks) {\n return bookmarks.reduce((childIds, bookmark) => {\n if (bookmark.children && bookmark.children.length > 0) {\n return [...childIds, bookmark.id, ...getBookmarkChildren(bookmark.children)];\n }\n return [...childIds, bookmark.id];\n }, []);\n } else {\n return [];\n }\n};\n\nexport const generateBookmarkEntities = (bookmarks: Bookmark[]): {[id: string]: Bookmark} => {\n return bookmarks.reduce(\n (bookmarkEntities, bookmark) =>\n Object.assign(bookmarkEntities, { [bookmark.id]: bookmark }),\n {});\n};\n\nconst indexEntities = (entities: { [id: string]: Bookmark }) => {\n const entityIds = Object.keys(entities);\n for (let index = 0; entityIds.length > 0; index++) {\n let keysToRemove = [];\n entityIds.forEach(key => {\n if (!entities[key].previous || !entityIds.includes(entities[key].previous.toString())) {\n entities[key].index = index;\n keysToRemove.push(key);\n }\n });\n keysToRemove.forEach(key => entityIds.splice(entityIds.indexOf(key), 1));\n keysToRemove = [];\n }\n};\n\nexport const generateBookmarkNodes = (entities: { [id: string]: Bookmark }) => {\n const bookmarkEntities = JSON.parse(JSON.stringify(entities));\n indexEntities(bookmarkEntities);\n return Object.keys(bookmarkEntities).reduce((nodes, bookmarkId) => {\n const bookmarkEntity = bookmarkEntities[bookmarkId];\n if (bookmarkEntity.parent) {\n const parentEntity = bookmarkEntities[bookmarkEntity.parent];\n if (!parentEntity.children) {\n parentEntity.children = [];\n }\n parentEntity.children[bookmarkEntity.index] = bookmarkEntity;\n } else {\n nodes[bookmarkEntity.index] = bookmarkEntity;\n }\n return nodes;\n }, []);\n};\n","import * as fromBookmarks from '../actions/bookmark.actions';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport { StoreUtils } from '../store-utils';\nimport { generateBookmarkEntities } from '../bookmarks-store-utils';\n\nexport interface BookmarksState {\n bookmarks: Bookmark[];\n bookmarkEntities: { [id: string]: Bookmark };\n bookmarkPageEntities: {[id: string]: any};\n editableBookmark: string;\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialBookmarksState: BookmarksState = {\n bookmarks: [],\n bookmarkEntities: {},\n bookmarkPageEntities: {},\n editableBookmark: undefined,\n loaded: false,\n loading: false\n};\n\nexport function bookmarksReducer (state = initialBookmarksState,\n action: fromBookmarks.BookmarksActions): BookmarksState {\n\n switch (action.type) {\n\n case fromBookmarks.LOAD_BOOKMARKS: {\n return {\n ...state,\n loading: true\n };\n }\n\n case fromBookmarks.LOAD_BOOKMARKS_SUCCESS:\n case fromBookmarks.LOAD_BOOKMARKS_FAIL: {\n const bookmarks = action.payload.status === 200 ? action.payload.body : [];\n const bookmarkEntities = generateBookmarkEntities(bookmarks);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarks, 'pageNumber');\n\n return {\n ...state,\n bookmarks,\n bookmarkEntities,\n bookmarkPageEntities,\n loaded: true\n };\n }\n\n case fromBookmarks.CREATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: bookmark,\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = bookmark.id;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.MOVE_BOOKMARK_SUCCESS: {\n const movedBookmarks = generateBookmarkEntities(action.payload);\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n ...movedBookmarks\n };\n return {\n ...state,\n bookmarkEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.DELETE_BOOKMARK_SUCCESS: {\n const bookmarkIds: string[] = action.payload;\n const bookmarkEntities = { ...state.bookmarkEntities };\n const bookmarkPageEntities = { ...state.bookmarkPageEntities };\n const removeBookmarksByPage: {[pageNumber: number]: string[]} = {};\n bookmarkIds.forEach(bookmarkId => {\n if (removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] !== undefined &&\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].length > 0) {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].push(bookmarkId);\n } else {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] = [bookmarkId];\n }\n delete bookmarkEntities[bookmarkId];\n });\n\n Object.entries(removeBookmarksByPage).forEach(\n ([pageNumber, bmrkIds]) => {\n bookmarkPageEntities[pageNumber] = bookmarkPageEntities[pageNumber].filter(bookmarkId => bmrkIds.includes(bookmarkId));\n }\n );\n\n return {\n ...state,\n bookmarkEntities,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.UPDATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: { ...bookmark }\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = undefined;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n }\n return state;\n}\n\nexport const getBookmarks = (state: BookmarksState) => state.bookmarks;\nexport const getBookmarkEnts = (state: BookmarksState) => state.bookmarkEntities;\nexport const getBookmarkPageEnt = (state: BookmarksState) => state.bookmarkPageEntities;\nexport const getEditBookmark = (state: BookmarksState) => state.editableBookmark;\n","import { Action } from '@ngrx/store';\nimport { Redaction } from '../../redaction/services/redaction.model';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport const LOAD_REDACTIONS = '[Redaction] Load Redaction';\nexport const LOAD_REDACTION_SUCCESS = '[Redaction] Load Redaction Success';\nexport const LOAD_REDACTION_FAIL = '[Redaction] Load Redaction Fail';\n\nexport const SAVE_REDACTION = '[Redaction] Save Redaction';\nexport const SAVE_REDACTION_SUCCESS = '[Redaction] Save Redaction Success';\nexport const SAVE_REDACTION_FAIL = '[Redaction] Save Redaction Fail';\n\nexport const DELETE_REDACTION = '[Redaction] Delete Redaction';\nexport const DELETE_REDACTION_SUCCESS = '[Redaction] Delete Redaction Success';\nexport const DELETE_REDACTION_FAIL = '[Redaction] Delete Redaction Fail';\n\nexport const SELECT_REDACTION = '[Redaction] Select Redaction';\n\nexport const REDACT = '[Redaction] Redact';\nexport const REDACT_SUCCESS = '[Redaction] Redact Success';\nexport const REDACT_FAIL = '[Redaction] Redact Fail';\nexport const RESET_REDACTED_DOCUMENT = '[Redaction] Reset Redacted Document';\n\nexport const UNMARK_ALL = '[Redaction] Unmark All';\nexport const UNMARK_ALL_SUCCESS = '[Redaction] Unmark All Success';\n\n\nexport class LoadRedactions implements Action {\n readonly type = LOAD_REDACTIONS;\n constructor(public payload: any) {}\n}\n\nexport class LoadRedactionSuccess implements Action {\n readonly type = LOAD_REDACTION_SUCCESS;\n constructor(public payload: Redaction[]) {}\n}\n\nexport class LoadRedactionFailure implements Action {\n readonly type = LOAD_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SaveRedaction implements Action {\n readonly type = SAVE_REDACTION;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionSuccess implements Action {\n readonly type = SAVE_REDACTION_SUCCESS;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionFailure implements Action {\n readonly type = SAVE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedaction implements Action {\n readonly type = DELETE_REDACTION;\n constructor(public payload: Annotation) {}\n}\n\nexport class DeleteRedactionSuccess implements Action {\n readonly type = DELETE_REDACTION_SUCCESS;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedactionFailure implements Action {\n readonly type = DELETE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SelectRedaction implements Action {\n readonly type = SELECT_REDACTION;\n constructor(public payload: any) {}\n}\n\nexport class Redact implements Action {\n readonly type = REDACT;\n constructor(public payload: { redactions: Redaction[], documentId: string }) {}\n}\n\nexport class RedactSuccess implements Action {\n readonly type = REDACT_SUCCESS;\n constructor(public payload: { blob: Blob, filename: string }) {}\n}\n\nexport class RedactFailure implements Action {\n readonly type = REDACT_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class ResetRedactedDocument implements Action {\n readonly type = RESET_REDACTED_DOCUMENT;\n}\n\n\nexport class UnmarkAll implements Action {\n readonly type = UNMARK_ALL;\n constructor(public payload: string) {}\n}\n\nexport class UnmarkAllSuccess implements Action {\n readonly type = UNMARK_ALL_SUCCESS;\n}\n\nexport type RedactionActions =\n | LoadRedactions | LoadRedactionSuccess | LoadRedactionFailure\n | SaveRedaction | SaveRedactionSuccess | SaveRedactionFailure\n | DeleteRedaction | DeleteRedactionSuccess | DeleteRedactionFailure\n | SelectRedaction\n | Redact | RedactSuccess | RedactFailure | ResetRedactedDocument\n | UnmarkAll | UnmarkAllSuccess;\n","import * as fromRedaction from '../actions/redaction.actions';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport {StoreUtils} from '../store-utils';\nimport {SelectionAnnotation} from '../../annotations/models/event-select.model';\nimport { Redaction } from '../../redaction/services/redaction.model'; // todo rename\n\n\nexport interface RedactionState {\n redactionEntities: { [id: string]: Redaction };\n redactionPageEntities: { [id: string]: any };\n selectedRedaction: SelectionAnnotation | {};\n redactedDocumentInfo: { blob: Blob, filename: string };\n documentId: string;\n}\n\nexport const initialRedactionState: RedactionState = {\n redactionEntities: {},\n redactionPageEntities: {},\n selectedRedaction: {},\n redactedDocumentInfo: undefined,\n documentId: undefined\n};\n\nexport function redactionReducer (\n state = initialRedactionState,\n action: fromRedaction.RedactionActions | fromAnnotations.AnnotationsActions\n): RedactionState {\n switch (action.type) {\n\n case fromRedaction.LOAD_REDACTIONS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n\n case fromRedaction.LOAD_REDACTION_SUCCESS: {\n const payload = action.payload;\n if (payload) {\n const redactionEntities = StoreUtils.generateRedactionEntities(payload);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(payload, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n return {\n ...state\n };\n }\n\n case fromRedaction.SAVE_REDACTION_SUCCESS: {\n const { payload } = action;\n const redactionEntities = {\n ...state.redactionEntities,\n [payload.redactionId]: payload\n };\n const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n\n case fromRedaction.SELECT_REDACTION:\n case fromAnnotations.SELECT_ANNOTATION: {\n return {\n ...state,\n selectedRedaction: action.payload\n };\n }\n\n case fromRedaction.DELETE_REDACTION_SUCCESS: {\n const page = action.payload.page;\n const id = action.payload.redactionId;\n const redactionEntities = {\n ...state.redactionEntities\n };\n delete redactionEntities[id];\n const pageRedactionRemoved = [\n ...state.redactionPageEntities[page].filter(redaction => redaction.redactionId !== id)\n ];\n const redactionPageEntities = {\n ...state.redactionPageEntities,\n [page]: pageRedactionRemoved\n };\n\n return {\n ...state,\n redactionPageEntities,\n redactionEntities,\n };\n }\n\n case fromRedaction.REDACT_SUCCESS: {\n const redactedDocumentInfo = action.payload;\n return {\n ...state,\n ...initialRedactionState,\n redactedDocumentInfo\n };\n }\n\n case fromRedaction.RESET_REDACTED_DOCUMENT: {\n return {\n ...state,\n redactedDocumentInfo: undefined\n };\n }\n\n case fromRedaction.UNMARK_ALL_SUCCESS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n }\n\n return state;\n}\n\n\nexport const getRedactionEnt = (state: RedactionState) => state.redactionEntities;\nexport const getPageEnt = (state: RedactionState) => state.redactionPageEntities;\nexport const getSelectedRedaction = (state: RedactionState) => state.selectedRedaction;\nexport const getRedactedDocInfo = (state: RedactionState) => state.redactedDocumentInfo;\n","import * as fromIcpActions from '../actions/icp.actions';\nimport { IcpSession, IcpState } from '../../icp/icp.interfaces';\n\nexport const initialIcpSessionState: IcpState = {\n session: null,\n presenter: null,\n client: null,\n participants: []\n};\n\nexport function icpReducer (state = initialIcpSessionState,\n action: fromIcpActions.IcpActions): IcpState {\n\n switch (action.type) {\n\n case fromIcpActions.SET_CASE_ID: {\n const caseId = action.payload;\n const session = {...state.session, caseId};\n return {\n ...state,\n session\n };\n }\n\n case fromIcpActions.ICP_SOCKET_SESSION_JOINED: {\n const session: IcpSession = action.payload.session;\n const participantInfo = action.payload.participantInfo;\n return {\n ...state,\n session,\n client: participantInfo.client,\n presenter: participantInfo.presenter,\n };\n }\n\n case fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED: {\n const updatedParticipants: any = action.payload;\n const participants = Object.keys(updatedParticipants)\n .map(id => ({ id: id, username: updatedParticipants[id] }));\n return {\n ...state,\n participants\n };\n }\n\n case fromIcpActions.ICP_PRESENTER_UPDATED: {\n const presenter = action.payload;\n return {\n ...state, presenter\n };\n }\n\n case fromIcpActions.LEAVE_ICP_SOCKET_SESSION: {\n return {\n ...state,\n ...initialIcpSessionState\n };\n }\n }\n return state;\n}\n\nexport const getIcpSession = (state: IcpState) => state.session;\nexport const getPresenter = (state: IcpState) => state.presenter;\nexport const getClient = (state: IcpState) => state.client;\nexport const getParticipants = (state: IcpState) => state.participants;\n","import { ActionReducerMap, createFeatureSelector } from '@ngrx/store';\nimport * as fromDocument from './document.reducer';\nimport * as fromAnnotation from './annotations.reducer';\nimport * as fromTags from './tags.reducer';\nimport * as fromBookmarks from './bookmarks.reducer';\nimport * as fromRedaction from './redaction.reducer';\nimport * as fromIcp from './icp.reducer';\nimport { IcpState } from '../../icp/icp.interfaces';\n\nexport interface State {\n document: fromDocument.DocumentState;\n annotations: fromAnnotation.AnnotationSetState;\n tags: fromTags.TagsState;\n bookmarks: fromBookmarks.BookmarksState;\n redactions: fromRedaction.RedactionState;\n icp: IcpState;\n}\n\nexport const reducers: ActionReducerMap<State> = {\n document: fromDocument.docReducer,\n annotations: fromAnnotation.reducer,\n tags: fromTags.tagsReducer,\n bookmarks: fromBookmarks.bookmarksReducer,\n redactions: fromRedaction.redactionReducer,\n icp: fromIcp.icpReducer,\n};\n\nexport const getMVState = createFeatureSelector<State>('media-viewer');\n\nexport * from './document.reducer';\nexport * from './annotations.reducer';\nexport * from './tags.reducer';\nexport * from './bookmarks.reducer';\nexport * from './redaction.reducer';\nexport * from './icp.reducer';\n","import { createSelector } from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromDocument from '../reducers/document.reducer';\n\nexport const getDocumentState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.document\n);\n\nexport const getPages = createSelector(\n getDocumentState,\n fromDocument.getDocPages\n);\n\nexport const getPageList = createSelector(\n getPages,\n (pages) => Object.values(pages)\n);\n\nexport const getDocumentId = createSelector(\n getDocumentState,\n fromDocument.getDocId\n);\n\nexport const getPdfPosition = createSelector(\n getDocumentState,\n fromDocument.getPdfPos\n);\n\nexport const getPageDifference = createSelector(\n getDocumentState,\n fromDocument.getHasDifferentPageSizes\n);\n\nexport const getConvertedDocument = createSelector(\n getDocumentState,\n fromDocument.getConvertedDocument\n);\n\nexport const getRotation = createSelector(\n getDocumentState,\n fromDocument.getRotation\n);\n\nexport const rotationLoaded = createSelector(\n getDocumentState,\n fromDocument.rotationLoaded\n);\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Rectangle } from '../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\n\nexport interface Highlight {\n page: number;\n rectangles: Rectangle[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ViewerEventService {\n\n public readonly textHighlight = new Subject<Highlight>();\n public readonly boxHighlight = new Subject<Highlight>();\n public readonly ctxToolbarCleared = new Subject();\n public readonly navigationEvent = new Subject<any[]>();\n\n constructor() {}\n\n public textSelected(selectionData: Highlight): void {\n this.textHighlight.next(selectionData);\n }\n\n public boxSelected(selectionData: Highlight): void {\n this.boxHighlight.next(selectionData);\n }\n\n public clearCtxToolbar(): void {\n this.ctxToolbarCleared.next();\n }\n\n\n public goToDestination(destination: any[]) {\n this.navigationEvent.next(destination);\n }\n}\n","export enum IcpEvents {\n SESSION_JOINED = 'IcpClientJoinedSession',\n CLIENT_DISCONNECTED = 'IcpClientDisconnectedFromSession',\n NEW_PARTICIPANT_JOINED = 'IcpNewParticipantJoinedSession',\n REMOVE_PARTICIPANT = 'IcpRemoveParticipantFromList',\n PARTICIPANTS_UPDATED = 'IcpParticipantsListUpdated',\n UPDATE_PRESENTER = 'IcpNewPresenterStartsPresenting',\n PRESENTER_UPDATED = 'IcpPresenterUpdated',\n UPDATE_SCREEN = 'IcpUpdateScreen',\n SCREEN_UPDATED = 'IcpScreenUpdated',\n SESSION_JOIN = 'IcpClientJoinSession',\n SESSION_LEAVE = 'IcpClientLeaveSession',\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, from, Observable, of, Subject, Subscription } from 'rxjs';\nimport { IcpEvents } from './icp.events';\nimport { IcpParticipant } from './icp.interfaces';\n\n@Injectable()\nexport class SocketService implements OnDestroy {\n\n private socket: WebSocket;\n subscription: Subscription;\n connected$ = new BehaviorSubject<boolean>(false);\n sessionJoined$ = new Subject();\n presenterUpdated$ = new Subject();\n clientDisconnected$ = new Subject();\n participantUpdated$ = new Subject();\n newParticipantJoined$ = new Subject();\n screenUpdated$ = new Subject();\n\n constructor() { }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n connect(url: string) {\n return this.getSocketClient(url).subscribe((socket: WebSocket) => {\n\n socket.onopen = (event: Event) => {\n this.connected$.next(true);\n };\n\n socket.onmessage = (event: MessageEvent) => {\n console.log('onmessage');\n const eventData = JSON.parse(event.data);\n if (eventData.data && eventData.data.eventName) {\n this.messageEventHandller(eventData.data.eventName, eventData.data.data);\n }\n };\n\n socket.onerror = (event: Event) => {\n console.log('onerror');\n };\n\n socket.onclose = (event: CloseEvent) => {\n console.log('onclose');\n };\n });\n }\n\n connected(): Observable<boolean> {\n return this.connected$.asObservable();\n }\n\n join(session) {\n this.emit(IcpEvents.SESSION_JOIN, session);\n }\n\n leave(session) {\n this.emit(IcpEvents.SESSION_LEAVE, session);\n this.subscription.unsubscribe();\n }\n\n emit(event: string, data: any) {\n this.socket.send(JSON.stringify({\n type: 'event',\n event,\n data\n }));\n }\n\n listen(event: IcpEvents): Observable<any> {\n switch (event) {\n case IcpEvents.SESSION_JOINED: {\n return this.sessionJoined$.asObservable();\n }\n case IcpEvents.PRESENTER_UPDATED: {\n return this.presenterUpdated$.asObservable();\n }\n case IcpEvents.CLIENT_DISCONNECTED: {\n return this.clientDisconnected$.asObservable();\n }\n case IcpEvents.PARTICIPANTS_UPDATED: {\n return this.participantUpdated$.asObservable();\n }\n case IcpEvents.NEW_PARTICIPANT_JOINED: {\n return this.newParticipantJoined$.asObservable();\n }\n case IcpEvents.SCREEN_UPDATED: {\n return this.screenUpdated$.asObservable();\n }\n default: {\n break;\n }\n }\n }\n\n messageEventHandller(eventName: string, data: any) {\n switch (eventName) {\n case IcpEvents.SESSION_JOINED: {\n this.sessionJoined$.next(data);\n break;\n }\n case IcpEvents.PRESENTER_UPDATED: {\n this.presenterUpdated$.next(data);\n break;\n }\n case IcpEvents.CLIENT_DISCONNECTED: {\n this.clientDisconnected$.next();\n break;\n }\n case IcpEvents.PARTICIPANTS_UPDATED: {\n this.participantUpdated$.next(data);\n break;\n }\n case IcpEvents.NEW_PARTICIPANT_JOINED: {\n this.newParticipantJoined$.next();\n break;\n }\n case IcpEvents.SCREEN_UPDATED: {\n this.screenUpdated$.next(data);\n break;\n }\n }\n }\n\n getSocketClient(url: string): Observable<WebSocket> {\n this.socket = new WebSocket(url, 'json.webpubsub.azure.v1');\n return of(this.socket);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SocketService } from './socket.service';\nimport { IcpParticipant, IcpScreenUpdate, IcpSession } from './icp.interfaces';\nimport { IcpEvents } from './icp.events';\n\n@Injectable()\nexport class IcpUpdateService {\n\n session: IcpSession;\n\n constructor(private socket: SocketService) { }\n\n joinSession(username: string, session: IcpSession) {\n this.session = session;\n this.socket.connect(session.connectionUrl);\n this.socket.connected().subscribe(isConnected => {\n if (isConnected) {\n this.socket.join({ ...this.session, username });\n }\n });\n return this.socket.listen(IcpEvents.SESSION_JOINED);\n }\n\n leaveSession() {\n this.socket.leave(this.session);\n }\n\n newParticipantJoined() {\n return this.socket.listen(IcpEvents.NEW_PARTICIPANT_JOINED);\n }\n\n clientDisconnected() {\n return this.socket.listen(IcpEvents.CLIENT_DISCONNECTED);\n }\n\n removeParticipant(participantId) {\n this.socket.emit(IcpEvents.REMOVE_PARTICIPANT, {\n participantId: participantId, caseId: this.session.caseId\n });\n }\n\n participantListUpdated() {\n return this.socket.listen(IcpEvents.PARTICIPANTS_UPDATED);\n }\n\n updatePresenter(presenter: IcpParticipant) {\n this.socket.emit(IcpEvents.UPDATE_PRESENTER, {\n ...this.session, presenterId: presenter.id, presenterName: presenter.username\n });\n }\n\n presenterUpdated() {\n return this.socket.listen(IcpEvents.PRESENTER_UPDATED);\n }\n\n updateScreen(screen: IcpScreenUpdate) {\n const update = { body: screen, caseId: this.session.caseId };\n this.socket.emit(IcpEvents.UPDATE_SCREEN, update);\n }\n\n screenUpdated() {\n return this.socket.listen(IcpEvents.SCREEN_UPDATED);\n }\n}\n","import { createSelector } from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromIcp from '../reducers/icp.reducer';\n\nexport const getIcpState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.icp\n);\n\nexport const getIcpSession = createSelector(\n getIcpState,\n fromIcp.getIcpSession\n);\n\nexport const getCaseId = createSelector(\n getIcpSession,\n session => session === null ? null : session.caseId\n);\n\nexport const getPresenter = createSelector(\n getIcpState,\n fromIcp.getPresenter\n);\n\nexport const getPresenterName = createSelector(\n getPresenter,\n presenter => presenter === null ? null : presenter.username\n);\n\nexport const getClient = createSelector(\n getIcpState,\n fromIcp.getClient\n);\n\nexport const isPresenter = createSelector(\n getPresenter,\n getClient,\n (presenter, client) => presenter === null ? undefined : presenter.id === client.id // isPresenter is called when = false.\n);\n\nexport const getParticipants = createSelector(\n getIcpState,\n fromIcp.getParticipants\n);\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpState, IcpScreenUpdate, IcpSession, IcpParticipant } from './icp.interfaces';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { PdfPosition } from '../store/reducers/document.reducer';\n\n@Injectable()\nexport class IcpPresenterService {\n\n session: IcpSession;\n presenter: IcpParticipant;\n pdfPosition: PdfPosition;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n update(isPresenter: boolean) {\n if (isPresenter) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.store.pipe(select(fromDocSelectors.getPdfPosition)).subscribe(pdfPosition => {\n this.pdfPosition = pdfPosition;\n this.onPositionUpdate(pdfPosition);\n });\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => {\n this.presenter = presenter;\n }));\n this.$subscription.add(this.socketService.newParticipantJoined().subscribe(() => this.onNewParticipantJoined()));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n onPositionUpdate(pdfPosition: PdfPosition) {\n const screen: IcpScreenUpdate = { pdfPosition, document: undefined };\n this.socketService.updateScreen(screen);\n }\n\n onNewParticipantJoined() {\n this.onPositionUpdate(this.pdfPosition);\n this.socketService.updatePresenter(this.presenter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { take } from 'rxjs/operators';\nimport { IcpState, IcpSession } from './icp.interfaces';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\n\n@Injectable()\nexport class IcpFollowerService {\n\n session: IcpSession;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n\n update(isFollower: boolean) {\n if (isFollower) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.socketService.screenUpdated()\n .subscribe(screen => this.followScreenUpdate(screen));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n followScreenUpdate({ pdfPosition }) {\n if (pdfPosition) {\n this.viewerEvents.goToDestination([\n pdfPosition.pageNumber - 1,\n { 'name': 'XYZ' },\n pdfPosition.left,\n pdfPosition.top\n ]);\n }\n this.store.pipe(select(fromDocSelectors.getPdfPosition), take(1))\n .subscribe(position => {\n const rotationDelta = (pdfPosition.rotation - position.rotation) % 360;\n if (rotationDelta !== 0) {\n this.toolbarEvents.rotate(rotationDelta);\n }\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { IcpParticipant, IcpState } from './icp.interfaces';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpPresenterService } from './icp-presenter.service';\nimport { IcpFollowerService } from './icp-follower.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpActions from '../store/actions/icp.actions';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { filter, take } from 'rxjs/operators';\n\n@Injectable()\nexport class IcpService implements OnDestroy {\n\n caseId: string;\n client: IcpParticipant;\n presenter: IcpParticipant;\n isPresenter: boolean;\n\n subscription: Subscription;\n sessionSubscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private readonly presenterSubscriptions: IcpPresenterService,\n private readonly followerSubscriptions: IcpFollowerService,\n private store: Store<IcpState>) {\n this.subscription = this.store.pipe(select(fromIcpSelectors.getCaseId), filter(value => !!value)).subscribe(caseId => {\n this.caseId = caseId;\n });\n this.subscription.add(this.toolbarEvents.icp.sessionLaunch.subscribe(() => {\n if (this.caseId) { this.launchSession(); }\n }));\n }\n\n ngOnDestroy() {\n this.unsubscribeSession();\n this.subscription.unsubscribe();\n }\n\n launchSession() {\n this.store.dispatch(new fromIcpActions.LoadIcpSession(this.caseId));\n this.subscription.add(this.store.pipe(select(fromIcpSelectors.getIcpSession),\n filter(value => !!value && Object.keys(value).length > 1 ),\n take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));\n }\n\n setUpSessionSubscriptions() {\n this.sessionSubscription = this.toolbarEvents.icp.becomingPresenter.subscribe(() => this.becomePresenter());\n this.sessionSubscription.add(this.toolbarEvents.icp.stoppingPresenting.subscribe(() => this.stopPresenting()));\n this.sessionSubscription.add(this.toolbarEvents.icp.sessionExitConfirmed.subscribe(() => this.leavePresentation()));\n this.sessionSubscription.add(\n this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => this.presenter = presenter )\n );\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.getClient)).subscribe(client => this.client = client));\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.isPresenter)).subscribe(isPresenter => {\n this.isPresenter = isPresenter;\n this.presenterSubscriptions.update(isPresenter);\n this.followerSubscriptions.update(!isPresenter);\n }));\n this.sessionSubscription.add(this.socketService.clientDisconnected().subscribe(cli => this.clientDisconnected(cli)));\n this.sessionSubscription.add(this.socketService.presenterUpdated().subscribe(pres => {\n this.store.dispatch(new fromIcpActions.IcpPresenterUpdated(pres));\n }));\n this.sessionSubscription.add(this.socketService.participantListUpdated().subscribe(participants => {\n this.store.dispatch(new fromIcpActions.IcpParticipantListUpdated(participants));\n }));\n }\n\n unsubscribeSession() {\n this.presenterSubscriptions.update(false);\n this.followerSubscriptions.update(false);\n this.sessionSubscription.unsubscribe();\n }\n\n leavePresentation() {\n if (this.isPresenter) {\n this.stopPresenting();\n }\n this.removeParticipant(this.client.id);\n this.socketService.leaveSession();\n this.store.dispatch(new fromIcpActions.LeaveIcpSocketSession());\n this.unsubscribeSession();\n }\n\n stopPresenting() {\n const presenter: IcpParticipant = {username: '', id: ''};\n this.socketService.updatePresenter(presenter);\n }\n\n becomePresenter() {\n this.socketService.updatePresenter(this.client);\n }\n\n clientDisconnected(client) {\n if (client === this.presenter.id) {\n this.stopPresenting();\n }\n this.removeParticipant(client);\n }\n\n removeParticipant(participantId) {\n this.socketService.removeParticipant(participantId);\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { filter, tap, throttleTime } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\n\nimport { DocumentLoadProgress, PageEvent, PdfJsWrapper } from './pdf-js/pdf-js-wrapper';\nimport { PdfJsWrapperFactory } from './pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { PrintService } from '../../print.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { CommentSetComponent } from '../../annotations/comment-set/comment-set.component';\nimport { Outline } from './side-bar/outline-item/outline.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { PdfPositionUpdate } from '../../store/actions/document.actions';\nimport * as fromTagActions from '../../store/actions/tag.actions';\nimport { SetCaseId } from '../../store/actions/icp.actions';\nimport * as fromDocumentsSelector from '../../store/selectors/document.selectors';\nimport { IcpState } from '../../icp/icp.interfaces';\nimport { ViewerEventService } from '../viewer-event.service';\nimport { IcpService } from '../../icp/icp.service';\n\n@Component({\n selector: 'mv-pdf-viewer',\n templateUrl: './pdf-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class PdfViewerComponent implements AfterContentInit, OnChanges, OnDestroy {\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() pdfViewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n @Input() downloadUrl: string;\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() enableICP: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n pageHeights = [];\n rotation = 0;\n zoom = 1;\n\n @Input() caseId: string;\n\n highlightMode: Observable<boolean>;\n drawMode: BehaviorSubject<boolean>;\n\n documentOutline: Outline;\n loadingDocument = false;\n loadingDocumentProgress: number;\n errorMessage: string;\n hasDifferentPageSize = false;\n\n @ViewChild('viewerContainer', {static: true}) viewerContainer: ElementRef<HTMLDivElement>;\n @ViewChild('pdfViewer', {static: false}) pdfViewer: ElementRef<HTMLDivElement>;\n\n private pdfWrapper: PdfJsWrapper;\n private $subscription: Subscription;\n private viewerException: ViewerException;\n showCommentsPanel: boolean;\n showIcpParticipantsList: boolean;\n enableGrabNDrag = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private icpStore: Store<IcpState>,\n private readonly pdfJsWrapperFactory: PdfJsWrapperFactory,\n private readonly printService: PrintService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private icpService: IcpService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n ) {\n this.highlightMode = toolbarEvents.highlightModeSubject.pipe(tap(() => {\n this.store.dispatch(new fromTagActions.ClearFilterTags());\n }));\n this.drawMode = toolbarEvents.drawModeSubject;\n }\n\n async ngAfterContentInit(): Promise<void> {\n this.pdfWrapper.documentLoadProgress.subscribe(v => this.onDocumentLoadProgress(v));\n this.pdfWrapper.documentLoaded.subscribe(() => this.onDocumentLoaded());\n this.pdfWrapper.documentLoadFailed.subscribe((error) => this.onDocumentLoadFailed(error));\n this.pdfWrapper.outlineLoaded.subscribe(outline => this.documentOutline = outline);\n this.pdfWrapper.pageRendered.subscribe((event) => this.updatePages(event));\n this.$subscription = this.toolbarEvents.printSubject\n .subscribe(() => this.printService.printDocumentNatively(this.url));\n this.$subscription.add(this.toolbarEvents.downloadSubject.subscribe(() =>\n this.pdfWrapper.downloadFile(this.downloadUrl || this.url, this.downloadFileName)\n ));\n this.$subscription.add(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument(rotate)));\n this.$subscription.add(this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.searchSubject.subscribe(search => this.pdfWrapper.search(search)));\n this.$subscription.add(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.pdfWrapper.setPageNumber(pageNumber))\n );\n this.$subscription.add(\n this.toolbarEvents.changePageByDeltaSubject.subscribe(pageNumber => this.pdfWrapper.changePageNumber(pageNumber))\n );\n this.$subscription.add(this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag));\n this.$subscription.add(this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.showCommentsPanel = toggle;\n })\n );\n this.$subscription.add(this.viewerEvents.navigationEvent.subscribe(dest => this.goToDestination(dest)));\n this.$subscription.add(\n this.toolbarEvents.icp.participantsListVisible.subscribe(toggle => this.showIcpParticipantsList = toggle)\n );\n this.$subscription.add(this.pdfWrapper.positionUpdated.asObservable()\n .pipe(throttleTime(500, asyncScheduler, { leading: true, trailing: true }))\n .subscribe(event => this.store.dispatch(new PdfPositionUpdate(event.location)))\n );\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (!this.pdfWrapper) {\n this.pdfWrapper = this.pdfJsWrapperFactory.create(this.viewerContainer);\n }\n if (changes.url && this.pdfWrapper) {\n await this.loadDocument();\n if (this.enableRedactions) {\n this.toolbarEvents.redactionMode.pipe(filter(value => !!value))\n .subscribe(() => this.resetRotation());\n }\n }\n if (changes.caseId) {\n this.icpStore.dispatch(new SetCaseId(this.caseId));\n }\n }\n\n resetRotation() {\n if (this.hasDifferentPageSize) {\n this.pdfWrapper.resetRotation(0);\n this.rotation = 0;\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n private async loadDocument() {\n this.initDocumentProgress();\n await this.pdfWrapper.loadDocument(this.url);\n this.documentTitle.emit(this.pdfWrapper.getCurrentPDFTitle());\n this.setPageHeights();\n this.$subscription.add(this.store.pipe(select(fromDocumentsSelector.getPageDifference))\n .subscribe(hasDifferentPageSie => this.hasDifferentPageSize = hasDifferentPageSie));\n }\n\n private onDocumentLoadProgress(progress: DocumentLoadProgress) {\n if (progress.total) {\n this.loadingDocumentProgress = Math.min(100, Math.ceil(progress.loaded / progress.total * 100));\n }\n }\n\n private onDocumentLoaded() {\n this.loadingDocument = false;\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n }\n\n private onDocumentLoadFailed(error: Error) {\n this.loadingDocument = false;\n this.viewerException = new ViewerException(error.name, { message: error.message });\n this.errorMessage = `Could not load the document \"${this.url}\"`;\n\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.pdfViewerException.emit(this.viewerException);\n }\n\n private updatePages(event: PageEvent[]) {\n if (this.enableAnnotations) {\n this.store.dispatch(new fromDocumentActions.AddPages(event));\n }\n }\n\n @Input()\n set searchBarHidden(hidden: boolean) {\n if (this.pdfWrapper && hidden) {\n this.pdfWrapper.clearSearch();\n }\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n\n private rotateDocument(rotation: number) {\n const pageNumber = this.pdfWrapper.getPageNumber();\n this.pdfWrapper.rotate(rotation);\n this.pdfWrapper.setPageNumber(pageNumber);\n this.rotation = (this.rotation + rotation) % 360;\n\n this.setPageHeights();\n }\n\n private initDocumentProgress() {\n this.loadingDocument = true;\n this.loadingDocumentProgress = null;\n this.errorMessage = null;\n }\n\n private setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.setZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(zoomFactor);\n this.setPageHeights();\n }\n }\n\n private stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.stepZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(this.zoom, zoomFactor);\n this.setPageHeights();\n }\n }\n\n setPageHeights() {\n this.pageHeights = [];\n const pdfViewerChildren = this.pdfViewer.nativeElement.children;\n for (let i = 0; i < pdfViewerChildren.length; i++) {\n this.pageHeights.push(pdfViewerChildren[i].clientHeight);\n }\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) {\n return 5;\n }\n if (newZoomValue < 0.1) {\n return 0.1;\n }\n return +newZoomValue.toFixed(2);\n }\n\n private goToDestination(destination: any[]) {\n this.pdfWrapper.navigateTo(destination);\n }\n\n getCurrentPageNumber(): number {\n return this.pdfWrapper.getPageNumber();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerUtilService {\n constructor(\n private http: HttpClient) {\n }\n\n public validateFile(url: string) {\n return this.http.head(url);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PrintService } from '../../print.service';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocument from '../../store/actions/document.actions';\nimport * as fromAnnotationActions from '../../store/actions/annotation.actions';\nimport { ViewerEventService } from '../viewer-event.service';\n\n@Component({\n selector: 'mv-image-viewer',\n templateUrl: './image-viewer.component.html'\n})\nexport class ImageViewerComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() imageViewerException = new EventEmitter<ViewerException>();\n\n errorMessage: string;\n\n @ViewChild('img', {static: false}) img: ElementRef;\n rotation = 0;\n zoom = 1;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n private response: Subscription;\n\n showCommentsPanel: boolean;\n enableGrabNDrag = false;\n imageHeight: number;\n imageWidth: number;\n imageLeft: number;\n imageTop: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly viewerUtilService: ViewerUtilService,\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private viewerEvents: ViewerEventService,\n ) { }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.rotateSubject.subscribe(rotation => this.rotateImage(rotation)),\n this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)),\n this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)),\n this.toolbarEvents.printSubject.subscribe(() => this.printService.printDocumentNatively(this.url)),\n this.toolbarEvents.downloadSubject.subscribe(() => this.download()),\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag),\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => this.showCommentsPanel = toggle)\n );\n }\n\n @HostListener('mousedown', ['$event'])\n onImageViewerClick(event: MouseEvent) {\n const classNme = (event.target as Element).className;\n if (classNme.startsWith('pageContainer')) {\n this.store.dispatch(\n new fromAnnotationActions.SelectedAnnotation({\n annotationId: '',\n selected: false,\n editable: false,\n })\n );\n this.viewerEvents.clearCtxToolbar();\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n if (this.response) {\n this.response.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.errorMessage = null;\n this.toolbarEvents.reset();\n }\n }\n\n private rotateImage(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.initAnnoPage(this.img.nativeElement);\n }\n\n private async setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private async stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(this.zoom, zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private download() {\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = this.url;\n a.download = this.downloadFileName;\n a.click();\n a.remove();\n }\n\n // the returned promise is a work-around\n setZoomValue(zoomValue) {\n return new Promise((resolve) => {\n this.zoom = zoomValue;\n this.toolbarEvents.zoomValueSubject.next(zoomValue);\n resolve(true);\n });\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) { return 5; }\n if (newZoomValue < 0.1) { return 0.1; }\n return +newZoomValue.toFixed(2);\n }\n\n onLoadError(url) {\n this.response = this.viewerUtilService.validateFile(url)\n .subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n { httpResponseCode: error.status, message: error.message });\n });\n\n this.errorMessage = `Could not load the image \"${this.url}\"`;\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.imageViewerException.emit(this.viewerException);\n }\n\n onLoad(img: any) {\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n this.initAnnoPage(img);\n }\n\n initAnnoPage(img: any) {\n this.imageHeight = this.rotation % 180 !== 0 ? img.offsetWidth : img.offsetHeight;\n this.imageWidth = this.rotation % 180 !== 0 ? img.offsetHeight : img.offsetWidth;\n this.imageLeft = this.rotation % 180 !== 0 ? img.offsetTop : img.offsetLeft;\n this.imageTop = this.rotation % 180 !== 0 ? img.offsetLeft : img.offsetTop;\n const payload: any = [{\n div: {\n scrollHeight: this.imageHeight,\n scrollWidth: this.imageWidth,\n offsetLeft: this.imageLeft,\n },\n pageNumber: 1,\n scale: this.zoom,\n rotation: this.rotation,\n id: 1\n }];\n\n this.store.dispatch(new fromDocument.AddPages(payload));\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\n\n@Component({\n selector: 'mv-unsupported-viewer',\n templateUrl: './unsupported-viewer.component.html'\n})\nexport class UnsupportedViewerComponent implements OnInit, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() typeException: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n @Output() unsupportedViewerException = new EventEmitter<ViewerException>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerUtilService: ViewerUtilService,\n ) {}\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.downloadSubject.subscribe(() => this.downloadLink.nativeElement.click()),\n this.viewerUtilService.validateFile(this.url).subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n { httpResponseCode: error.status, message: error.message });\n }\n )\n );\n\n this.loadStatus.emit(ResponseType.UNSUPPORTED);\n\n if (!this.typeException) {\n this.unsupportedViewerException.emit(this.viewerException);\n }\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Injectable()\nexport class AnnotationApiService {\n\n public annotationApiUrl = '/em-anno';\n\n private annotationSetBaseUrl = '/annotation-sets';\n private annotationBaseUrl = '/annotations';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getAnnotationSet(documentId: string): Observable<any> { // todo add model\n const fixedUrl = `${this.annotationSetsFullUrl}/filter?documentId=${documentId}`;\n return this.httpClient\n .get<AnnotationSet>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public postAnnotationSet(body: Partial<AnnotationSet>): Observable<AnnotationSet> {\n return this.httpClient\n .post<AnnotationSet>(this.annotationSetsFullUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public getComments(annotationSet: Observable<AnnotationSet>): Observable<Comment[]> {\n return annotationSet\n .pipe(\n map(this.sortAnnotations),\n map(this.extractComments)\n );\n }\n\n /**\n * Sort the annotations in the response by page and then y position of their first rectangle\n */\n private sortAnnotations(r: AnnotationSet): Annotation[] {\n return r.annotations.sort((a, b) => a.page !== b.page ? a.page - b.page : a.rectangles[0].y - b.rectangles[0].y);\n }\n\n private extractComments(annotations: Annotation[]) {\n return [].concat(...annotations.map(a => a.comments));\n }\n\n public deleteAnnotation(annotationId: string): Observable<null> {\n const url = `${this.annotationFullsUrl}/${annotationId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public postAnnotation(annotation: Partial<Annotation>): Observable<Annotation> {\n return this.httpClient\n .post<Annotation>(this.annotationFullsUrl, annotation, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n get annotationSetsFullUrl() {\n return this.annotationApiUrl + this.annotationSetBaseUrl;\n }\n\n get annotationFullsUrl() {\n return this.annotationApiUrl + this.annotationBaseUrl;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CommentSetComponent } from '../comment-set.component';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { CommentComponent } from './comment.component';\n\n// TODO: replace by NgRx\n@Injectable()\nexport class CommentService {\n\n public readonly unsavedChanges = new Subject<boolean>();\n commentSetComponent: CommentSetComponent;\n\n setCommentSet(commentSetComponent) {\n this.commentSetComponent = commentSetComponent;\n }\n\n onCommentChange(changes: boolean): void {\n this.unsavedChanges.next(changes);\n }\n\n getUnsavedChanges(): Observable<boolean> {\n return this.unsavedChanges.asObservable();\n }\n\n hasUnsavedComments(annotation: Annotation): boolean {\n if (annotation.comments.length > 0) {\n const comment = this.getComment(annotation);\n return comment.hasUnsavedChanges;\n }\n return false;\n }\n\n updateUnsavedCommentsStatus(annotation: Annotation, hasUnsavedChanges: boolean): void {\n const comment = this.getComment(annotation);\n comment.hasUnsavedChanges = hasUnsavedChanges;\n this.allCommentsSaved();\n }\n\n getComment(annotation: Annotation): CommentComponent {\n return this.commentSetComponent.commentComponents\n .find(c => c.comment.annotationId === annotation.comments[0].annotationId);\n }\n\n resetCommentSet(): void {\n this.commentSetComponent = null;\n }\n\n allCommentsSaved(): void {\n this.onCommentChange(this.commentSetComponent.commentComponents.some(comment => comment.hasUnsavedChanges === true));\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromTags from '../reducers/tags.reducer';\n\nexport const getTagsRootState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.tags\n);\n\nexport const getTagEntities = createSelector(\n getTagsRootState,\n fromTags.getTagNameEnt\n);\n\nexport const getTagFilters = createSelector(\n getTagsRootState,\n fromTags.getFilters\n);\n\nexport const getTagFiltered = createSelector(\n getTagsRootState,\n fromTags.getFilteredComments\n);\n\nexport const getFilteredPageEntities = createSelector(\n getTagsRootState,\n fromTags.getFilteredPageEnt\n);\n\nexport const getAllTagsArr = createSelector(\n getTagEntities,\n (tagEnt) => Object.keys(tagEnt).map(key => {\n return {\n key,\n length: Object.keys(tagEnt[key]).length\n };\n })\n);\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromAnnotations from '../reducers/annotations.reducer';\nimport * as fromTags from './tag.selectors';\nimport * as fromDocument from './document.selectors';\nimport {StoreUtils} from '../store-utils';\nimport moment from 'moment-timezone';\nexport const getAnnotationsSetState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.annotations\n);\n\nexport const getAnnotationEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoEnt\n);\n\nexport const getSet = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoSet\n);\n\nexport const getDocumentIdSetId = createSelector(\n getSet,\n (annoSet) => {\n return {\n documentId: annoSet.documentId,\n annotationSetId: annoSet.id\n };\n }\n);\n\nexport const getAnnotationSet = createSelector(\n getAnnotationEntities,\n getSet,\n (entities, set) => {\n return {\n ...set,\n annotations: Object.keys(entities).map(key => entities[key])\n };\n }\n);\n\nexport const getSelectedAnnotation = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSelectedAnno\n);\n\nexport const getCommentEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getCommentEnts\n);\n\n\nexport const getPageEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoPageEnt\n);\n\nexport const getComponentSearchQueries = createSelector(\n getAnnotationsSetState,\n fromAnnotations.commentSearchQ\n);\n\nexport const getComponentSearchText = createSelector(\n getComponentSearchQueries,\n (queries) => queries.commentSearch\n);\n\nexport const getCommentSummaryFilters = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSummaryFilters\n);\n\nexport const getAnnoPerPage = createSelector(\n fromDocument.getPages,\n getPageEntities,\n fromTags.getFilteredPageEntities,\n (pages, pageEnt, filteredPageEnt) => {\n const isFiltered: boolean = !!Object.keys(filteredPageEnt).length;\n const entities = isFiltered ? filteredPageEnt : pageEnt;\n if (pages) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: entities[key] ? entities[key] : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n\nexport const getCommentsArray = createSelector(\n getCommentEntities,\n fromDocument.getPages,\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (commentEnts, pages, annoEnts, filtered) => {\n if (commentEnts && annoEnts && pages[1]) {\n const isFiltered: boolean = !!Object.keys(filtered).length;\n const com = isFiltered ? filtered : commentEnts;\n return Object.keys(com).map(key => {\n const page = annoEnts[key].page;\n return {\n ...commentEnts[key],\n page,\n pages\n };\n });\n }\n }\n);\n\nexport const getCommentSummary = createSelector(\n getCommentsArray,\n getCommentSummaryFilters,\n (commentSummary = [], filters) => {\n const comments = StoreUtils.filterCommentsSummary(commentSummary, filters.filters);\n if (comments.length) {\n const savedComments = comments.filter((comment) => {\n return comment.createdByDetails !== undefined;\n }\n );\n return savedComments.map((comment) => {\n return {\n page: comment.page,\n user: comment.createdByDetails.forename.concat(' ').concat(comment.createdByDetails.surname),\n date: moment(comment.lastModifiedDate).format('D MMMM YYYY'),\n tags: comment.tags,\n comment: comment.content\n };\n });\n }\n return [''];\n }\n);\n\n\nexport const getFilteredAnnotations = createSelector(\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (annoEnt, filters) => {\n const isFiltered: boolean = !!Object.keys(filters).length;\n const anno = isFiltered ? filters : annoEnt;\n return Object.keys(anno).map(key => annoEnt[key])\n .filter(annotation => annotation.comments && annotation.comments.length > 0);\n }\n);\n","import {\n AfterContentInit, AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport {\n defaultImageOptions, defaultMultimediaOptions,\n defaultPdfOptions,\n defaultUnsupportedOptions,\n ToolbarButtonVisibilityService\n} from './toolbar/toolbar-button-visibility.service';\nimport { AnnotationSet } from './annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from './toolbar/toolbar-event.service';\nimport { AnnotationApiService } from './annotations/services/annotation-api/annotation-api.service';\nimport { ResponseType, ViewerException } from './viewers/viewer-exception.model';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport 'hammerjs';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from './store/reducers/reducers';\nimport * as fromAnnoSelectors from './store/selectors/annotation.selectors';\nimport * as fromDocumentsSelector from './store/selectors/document.selectors';\nimport * as fromAnnoActions from './store/actions/annotation.actions';\nimport * as fromRedactActions from './store/actions/redaction.actions';\nimport * as fromDocumentActions from './store/actions/document.actions';\n\nenum CoreContentTypes {\n PDF = 'pdf',\n IMAGE = 'image'\n}\n\nenum MultimediaContentTypes {\n MP4 = 'mp4',\n MP3 = 'mp3',\n}\n\nenum ConvertibleContentTypes {\n EXCEL = 'excel',\n WORD = 'word',\n POWERPOINT = 'powerpoint',\n TXT = 'txt',\n RTF = 'rtf'\n}\n\n@Component({\n selector: 'mv-media-viewer',\n templateUrl: './media-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MediaViewerComponent implements OnChanges, OnDestroy, AfterContentInit, AfterViewChecked {\n\n @ViewChild('viewerRef', {static: false}) viewerRef: ElementRef;\n\n @Input() url;\n @Input() downloadFileName: string;\n @Input() contentType: string;\n\n @Input() showToolbar = true;\n @Input() toolbarButtonOverrides: any = {};\n\n @Input()\n public height: string;\n public viewerHeight: string;\n\n @Input() width = '100%';\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() toolbarEventsOutput = new EventEmitter<ToolbarEventService>();\n @Output() unsavedChanges = new EventEmitter<boolean>();\n\n @Input() enableAnnotations = false;\n @Input() annotationApiUrl;\n\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() multimediaPlayerEnabled = false;\n\n\n @Input() caseId: string;\n\n multimediaContent = false;\n convertibleContent = false;\n unsupportedContent = false;\n\n documentTitle: string;\n showCommentSummary: boolean;\n annotationSet$: Observable<AnnotationSet | {}>;\n hasScrollBar: boolean;\n typeException = false;\n hasDifferentPageSize$: Observable<boolean>;\n documentId: string;\n\n private $subscriptions: Subscription;\n private prevOffset: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly api: AnnotationApiService,\n private readonly commentService: CommentService,\n private elRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n if (this.annotationApiUrl) {\n api.annotationApiUrl = this.annotationApiUrl;\n }\n }\n\n ngAfterContentInit() {\n this.annotationSet$ = this.store.pipe(select(fromAnnoSelectors.getAnnotationSet));\n this.hasDifferentPageSize$ = this.store.pipe(select(fromDocumentsSelector.getPageDifference));\n this.setToolbarButtons();\n this.toolbarEventsOutput.emit(this.toolbarEvents);\n this.$subscriptions = this.commentService.getUnsavedChanges()\n .subscribe(changes => this.onCommentChange(changes));\n this.$subscriptions.add(this.toolbarEvents.getShowCommentSummary()\n .subscribe(changes => this.showCommentSummary = changes));\n }\n\n ngAfterViewChecked(): void {\n if (this.height && this.viewerHeight !== this.height) {\n this.viewerHeight = this.height;\n this.cdr.detectChanges();\n return;\n }\n\n if (!this.height) {\n const compOffsetTop = this.elRef.nativeElement.getBoundingClientRect().top;\n const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;\n const offset = compOffsetTop + viewerOffsetTop;\n\n if (this.prevOffset !== offset) {\n this.viewerHeight = `calc(100vh - ${offset}px)`;\n this.prevOffset = offset;\n this.cdr.detectChanges();\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.annotationApiUrl) {\n this.api.annotationApiUrl = this.annotationApiUrl;\n }\n\n if (changes.url) {\n this.toolbarEvents.reset();\n this.commentService.resetCommentSet();\n this.documentId = this.extractDMStoreDocId(this.url);\n this.store.dispatch(new fromDocumentActions.SetDocumentId(this.documentId));\n if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(this.documentId));\n }\n if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent) && this.documentId) {\n this.store.dispatch(new fromRedactActions.LoadRedactions(this.documentId));\n }\n if (this.contentType === 'image') {\n this.documentTitle = null;\n }\n }\n\n if (changes.contentType) {\n this.convertibleContent = this.needsConverting();\n this.multimediaContent = this.isMultimedia();\n this.unsupportedContent = !this.isSupported();\n }\n\n this.setToolbarButtons();\n this.detectOs();\n this.typeException = false;\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n needsConverting(): boolean {\n return this.contentType !== null && Object.keys(ConvertibleContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isMultimedia(): boolean {\n return this.contentType !== null && Object.keys(MultimediaContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isSupported(): boolean {\n const supportedTypes = Object.assign({}, MultimediaContentTypes, ConvertibleContentTypes, CoreContentTypes);\n return this.contentType !== null && Object.keys(supportedTypes).includes(this.contentType.toUpperCase());\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n setToolbarButtons() {\n if (this.contentType === CoreContentTypes.PDF || this.needsConverting()) {\n this.toolbarButtons.setup({\n ...defaultPdfOptions, showHighlightButton: this.enableAnnotations, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.contentType === CoreContentTypes.IMAGE) {\n this.toolbarButtons.setup({\n ...defaultImageOptions, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.isMultimedia()) {\n this.toolbarButtons.setup({\n ...defaultMultimediaOptions,\n ...this.toolbarButtonOverrides\n });\n } else {\n this.toolbarButtons.setup({\n ...defaultUnsupportedOptions,\n ...this.toolbarButtonOverrides\n });\n }\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n if (!this.isSupported()) {\n this.typeException = false;\n } else {\n this.typeException = true;\n this.contentType = null;\n this.setToolbarButtons();\n }\n }\n\n onCommentChange(changes: boolean) {\n this.unsavedChanges.emit(changes);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle = title;\n }\n\n // If secure mode is enabled (which adds \"documentsv2\" to the documentId), get rid of it\n private extractDMStoreDocId(url: string): string {\n url = url.includes('/documents/') ? url.split('/documents/')[1] : url;\n url = url.includes('/documentsv2/') ? url.split('/documentsv2/')[1] : url;\n return url.replace('/binary', '');\n }\n\n detectOs() {\n this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Number Helper Service\n * */\n@Injectable({\n providedIn: 'root'\n})\n\nexport class NumberHelperService {\n constructor() { }\n\n public isNumber(value: string | number): boolean {\n return (\n value !== null\n && value !== undefined\n && value !== ''\n && !isNaN(Number(value.toString()))\n );\n }\n }\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { NumberHelperService } from '../../../lib/shared/util/services/number.helper.service';\n\n@Component({\n selector: 'mv-main-toolbar',\n templateUrl: './main-toolbar.component.html'\n})\nexport class MainToolbarComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @Input() enableAnnotations = false;\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() contentType = null;\n\n @ViewChild('zoomSelect', {static: false}) public zoomSelect: ElementRef;\n @ViewChild('mvToolbarMain', {static: false}) public mvToolbarMain: ElementRef<HTMLElement>;\n @ViewChild('dropdownMenu', {static: false}) public mvMenuItems: ElementRef<HTMLElement>;\n\n private readonly subscriptions: Subscription[] = [];\n\n public icpEnabled = false;\n public redactionEnabled = false;\n public showCommentsPanel: boolean;\n\n public pageNumber = 1;\n public pageCount = 0;\n public isDropdownMenuOpen = false;\n public dropdownMenuPositions = [\n new ConnectionPositionPair(\n {\n originX: 'end',\n originY: 'bottom'\n },\n {\n overlayX: 'end',\n overlayY: 'top'\n },\n 0,\n 3)\n ];\n\n public zoomScales = [0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2.5, 3, 5];\n\n allButtonsWidth = 0;\n widthRequiredForBtn: { [id: string]: number } = {};\n\n public constructor(\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private readonly cdr: ChangeDetectorRef,\n private readonly numberHelper: NumberHelperService\n ) {\n }\n\n public ngOnInit() {\n this.subscriptions.push(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.setCurrentPage(pageNumber)),\n this.toolbarEvents.setCurrentPageInputValueSubject.subscribe(pageNumber => this.pageNumber = pageNumber),\n this.toolbarEvents.getPageCount().subscribe(count => this.pageCount = count),\n this.toolbarEvents.icp.enabled.subscribe(enabled => {\n this.icpEnabled = enabled;\n if (this.icpEnabled) {\n this.toolbarEvents.toggleCommentsPanel(!enabled);\n this.toolbarEvents.sidebarOpen.next(false);\n }\n }),\n this.toolbarEvents.redactionMode.subscribe(enabled => {\n this.redactionEnabled = enabled;\n }),\n );\n }\n\n public ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n public ngAfterViewInit() {\n Array.from(this.mvToolbarMain.nativeElement.children).forEach(button => {\n this.allButtonsWidth += button.getBoundingClientRect().width;\n this.widthRequiredForBtn[button.id] = this.allButtonsWidth;\n });\n this.cdr.detectChanges();\n }\n\n @HostListener('window:resize', [])\n public onResize() {\n this.cdr.detectChanges();\n }\n\n public onClickHighlightToggle() {\n this.toolbarEvents.toggleHighlightMode();\n }\n public onClickDrawToggle() {\n this.toolbarEvents.toggleDrawMode();\n }\n\n public toggleSideBar() {\n this.toolbarEvents.sidebarOpen.next(!this.toolbarEvents.sidebarOpen.getValue());\n }\n\n public togglePresentBar() {\n this.toolbarEvents.searchBarHidden.next(true);\n this.toolbarEvents.icp.enable();\n }\n\n public increasePageNumber() {\n this.toolbarEvents.incrementPage(1);\n }\n\n public decreasePageNumber() {\n this.toolbarEvents.incrementPage(-1);\n }\n\n public onPageNumberInputChange(pageNumber: string) {\n if (Number(pageNumber) < 1) {\n pageNumber = '1';\n }\n if (Number(pageNumber) > this.pageCount) {\n pageNumber = this.pageCount.toString();\n }\n\n this.toolbarEvents.setPage(Number.parseInt(pageNumber, 10));\n }\n\n private setCurrentPage(pageNumber: number) {\n this.pageNumber = pageNumber;\n }\n\n public rotate(rotation: number) {\n this.toolbarEvents.rotate(rotation);\n }\n\n public printFile() {\n this.toolbarEvents.print();\n }\n\n public downloadFile() {\n this.toolbarEvents.download();\n }\n\n public zoom(zoomFactor: string) {\n this.toolbarEvents.zoom(+zoomFactor);\n }\n\n public stepZoom(zoomFactor: number) {\n this.toolbarEvents.stepZoom(zoomFactor);\n this.zoomSelect.nativeElement.selected = 'selected';\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n public toggleRedactBar() {\n this.toolbarEvents.toggleRedactionMode();\n }\n\n public toggleGrabNDrag() {\n this.toolbarEvents.toggleGrabNDrag();\n }\n\n public isPdf() {\n return this.contentType === 'pdf';\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n\n public toggleMoreOptions() {\n this.isDropdownMenuOpen = !this.isDropdownMenuOpen;\n setTimeout(() => {\n if (this.mvMenuItems) {\n this.mvMenuItems.nativeElement.focus();\n }\n }, 100);\n }\n}\n","import { Component, ElementRef, HostListener, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { SearchResultsCount, ToolbarEventService } from '../toolbar-event.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'mv-search-bar',\n templateUrl: './search-bar.component.html'\n})\nexport class SearchBarComponent implements OnInit, OnDestroy {\n\n @ViewChild('findInput', {static: true}) findInput: ElementRef<HTMLInputElement>;\n @ViewChild('findNext', {static: false}) findNext: ElementRef<HTMLAnchorElement>;\n\n highlightAll = true;\n matchCase = false;\n wholeWord = false;\n resultsText = '';\n searchText = '';\n resultCount = 0;\n\n private subscriptions: Subscription[] = [];\n\n public advancedSearchVisible = false;\n\n constructor(\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService\n ) { }\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.searchResultsCountSubject.subscribe(results => this.setSearchResultsCount(results))\n );\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n public onWindowKeyDown(e: KeyboardEvent): void {\n if (e.code === 'F3' || (e.ctrlKey && e.code === 'KeyF')) {\n e.preventDefault();\n\n this.toolbarEvents.searchBarHidden.next(false);\n setTimeout(() => this.findInput.nativeElement.focus(), 200);\n }\n }\n\n public searchNext(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: false\n });\n }\n\n public searchPrev(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: true,\n reset: false\n });\n }\n\n public search(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: true\n });\n }\n\n private setSearchResultsCount(results: SearchResultsCount): void {\n this.resultCount = results.total;\n this.resultsText = this.resultCount > 0\n ? `Found ${results.current} of ${results.total}`\n : 'No results found';\n if (this.resultCount && this.resultCount > 0) {\n setTimeout(() => {\n this.findNext.nativeElement.focus();\n }, 200);\n }\n }\n\n public onEscapeKeyPress(e: KeyboardEvent): void {\n this.toolbarEvents.searchBarHidden.next(true);\n }\n\n public onEnterKeyPress(e: KeyboardEvent): void {\n this.search();\n }\n\n\n public toggleAdvancedSearch(): void {\n this.advancedSearchVisible = !this.advancedSearchVisible;\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromRedactions from '../reducers/redaction.reducer';\nimport * as fromDocument from './document.selectors';\n\nexport const getRedactionState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.redactions\n);\n\nexport const getRedactionPages = createSelector(\n getRedactionState,\n fromRedactions.getPageEnt\n);\n\nexport const getSelected = createSelector(\n getRedactionState,\n fromRedactions.getSelectedRedaction\n);\n\nexport const getRedactedDocumentInfo = createSelector(\n getRedactionState,\n fromRedactions.getRedactedDocInfo\n);\n\nexport const getRedactionEnt = createSelector(\n getRedactionState,\n fromRedactions.getRedactionEnt\n);\n\nexport const getRedactionArray = createSelector(\n getRedactionEnt,\n fromDocument.getDocumentId,\n (ent, documentId) => {\n const redactions = Object.keys(ent).map(key => ent[key]);\n return { redactions, documentId };\n }\n);\n\nexport const getRedactionsPerPage = createSelector(\n fromDocument.getPages,\n getRedactionPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: pageEnt[key] ? pageEnt[key] : [],\n styles: pages[key].styles\n });\n });\n\n return arr;\n }\n }\n);\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRedactSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { Subscription } from 'rxjs';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\n\n@Component({\n selector: 'mv-redaction-toolbar',\n templateUrl: './redaction-toolbar.component.html'\n})\nexport class RedactionToolbarComponent implements OnInit, OnDestroy {\n\n preview = false;\n hasRedactions = false;\n $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(fromRedactSelectors.getRedactionArray)).subscribe(redactions => {\n this.hasRedactions = !!redactions.redactions.length;\n });\n }\n\n toggleTextRedactionMode() {\n this.toolbarEventService.highlightModeSubject.next(true);\n }\n\n toggleDrawMode() {\n this.toolbarEventService.drawModeSubject.next(true);\n }\n\n togglePreview() {\n this.preview = !this.preview;\n this.toolbarEventService.toggleRedactionPreview(this.preview);\n }\n\n unmarkAll() {\n this.toolbarEventService.unmarkAll();\n }\n\n redact() {\n this.toolbarEventService.applyRedactionToDocument();\n }\n\n toggleRedactBar() {\n this.toolbarEventService.toggleRedactionMode();\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpSelectors from '../../store/selectors/icp.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpState } from '../../icp/icp.interfaces';\n\n@Component({\n selector: 'mv-icp-toolbar',\n templateUrl: './icp-toolbar.component.html'\n})\nexport class IcpToolbarComponent implements OnInit, OnDestroy {\n\n presenterName: string;\n isPresenter: boolean;\n\n private $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.pipe(select(fromIcpSelectors.isPresenter))\n .subscribe(isPresenter => this.isPresenter = isPresenter);\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenterName))\n .subscribe(name => this.presenterName = name));\n }\n\n ngOnDestroy() {\n this.$subscription.unsubscribe();\n }\n\n present() {\n this.toolbarEventService.icp.becomePresenter();\n }\n\n stopPresenting() {\n this.toolbarEventService.icp.stopPresenting();\n }\n\n leaveIcpSession() {\n this.toolbarEventService.icp.leaveSession();\n }\n\n showParticipantsList() {\n this.toolbarEventService.toggleParticipantsList(!this.toolbarEventService.icp.participantsListVisible.getValue());\n }\n}\n"," import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MainToolbarComponent } from './main-toolbar/main-toolbar.component';\nimport { SearchBarComponent } from './search-bar/search-bar.component';\nimport { FormsModule } from '@angular/forms';\nimport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nimport { ToolbarEventService } from './toolbar-event.service';\nimport { RedactionToolbarComponent } from './redaction-toolbar/redaction-toolbar.component';\nimport { IcpToolbarComponent } from './icp-toolbar/icp-toolbar.component';\nexport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nexport { ToolbarEventService } from './toolbar-event.service';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [\n SearchBarComponent,\n MainToolbarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n providers: [\n ToolbarButtonVisibilityService,\n ToolbarEventService\n ],\n exports: [\n MainToolbarComponent,\n SearchBarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n RouterModule\n ]\n})\nexport class ToolbarModule { }\n","import { Component, EventEmitter, Input, Output, ViewChild, ElementRef } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { Annotation } from './annotation.model';\nimport { Rectangle } from './rectangle/rectangle.model';\nimport moment from 'moment-timezone';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Component({\n selector: 'mv-annotation',\n templateUrl: './annotation-view.component.html'\n})\nexport class AnnotationViewComponent { // todo rename this to selection vew c\n\n @Input() set annotation(value) {\n this.anno = {...value};\n }\n anno: Annotation;\n selected: boolean;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() set selectedAnnoId(selectedId: { annotationId: string }) {\n if (selectedId) {\n const id = this.anno.id || this.anno.redactionId; // todo make it unique\n this.selected = selectedId.annotationId ? (selectedId.annotationId === id) : false;\n }\n }\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Output() update = new EventEmitter<Annotation>();\n @Output() delete = new EventEmitter<Annotation>();\n @Output() annotationClick = new EventEmitter<SelectionAnnotation>();\n\n @ViewChild('container', {static: false}) container: ElementRef;\n\n constructor(\n private readonly toolbarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>\n ) {}\n\n public onSelect() {\n const annotationId = this.anno.id || this.anno.redactionId;\n this.annotationClick.emit({ annotationId, editable: false, selected: true });\n }\n\n public onRectangleUpdate(rectangle: Rectangle) {\n const annotation = {...this.anno};\n annotation.rectangles = annotation.rectangles.filter(r => r.id !== rectangle.id);\n annotation.rectangles.push(rectangle);\n this.update.emit(annotation);\n }\n\n public deleteHighlight() {\n this.delete.emit(this.anno);\n }\n\n public addOrEditComment() {\n if (this.anno.comments.length === 0) {\n const comment: Comment = {\n annotationId: this.anno.id,\n content: '',\n createdBy: this.anno.createdBy,\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n id: uuid(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n page: null,\n pages: {},\n pageHeight: null,\n selected: false,\n editable: false\n };\n this.store.dispatch(new fromActions.AddOrEditComment(comment));\n\n }\n this.selected = true;\n this.annotationClick.emit({ annotationId: this.anno.id, editable: true, selected: true });\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Annotation } from './annotation-view/annotation.model';\nimport { Observable } from 'rxjs';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { CommentService } from '../comment-set/comment/comment.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\n\n@Component({\n selector: 'mv-annotation-set',\n templateUrl: './annotation-set.component.html'\n})\nexport class AnnotationSetComponent implements OnInit {\n\n @Input() page: number;\n @Input() annotations: Annotation[] = [];\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n selectedAnnotation$: Observable<SelectionAnnotation>;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService\n ) {}\n\n ngOnInit(): void {\n this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation));\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n public onAnnotationDelete(annotation: Annotation) {\n if (annotation.comments.length > 0) {\n this.commentService.updateUnsavedCommentsStatus(annotation, false);\n }\n this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id));\n }\n\n selectAnnotation(selectedAnnotation: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport moment from 'moment-timezone';\n\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/annotation.selectors';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\nimport { Annotation } from '../../annotation-view/annotation.model';\n\n@Injectable()\nexport class HighlightCreateService {\n\n constructor(private toolBarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n saveAnnotation(rectangles: Rectangle[], page: number) {\n this.store.pipe(select(fromSelectors.getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {\n const anno: Annotation = {\n id: uuid(),\n color: 'FFFF00',\n comments: [],\n page: page,\n rectangles: rectangles,\n type: 'highlight',\n ...anoSetDocId,\n createdBy: '',\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n };\n this.store.dispatch(new fromActions.SaveAnnotation(anno));\n });\n }\n\n applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom ) {\n const { x, y, width, height } = {\n x: +(offsetLeft / zoom).toFixed(2),\n y: +(offsetTop / zoom).toFixed(2),\n width: +(offsetWidth / zoom).toFixed(2),\n height: +(offsetHeight / zoom).toFixed(2)\n };\n const rectangle = { x, y, width, height };\n switch (rotate) {\n case 90:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = y;\n rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);\n break;\n case 180:\n rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);\n rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);\n break;\n case 270:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);\n rectangle.y = x;\n break;\n }\n return rectangle as any;\n }\n\n resetHighlight() {\n window.getSelection().removeAllRanges();\n this.toolBarEvents.highlightModeSubject.next(false);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { Rectangle } from './rectangle.model';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar-event.service';\nimport { HighlightCreateService } from '../../annotation-create/highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-anno-rectangle',\n templateUrl: './rectangle.component.html'\n})\nexport class RectangleComponent implements OnChanges, AfterViewInit, OnDestroy {\n\n @Input() color: String;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() editable: boolean;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Output() select = new EventEmitter<Rectangle>();\n @Output() update = new EventEmitter<Rectangle>();\n\n @ViewChild('rectElement', {static: false}) viewRect: ElementRef;\n\n private subscriptions: Subscription[] = [];\n _selected: boolean;\n enableGrabNDrag = false;\n\n height: number;\n width: number;\n top: number;\n left: number;\n\n _annoRect: Rectangle;\n @Input()\n set annoRect(annoRect: Rectangle) {\n this._annoRect = { ...annoRect };\n this.height = +(annoRect.height * this.zoom).toFixed(2);\n this.width = +(annoRect.width * this.zoom).toFixed(2);\n this.left = +(annoRect.x * this.zoom).toFixed(2);\n this.top = +(annoRect.y * this.zoom).toFixed(2);\n }\n\n get annoRect() {\n return this._annoRect;\n }\n\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.rotate) {\n this.adjustForRotation(this.rotate);\n }\n }\n\n ngAfterViewInit() {\n this.subscriptions.push(\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n }\n\n @Input()\n set selected(selected: boolean) {\n this._selected = selected;\n if (this._selected && this.viewRect) {\n this.viewRect.nativeElement.focus();\n }\n }\n\n get selected() {\n return this._selected;\n }\n\n onClick() {\n this.select.emit(this.annoRect);\n }\n\n onUpdate(viewRect: any) {\n const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = viewRect;\n if (this.hasRectangleChanged(viewRect)) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, this.rotate, this.zoom);\n rectangle = { ...this.annoRect, ...rectangle };\n this.update.emit({ ...rectangle });\n }\n }\n\n adjustForRotation(rotation: number) {\n const { top, left, height, width } = this;\n switch (rotation) {\n case 90:\n this.width = height;\n this.height = width;\n this.left = this.pageWidth - top - height;\n this.top = left;\n break;\n case 180:\n this.left = this.pageWidth - left - width;\n this.top = this.pageHeight - top - height;\n break;\n case 270:\n this.width = height;\n this.height = width;\n this.left = top;\n this.top = this.pageHeight - left - width;\n break;\n }\n }\n\n hasRectangleChanged(viewRect): boolean {\n return this.left !== viewRect.offsetLeft ||\n this.top !== viewRect.offsetTop ||\n this.width !== viewRect.offsetWidth ||\n this.height !== viewRect.offsetHeight;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TagsModel } from '../../models/tags.model';\n\n@Injectable()\nexport class TagsServices {\n\n public tagItems: {[id: string]: TagsModel[]};\n\n constructor(private http: HttpClient) {}\n\n public getAllTags(createdBy: string): Observable<TagsModel[]> {\n const url = `/em-anno/tags/${createdBy}`;\n return this.http.get<TagsModel[]>(url);\n }\n\n // @TODO: Move everything below this to NgRx store\n getNewTags(annoid: string): TagsModel[] {\n return this.tagItems ? this.tagItems[annoid] : [];\n }\n\n updateTagItems(items: Array<TagsModel>, annoId: string) {\n const snakeCased = items.map(item => {\n return {\n ...item,\n name: this.snakeCase(item.name)\n };\n });\n\n this.tagItems = {\n ...this.tagItems,\n [annoId]: snakeCased\n };\n }\n\n private snakeCase = string => {\n // transform string_to_snake_case\n return string.replace(/ +/g, ' ') // find space\n .split(/ |\\B(?=[A-Z])/) // split it into array\n .map(word => word.toLowerCase()) // transform to lover case\n .join('_'); // trun array into sting using _\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {Comment} from './comment.model';\nimport {User} from '../../models/user.model';\nimport {Rectangle} from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {CommentService} from './comment.service';\nimport {TagsModel} from '../../models/tags.model';\nimport {TagsServices} from '../../services/tags/tags.services';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromSelector from '../../../store/selectors/annotation.selectors';\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\n\n@Component({\n selector: 'mv-anno-comment',\n templateUrl: './comment.component.html'\n})\nexport class CommentComponent implements OnInit, OnDestroy, AfterContentInit {\n\n CHAR_LIMIT = 5000;\n lastUpdate: string;\n originalComment: string;\n fullComment: string;\n author: User;\n createdBy: string;\n editor: User;\n _comment: Comment;\n _editable: boolean;\n _rectangle;\n totalPrevPagesHeight = 0;\n rectTop;\n rectLeft;\n pageHeight: number;\n hasUnsavedChanges = false;\n selected: boolean;\n searchString: string;\n public tagItems: TagsModel[];\n\n\n @Output() commentClick = new EventEmitter<SelectionAnnotation>();\n @Output() renderComments = new EventEmitter<Comment>();\n @Output() delete = new EventEmitter<Comment>();\n @Output() updated = new EventEmitter<{comment: Comment, tags: TagsModel[]}>();\n @Output() changes = new EventEmitter<boolean>();\n @Input() rotate = 0;\n @Input() zoom = 1;\n @Input() index: number;\n @Input() page: number;\n\n @ViewChild('form', {static: false}) form: ElementRef;\n @ViewChild('editableComment', {static: false}) editableComment: ElementRef<HTMLElement>;\n\n private subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private tagsServices: TagsServices\n ) {}\n\n\n ngOnInit(): void {\n this.subscriptions = this.store.select(fromSelector.getComponentSearchText)\n .pipe(distinctUntilChanged()).subscribe(searchString => this.searchString = searchString);\n this.reRenderComments();\n }\n\n ngAfterContentInit(): void {\n if (this.tagItems && this.tagItems.length) {\n this.tagsServices.updateTagItems(this.tagItems, this._comment.annotationId);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n @Input()\n set comment(comment: Comment) {\n this._comment = {...comment};\n this.page = this._comment.page;\n this.lastUpdate = comment.lastModifiedDate ? comment.lastModifiedDate : comment.createdDate;\n this.author = comment.createdByDetails;\n this.createdBy = comment.createdBy;\n this.editor = comment.lastModifiedByDetails;\n this.originalComment = comment.content;\n this.fullComment = this.originalComment;\n this.selected = this._comment.selected;\n this._editable = this._comment.editable;\n this.tagItems = this._comment.tags;\n const pageMarginBottom = 10;\n this.totalPrevPagesHeight = 0;\n for (let i = 0; i < this.page - 1; i++) {\n const height = this._comment.pages[i + 1] ? this._comment.pages[i + 1].styles.height : undefined;\n if (height) {\n this.totalPrevPagesHeight += height + pageMarginBottom;\n }\n }\n\n }\n\n get comment() {\n return this._comment;\n }\n\n @Input()\n set annotation(annotation: Annotation) {\n this._rectangle = annotation.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n const actualHeight = this._comment.pages[this.page].styles.height / this.zoom;\n switch (this.rotate) {\n case 90: this.rectTop = this._rectangle.x;\n break;\n case 180: this.rectTop = actualHeight - (this._rectangle.y + this._rectangle.height);\n break;\n case 270: this.rectTop = actualHeight - (this._rectangle.x + this._rectangle.width);\n break;\n default: this.rectTop = this._rectangle.y;\n }\n this.rectLeft = this._rectangle.x;\n }\n\n get editable(): boolean {\n return this._editable;\n }\n\n onCommentChange(updatedComment) {\n this.hasUnsavedChanges =\n this.originalComment.substring(0, this.CHAR_LIMIT) !== updatedComment.substring(0, this.CHAR_LIMIT);\n this.commentService.onCommentChange(this.hasUnsavedChanges);\n }\n\n deleteOrCancel() {\n if (!this.editable) {\n this.delete.emit(this._comment);\n } else {\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.fullComment = this.originalComment;\n this.changes.emit(false);\n if (!this.author && !this.fullComment) {\n this.delete.emit(this._comment);\n }\n }\n }\n\n public editOrSave() {\n if (!this.editable) {\n this._editable = true;\n } else {\n this._comment.content = this.fullComment.substring(0, this.CHAR_LIMIT);\n const tags = this.tagsServices.getNewTags(this._comment.annotationId);\n const payload = {\n comment: this._comment,\n tags\n };\n this.updated.emit(payload);\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.changes.emit(false);\n }\n }\n\n onCommentClick() {\n if (!this.selected) {\n this.selected = true;\n this._editable = false;\n this.commentClick.emit({ annotationId: this._comment.annotationId, editable: this._editable, selected: true });\n }\n }\n\n reRenderComments() {\n this.renderComments.emit(this._comment);\n }\n\n get commentTop(): number {\n return this.totalPrevPagesHeight + (this.rectTop * this.zoom);\n }\n\n\n get height() {\n return this.form.nativeElement.getBoundingClientRect().height / this.zoom;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\n\n@Component({\n selector: 'mv-ctx-toolbar',\n templateUrl: './ctx-toolbar.component.html'\n})\nexport class CtxToolbarComponent implements OnChanges {\n\n readonly defaultHeight;\n readonly defaultWidth;\n\n @Input() zoom;\n @Input() rotate;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Input() canHighlight: boolean;\n @Input() canBookmark: boolean;\n @Input() canComment: boolean;\n @Input() canDelete: boolean;\n\n @Output() createHighlightEvent = new EventEmitter();\n @Output() deleteHighlightEvent = new EventEmitter();\n @Output() addOrEditCommentEvent = new EventEmitter();\n @Output() createBookmarkEvent = new EventEmitter<Rectangle>();\n\n rectangle: Rectangle;\n _rectangles: Rectangle[];\n top: number;\n left: number;\n\n constructor() {\n this.defaultHeight = 70;\n this.defaultWidth = 300;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.setRectangle();\n this.top = this.popupTop();\n this.left = this.popupLeft();\n }\n\n @Input() set rectangles(rectangles: Rectangle[]) {\n if (rectangles) {\n this._rectangles = rectangles;\n this.setRectangle();\n }\n }\n\n get rectangles() {\n return this._rectangles;\n }\n\n createHighlight() {\n this.createHighlightEvent.emit();\n this.rectangle = undefined;\n }\n\n deleteHighlight() {\n this.deleteHighlightEvent.emit();\n }\n\n addOrEditComment() {\n this.addOrEditCommentEvent.emit();\n setTimeout(() => {\n if (!location.hash) {\n document.getElementById('viewerContainer').scrollBy(0, 1);\n }\n }, 10);\n }\n\n createBookmark() {\n this.createBookmarkEvent.emit(this.rectangle);\n this.rectangle = undefined;\n }\n\n setRectangle() {\n const rectangle = this.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n this.rectangle = { ...rectangle };\n switch (this.rotate) {\n case 90:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;\n this.rectangle.y = rectangle.x;\n break;\n case 180:\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.x - rectangle.width;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.y - rectangle.height;\n break;\n case 270:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = rectangle.y;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.x - rectangle.width;\n break;\n }\n }\n\n popupTop() {\n const popupTop = this.rectangle.y * this.zoom - this.defaultHeight;\n return popupTop <= 0 ? this.defaultHeight : popupTop;\n }\n\n popupLeft() {\n const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);\n if (popupLeft <= 0) {\n return 0;\n } else if (popupLeft >= this.pageWidth - this.defaultWidth) {\n return this.pageWidth - this.defaultWidth;\n } else {\n return popupLeft;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CommentComponent } from './comment/comment.component';\n\n@Injectable()\nexport class CommentSetRenderService {\n\n redrawComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n let prevComment: CommentComponent;\n this.sortComponents(commentComponents, pageHeights, rotate, zoom).forEach((comment: CommentComponent) => {\n this.adjustIfOverlapping(comment, prevComment, zoom);\n prevComment = comment;\n });\n }\n\n sortComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n return commentComponents.sort((a: CommentComponent, b: CommentComponent) => {\n a.rectTop = this.top(a._rectangle, pageHeights[a.page - 1], rotate, zoom);\n b.rectTop = this.top(b._rectangle, pageHeights[b.page - 1], rotate, zoom);\n return this.processSort(a, b);\n });\n }\n\n private adjustIfOverlapping(comment: CommentComponent, prevComment: CommentComponent, zoom: number): void {\n if (prevComment) {\n const endOfPrevComment = prevComment.commentTop + this.height(prevComment);\n if (comment.commentTop <= endOfPrevComment) {\n comment.rectTop = (endOfPrevComment - comment.totalPrevPagesHeight) / zoom;\n }\n }\n }\n\n private processSort(a: CommentComponent, b: CommentComponent): number {\n if (this.onSameLine(a, b)) {\n return a.rectLeft >= b.rectLeft ? 1 : -1;\n }\n return a.commentTop >= b.commentTop ? 1 : -1;\n }\n\n private onSameLine(a: CommentComponent, b: CommentComponent): boolean {\n return this.difference(a.commentTop, b.commentTop) === 0;\n }\n\n private top(rectangle: { x, y, height, width }, height: number, rotate: number, zoom: number) {\n const actualHeight = height / zoom;\n switch (rotate) {\n case 90: return rectangle.x;\n case 180: return actualHeight - (rectangle.y + rectangle.height);\n case 270: return actualHeight - (rectangle.x + rectangle.width);\n default: return rectangle.y;\n }\n }\n\n private height(element: any) {\n return element.form.nativeElement.getBoundingClientRect().height;\n }\n\n private difference(a: number, b: number): number { return Math.abs(a - b); }\n}\n","import {\n Component,\n ElementRef,\n Input, OnChanges,\n OnDestroy,\n OnInit,\n QueryList, SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\n\nimport { AnnotationSet } from '../annotation-set/annotation-set.model';\nimport { Annotation } from '../annotation-set/annotation-view/annotation.model';\nimport { Comment } from './comment/comment.model';\nimport { CommentComponent } from './comment/comment.component';\nimport { CommentService } from './comment/comment.service';\nimport { CommentSetRenderService } from './comment-set-render.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport { TagsModel } from '../models/tags.model';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set',\n templateUrl: './comment-set.component.html',\n })\nexport class CommentSetComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() annotationSet: AnnotationSet;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() height: number;\n @Input() pageHeights = [];\n @Input() contentScrollTop: number;\n\n comments: Comment[];\n tags: TagsModel[];\n private subscriptions: Subscription[] = [];\n public comments$: Observable<Annotation[]>;\n public annoEntities$: Observable<{ [id: string]: Annotation }>;\n\n @ViewChild('container', {static: false}) container: ElementRef<HTMLDivElement>;\n @ViewChild('panel', {static: false}) panel: ElementRef<HTMLDivElement>;\n @ViewChildren('commentComponent') commentComponents: QueryList<CommentComponent>;\n\n showCommentsPanel: boolean;\n\n constructor(private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private readonly renderService: CommentSetRenderService,\n private readonly toolbarEvents: ToolbarEventService) {\n this.clearSelection();\n }\n\n ngOnInit() {\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentsArray));\n this.annoEntities$ = this.store.pipe(select(fromSelectors.getAnnotationEntities));\n this.subscriptions.push(\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.redrawComments();\n this.showCommentsPanel = toggle;\n })\n );\n this.subscriptions.push(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument()));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationSet) {\n this.commentService.setCommentSet(this);\n }\n if (changes.contentScrollTop) {\n if (this.container) {\n this.container.nativeElement.scrollTo(0, this.contentScrollTop);\n }\n }\n }\n\n ngOnDestroy() {\n if (this.subscriptions.length > 0) {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n }\n\n public onSelect(annotationId: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(annotationId));\n }\n\n public onCommentDelete(comment: Comment) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === comment.annotationId);\n const comments = [];\n const annot = {\n ...annotation,\n comments\n };\n this.onAnnotationUpdate(annot);\n this.redrawComments();\n }\n\n redrawComments() {\n setTimeout(() => {\n const componentList: CommentComponent[] = this.commentComponents.map(comment => comment);\n this.renderService.redrawComponents(componentList, this.pageHeights, this.rotate, this.zoom);\n }, 0);\n }\n\n private rotateDocument() {\n if (this.panel) {\n this.panel.nativeElement.style.height = '0';\n }\n }\n\n public onCommentUpdate(payload: {comment: Comment, tags: TagsModel[]} ) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === payload.comment.annotationId);\n const comments = [payload.comment];\n const tags = payload.tags;\n const annot = {\n ...annotation,\n comments,\n tags\n };\n this.onAnnotationUpdate(annot);\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n onContainerClick(e) {\n if (e.path && e.path[0] === this.panel.nativeElement) {\n this.clearSelection();\n }\n }\n\n clearSelection() {\n this.store.dispatch(new fromActions.SelectedAnnotation({ annotationId: '', editable: false, selected: false}));\n }\n\n allCommentsSaved() {\n this.commentService.allCommentsSaved();\n }\n}\n","import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[mvTextAreaAutoExpand]'\n})\nexport class TextareaAutoExpandDirective implements AfterContentChecked {\n\n constructor(private el: ElementRef) {\n }\n\n ngAfterContentChecked(): void {\n this.adjustHeight();\n }\n\n @HostListener('input') onMouseDown() {\n this.adjustHeight();\n }\n\n adjustHeight(): void {\n const nativeElement = this.el.nativeElement;\n nativeElement.style.overflow = 'hidden';\n nativeElement.style.height = 'auto';\n nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';\n }\n\n}\n","import {Component, Input, ViewChild, ElementRef, OnInit, OnDestroy} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport {select, Store} from '@ngrx/store';\n\nimport { PrintService } from '../../print.service';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromAnnoActions from '../../store/actions/annotation.actions';\nimport * as fromTagSelectors from '../../store/selectors/tag.selectors';\n\n@Component({\n selector: 'mv-comments-summary',\n templateUrl: './comments-summary.component.html',\n})\nexport class CommentsSummaryComponent implements OnInit, OnDestroy {\n\n @Input() title: string;\n @Input() contentType: string;\n @ViewChild('outerContainer', {static: true}) container: ElementRef;\n @ViewChild('commentContainer', {static: false}) commentsTable: ElementRef;\n public comments$: Observable<any>;\n public filtersFg: FormGroup;\n private $subscriptions: Subscription;\n allTags$: Observable<{key: string; length: number}[]>;\n showFilters = false;\n hasFilter = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly toolbarEvents: ToolbarEventService,\n private fb: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.filtersFg = this.fb.group({\n dateRangeFrom: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n dateRangeTo: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n tagFilters: this.fb.group({}),\n });\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentSummary));\n this.buildCheckBoxForm();\n this.container.nativeElement.focus();\n }\n\n buildCheckBoxForm() {\n this.filtersFg.reset();\n const checkboxes = <FormGroup>this.filtersFg.get('tagFilters');\n const filters$ = this.store.pipe(select(fromSelectors.getCommentSummaryFilters));\n this.allTags$ = this.store.pipe(select(fromTagSelectors.getAllTagsArr));\n this.$subscriptions = combineLatest([this.allTags$, filters$]).subscribe(([tags, filters]) => {\n this.hasFilter = filters.hasFilter;\n tags.forEach((val) => {\n const checkBoxValue = (filters.filters.tagFilters &&\n filters.filters.tagFilters.hasOwnProperty(val.key)) ?\n filters.filters.tagFilters[val.key] : false;\n checkboxes.addControl(val.key, new FormControl(checkBoxValue));\n });\n this.filtersFg.updateValueAndValidity();\n });\n }\n\n onClearFilters() {\n this.store.dispatch(new fromAnnoActions.ClearCommentSummaryFilters());\n this.buildCheckBoxForm();\n }\n\n onFilter() {\n const { value } = this.filtersFg;\n const hasDateFrom = (value.dateRangeFrom.year && value.dateRangeFrom.month && value.dateRangeFrom.day);\n const hasDateTo = (value.dateRangeTo.year && value.dateRangeTo.month && value.dateRangeTo.day);\n const dateRangeFrom = hasDateFrom ?\n new Date(value.dateRangeFrom.year, value.dateRangeFrom.month - 1, value.dateRangeFrom.day).getTime() : null;\n const dateRangeTo = hasDateTo ?\n new Date(value.dateRangeTo.year, value.dateRangeTo.month - 1, value.dateRangeTo.day).getTime() : null;\n this.store.dispatch(new fromAnnoActions.ApplyCommentSymmaryFilter({...value, dateRangeFrom, dateRangeTo}));\n }\n\n onFiltersToggle() {\n this.showFilters = !this.showFilters;\n }\n\n public onClose(): void {\n this.toolbarEvents.toggleCommentsSummary(false);\n }\n\n public onPrint(): void {\n this.printService.printElementNatively(this.commentsTable.nativeElement, 1000, 900);\n }\n\n navigateToPage(pageNumber: number) {\n if (this.contentType === 'pdf') {\n this.toolbarEvents.setPage(pageNumber);\n }\n this.toolbarEvents.toggleCommentsSummary(false);\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport uuid from 'uuid';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { HighlightCreateService } from '../highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-box-highlight-create',\n templateUrl: './box-highlight-create.component.html',\n})\nexport class BoxHighlightCreateComponent implements OnInit, OnDestroy {\n\n @Input() page: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Input() rotate: number;\n @Input() zoom: number;\n @Input() container: { top: number, left: number };\n\n @Output() saveSelection = new EventEmitter<{ rectangles: Rectangle[], page: number }>();\n\n @ViewChild('boxHighlight', {static: false}) highlight: ElementRef;\n\n drawStartX = -1;\n drawStartY = -1;\n top: number;\n left: number;\n height: number;\n width: number;\n display: string;\n drawMode: boolean;\n defaultHeight: string;\n defaultWidth: string;\n position: string;\n backgroundColor = 'none';\n\n private subscriptions: Subscription[] = [];\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnInit(): void {\n this.subscriptions = [\n this.toolbarEvents.drawModeSubject.subscribe(drawMode => {\n this.defaultHeight = drawMode ? '100%' : '0px';\n this.defaultWidth = drawMode ? '100%' : '0px';\n })\n ];\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n\n initHighlight({ offsetX, offsetY }) {\n this.position = 'absolute';\n this.backgroundColor = 'yellow';\n this.drawStartX = offsetX;\n this.drawStartY = offsetY;\n\n this.display = 'block';\n this.height = 50;\n this.width = 50;\n\n this.top = this.drawStartY;\n this.left = this.drawStartX;\n\n switch (this.rotate) {\n case 90:\n this.top = this.drawStartY - this.height;\n break;\n case 180:\n this.top = this.drawStartY - this.height;\n this.left = this.drawStartX - this.width;\n break;\n case 270:\n this.left = this.drawStartX - this.width;\n break;\n }\n }\n\n updateHighlight({currentTarget, clientX, clientY}) {\n const rect = currentTarget.getBoundingClientRect(),\n offsetX = clientX - rect.left,\n offsetY = clientY - rect.top;\n if (this.drawStartX > 0 && this.drawStartY > 0) {\n this.height = Math.abs(offsetY - this.drawStartY);\n this.width = Math.abs(offsetX - this.drawStartX);\n this.top = Math.min(offsetY, this.drawStartY);\n this.left = Math.min(offsetX, this.drawStartX);\n }\n }\n\n createHighlight() {\n if (this.height / this.zoom > 5 || this.width / this.zoom > 5) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle } as any;\n this.saveSelection.emit({ rectangles: [rectangle], page: this.page });\n this.resetHighlight();\n }\n }\n\n private resetHighlight() {\n this.drawStartX = -1;\n this.drawStartY = -1;\n this.display = 'none';\n this.width = 0;\n this.height = 0;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromTagSelectors from '../../../store/selectors/tag.selectors';\nimport * as fromAnnoSelector from '../../../store/selectors/annotation.selectors';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set-header',\n templateUrl: './comment-set-header.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSetHeaderComponent implements OnInit, OnDestroy {\n\n @Input() public showCommentSummary: boolean;\n @Output() public readonly showCommentSummaryDialog = new EventEmitter();\n\n tabs: {isFiltered?: boolean; label: string}[] = [];\n tabSelected = '';\n isFiltered: boolean;\n navigationList: Annotation[];\n $subscriptions: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n public toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n const tagFilter$ = this.store.pipe(select(fromTagSelectors.getTagFilters));\n const filteredAnnotation$ = this.store.pipe(select(fromAnnoSelector.getFilteredAnnotations));\n\n this.$subscriptions = combineLatest([tagFilter$, filteredAnnotation$]).subscribe(([formData, filteredAnno]) => {\n this.navigationList = filteredAnno;\n this.tabs = this.navigationList.length > 0 ?\n [{label: 'comments'}, {label: 'filter'}, {label: 'search'}] : [{label: 'comments'}];\n this.isFiltered = !formData.length;\n this.tabs = [...this.tabs].map((tab) => {\n return !this.isFiltered && tab.label === 'filter' ? {...tab, isFiltered: true} : {...tab, isFiltered: false};\n });\n });\n }\n\n public toggleCommentsSummary(): void {\n this.showCommentSummaryDialog.emit();\n }\n\n selectTab(tab: string) {\n this.tabSelected = tab !== this.tabSelected ? tab : undefined;\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../../annotation-set/annotation-view/annotation.model';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\n\n@Component({\n selector: 'mv-comment-search',\n templateUrl: './comment-search.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSearchComponent implements AfterViewInit, OnDestroy {\n\n @Input() public readonly annotations: Annotation[];\n\n @ViewChild('searchInput', {static: false}) searchInput: ElementRef<HTMLInputElement>;\n\n searchString: string;\n searchResults: Annotation[] = [];\n searchIndex = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>) {}\n\n ngAfterViewInit(): void {\n if (this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n }\n\n ngOnDestroy(): void {\n // TODO workaround for tab error\n setTimeout(() => {this.store.dispatch(new fromActions.SearchComment('')); }, 250);\n }\n\n searchComments(searchText: string): void {\n this.clearSearch();\n if (searchText.length > 2) {\n this.searchString = searchText;\n this.searchResults = this.annotations\n .filter(annotation => annotation.comments.length > 0)\n .filter(annotation =>\n annotation.comments[0].content.toLowerCase().includes(this.searchString.toLowerCase()));\n if (this.searchResults.length > 0) {\n this.store.dispatch(new fromActions.SearchComment(searchText));\n }\n }\n }\n\n clearSearch() {\n this.searchString = undefined;\n this.searchResults = [];\n this.searchIndex = 0;\n this.store.dispatch(new fromActions.SearchComment(''));\n }\n}\n","import { AfterViewChecked, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[mvTextHighlight]'\n})\nexport class TextHighlightDirective implements AfterViewChecked {\n\n @Input() textToHighlight: string;\n\n constructor(private element: ElementRef<HTMLElement>) {}\n\n ngAfterViewChecked(): void {\n if (this.textToHighlight) {\n this.highlightInputText(this.textToHighlight);\n }\n }\n\n highlightInputText(textToHighlight: string) {\n this.resetHighlight();\n this.textToHighlight = textToHighlight;\n const searchPattern = new RegExp(textToHighlight, 'gi');\n const hostElement = this.element.nativeElement;\n if (hostElement.innerHTML.match(searchPattern)) {\n hostElement.innerHTML = hostElement.innerHTML\n .replace(searchPattern, this.highlightPattern('$&'));\n }\n this.textToHighlight = undefined;\n }\n\n resetHighlight() {\n const hostElement = this.element.nativeElement;\n const searchPattern = new RegExp(this.highlightPattern('(.*?)'), 'gi');\n while (hostElement.innerHTML.match(searchPattern)) {\n const matchGroups = searchPattern.exec(hostElement.innerHTML);\n if (matchGroups) {\n hostElement.innerHTML = hostElement.innerHTML.replace(matchGroups[0], matchGroups[1]);\n }\n }\n }\n\n private highlightPattern(dynamicText: string) {\n return '<span class=\"mvTextHighlight\">' + dynamicText + '</span>';\n }\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {TagsModel} from '../models/tags.model';\nimport {TagsServices} from '../services/tags/tags.services';\nimport {FormControl} from '@angular/forms';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'mv-tags',\n templateUrl: './tags.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TagsComponent {\n @Input() tagItems: TagsModel[];\n @Input() userId: string;\n @Input() editable: boolean;\n @Input() annoId: string;\n\n public validators = [this.minLength, this.maxLength20];\n public errorMessages: {[id: string]: string} = {\n 'minLength': 'Minimum of 2 characters',\n 'maxLength20': 'Maximum of 20 characters'\n };\n\n constructor(private tagsServices: TagsServices) {}\n\n onUpdateTags(value) {\n this.tagsServices.updateTagItems(value, this.annoId);\n }\n\n public requestAutocompleteItems = (text: string): Observable<any[]> => {\n return this.tagsServices.getAllTags(this.userId);\n }\n\n private minLength(control: FormControl) {\n if (control.value.length < 2) {\n return {\n 'minLength': true\n };\n }\n return null;\n }\n\n private maxLength20(control: FormControl) {\n if (control.value.length >= 20) {\n return {\n 'maxLength20': true\n };\n }\n return null;\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { Rectangle } from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comments-navigate',\n templateUrl: './comments-navigate.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentsNavigateComponent implements OnChanges {\n\n @Input() public annotationList: Annotation[];\n @Input() autoSelect = false;\n\n navigationList: any[] = [];\n index = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>, public readonly toolbarEvents: ToolbarEventService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationList) {\n this.initNavigationList();\n }\n }\n\n initNavigationList(): void {\n this.index = 0;\n this.navigationList = [...this.annotationList || []]\n .map(annotation => ({\n content: annotation.comments[0].content,\n annotationId: annotation.id,\n page: annotation.page,\n rectangle: this.upperRectangle(annotation.rectangles),\n }))\n .sort(this.sortComments);\n\n if (this.autoSelect) {\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[0].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[0].annotationId,\n editable: false,\n selected: true\n }));\n }\n }\n\n sortComments(mappedCommentA, mappedCommentB) {\n if (mappedCommentA.page !== mappedCommentB.page) {\n return mappedCommentA.page - mappedCommentB.page;\n } else {\n const rectA = mappedCommentA.rectangle;\n const rectB = mappedCommentB.rectangle;\n if (rectA.y !== rectB.y) {\n return rectA.y - rectB.y;\n } else {\n return rectA.x - rectB.x;\n }\n }\n }\n\n nextItem() {\n this.index += 1;\n if (this.index === this.annotationList.length) {\n this.index = 0;\n }\n\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId, editable: false, selected: true\n }));\n }\n\n\n prevItem() {\n this.index -= 1;\n if (this.index < 0) {\n this.index = this.navigationList.length - 1;\n }\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId,\n editable: false,\n selected: true\n }));\n }\n\n upperRectangle(rectangles: Rectangle[]) {\n [...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);\n return { x: rectangles[0].x, y: rectangles[0].y };\n }\n}\n","import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\n\nimport {select, Store} from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/tag.selectors';\nimport * as fromActions from '../../../../store/actions/tag.actions';\nimport {Observable, Subscription} from 'rxjs';\nimport {FormGroup, FormBuilder, FormControl} from '@angular/forms';\nimport {auditTime, tap} from 'rxjs/operators';\n\n\n@Component({\n selector: 'mv-comment-filter',\n templateUrl: './comment-filter.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentFilterComponent implements OnInit, OnDestroy {\n tagGroup: FormGroup;\n $subscriptions: Subscription;\n filter$: Observable<string[]>;\n allTags$: Observable<any>;\n searchValue: string;\n isPreview = false;\n constructor(\n private store: Store<fromStore.State>,\n private fb: FormBuilder) {}\n\n ngOnInit(): void {\n this.tagGroup = this.fb.group({\n 'tagFilters': this.fb.group({}),\n });\n this.filter$ = this.store.pipe(select(fromSelectors.getTagFilters));\n this.$subscriptions = this.tagGroup.valueChanges.pipe(auditTime(5)).subscribe(value => {\n const tagFilters = value['tagFilters'];\n this.store.dispatch(new fromActions.AddFilterTags(tagFilters));\n });\n this.buildFrom();\n\n }\n\n buildFrom() {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n this.allTags$ = this.store.pipe(select(fromSelectors.getAllTagsArr)).pipe(tap(tags => {\n this.tagGroup.reset();\n tags.forEach((value) => {\n checkboxes.addControl(value.key, new FormControl(false));\n });\n }));\n }\n\n onClearFilters() {\n this.tagGroup.reset();\n this.store.dispatch(new fromActions.ClearFilterTags());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n onRemoveFilter(tagName) {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n checkboxes.controls[tagName].setValue(false);\n }\n\n onToggleFilterView() {\n this.isPreview = !this.isPreview;\n }\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport moment from 'moment-timezone';\n/**\n * A moment timezone pipe to support parsing based on time zone abbreviations\n * covers all cases of offset variation due to daylight saving.\n *\n * Same API as DatePipe with additional timezone abbreviation support\n * Official date pipe dropped support for abbreviations names from Angular V5\n */\n@Pipe({\n name: 'momentDate'\n})\nexport class MomentDatePipe extends DatePipe implements PipeTransform {\n\n transform(\n value: string | Date,\n format: string = 'mediumDate',\n timezone: string = 'Europe/London'\n ): any {\n const timezoneOffset = moment(value).tz(timezone).format('Z');\n return super.transform(value, format, timezoneOffset);\n }\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { Bookmark } from '../../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\n@Injectable()\nexport class BookmarksApiService {\n\n private readonly ANNOTATIONS_API = '/em-anno';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getBookmarks(documentId: string): Observable<any> {\n return this.httpClient\n .get(`${this.ANNOTATIONS_API}/${documentId}/bookmarks`,\n { observe: 'response' , withCredentials: true });\n }\n\n public createBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .post<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .put<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateMultipleBookmarks(bookmarks: Partial<Bookmark[]>): Observable<Bookmark[]> {\n return this.httpClient\n .put<Bookmark[]>(`${this.ANNOTATIONS_API}/bookmarks_multiple`,\n bookmarks, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteBookmark(bookmarkId: string): Observable<void> {\n return this.httpClient\n .delete<void>(`${this.ANNOTATIONS_API}/bookmarks/${bookmarkId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteMultipleBookmarks(payload: { deleted: string[], updated: Bookmark }): Observable<void> {\n return this.httpClient\n .request<void>('DELETE', `${this.ANNOTATIONS_API}/bookmarks_multiple`,\n { body: payload, observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchText: string, fieldName: string): any[] {\n\n if (!items) {\n return [];\n }\n\n if (!searchText) {\n return items;\n }\n\n return items.filter(item => {\n if (item) {\n if (item[fieldName]) {\n return item[fieldName].toLowerCase().includes(searchText.toLowerCase());\n } else {\n return item.toLowerCase().includes(searchText.toLowerCase());\n }\n }\n return false;\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'unsnake'\n})\nexport class UnsnakePipe implements PipeTransform {\n\n transform(items: string): string {\n return items.split('_').join(' ');\n }\n\n}\n","import {Component, Input} from '@angular/core';\n/*\n* Gov UK Date Component\n* Responsible for displaying 3 input fields:\n* day / month / year\n* displaying errorMessage messages\n* */\n@Component({\n selector: 'mv-gov-uk-date',\ntemplateUrl: './gov-uk-date.component.html'\n})\nexport class GovUkDateComponent {\n @Input() config: { id: string; legend: string };\n @Input() errorMessage: {isInvalid: boolean; messages: string[]};\n @Input() formGroup;\n}\n","import {Component, Directive, Input} from '@angular/core';\n/*\n* Gov UK Error Message\n* Responsible for displaying in-line error messages\n* @prop config - obj with properties\n* @prop errorMessage - all error bject with messages property that is arry of strings.\n* */\n@Component({\n selector: ' mv-gov-uk-error-message',\n template: `\n <span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{message}}\n </span>\n `\n})\nexport class GovUkErrorMessageComponent {\n constructor () { }\n @Input() config: { id: string };\n @Input() errorMessage;\n}\n","/**\n * Helper Class\n * Used for dynamic templates manipulation\n * */\n\nexport class HtmlTemplatesHelper {\n\n static setDescribedBy(errorMessage, config) {\n if (!errorMessage) {\n return config.hint ? `${config.id}-hint` : null;\n } else if (errorMessage && errorMessage.isInvalid) {\n return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;\n } else {\n return config.hint ? `${config.id}-hint` : null;\n }\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {HtmlTemplatesHelper} from '../util/helpers/html-templates.helper';\n/*\n* Gov Uk Fieldset Component\n* Used to wrap group fieldset elements\n* it can conditionally display h1 tag\n* @param config\n* @param isHeading\n* @param errorMessage - used for aria tag\n* */\n@Component({\n selector: 'mv-gov-uk-fieldset',\n template: `\n <fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!isHeading\">\n {{config.legend}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"isHeading\">\n <h1>{{config.legend}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint}}\n </span>\n <ng-content></ng-content>\n </fieldset>\n `\n})\nexport class GovUkFieldsetComponent {\n @Input() config: {legend: string; classes: string, id: string, hint: string, key: string};\n @Input() isHeading: boolean;\n @Input() errorMessage: string[];\n\n setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input} from '@angular/core';\n\n/*\n* Gov UK Label component\n* Responsible for displaying label tag\n* @prop isPageHading - boolean to display h1\n* @prop config - obj with properties\n* */\n@Component({\n selector: 'mv-gov-label',\n template: `<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </h1>\n <ng-template #noHeading>\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </ng-template>\n `\n})\nexport class GovUkLabelComponent {\n constructor () { }\n @Input() config: { label: string, name: string; id: string, isPageHeading, classes: string };\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {GovUkDateComponent} from './gov-uk-date/gov-uk-date.component';\nimport {GovUkErrorMessageComponent} from './gov-uk-error-message/gov-uk-error-message.component';\nimport {GovUkFieldsetComponent} from './gov-uk-fieldset/gov-uk-fieldset.component';\nimport {GovUkLabelComponent} from './gov-uk-label/gov-uk-label.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n RouterModule\n ],\n declarations: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n\n ],\n exports: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n ]\n})\nexport class SharedModule {}\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport { generateBookmarkNodes } from '../bookmarks-store-utils';\nimport * as fromDocument from './document.selectors';\n\nexport const getBookmarkState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.bookmarks\n);\n\nexport const getBookmarkPages = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkPageEnt\n);\n\nexport const getBookmarkEntities = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkEnts\n);\n\nexport const getBookmarkNodes = createSelector(\n getBookmarkEntities,\n (entities) => generateBookmarkNodes(entities)\n);\n\nexport const getEditableBookmark = createSelector(\n getBookmarkState,\n fromBookmarks.getEditBookmark\n);\n\nexport const getBookmarkInfo = createSelector(\n getBookmarkNodes,\n fromDocument.getDocumentId,\n fromDocument.getPdfPosition,\n fromDocument.getPages,\n (bookmarkNodes, docId, pdfPosition, pages) => {\n return {\n pageNumber: pdfPosition.pageNumber - 1,\n xCoordinate: pdfPosition.left,\n yCoordinate: pages[pdfPosition.pageNumber].styles.height - (pdfPosition.top * pages[pdfPosition.pageNumber].viewportScale),\n previous: bookmarkNodes.length > 0 ? bookmarkNodes[bookmarkNodes.length - 1].id : undefined,\n documentId: docId\n };\n }\n);\n\nexport const getBookmarksPerPage = createSelector(\n fromDocument.getPages,\n getBookmarkPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n const pageIdx = Number(key) - 1; // -1 as the thisPages array is 0 indexed\n const thisPage = pageEnt[pageIdx];\n arr.push({\n bookmark: thisPage ? thisPage : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\n\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromDocument from '../../../store/selectors/document.selectors';\nimport * as fromSelectors from '../../../store/selectors/annotation.selectors';\nimport { HighlightCreateService } from '../annotation-create/highlight-create/highlight-create.service';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\nimport { CreateBookmark } from '../../../store/actions/bookmark.actions';\nimport * as fromBookmarks from '../../../store/selectors/bookmark.selectors';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Highlight, ViewerEventService } from '../../../viewers/viewer-event.service';\n\n@Component({\n selector: 'mv-metadata-layer',\n templateUrl: './metadata-layer.component.html'\n})\nexport class MetadataLayerComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n pages: any[] = []; // todo add type\n annoPages$: Observable<any>; // todo add type\n\n drawMode = false;\n highlightPage: number;\n rectangles: Rectangle[];\n\n private $subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly highlightService: HighlightCreateService,\n private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService) {}\n\n ngOnInit(): void {\n this.$subscriptions = this.store.pipe(select(fromDocument.getPages))\n .subscribe(pages => this.pages = Object.values(pages));\n this.annoPages$ = this.store.pipe(select(fromSelectors.getPageEntities));\n\n this.$subscriptions\n .add(this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode))\n .add(this.viewerEvents.textHighlight.subscribe(highlight => this.showContextToolbar(highlight)))\n .add(this.viewerEvents.ctxToolbarCleared.subscribe(() => this.clearContextToolbar()));\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n showContextToolbar(highlight: Highlight) {\n this.highlightPage = highlight.page;\n this.rectangles = highlight.rectangles;\n if (this.rectangles) {\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n }\n\n clearContextToolbar() {\n this.rectangles = undefined;\n }\n\n createHighlight() {\n this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n }\n\n createBookmark(rectangle: Rectangle) {\n this.store.pipe(select(fromBookmarks.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n const selection = window.getSelection().toString();\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo,\n name: selection.length > 0 ? selection.substr(0, 30) : 'new bookmark',\n id: uuid(),\n pageNumber: this.highlightPage - 1,\n xCoordinate: rectangle.x,\n yCoordinate: rectangle.y\n } as any));\n this.toolbarEvents.toggleSideBar(true);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n\n });\n }\n\n saveAnnotation({ rectangles, page }: { rectangles: Rectangle[], page: any}) {\n this.highlightService.saveAnnotation(rectangles, page);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { RouterModule } from '@angular/router';\n\nimport { MutableDivModule } from 'mutable-div';\nimport { TagInputModule } from 'ngx-chips';\nimport {NgxDatatableModule} from '@swimlane/ngx-datatable';\n\nimport { AnnotationApiService } from './services/annotation-api/annotation-api.service';\nimport { AnnotationViewComponent } from './annotation-set/annotation-view/annotation-view.component';\nimport { AnnotationSetComponent } from './annotation-set/annotation-set.component';\nimport { RectangleComponent } from './annotation-set/annotation-view/rectangle/rectangle.component';\nimport { CommentComponent } from './comment-set/comment/comment.component';\nimport { CtxToolbarComponent } from './annotation-set/ctx-toolbar/ctx-toolbar.component';\nimport { CommentSetComponent } from './comment-set/comment-set.component';\nimport { TextareaAutoExpandDirective } from './comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';\nimport { CommentsSummaryComponent } from './comments-summary/comments-summary.component';\nimport { CommentSetRenderService } from './comment-set/comment-set-render.service';\nimport { BoxHighlightCreateComponent } from './annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';\nimport { HighlightCreateService } from './annotation-set/annotation-create/highlight-create/highlight-create.service';\nimport { CommentSetHeaderComponent } from './comment-set/comment-set-header/comment-set-header.component';\nimport { CommentSearchComponent } from './comment-set/comment-set-header/comment-search/comment-search.component';\nimport { TextHighlightDirective } from './comment-set/comment/text-highlight/text-highlight.directive';\nimport { TagsComponent } from './tags/tags.component';\nimport { TagsServices } from './services/tags/tags.services';\nimport { CommentsNavigateComponent } from './comment-set/comment-navigate/comments-navigate.component';\nimport {CommentFilterComponent} from './comment-set/comment-set-header/comment-filter/comment-filter.component';\nimport {MomentDatePipe} from './pipes/date/date.pipe';\nimport { BookmarksApiService } from './services/bookmarks-api/bookmarks-api.service';\nimport {FilterPipe} from './pipes/filter/filter.pipe';\nimport {UnsnakePipe} from './pipes/unsnake/unsnake.pipe';\nimport {SharedModule} from '../shared/shared.module';\nimport { MetadataLayerComponent } from './annotation-set/metadata-layer/metadata-layer.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n HttpClientModule,\n MutableDivModule,\n TagInputModule,\n RouterModule,\n ReactiveFormsModule,\n NgxDatatableModule,\n SharedModule\n ],\n declarations: [\n MetadataLayerComponent,\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n RectangleComponent,\n CommentComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n TextHighlightDirective,\n CtxToolbarComponent,\n CommentSetComponent,\n CommentsNavigateComponent,\n TextareaAutoExpandDirective,\n CommentsSummaryComponent,\n TagsComponent,\n MomentDatePipe,\n CommentFilterComponent,\n FilterPipe,\n UnsnakePipe\n ],\n entryComponents: [\n AnnotationViewComponent,\n AnnotationSetComponent,\n CommentSetComponent\n ],\n providers: [\n AnnotationApiService,\n BookmarksApiService,\n CommentSetRenderService,\n HighlightCreateService,\n TagsServices\n ],\n exports: [\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n CommentSetComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n CommentsSummaryComponent,\n TagsComponent,\n CommentFilterComponent,\n MomentDatePipe,\n FilterPipe,\n UnsnakePipe,\n MetadataLayerComponent\n ]\n})\nexport class AnnotationsModule { }\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n\n@Directive({\n selector: '[mvGrabNDrag]'\n})\nexport class GrabNDragDirective {\n\n originalPosition: { left: number; top: number };\n private pointerDown = false;\n\n @Input() dragEnabled = false;\n @Input() dragX: Element;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('pointerdown', ['$event'])\n onPointerDown(event: PointerEvent) {\n if (this.dragEnabled) {\n event.preventDefault();\n this.pointerDown = true;\n this.originalPosition = {\n left: event.clientX + this.el.nativeElement.scrollLeft,\n top: event.clientY + this.el.nativeElement.scrollTop,\n };\n }\n }\n\n @HostListener('window:pointermove', ['$event'])\n onPointerMove(event: PointerEvent) {\n if (this.pointerDown && this.dragEnabled) {\n event.preventDefault();\n const scrollDiff = {\n left: this.originalPosition.left - (event.clientX + this.el.nativeElement.scrollLeft),\n top: this.originalPosition.top - (event.clientY + this.el.nativeElement.scrollTop)\n };\n if (this.dragEnabled) {\n this.dragX.scrollLeft += scrollDiff.left;\n this.el.nativeElement.scrollTop += scrollDiff.top;\n }\n }\n }\n\n @HostListener('window:pointerup') onWindowPointerUp() {\n this.pointerDown = false;\n }\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Outline } from './outline-item/outline.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport * as bookmarksSelectors from '../../../store/selectors/bookmark.selectors';\nimport { BookmarkNode } from '../../../store/models/bookmarks.interface';\nimport { CreateBookmark, LoadBookmarks } from '../../../store/actions/bookmark.actions';\nimport { take } from 'rxjs/operators';\nimport uuid from 'uuid';\nimport { ViewerEventService } from '../../viewer-event.service';\nimport { BookmarksState } from '../../../store/reducers/bookmarks.reducer';\n\n@Component({\n selector: 'mv-side-bar',\n templateUrl: './side-bar.component.html'\n})\nexport class SideBarComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() annotationsEnabled: boolean;\n @Input() outline: Outline;\n @Input() url: string;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() currentPageNumber: number;\n\n\n selectedView = 'outline';\n bookmarkNodes$: Observable<BookmarkNode[]>;\n\n $subscription: Subscription;\n\n constructor(private viewerEvents: ViewerEventService,\n private store: Store<BookmarksState>\n ) { }\n\n ngOnInit(): void {\n this.bookmarkNodes$ = this.store.pipe(select(bookmarksSelectors.getBookmarkNodes));\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editable => this.selectedView = editable ? 'bookmarks' : this.selectedView);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.url && this.url) {\n this.store.dispatch(new LoadBookmarks());\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n goToDestination(destination: any[]) {\n this.viewerEvents.goToDestination(destination);\n }\n\n toggleSidebarView(sidebarView: string) {\n this.selectedView = sidebarView;\n }\n\n onAddBookmarkClick() {\n this.toggleSidebarView('bookmarks');\n this.store.pipe(select(bookmarksSelectors.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo, name: '', id: uuid()\n } as any));\n });\n }\n\n isViewedItem(current: Outline, next: Outline): boolean {\n return next === undefined ? current.pageNumber <= this.currentPageNumber :\n current.pageNumber <= this.currentPageNumber && (next.pageNumber > this.currentPageNumber);\n }\n\n findEndPage(next: Outline): number {\n return next === undefined ? Number.MAX_SAFE_INTEGER : next.pageNumber;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Outline } from './outline.model';\n\n@Component({\n selector: 'mv-outline-item',\n templateUrl: './outline-item.component.html'\n})\nexport class OutlineItemComponent implements OnInit {\n\n @Input() outline: Outline;\n @Input() currentPageNumber: Number;\n @Input() isCurrentSection: boolean;\n @Input() endPage: Number;\n @Output() navigationEvent = new EventEmitter();\n\n showOutlineItems: boolean;\n\n ngOnInit() {\n this.showOutlineItems = true;\n }\n\n goToDestination(destination: any) {\n if (destination) {\n this.navigationEvent.emit(destination);\n }\n }\n\n toggleOutline() {\n this.showOutlineItems = !this.showOutlineItems;\n }\n\n isViewedItem(current: Outline, next: Outline): boolean {\n return next === undefined ? current.pageNumber <= this.currentPageNumber && this.endPage > this.currentPageNumber :\n current.pageNumber <= this.currentPageNumber && (next.pageNumber > this.currentPageNumber);\n }\n\n findEndPage(next: Outline): number {\n return next === undefined ? Number.MAX_SAFE_INTEGER : next.pageNumber;\n }\n\n showHighlightOutlineCss() {\n return this.isCurrentSection ? 'highlightedOutlineItem' : 'outlineItem';\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport {filter, take} from 'rxjs/operators';\n\nimport { Rectangle } from '../../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromRedaSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromDocument from '../../store/selectors/document.selectors';\nimport * as fromActions from '../../store/actions/redaction.actions';\nimport * as fromRedactionActions from '../../store/actions/redaction.actions';\nimport * as fromRedaActions from '../../store/actions/redaction.actions';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\nimport { ViewerEventService } from '../../viewers/viewer-event.service';\nimport { Redaction } from '../services/redaction.model';\n\n@Component({\n selector: 'mv-redactions',\n templateUrl: './redaction.component.html'\n})\nexport class RedactionComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n redactionsPerPage$: Observable<any>; // todo add type\n selectedRedaction$: Observable<SelectionAnnotation | {}>;\n rectangles: Rectangle[];\n drawMode: boolean;\n documentId: string;\n\n private $subscription: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n private readonly viewerEvents: ViewerEventService,\n private toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n this.redactionsPerPage$ = this.store.pipe(select(fromSelectors.getRedactionsPerPage));\n this.selectedRedaction$ = this.store.pipe(select(fromSelectors.getSelected));\n this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);\n this.$subscription.add(this.store.pipe(select(fromSelectors.getRedactedDocumentInfo), filter(value => !!value))\n .subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));\n this.$subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));\n this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));\n this.toolbarEvents.applyRedactToDocument.subscribe(() => {\n this.store.pipe(select(fromRedaSelectors.getRedactionArray), take(1)).subscribe(redactions => {\n this.store.dispatch(new fromRedaActions.Redact(redactions));\n });\n });\n this.toolbarEvents.clearAllRedactMarkers.subscribe(() => {\n this.store.dispatch(new fromRedaActions.UnmarkAll(this.documentId));\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n markTextRedaction(highlight) {\n const redactionHighlight = highlight.rectangles;\n if (redactionHighlight && redactionHighlight.length) {\n this.saveRedaction(highlight.page, [...redactionHighlight]);\n }\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n\n markBoxRedaction({ rectangles, page }) {\n this.saveRedaction(page, rectangles);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n\n saveRedaction(page: number, rectangles: Rectangle[]) {\n const redaction = { page, rectangles, redactionId: uuid(), documentId: this.documentId };\n this.store.dispatch(new fromRedactionActions.SaveRedaction(redaction));\n }\n\n onMarkerDelete(event) {\n this.store.dispatch(new fromActions.DeleteRedaction(event));\n }\n\n selectRedaction(event) {\n this.store.dispatch(new fromActions.SelectRedaction(event));\n }\n\n onMarkerUpdate(redaction: Redaction) {\n this.store.dispatch(new fromActions.SaveRedaction(redaction));\n }\n\n downloadDocument({ blob, filename }) {\n if (navigator && navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = filename;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n }\n this.store.dispatch(new fromRedactionActions.ResetRedactedDocument());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpSessionApiService {\n\n public ICP_SESSION_API = '/icp/sessions';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public loadSession(caseId: string): Observable<any> {\n return this.httpClient\n .get<{username: string, session: IcpSession}>(`${this.ICP_SESSION_API}/${caseId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport {catchError, exhaustMap, map, switchMap} from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport {AnnotationApiService} from '../../annotations/services/annotation-api/annotation-api.service';\nimport * as annotationsActions from '../actions/annotation.actions';\n\n@Injectable()\nexport class AnnotationEffects {\n constructor(\n private actions$: Actions,\n private annotationApiService: AnnotationApiService,\n ) { }\n\n @Effect()\n loadAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.LOAD_ANNOTATION_SET),\n map((action: annotationsActions.LoadAnnotationSet) => action.payload),\n switchMap((documentId) => {\n return this.annotationApiService.getAnnotationSet(documentId).pipe(\n map(res => {\n return new annotationsActions.LoadAnnotationSetSucess(res);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n postAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.SAVE_ANNOTATION),\n map((action: annotationsActions.SaveAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.postAnnotation(annotation).pipe(\n map(annotations => {\n return new annotationsActions.SaveAnnotationSuccess(annotations);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n deleteAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.DELETE_ANNOTATION),\n map((action: annotationsActions.DeleteAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.deleteAnnotation(annotation).pipe(\n map(result => {\n return new annotationsActions.DeleteAnnotationSuccess(annotation);\n }),\n catchError(error => {\n return of(new annotationsActions.DeleteAnnotationFail(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { BookmarksApiService } from '../../annotations/services/bookmarks-api/bookmarks-api.service';\nimport * as bookmarksActions from '../actions/bookmark.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocument from '../selectors/document.selectors';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport * as fromStore from '../reducers/reducers';\n\n@Injectable()\nexport class BookmarksEffects {\n\n constructor(private actions$: Actions,\n private store: Store<fromStore.AnnotationSetState|fromBookmarks.BookmarksState>,\n private bookmarksApiService: BookmarksApiService) {}\n\n @Effect()\n loadBookmarks$ = this.actions$.pipe(\n ofType(bookmarksActions.LOAD_BOOKMARKS),\n withLatestFrom(this.store.pipe(select(fromDocument.getDocumentId))),\n map(([, documentId]) => documentId),\n exhaustMap((documentId) =>\n this.bookmarksApiService.getBookmarks(documentId)\n .pipe(\n map(res => new bookmarksActions.LoadBookmarksSuccess(res)),\n catchError(err => of(new bookmarksActions.LoadBookmarksFailure(err)))\n )\n ));\n\n @Effect()\n createBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.CREATE_BOOKMARK),\n map((action: bookmarksActions.CreateBookmark) => action.payload),\n exhaustMap((bookmark) =>\n this.bookmarksApiService.createBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.CreateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.CreateBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n moveBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.MOVE_BOOKMARK),\n map((action: bookmarksActions.MoveBookmark) => action.payload),\n exhaustMap((bookmarks) =>\n this.bookmarksApiService.updateMultipleBookmarks(bookmarks)\n .pipe(\n map(bmrks => new bookmarksActions.MoveBookmarkSuccess(bmrks)),\n catchError(error => of(new bookmarksActions.MoveBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n deleteBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.DELETE_BOOKMARK),\n map((action: bookmarksActions.DeleteBookmark) => action.payload),\n exhaustMap(({ deleted, updated }) =>\n this.bookmarksApiService.deleteMultipleBookmarks({ deleted, updated })\n .pipe(\n switchMap(() => {\n if (updated) {\n return [\n new bookmarksActions.DeleteBookmarkSuccess(deleted),\n new bookmarksActions.UpdateBookmarkSuccess(updated)\n ];\n } else {\n return [new bookmarksActions.DeleteBookmarkSuccess(deleted)];\n }\n }),\n catchError(error => of(new bookmarksActions.DeleteBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n updateBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.UPDATE_BOOKMARK),\n map((action: bookmarksActions.UpdateBookmark) => action.payload),\n switchMap((bookmark) =>\n this.bookmarksApiService.updateBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.UpdateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.UpdateBookmarkFailure(error)))\n )\n ));\n}\n","import {Observable} from 'rxjs';\nimport {HttpClient, HttpResponse} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {catchError, map} from 'rxjs/operators';\nimport { Redaction } from './redaction.model';\n\n@Injectable()\nexport class RedactionApiService {\n\n private markupsApiUrl = '/api/markups';\n private redactApiUrl = '/api/redaction';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRedactions(documentId: string): Observable<HttpResponse<Redaction[]>> {\n const fixedUrl = `${this.markupsApiUrl}/${documentId}`;\n return this.httpClient\n .get<Redaction[]>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRedaction(body): Observable<Redaction> {\n return this.httpClient\n .post<Redaction>(this.markupsApiUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public deleteRedaction(payload): Observable<null> {\n const url = `${this.markupsApiUrl}/${payload.documentId}/${payload.redactionId}`;\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteAllMarkers(documentId): Observable<null> {\n const url = `${this.markupsApiUrl}/${documentId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public redact(payload): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(this.redactApiUrl, payload, { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { RedactionApiService } from '../../redaction/services/redaction-api.service';\nimport * as redactionActions from '../actions/redaction.actions';\nimport { HttpResponse } from '@angular/common/http';\n\n@Injectable()\nexport class RedactionEffects {\n constructor(\n private actions$: Actions,\n private redactionApiService: RedactionApiService,\n ) { }\n\n @Effect()\n loadRedactions$ = this.actions$.pipe(\n ofType(redactionActions.LOAD_REDACTIONS),\n map((action: redactionActions.LoadRedactions) => action.payload),\n switchMap((documentId) => {\n return this.redactionApiService.getRedactions(documentId).pipe(\n map(resp => {\n return new redactionActions.LoadRedactionSuccess(resp.body);\n }),\n catchError(error => {\n return of(new redactionActions.LoadRedactionFailure(error));\n }));\n }));\n\n @Effect()\n saveRedaction$ = this.actions$.pipe(\n ofType(redactionActions.SAVE_REDACTION),\n map((action: redactionActions.SaveRedaction) => action.payload),\n exhaustMap((redaction) => {\n return this.redactionApiService.saveRedaction(redaction).pipe(\n map(resp => {\n return new redactionActions.SaveRedactionSuccess(resp);\n }),\n catchError(error => {\n return of(new redactionActions.SaveRedactionFailure(error));\n }));\n }));\n\n @Effect()\n deleteRedaction$ = this.actions$.pipe(\n ofType(redactionActions.DELETE_REDACTION),\n map((action: redactionActions.DeleteRedaction) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.deleteRedaction(redactionPayload).pipe(\n map(() => {\n return new redactionActions.DeleteRedactionSuccess(redactionPayload);\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n\n @Effect()\n redact$ = this.actions$.pipe(\n ofType(redactionActions.REDACT),\n map((action: redactionActions.Redact) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.redact(redactionPayload).pipe(\n map((result: HttpResponse<Blob>) => {\n const header = result.headers.get('content-disposition').split('filename=');\n const filename = header.length > 1 ? header[1].replace(/\"/g, '')\n : `redacted-document-${redactionPayload.documentId}`;\n return new redactionActions.RedactSuccess({ blob: result.body, filename });\n }),\n catchError(error => {\n return of(new redactionActions.RedactFailure(error));\n }));\n }));\n\n @Effect()\n unmarkAll$ = this.actions$.pipe(\n ofType(redactionActions.UNMARK_ALL),\n map((action: redactionActions.UnmarkAll) => action.payload),\n exhaustMap((documentId) => {\n return this.redactionApiService.deleteAllMarkers(documentId).pipe(\n map(result => {\n return new redactionActions.UnmarkAllSuccess();\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class DocumentConversionApiService {\n\n private documentConversionUrl = '/doc-assembly/convert';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public convert(documentId): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(`${this.documentConversionUrl}/${documentId}`, {},\n { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(error => of(error))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\n\n@Injectable()\nexport class RotationApiService {\n\n public rotationApiUrl = '/em-anno/metadata';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRotation(documentId: string): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/${documentId}`;\n return this.httpClient\n .get<Rotation>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRotation(payload: Rotation): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/`;\n return this.httpClient\n .post<any>(fixedUrl, payload, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Injectable } from '@angular/core';\nimport { HttpResponse } from '@angular/common/http';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { DocumentConversionApiService } from '../../viewers/convertible-content-viewer/document-conversion-api.service';\nimport { RotationApiService } from '../../viewers/rotation-persist/rotation-api.service';\nimport { of } from 'rxjs';\nimport * as documentActions from '../actions/document.actions';\n\n@Injectable()\nexport class DocumentEffects {\n constructor(\n private actions$: Actions,\n private documentConversionService: DocumentConversionApiService,\n private rotationApiService: RotationApiService,\n ) { }\n\n @Effect()\n convert$ = this.actions$.pipe(\n ofType(documentActions.CONVERT),\n map((action: documentActions.Convert) => action.payload),\n exhaustMap((documentId) => {\n return this.documentConversionService.convert(documentId).pipe(\n map((result: HttpResponse<Blob>) => {\n const url = URL.createObjectURL(result.body);\n return new documentActions.ConvertSuccess(url);\n }),\n catchError(error => {\n return of(new documentActions.ConvertFailure(error));\n }));\n }));\n\n @Effect()\n loadRotation$ = this.actions$.pipe(\n ofType(documentActions.LOAD_ROTATION),\n map((action: documentActions.LoadRotation) => action.payload),\n switchMap((documentId) => {\n return this.rotationApiService.getRotation(documentId).pipe(\n map(resp => {\n return new documentActions.LoadRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.LoadRotationFailure(error));\n }));\n }));\n\n @Effect()\n saveRotation$ = this.actions$.pipe(\n ofType(documentActions.SAVE_ROTATION),\n map((action: documentActions.SaveRotation) => action.payload),\n switchMap((payload) => {\n return this.rotationApiService.saveRotation(payload).pipe(\n map(resp => {\n return new documentActions.SaveRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.SaveRotationFailure(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { IcpSessionApiService } from '../../icp/icp-session-api.service';\nimport { IcpUpdateService } from '../../icp/icp-update.service';\nimport * as icpActions from '../actions/icp.actions' ;\nimport { IcpSession } from '../../icp/icp.interfaces';\n\n@Injectable()\nexport class IcpEffects {\n\n constructor(private actions$: Actions,\n private icpApiService: IcpSessionApiService,\n private icpUpdateService: IcpUpdateService) {}\n\n @Effect()\n loadIcpSession$ = this.actions$.pipe(\n ofType(icpActions.LOAD_ICP_SESSION),\n map((action: icpActions.LoadIcpSession) => action.payload),\n exhaustMap((caseId: string) =>\n this.icpApiService.loadSession(caseId)\n .pipe(\n map(res => new icpActions.JoinIcpSocketSession(res)),\n catchError(error => of(new icpActions.LoadIcpSessionFailure(error)))\n )\n ));\n\n\n @Effect()\n joinIcpSocketSession$ = this.actions$.pipe(\n ofType(icpActions.JOIN_ICP_SOCKET_SESSION),\n map((action: icpActions.JoinIcpSocketSession) => action.payload),\n switchMap((res: {username: string, session: IcpSession}) =>\n this.icpUpdateService.joinSession(res.username, res.session)\n .pipe(map(participants => new icpActions.IcpSocketSessionJoined({session: res.session, participantInfo: participants})))\n ));\n}\n","import { AnnotationEffects } from './annotation.effects';\nimport { BookmarksEffects } from './bookmarks.effects';\nimport { RedactionEffects } from './redaction.effects';\nimport { DocumentEffects } from './document.effects';\nimport { IcpEffects } from './icp.effects';\n\nexport const effects: any[] = [AnnotationEffects, BookmarksEffects, RedactionEffects, DocumentEffects, IcpEffects];\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { TreeNode } from '@circlon/angular-tree-component';\n\nimport { DeleteBookmark, MoveBookmark, UpdateBookmark } from '../../../../store/actions/bookmark.actions';\nimport { Bookmark, BookmarkNode } from '../../../../store/models/bookmarks.interface';\nimport * as bookmarksSelectors from '../../../../store/selectors/bookmark.selectors';\nimport { AnnotationSetState } from '../../../../store/reducers/annotations.reducer';\nimport { DocumentPages } from '../../../../store/reducers/document.reducer';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport * as fromBookmarks from '../../../../store/reducers/bookmarks.reducer';\nimport { getBookmarkChildren } from '../../../../store/bookmarks-store-utils';\n\n@Component({\n selector: 'mv-bookmarks',\n templateUrl: './bookmarks.component.html'\n})\nexport class BookmarksComponent implements OnInit, OnDestroy {\n\n @Input() bookmarkNodes: BookmarkNode[];\n @Input() zoom: number;\n @Input() rotate: number;\n @Output() goToDestination = new EventEmitter<any[]>();\n\n pageLookup: { [pageId: number]: DocumentPages } = {};\n editableBookmark: string;\n BOOKMARK_CHAR_LIMIT = 30;\n\n options = {\n allowDrag: true,\n allowDrop: true\n };\n\n $subscription: Subscription;\n\n constructor(private store: Store<fromBookmarks.BookmarksState | AnnotationSetState>) { }\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editableId => this.editableBookmark = editableId);\n this.$subscription.add(this.store.select(fromDocument.getPages)\n .subscribe(pages => {\n\n Object.keys(pages).map(key => {\n this.pageLookup[key] = pages[key];\n });\n\n }));\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n editBookmark(id) {\n this.editableBookmark = id;\n }\n\n onBookmarkMove({ node, from, to }: any) {\n let movedBookmarks = [{\n ...node,\n previous: to.index > 0 ? to.parent.children[to.index - 1].id : undefined,\n parent: to.parent.documentId ? to.parent.id : undefined\n }];\n let fromNext = this.getSibling(from, from.index);\n fromNext = fromNext && fromNext.id === node.previous ? this.getSibling(from, from.index + 1) : fromNext;\n if (fromNext) {\n movedBookmarks = [...movedBookmarks, { ...fromNext, previous: node.previous }];\n }\n const toNext = this.getSibling(to, to.index + 1);\n if (toNext) {\n movedBookmarks = [...movedBookmarks, { ...toNext, previous: node.id }];\n }\n this.store.dispatch(new MoveBookmark(movedBookmarks));\n }\n\n deleteBookmark(node: TreeNode) {\n let next: Bookmark;\n const siblings = node.parent.children;\n if (siblings.length > node.index + 1) {\n next = siblings[node.index + 1].data;\n next.previous = node.data.previous;\n }\n this.store.dispatch(new DeleteBookmark({\n deleted: [node.data.id, ...getBookmarkChildren(node.data.children)], updated: next\n }));\n }\n\n updateBookmark(bookmark: Bookmark, name) {\n const editedBookmark = {\n ...bookmark,\n name\n };\n if (name) {\n this.store.dispatch(new UpdateBookmark(editedBookmark));\n this.editableBookmark = undefined;\n }\n }\n\n goToBookmark(bookmark: Bookmark) {\n const thisPage = this.pageLookup[bookmark.pageNumber + 1];\n const defaultHeight = thisPage.styles.height;\n const defaultScaleY = this.scaledY(bookmark.yCoordinate, defaultHeight, thisPage);\n\n let top = 0, left = 0;\n switch (this.rotate) {\n case 90:\n left = - defaultScaleY;\n break;\n case 180:\n top = this.scaledY(bookmark.yCoordinate, (defaultHeight - (24 * this.zoom)), thisPage);\n break;\n case 270:\n left = defaultScaleY;\n break;\n default:\n top = defaultScaleY;\n }\n\n this.goToDestination.emit([\n bookmark.pageNumber,\n { 'name': 'XYZ' },\n left,\n top\n ]);\n }\n\n private getSibling(node, index) {\n return node.parent.children.length > index ? node.parent.children[index] : undefined;\n }\n\n private scaledY(yCoordinate: number, height: number, page: DocumentPages): number {\n const viewportScale = page.viewportScale / this.zoom;\n return ((height / this.zoom) - yCoordinate) / viewportScale;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/document.reducer';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { Subscription } from 'rxjs';\nimport * as fromSelectors from '../../store/selectors/document.selectors';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'mv-conversion-viewer',\n templateUrl: './convertible-content-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ConvertibleContentViewerComponent implements OnInit, OnDestroy {\n\n @Input() originalUrl;\n @Input() downloadFileName: string;\n\n @Input() height;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n private $subscription: Subscription;\n convertedUrl: string;\n\n constructor(private store: Store<fromStore.DocumentState>) {\n }\n\n ngOnInit(): void {\n this.store.dispatch(new fromDocumentActions.Convert(this.extractDMStoreDocId(this.originalUrl)));\n this.$subscription = this.store.pipe(select(fromSelectors.getConvertedDocument), filter(value => !!value))\n .subscribe((docInfo) => {\n if (docInfo.url) {\n this.convertedUrl = docInfo.url;\n this.store.dispatch(new fromDocumentActions.ClearConvertDocUrl());\n } else {\n this.onLoadException(new ViewerException(docInfo.error));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle.emit(title);\n }\n\n // todo move this to common place for media viewer and pdf\n private extractDMStoreDocId(url: string): string {\n\n if (url.includes('/documents/')) {\n url = url.split('/documents/')[1];\n } else if (url.includes('/documentsv2/')) {\n url = url.split('/documentsv2/')[1];\n }\n return url.replace('/binary', '');\n }\n}\n","import { Component } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\n\n@Component({\n selector: 'mv-confirm-action',\n templateUrl: './confirm-action-dialog.component.html',\n})\nexport class ConfirmActionDialogComponent {\n\n constructor(private toolbarEvents: ToolbarEventService) {}\n\n onCancel() {\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n\n onConfirm() {\n this.toolbarEvents.icp.confirmExit();\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n}\n","import {Bookmark, BookmarksPerPage} from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport {Component, Input, OnInit} from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/bookmark.selectors';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'mv-bookmark-icons',\n templateUrl: './bookmark-icons.component.html'\n})\nexport class BookmarkIconsComponent implements OnInit {\n\n @Input() zoom: number;\n @Input() rotate: number;\n bookmarksPerPage$: Observable<BookmarksPerPage[]>;\n bookmarks: Bookmark[];\n documentId: string;\n\n constructor(private store: Store<fromStore.State>) {}\n\n ngOnInit(): void {\n this.bookmarksPerPage$ = this.store.pipe(select(fromSelectors.getBookmarksPerPage));\n }\n\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocuments from '../../store/selectors/document.selectors';\nimport { filter, take } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\nimport { ResponseType } from '../viewer-exception.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Subscription } from 'rxjs';\n\n\n@Directive({\n selector: '[mvRotationPersist]'\n})\nexport class RotationPersistDirective implements OnInit, OnDestroy {\n\n documentId: string;\n rotation = 0;\n savedRotation = 0;\n\n $subscriptions: Subscription;\n\n constructor(private el: ElementRef,\n private store: Store<fromStore.DocumentState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private toolbarEvents: ToolbarEventService) {\n }\n\n ngOnInit() {\n this.$subscriptions = this.toolbarEvents.rotateSubject.subscribe(rotation => this.onRotate(rotation));\n this.$subscriptions\n .add(this.toolbarEvents.saveRotationSubject.subscribe(() => this.saveRotation()))\n .add(this.store.pipe(select(fromDocuments.getRotation))\n .subscribe(rotation => this.savedRotation = rotation))\n .add(this.store.pipe(select(fromDocuments.getDocumentId))\n .subscribe(documentId => this.documentId = documentId));\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n @HostListener('mediaLoadStatus', ['$event'])\n onMediaLoad(status: ResponseType) {\n this.rotation = 0;\n this.store.dispatch(new fromDocumentActions.LoadRotation(this.documentId));\n this.store.pipe(select(fromDocuments.rotationLoaded),\n filter(value => !!value),\n take(1))\n .subscribe(() => {\n if (this.savedRotation) {\n this.toolbarEvents.rotateSubject.next(this.savedRotation);\n }\n });\n }\n\n private onRotate(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.toolbarButtons.showSaveRotationButton = this.savedRotation !== this.rotation;\n }\n\n private saveRotation() {\n const payload: Rotation = {\n documentId: this.documentId,\n rotationAngle: this.rotation\n };\n this.store.dispatch(new fromDocumentActions.SaveRotation(payload));\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { IcpParticipant, IcpState } from '../icp.interfaces';\nimport { select, Store } from '@ngrx/store';\nimport * as fromSelectors from '../../store/selectors/icp.selectors';\n\n@Component({\n selector: 'mv-participants-list',\n templateUrl: './participants-list.component.html'\n})\nexport class ParticipantsListComponent implements OnInit, OnDestroy {\n\n subscription: Subscription;\n participants$: Observable<IcpParticipant[]>;\n presenter$: Observable<IcpParticipant>;\n isPresenter$: Observable<boolean>;\n\n showParticipantsList = false;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.participants$ = this.store.pipe(select(fromSelectors.getParticipants));\n this.presenter$ = this.store.pipe(select(fromSelectors.getPresenter));\n this.isPresenter$ = this.store.pipe(select(fromSelectors.isPresenter));\n\n this.subscription = this.toolbarEvents.icp.participantsListVisible.subscribe(isVisible => this.showParticipantsList = isVisible);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport uuid from 'uuid';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport { ViewerEventService } from '../../../../viewers/viewer-event.service';\nimport * as fromAnnotationActions from '../../../../store/actions/annotation.actions';\nimport { HighlightCreateService } from './highlight-create.service';\n\n@Directive({\n selector: '[mvCreateTextHighlight]'\n})\nexport class HighlightCreateDirective implements OnInit, OnDestroy {\n pageHeight: number;\n pageWidth: number;\n zoom: number;\n rotate: number;\n allPages: object;\n\n $subscription: Subscription;\n\n constructor(\n private element: ElementRef<HTMLElement>,\n private toolbarEvents: ToolbarEventService,\n private viewerEvents: ViewerEventService,\n private highlightService: HighlightCreateService,\n private store: Store<fromStore.AnnotationSetState>\n ) { }\n\n ngOnInit() {\n this.$subscription = this.store.select(fromDocument.getPages).subscribe((pages) => {\n if (pages[1]) {\n this.allPages = pages;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n }\n }\n\n @HostListener('mouseup', ['$event'])\n onMouseUp(mouseEvent: MouseEvent) {\n const pageElement = (<HTMLElement>(mouseEvent.target as HTMLElement).offsetParent).offsetParent;\n const page = parseInt(pageElement.getAttribute('data-page-number'), 10);\n if (this.toolbarEvents.highlightModeSubject.getValue()) {\n const rectangles = this.getRectangles(mouseEvent, page);\n this.viewerEvents.textSelected({ page, rectangles });\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onPdfViewerClick(event: MouseEvent) {\n this.store.dispatch(\n new fromAnnotationActions.SelectedAnnotation({\n annotationId: '',\n selected: false,\n editable: false,\n })\n );\n this.viewerEvents.clearCtxToolbar();\n }\n\n private getRectangles(event: MouseEvent, page) {\n this.pageHeight = this.allPages[page].styles.height;\n this.pageWidth = this.allPages[page].styles.width;\n this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);\n this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);\n const selection = window.getSelection();\n if (selection) {\n const localElement = <HTMLElement>event.target;\n\n this.removeEnhancedTextModeStyling(localElement);\n\n if (selection.rangeCount && !selection.isCollapsed) {\n const range = selection.getRangeAt(0).cloneRange();\n const clientRects = range.getClientRects();\n\n if (clientRects) {\n\n const parentRect = localElement.parentElement.getBoundingClientRect();\n const selectionRectangles: Rectangle[] = [];\n for (let i = 0; i < clientRects.length; i++) {\n const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);\n const findSelecttionRectangle = selectionRectangles.find(\n (rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x\n );\n if (!findSelecttionRectangle) {\n selectionRectangles.push(selectionRectangle);\n }\n }\n return selectionRectangles;\n }\n }\n }\n }\n\n private createTextRectangle(rect: any, parentRect: any): Rectangle {\n const height = rect.bottom - rect.top;\n const width = rect.right - rect.left;\n const top = rect.top - parentRect.top;\n const left = rect.left - parentRect.left;\n\n let rectangle = this.highlightService.applyRotation(\n this.pageHeight,\n this.pageWidth,\n height,\n width,\n top,\n left,\n this.rotate,\n this.zoom\n );\n rectangle = { id: uuid(), ...rectangle };\n\n return rectangle as Rectangle;\n }\n\n private removeEnhancedTextModeStyling(element: HTMLElement) {\n if (element.parentElement.children) {\n for (let i = 0; i < element.parentElement.children.length; i++) {\n const child = <HTMLElement>element.parentElement.children[i];\n\n child.style.padding = '0';\n // regex will be targeting the translate style in string\n // e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)\n const translateCSSRegex = /translate[XYZ]\\(-?\\d*(\\.\\d+)?(px)?\\)/g;\n child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType } from '../viewer-exception.model';\n\n@Component({\n selector: 'mv-multimedia-player',\n templateUrl: './multimedia-player.component.html'\n})\nexport class MultimediaPlayerComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() multimediaOn: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n @ViewChild('videoPlayer', {static: false}) videoPlayer: ElementRef;\n\n playbackMsg = 'loading';\n\n private subscription: Subscription;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n ) {}\n\n public ngOnInit(): void {\n this.subscription = this.toolbarEvents.downloadSubject\n .subscribe(() => this.downloadLink.nativeElement.click());\n this.loadStatus.emit(ResponseType.SUCCESS);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.reloadVideo();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n reloadVideo() {\n if (this.videoPlayer) {\n this.playbackMsg = 'loading';\n this.videoPlayer.nativeElement.load();\n }\n }\n\n onSuccess() {\n this.playbackMsg = 'success';\n }\n\n onError() {\n this.playbackMsg = 'error';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';\nimport { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';\nimport { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';\nimport { MediaViewerComponent } from './media-viewer.component';\nimport { ToolbarModule } from './toolbar/toolbar.module';\nimport { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationsModule } from './annotations/annotations.module';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport { GrabNDragDirective } from './viewers/grab-n-drag.directive';\nimport { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';\nimport { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule} from '@ngrx/store';\nimport { RedactionComponent } from './redaction/components/redaction.component';\nimport { IcpSessionApiService } from './icp/icp-session-api.service';\nimport { IcpUpdateService } from './icp/icp-update.service';\nimport { IcpService } from './icp/icp.service';\nimport { SocketService } from './icp/socket.service';\nimport { reducers} from './store/reducers/reducers';\nimport { effects } from './store/effects/index';\nimport { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';\nimport { RedactionApiService } from './redaction/services/redaction-api.service';\nimport { MutableDivModule } from 'mutable-div';\nimport { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';\nimport { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';\nimport { IcpPresenterService } from './icp/icp-presenter.service';\nimport { IcpFollowerService } from './icp/icp-follower.service';\nimport { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';\nimport { TreeModule } from '@circlon/angular-tree-component';\nimport { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';\nimport { RotationApiService } from './viewers/rotation-persist/rotation-api.service';\nimport { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';\nimport { ParticipantsListComponent } from './icp/participants-list/participants-list.component';\nimport { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';\nimport {MultimediaPlayerComponent} from './viewers/multimedia-player/multimedia-player.component';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n ToolbarModule,\n AnnotationsModule,\n TagInputModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n StoreModule.forFeature('media-viewer', reducers),\n EffectsModule.forFeature(effects),\n TreeModule,\n MutableDivModule\n ],\n declarations: [\n PdfViewerComponent,\n SideBarComponent,\n BookmarksComponent,\n OutlineItemComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent,\n MultimediaPlayerComponent,\n MediaViewerComponent,\n ConvertibleContentViewerComponent,\n GrabNDragDirective,\n RotationPersistDirective,\n HighlightCreateDirective,\n ConfirmActionDialogComponent,\n RedactionComponent, // todo made put this into module\n BookmarkIconsComponent,\n ParticipantsListComponent\n ],\n entryComponents: [\n PdfViewerComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent\n ],\n providers: [\n PdfJsWrapperFactory,\n CommentService,\n RedactionApiService,\n IcpSessionApiService,\n IcpUpdateService,\n SocketService,\n IcpService,\n IcpPresenterService,\n IcpFollowerService,\n RedactionApiService,\n DocumentConversionApiService,\n RotationApiService,\n ],\n exports: [\n MediaViewerComponent\n ]\n})\nexport class MediaViewerModule { }\n","/*\n * Public API Surface of media-viewer\n */\n\nexport * from './lib/media-viewer.module';\nexport * from './lib/toolbar/toolbar.module';\nexport * from './lib/annotations/services/annotation-api/annotation-api.service';\nexport * from './lib/annotations/annotations.module';\nexport * from './lib/viewers/viewer-exception.model';\nexport * from './lib/store/reducers/annotations.reducer';\nexport * from './lib/store/selectors/annotation.selectors';\nexport * from './lib/store/actions/annotation.actions';\nexport * from './lib/store/effects/annotation.effects';\nexport * from './lib/media-viewer.component';\nexport * from './lib/toolbar/main-toolbar/main-toolbar.component';\nexport * from './lib/toolbar/search-bar/search-bar.component';\nexport * from './lib/toolbar/redaction-toolbar/redaction-toolbar.component';\nexport * from './lib/toolbar/icp-toolbar/icp-toolbar.component';\nexport * from './lib/annotations/annotation-set/annotation-view/annotation-view.component';\nexport * from './lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';\nexport * from './lib/annotations/annotation-set/annotation-set.component';\nexport * from './lib/annotations/comment-set/comment-set.component';\nexport * from './lib/annotations/comment-set/comment-set-header/comment-set-header.component';\nexport * from './lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component';\nexport * from './lib/annotations/comments-summary/comments-summary.component';\nexport * from './lib/annotations/tags/tags.component';\nexport * from './lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component';\nexport * from './lib/annotations/annotation-set/metadata-layer/metadata-layer.component';\nexport * from './lib/annotations/pipes/filter/filter.pipe';\nexport * from './lib/annotations/pipes/unsnake/unsnake.pipe';\nexport * from './lib/annotations/pipes/date/date.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {HighlightCreateDirective as ɵch} from './lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';\nexport {HighlightCreateService as ɵu} from './lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service';\nexport {Annotation as ɵcr} from './lib/annotations/annotation-set/annotation-view/annotation.model';\nexport {RectangleComponent as ɵx} from './lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component';\nexport {CtxToolbarComponent as ɵbb} from './lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component';\nexport {CommentsNavigateComponent as ɵbd} from './lib/annotations/comment-set/comment-navigate/comments-navigate.component';\nexport {CommentSetRenderService as ɵbc} from './lib/annotations/comment-set/comment-set-render.service';\nexport {CommentComponent as ɵy} from './lib/annotations/comment-set/comment/comment.component';\nexport {Comment as ɵcs} from './lib/annotations/comment-set/comment/comment.model';\nexport {CommentService as ɵw} from './lib/annotations/comment-set/comment/comment.service';\nexport {TextHighlightDirective as ɵba} from './lib/annotations/comment-set/comment/text-highlight/text-highlight.directive';\nexport {TextareaAutoExpandDirective as ɵbe} from './lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';\nexport {SelectionAnnotation as ɵct} from './lib/annotations/models/event-select.model';\nexport {BookmarksApiService as ɵbg} from './lib/annotations/services/bookmarks-api/bookmarks-api.service';\nexport {TagsServices as ɵz} from './lib/annotations/services/tags/tags.services';\nexport {BookmarkIconsComponent as ɵck} from './lib/bookmark/components/bookmark-icons.component';\nexport {ConfirmActionDialogComponent as ɵci} from './lib/icp/confirm-exit/confirm-action-dialog.component';\nexport {IcpFollowerService as ɵbw} from './lib/icp/icp-follower.service';\nexport {IcpPresenterService as ɵbv} from './lib/icp/icp-presenter.service';\nexport {IcpSessionApiService as ɵbp} from './lib/icp/icp-session-api.service';\nexport {IcpUpdateService as ɵbq} from './lib/icp/icp-update.service';\nexport {IcpState as ɵo} from './lib/icp/icp.interfaces';\nexport {IcpService as ɵbu} from './lib/icp/icp.service';\nexport {ParticipantsListComponent as ɵcl} from './lib/icp/participants-list/participants-list.component';\nexport {SocketService as ɵbr} from './lib/icp/socket.service';\nexport {PrintService as ɵbf} from './lib/print.service';\nexport {RedactionComponent as ɵcj} from './lib/redaction/components/redaction.component';\nexport {RedactionApiService as ɵbk} from './lib/redaction/services/redaction-api.service';\nexport {GovUkDateComponent as ɵq} from './lib/shared/gov-uk-date/gov-uk-date.component';\nexport {GovUkErrorMessageComponent as ɵr} from './lib/shared/gov-uk-error-message/gov-uk-error-message.component';\nexport {GovUkFieldsetComponent as ɵs} from './lib/shared/gov-uk-fieldset/gov-uk-fieldset.component';\nexport {GovUkLabelComponent as ɵt} from './lib/shared/gov-uk-label/gov-uk-label.component';\nexport {SharedModule as ɵp} from './lib/shared/shared.module';\nexport {NumberHelperService as ɵa} from './lib/shared/util/services/number.helper.service';\nexport {BookmarksEffects as ɵbi} from './lib/store/effects/bookmarks.effects';\nexport {DocumentEffects as ɵbl} from './lib/store/effects/document.effects';\nexport {IcpEffects as ɵbo} from './lib/store/effects/icp.effects';\nexport {effects as ɵbh} from './lib/store/effects/index';\nexport {RedactionEffects as ɵbj} from './lib/store/effects/redaction.effects';\nexport {Filters as ɵcu} from './lib/store/models/filters.interface';\nexport {BookmarksState as ɵk,bookmarksReducer as ɵl} from './lib/store/reducers/bookmarks.reducer';\nexport {DocumentState as ɵe,docReducer as ɵf,getDocPages as ɵg} from './lib/store/reducers/document.reducer';\nexport {icpReducer as ɵn} from './lib/store/reducers/icp.reducer';\nexport {redactionReducer as ɵm} from './lib/store/reducers/redaction.reducer';\nexport {State as ɵb,getMVState as ɵd,reducers as ɵc} from './lib/store/reducers/reducers';\nexport {getFilteredComments as ɵi,getFilteredPageEnt as ɵj,tagsReducer as ɵh} from './lib/store/reducers/tags.reducer';\nexport {getDocumentState as ɵcm,getPages as ɵcn} from './lib/store/selectors/document.selectors';\nexport {getFilteredPageEntities as ɵcq,getTagFiltered as ɵcp,getTagsRootState as ɵco} from './lib/store/selectors/tag.selectors';\nexport {ConvertibleContentViewerComponent as ɵce} from './lib/viewers/convertible-content-viewer/convertible-content-viewer.component';\nexport {DocumentConversionApiService as ɵbm} from './lib/viewers/convertible-content-viewer/document-conversion-api.service';\nexport {GrabNDragDirective as ɵcf} from './lib/viewers/grab-n-drag.directive';\nexport {ImageViewerComponent as ɵca} from './lib/viewers/image-viewer/image-viewer.component';\nexport {MultimediaPlayerComponent as ɵcd} from './lib/viewers/multimedia-player/multimedia-player.component';\nexport {PdfJsWrapperFactory as ɵbt} from './lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';\nexport {PdfViewerComponent as ɵbs} from './lib/viewers/pdf-viewer/pdf-viewer.component';\nexport {BookmarksComponent as ɵby} from './lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';\nexport {OutlineItemComponent as ɵbz} from './lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component';\nexport {SideBarComponent as ɵbx} from './lib/viewers/pdf-viewer/side-bar/side-bar.component';\nexport {RotationApiService as ɵbn} from './lib/viewers/rotation-persist/rotation-api.service';\nexport {RotationPersistDirective as ɵcg} from './lib/viewers/rotation-persist/rotation-persist.directive';\nexport {UnsupportedViewerComponent as ɵcc} from './lib/viewers/unsupported-viewer/unsupported-viewer.component';\nexport {ViewerEventService as ɵv} from './lib/viewers/viewer-event.service';\nexport {ViewerUtilService as ɵcb} from './lib/viewers/viewer-util.service';"],"names":["pdfjsLib","BehaviorSubject","Subject","Injectable","pdfjsViewer","ResponseType","fromActions.CONVERT_SUCCESS","fromActions.CONVERT_FAIL","fromActions.CLEAR_CONVERT_DOC_URL","fromActions.LOAD_ROTATION","fromActions.LOAD_ROTATION_SUCCESS","fromActions.LOAD_ROTATION_FAIL","fromActions.SAVE_ROTATION_SUCCESS","fromActions.SET_DOCUMENT_ID","fromActions.ADD_PAGES","fromActions.POSITION_UPDATED","getRotation","rotationLoaded","getConvertedDocument","moment","fromAnnotations.LOAD_ANNOTATION_SET","fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS","fromAnnotations.LOAD_ANNOTATION_SET_FAIL","uuid","fromAnnotations.SAVE_ANNOTATION_SUCCESS","fromAnnotations.DELETE_ANNOTATION_SUCCESS","fromAnnotations.ADD_OR_EDIT_COMMENT","fromAnnotations.SELECT_ANNOTATION","fromAnnotations.SEARCH_COMMENT","fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER","fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER","fromTags.ADD_FILTER_TAGS","fromTags.CLEAR_FILTER_TAGS","fromBookmarks.LOAD_BOOKMARKS","fromBookmarks.LOAD_BOOKMARKS_SUCCESS","fromBookmarks.LOAD_BOOKMARKS_FAIL","fromBookmarks.CREATE_BOOKMARK_SUCCESS","fromBookmarks.MOVE_BOOKMARK_SUCCESS","fromBookmarks.DELETE_BOOKMARK_SUCCESS","fromBookmarks.UPDATE_BOOKMARK_SUCCESS","fromRedaction.LOAD_REDACTIONS","fromRedaction.LOAD_REDACTION_SUCCESS","fromRedaction.SAVE_REDACTION_SUCCESS","fromRedaction.SELECT_REDACTION","fromRedaction.DELETE_REDACTION_SUCCESS","fromRedaction.REDACT_SUCCESS","fromRedaction.RESET_REDACTED_DOCUMENT","fromRedaction.UNMARK_ALL_SUCCESS","getRedactionEnt","fromIcpActions.SET_CASE_ID","fromIcpActions.ICP_SOCKET_SESSION_JOINED","fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED","fromIcpActions.ICP_PRESENTER_UPDATED","fromIcpActions.LEAVE_ICP_SOCKET_SESSION","getIcpSession","getPresenter","getClient","getParticipants","fromDocument.docReducer","fromAnnotation.reducer","fromTags.tagsReducer","fromBookmarks.bookmarksReducer","fromRedaction.redactionReducer","fromIcp.icpReducer","createFeatureSelector","ɵ0","createSelector","fromFeature.getMVState","fromDocument.getDocPages","fromDocument.getDocId","fromDocument.getPdfPos","fromDocument.getHasDifferentPageSizes","fromDocument.getConvertedDocument","fromDocument.getRotation","fromDocument.rotationLoaded","of","fromIcp.getIcpSession","ɵ1","fromIcp.getPresenter","ɵ2","fromIcp.getClient","ɵ3","fromIcp.getParticipants","select","fromDocSelectors.getPdfPosition","fromIcpSelectors.getPresenter","Store","take","store","fromIcpSelectors.getCaseId","filter","fromIcpActions.LoadIcpSession","fromIcpSelectors.getIcpSession","fromIcpSelectors.getClient","fromIcpSelectors.isPresenter","fromIcpActions.IcpPresenterUpdated","fromIcpActions.IcpParticipantListUpdated","fromIcpActions.LeaveIcpSocketSession","EventEmitter","tap","fromTagActions.ClearFilterTags","throttleTime","asyncScheduler","fromDocumentsSelector.getPageDifference","fromDocumentActions.AddPages","Component","ViewEncapsulation","Output","Input","ViewChild","HttpClient","fromAnnotationActions.SelectedAnnotation","fromDocument.AddPages","HostListener","map","catchError","fromTags.getTagNameEnt","fromTags.getFilters","fromTags.getFilteredComments","fromTags.getFilteredPageEnt","fromAnnotations.getAnnoEnt","fromAnnotations.getAnnoSet","fromAnnotations.getSelectedAnno","fromAnnotations.getCommentEnts","fromAnnotations.getAnnoPageEnt","fromAnnotations.commentSearchQ","fromAnnotations.getSummaryFilters","fromDocument.getPages","fromTags.getFilteredPageEntities","fromTags.getTagFiltered","fromAnnoSelectors.getAnnotationSet","fromDocumentActions.SetDocumentId","fromAnnoActions.LoadAnnotationSet","fromRedactActions.LoadRedactions","ElementRef","ChangeDetectorRef","ConnectionPositionPair","fromRedactions.getPageEnt","fromRedactions.getSelectedRedaction","fromRedactions.getRedactedDocInfo","fromRedactions.getRedactionEnt","fromDocument.getDocumentId","fromRedactSelectors.getRedactionArray","fromIcpSelectors.getPresenterName","NgModule","CommonModule","FormsModule","OverlayModule","RouterModule","fromActions.AddOrEditComment","fromSelectors.getSelectedAnnotation","fromActions.SaveAnnotation","fromActions.DeleteAnnotation","fromActions.SelectedAnnotation","fromSelectors.getDocumentIdSetId","fromSelector.getComponentSearchText","distinctUntilChanged","fromSelectors.getCommentsArray","fromSelectors.getAnnotationEntities","ViewChildren","Directive","FormGroup","FormControl","fromSelectors.getCommentSummary","fromSelectors.getCommentSummaryFilters","fromTagSelectors.getAllTagsArr","combineLatest","fromAnnoActions.ClearCommentSummaryFilters","fromAnnoActions.ApplyCommentSymmaryFilter","FormBuilder","fromTagSelectors.getTagFilters","fromAnnoSelector.getFilteredAnnotations","fromActions.SearchComment","fromSelectors.getTagFilters","auditTime","fromActions.AddFilterTags","fromSelectors.getAllTagsArr","fromActions.ClearFilterTags","DatePipe","Pipe","ReactiveFormsModule","fromBookmarks.getBookmarkPageEnt","fromBookmarks.getBookmarkEnts","fromBookmarks.getEditBookmark","fromDocument.getPdfPosition","fromSelectors.getPageEntities","fromBookmarks.getBookmarkInfo","A11yModule","HttpClientModule","MutableDivModule","TagInputModule","NgxDatatableModule","bookmarksSelectors.getBookmarkNodes","bookmarksSelectors.getEditableBookmark","bookmarksSelectors.getBookmarkInfo","fromSelectors.getRedactionsPerPage","fromSelectors.getSelected","fromSelectors.getRedactedDocumentInfo","fromRedaSelectors.getRedactionArray","fromRedaActions.Redact","fromRedaActions.UnmarkAll","fromRedactionActions.SaveRedaction","fromActions.DeleteRedaction","fromActions.SelectRedaction","fromActions.SaveRedaction","fromRedactionActions.ResetRedactedDocument","ofType","annotationsActions.LOAD_ANNOTATION_SET","switchMap","annotationsActions.LoadAnnotationSetSucess","annotationsActions.LoadAnnotationSetFail","annotationsActions.SAVE_ANNOTATION","exhaustMap","annotationsActions.SaveAnnotationSuccess","annotationsActions.DELETE_ANNOTATION","annotationsActions.DeleteAnnotationSuccess","annotationsActions.DeleteAnnotationFail","Actions","Effect","bookmarksActions.LOAD_BOOKMARKS","withLatestFrom","bookmarksActions.LoadBookmarksSuccess","bookmarksActions.LoadBookmarksFailure","bookmarksActions.CREATE_BOOKMARK","bookmarksActions.CreateBookmarkSuccess","bookmarksActions.CreateBookmarkFailure","bookmarksActions.MOVE_BOOKMARK","bookmarksActions.MoveBookmarkSuccess","bookmarksActions.MoveBookmarkFailure","bookmarksActions.DELETE_BOOKMARK","bookmarksActions.DeleteBookmarkSuccess","bookmarksActions.UpdateBookmarkSuccess","bookmarksActions.DeleteBookmarkFailure","bookmarksActions.UPDATE_BOOKMARK","bookmarksActions.UpdateBookmarkFailure","redactionActions.LOAD_REDACTIONS","redactionActions.LoadRedactionSuccess","redactionActions.LoadRedactionFailure","redactionActions.SAVE_REDACTION","redactionActions.SaveRedactionSuccess","redactionActions.SaveRedactionFailure","redactionActions.DELETE_REDACTION","redactionActions.DeleteRedactionSuccess","redactionActions.DeleteRedactionFailure","redactionActions.REDACT","redactionActions.RedactSuccess","redactionActions.RedactFailure","redactionActions.UNMARK_ALL","redactionActions.UnmarkAllSuccess","documentActions.CONVERT","documentActions.ConvertSuccess","documentActions.ConvertFailure","documentActions.LOAD_ROTATION","documentActions.LoadRotationSuccess","documentActions.LoadRotationFailure","documentActions.SAVE_ROTATION","documentActions.SaveRotationSuccess","documentActions.SaveRotationFailure","icpActions.LOAD_ICP_SESSION","icpActions.JoinIcpSocketSession","icpActions.LoadIcpSessionFailure","icpActions.JOIN_ICP_SOCKET_SESSION","icpActions.IcpSocketSessionJoined","fromDocumentActions.Convert","fromSelectors.getConvertedDocument","fromDocumentActions.ClearConvertDocUrl","fromSelectors.getBookmarksPerPage","fromDocuments.getRotation","fromDocuments.getDocumentId","fromDocumentActions.LoadRotation","fromDocuments.rotationLoaded","fromDocumentActions.SaveRotation","fromSelectors.getParticipants","fromSelectors.getPresenter","fromSelectors.isPresenter","StoreModule","EffectsModule","TreeModule"],"mappings":"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"}
|