@hmcts/media-viewer 4.1.9-cme-776-angular-20 → 4.1.9-exui-1580-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/assets/all.scss +1 -0
- package/assets/sass/pdf-viewer.scss +78 -0
- package/assets/sass/tooltip.scss +50 -0
- package/esm2022/hmcts-media-viewer.mjs +5 -0
- package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +122 -0
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +179 -0
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +101 -0
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.mjs +345 -0
- package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
- package/esm2022/lib/annotations/annotation-set/annotation-set.model.mjs +2 -0
- package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
- package/esm2022/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +2 -0
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +2 -0
- package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +145 -0
- package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +99 -0
- package/esm2022/lib/annotations/annotations.module.mjs +162 -0
- package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +178 -0
- package/esm2022/lib/annotations/comment-set/comment/comment.model.mjs +2 -0
- package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
- package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
- package/esm2022/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +31 -0
- package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +62 -0
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +54 -0
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +72 -0
- package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +55 -0
- package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +123 -0
- package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +120 -0
- package/esm2022/lib/annotations/models/api-persisted.model.mjs +2 -0
- package/esm2022/lib/annotations/models/event-select.model.mjs +2 -0
- package/esm2022/lib/annotations/models/tags.model.mjs +2 -0
- package/esm2022/lib/annotations/models/user.model.mjs +2 -0
- package/esm2022/lib/annotations/pipes/date/date.pipe.mjs +26 -0
- package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
- package/esm2022/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +16 -0
- package/esm2022/lib/annotations/services/annotation-api/annotation-api.service.mjs +58 -0
- package/esm2022/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +45 -0
- package/esm2022/lib/annotations/services/tags/tags.services.mjs +41 -0
- package/esm2022/lib/annotations/tags/tags.component.mjs +53 -0
- package/esm2022/lib/bookmark/components/bookmark-icons.component.mjs +25 -0
- package/esm2022/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +22 -0
- package/esm2022/lib/icp/icp-follower.service.mjs +65 -0
- package/esm2022/lib/icp/icp-presenter.service.mjs +56 -0
- package/esm2022/lib/icp/icp-session-api.service.mjs +28 -0
- package/esm2022/lib/icp/icp-update.service.mjs +73 -0
- package/esm2022/lib/icp/icp.events.mjs +15 -0
- package/esm2022/lib/icp/icp.interfaces.mjs +2 -0
- package/esm2022/lib/icp/icp.service.mjs +98 -0
- package/esm2022/lib/icp/participants-list/participants-list.component.mjs +32 -0
- package/esm2022/lib/icp/socket.service.mjs +128 -0
- package/esm2022/lib/media-viewer.component.mjs +247 -0
- package/esm2022/lib/media-viewer.module.mjs +142 -0
- package/esm2022/lib/print.service.mjs +32 -0
- package/esm2022/lib/redaction/components/redaction.component.mjs +91 -0
- package/esm2022/lib/redaction/services/redaction-api.service.mjs +50 -0
- package/esm2022/lib/redaction/services/redaction.model.mjs +2 -0
- package/esm2022/lib/shared/directives/tooltip-dismiss.directive.mjs +36 -0
- package/esm2022/lib/shared/gov-uk-date/gov-uk-date.component.mjs +28 -0
- package/esm2022/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +34 -0
- package/esm2022/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +63 -0
- package/esm2022/lib/shared/gov-uk-label/gov-uk-label.component.mjs +44 -0
- package/esm2022/lib/shared/shared.module.mjs +53 -0
- package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +29 -0
- package/esm2022/lib/shared/util/services/number.helper.service.mjs +23 -0
- package/esm2022/lib/store/actions/annotation.actions.mjs +119 -0
- package/esm2022/lib/store/actions/bookmark.actions.mjs +112 -0
- package/esm2022/lib/store/actions/document.actions.mjs +91 -0
- package/esm2022/lib/store/actions/icp.actions.mjs +56 -0
- package/esm2022/lib/store/actions/redaction.actions.mjs +132 -0
- package/esm2022/lib/store/actions/tag.actions.mjs +21 -0
- package/esm2022/lib/store/bookmarks-store-utils.mjs +49 -0
- package/esm2022/lib/store/effects/annotation.effects.mjs +51 -0
- package/esm2022/lib/store/effects/bookmarks.effects.mjs +44 -0
- package/esm2022/lib/store/effects/document.effects.mjs +44 -0
- package/esm2022/lib/store/effects/icp.effects.mjs +26 -0
- package/esm2022/lib/store/effects/index.mjs +7 -0
- package/esm2022/lib/store/effects/redaction.effects.mjs +67 -0
- package/esm2022/lib/store/models/bookmarks.interface.mjs +2 -0
- package/esm2022/lib/store/models/filters.interface.mjs +2 -0
- package/esm2022/lib/store/reducers/annotations.reducer.mjs +208 -0
- package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +125 -0
- package/esm2022/lib/store/reducers/document.reducer.mjs +158 -0
- package/esm2022/lib/store/reducers/icp.reducer.mjs +56 -0
- package/esm2022/lib/store/reducers/redaction.reducer.mjs +116 -0
- package/esm2022/lib/store/reducers/reducers.mjs +23 -0
- package/esm2022/lib/store/reducers/tags.reducer.mjs +93 -0
- package/esm2022/lib/store/selectors/annotation.selectors.mjs +81 -0
- package/esm2022/lib/store/selectors/bookmark.selectors.mjs +37 -0
- package/esm2022/lib/store/selectors/document.selectors.mjs +13 -0
- package/esm2022/lib/store/selectors/icp.selectors.mjs +13 -0
- package/esm2022/lib/store/selectors/redaction.selectors.mjs +26 -0
- package/esm2022/lib/store/selectors/tag.selectors.mjs +15 -0
- package/esm2022/lib/store/store-utils.mjs +131 -0
- package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +46 -0
- package/esm2022/lib/toolbar/icp-event.service.mjs +44 -0
- package/esm2022/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +43 -0
- package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +207 -0
- package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +237 -0
- package/esm2022/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +2 -0
- package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +69 -0
- package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
- package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
- package/esm2022/lib/toolbar/toolbar-event.service.mjs +178 -0
- package/esm2022/lib/toolbar/toolbar.module.mjs +75 -0
- package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
- package/esm2022/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +22 -0
- package/esm2022/lib/viewers/grab-n-drag.directive.mjs +57 -0
- package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
- package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
- package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +266 -0
- package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +40 -0
- package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +280 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +379 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +2 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +2 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +99 -0
- package/esm2022/lib/viewers/rotation-persist/rotation-api.service.mjs +27 -0
- package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
- package/esm2022/lib/viewers/rotation-persist/rotation.model.mjs +2 -0
- package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
- package/esm2022/lib/viewers/viewer-event.service.mjs +34 -0
- package/esm2022/lib/viewers/viewer-exception.model.mjs +13 -0
- package/esm2022/lib/viewers/viewer-util.service.mjs +20 -0
- package/esm2022/public_api.mjs +33 -0
- package/fesm2022/hmcts-media-viewer.mjs +1515 -1013
- package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
- package/hmcts-media-viewer.d.ts.map +1 -0
- package/index.d.ts +4 -2305
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +48 -0
- 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/highlight-create/highlight-create.directive.d.ts +36 -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.service.d.ts +18 -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/keyboard-text-highlight.directive.d.ts +63 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/keyboard-text-highlight.directive.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-set.component.d.ts +27 -0
- package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-set.model.d.ts +7 -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 +34 -0
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +16 -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 +41 -0
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +9 -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 +41 -0
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -0
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +40 -0
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -0
- package/lib/annotations/annotations.module.d.ts +36 -0
- package/lib/annotations/annotations.module.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.component.d.ts +69 -0
- package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.model.d.ts +13 -0
- package/lib/annotations/comment-set/comment/comment.model.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/comment.service.d.ts +22 -0
- package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +14 -0
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +12 -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-navigate/comments-navigate.component.d.ts +28 -0
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +26 -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-search/comment-search.component.d.ts +21 -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-set-header.component.d.ts +36 -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-render.service.d.ts +15 -0
- package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -0
- package/lib/annotations/comment-set/comment-set.component.d.ts +56 -0
- package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -0
- package/lib/annotations/comments-summary/comments-summary.component.d.ts +42 -0
- package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -0
- package/lib/annotations/models/api-persisted.model.d.ts +11 -0
- package/lib/annotations/models/api-persisted.model.d.ts.map +1 -0
- package/lib/annotations/models/event-select.model.d.ts +6 -0
- package/lib/annotations/models/event-select.model.d.ts.map +1 -0
- package/lib/annotations/models/tags.model.d.ts +7 -0
- package/lib/annotations/models/tags.model.d.ts.map +1 -0
- package/lib/annotations/models/user.model.d.ts +6 -0
- package/lib/annotations/models/user.model.d.ts.map +1 -0
- package/lib/annotations/pipes/date/date.pipe.d.ts +16 -0
- package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -0
- package/lib/annotations/pipes/filter/filter.pipe.d.ts +8 -0
- package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -0
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +8 -0
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -0
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +28 -0
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -0
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +21 -0
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -0
- package/lib/annotations/services/tags/tags.services.d.ts +18 -0
- package/lib/annotations/services/tags/tags.services.d.ts.map +1 -0
- package/lib/annotations/tags/tags.component.d.ts +28 -0
- package/lib/annotations/tags/tags.component.d.ts.map +1 -0
- package/lib/bookmark/components/bookmark-icons.component.d.ts +19 -0
- package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -0
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +11 -0
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -0
- package/lib/icp/icp-follower.service.d.ts +26 -0
- package/lib/icp/icp-follower.service.d.ts.map +1 -0
- package/lib/icp/icp-presenter.service.d.ts +25 -0
- package/lib/icp/icp-presenter.service.d.ts.map +1 -0
- package/lib/icp/icp-session-api.service.d.ts +15 -0
- package/lib/icp/icp-session-api.service.d.ts.map +1 -0
- package/lib/icp/icp-update.service.d.ts +22 -0
- package/lib/icp/icp-update.service.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 +23 -0
- package/lib/icp/icp.interfaces.d.ts.map +1 -0
- package/lib/icp/icp.service.d.ts +40 -0
- package/lib/icp/icp.service.d.ts.map +1 -0
- package/lib/icp/participants-list/participants-list.component.d.ts +23 -0
- package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -0
- package/lib/icp/socket.service.d.ts +29 -0
- package/lib/icp/socket.service.d.ts.map +1 -0
- package/lib/media-viewer.component.d.ts +72 -0
- package/lib/media-viewer.component.d.ts.map +1 -0
- package/lib/media-viewer.module.d.ts +37 -0
- package/lib/media-viewer.module.d.ts.map +1 -0
- package/lib/print.service.d.ts +8 -0
- package/lib/print.service.d.ts.map +1 -0
- package/lib/redaction/components/redaction.component.d.ts +42 -0
- package/lib/redaction/components/redaction.component.d.ts.map +1 -0
- package/lib/redaction/services/redaction-api.service.d.ts +20 -0
- package/lib/redaction/services/redaction-api.service.d.ts.map +1 -0
- package/lib/redaction/services/redaction.model.d.ts +11 -0
- package/lib/redaction/services/redaction.model.d.ts.map +1 -0
- package/lib/shared/directives/tooltip-dismiss.directive.d.ts +11 -0
- package/lib/shared/directives/tooltip-dismiss.directive.d.ts.map +1 -0
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +15 -0
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -0
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +11 -0
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -0
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +16 -0
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -0
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +14 -0
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -0
- package/lib/shared/shared.module.d.ts +14 -0
- package/lib/shared/shared.module.d.ts.map +1 -0
- package/lib/shared/util/helpers/html-templates.helper.d.ts +9 -0
- package/lib/shared/util/helpers/html-templates.helper.d.ts.map +1 -0
- package/lib/shared/util/services/number.helper.service.d.ts +11 -0
- package/lib/shared/util/services/number.helper.service.d.ts.map +1 -0
- package/lib/store/actions/annotation.actions.d.ts +126 -0
- package/lib/store/actions/annotation.actions.d.ts.map +1 -0
- package/lib/store/actions/bookmark.actions.d.ts +117 -0
- package/lib/store/actions/bookmark.actions.d.ts.map +1 -0
- package/lib/store/actions/document.actions.d.ts +90 -0
- package/lib/store/actions/document.actions.d.ts.map +1 -0
- package/lib/store/actions/icp.actions.d.ts +75 -0
- package/lib/store/actions/icp.actions.d.ts.map +1 -0
- package/lib/store/actions/redaction.actions.d.ts +127 -0
- package/lib/store/actions/redaction.actions.d.ts.map +1 -0
- package/lib/store/actions/tag.actions.d.ts +30 -0
- package/lib/store/actions/tag.actions.d.ts.map +1 -0
- package/lib/store/bookmarks-store-utils.d.ts +9 -0
- package/lib/store/bookmarks-store-utils.d.ts.map +1 -0
- package/lib/store/effects/annotation.effects.d.ts +16 -0
- package/lib/store/effects/annotation.effects.d.ts.map +1 -0
- package/lib/store/effects/bookmarks.effects.d.ts +21 -0
- package/lib/store/effects/bookmarks.effects.d.ts.map +1 -0
- package/lib/store/effects/document.effects.d.ts +17 -0
- package/lib/store/effects/document.effects.d.ts.map +1 -0
- package/lib/store/effects/icp.effects.d.ts +16 -0
- package/lib/store/effects/icp.effects.d.ts.map +1 -0
- package/lib/store/effects/index.d.ts +2 -0
- package/lib/store/effects/index.d.ts.map +1 -0
- package/lib/store/effects/redaction.effects.d.ts +20 -0
- package/lib/store/effects/redaction.effects.d.ts.map +1 -0
- package/lib/store/models/bookmarks.interface.d.ts +31 -0
- package/lib/store/models/bookmarks.interface.d.ts.map +1 -0
- package/lib/store/models/filters.interface.d.ts +8 -0
- package/lib/store/models/filters.interface.d.ts.map +1 -0
- package/lib/store/reducers/annotations.reducer.d.ts +48 -0
- package/lib/store/reducers/annotations.reducer.d.ts.map +1 -0
- package/lib/store/reducers/bookmarks.reducer.d.ts +27 -0
- package/lib/store/reducers/bookmarks.reducer.d.ts.map +1 -0
- package/lib/store/reducers/document.reducer.d.ts +52 -0
- package/lib/store/reducers/document.reducer.d.ts.map +1 -0
- package/lib/store/reducers/icp.reducer.d.ts +9 -0
- package/lib/store/reducers/icp.reducer.d.ts.map +1 -0
- package/lib/store/reducers/redaction.reducer.d.ts +32 -0
- package/lib/store/reducers/redaction.reducer.d.ts.map +1 -0
- package/lib/store/reducers/reducers.d.ts +24 -0
- package/lib/store/reducers/reducers.d.ts.map +1 -0
- package/lib/store/reducers/tags.reducer.d.ts +32 -0
- package/lib/store/reducers/tags.reducer.d.ts.map +1 -0
- package/lib/store/selectors/annotation.selectors.d.ts +136 -0
- package/lib/store/selectors/annotation.selectors.d.ts.map +1 -0
- package/lib/store/selectors/bookmark.selectors.d.ts +38 -0
- package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -0
- package/lib/store/selectors/document.selectors.d.ts +23 -0
- package/lib/store/selectors/document.selectors.d.ts.map +1 -0
- package/lib/store/selectors/icp.selectors.d.ts +10 -0
- package/lib/store/selectors/icp.selectors.d.ts.map +1 -0
- package/lib/store/selectors/redaction.selectors.d.ts +35 -0
- package/lib/store/selectors/redaction.selectors.d.ts.map +1 -0
- package/lib/store/selectors/tag.selectors.d.ts +28 -0
- package/lib/store/selectors/tag.selectors.d.ts.map +1 -0
- package/lib/store/store-utils.d.ts +25 -0
- package/lib/store/store-utils.d.ts.map +1 -0
- package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts +20 -0
- package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/icp-event.service.d.ts +21 -0
- package/lib/toolbar/icp-event.service.d.ts.map +1 -0
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +24 -0
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +69 -0
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +60 -0
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -0
- package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts +12 -0
- package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts.map +1 -0
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +30 -0
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/search-bar/search-bar.component.d.ts +34 -0
- package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -0
- package/lib/toolbar/toolbar-button-visibility.service.d.ts +67 -0
- package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -0
- package/lib/toolbar/toolbar-event.service.d.ts +96 -0
- package/lib/toolbar/toolbar-event.service.d.ts.map +1 -0
- package/lib/toolbar/toolbar.module.d.ts +20 -0
- package/lib/toolbar/toolbar.module.d.ts.map +1 -0
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +31 -0
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -0
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +12 -0
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -0
- package/lib/viewers/grab-n-drag.directive.d.ts +19 -0
- package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -0
- package/lib/viewers/image-viewer/image-viewer.component.d.ts +57 -0
- package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -0
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +25 -0
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +69 -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 +17 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +102 -0
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +82 -0
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -0
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +22 -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 +20 -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.model.d.ts +14 -0
- 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 +42 -0
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts +14 -0
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +27 -0
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -0
- package/lib/viewers/rotation-persist/rotation.model.d.ts +5 -0
- package/lib/viewers/rotation-persist/rotation.model.d.ts.map +1 -0
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +23 -0
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -0
- package/lib/viewers/viewer-event.service.d.ts +23 -0
- package/lib/viewers/viewer-event.service.d.ts.map +1 -0
- package/lib/viewers/viewer-exception.model.d.ts +15 -0
- package/lib/viewers/viewer-exception.model.d.ts.map +1 -0
- package/lib/viewers/viewer-util.service.d.ts +10 -0
- package/lib/viewers/viewer-util.service.d.ts.map +1 -0
- package/package.json +12 -10
- package/public_api.d.ts +30 -0
- package/public_api.d.ts.map +1 -0
- package/index.d.ts.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i5$1 from 'rpx-xui-translation';
|
|
2
2
|
import { RpxTranslationModule } from 'rpx-xui-translation';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable,
|
|
4
|
+
import { Injectable, Directive, HostListener, Component, ViewChild, Input, ViewEncapsulation, Pipe, EventEmitter, Output, ViewChildren, NgModule } from '@angular/core';
|
|
5
5
|
import * as i5 from '@angular/common';
|
|
6
6
|
import { DatePipe, CommonModule } from '@angular/common';
|
|
7
7
|
import * as i2 from '@angular/forms';
|
|
8
8
|
import { UntypedFormControl, FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
import * as i1$1 from '@angular/common/http';
|
|
10
10
|
import { HttpClientModule } from '@angular/common/http';
|
|
11
|
-
import { BehaviorSubject, Subject, of, combineLatest, asyncScheduler } from 'rxjs';
|
|
12
|
-
import { take, distinctUntilChanged, filter, auditTime, tap, throttleTime, map, catchError, switchMap, concatMap, exhaustMap, withLatestFrom } from 'rxjs/operators';
|
|
11
|
+
import { BehaviorSubject, Subject, filter, debounceTime, of, combineLatest, asyncScheduler } from 'rxjs';
|
|
12
|
+
import { take, distinctUntilChanged, filter as filter$1, auditTime, tap, throttleTime, map, catchError, switchMap, concatMap, exhaustMap, withLatestFrom } from 'rxjs/operators';
|
|
13
13
|
import * as i1 from '@ngrx/store';
|
|
14
14
|
import { createFeatureSelector, createSelector, select, StoreModule } from '@ngrx/store';
|
|
15
15
|
import { v4 } from 'uuid';
|
|
@@ -1526,6 +1526,626 @@ const getConvertedDocument = createSelector(getDocumentState, getConvertedDocume
|
|
|
1526
1526
|
const getRotation = createSelector(getDocumentState, getRotation$1);
|
|
1527
1527
|
const rotationLoaded = createSelector(getDocumentState, rotationLoaded$1);
|
|
1528
1528
|
|
|
1529
|
+
/**
|
|
1530
|
+
* Helper Class
|
|
1531
|
+
* Used for dynamic templates manipulation
|
|
1532
|
+
* */
|
|
1533
|
+
class HtmlTemplatesHelper {
|
|
1534
|
+
static setDescribedBy(errorMessage, config) {
|
|
1535
|
+
if (!errorMessage) {
|
|
1536
|
+
return config.hint ? `${config.id}-hint` : null;
|
|
1537
|
+
}
|
|
1538
|
+
else if (errorMessage && errorMessage.isInvalid) {
|
|
1539
|
+
return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;
|
|
1540
|
+
}
|
|
1541
|
+
else {
|
|
1542
|
+
return config.hint ? `${config.id}-hint` : null;
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
static getAdjustedBoundingRect(element, log = true) {
|
|
1546
|
+
const viewportX = window.visualViewport.offsetLeft;
|
|
1547
|
+
const viewportY = window.visualViewport.offsetTop;
|
|
1548
|
+
const viewportScale = window.visualViewport.scale;
|
|
1549
|
+
const viewportPageX = window.visualViewport.pageLeft;
|
|
1550
|
+
const viewportPageY = window.visualViewport.pageTop;
|
|
1551
|
+
if (log && viewportX || viewportY || (viewportScale != 1) || viewportPageX || viewportPageY) {
|
|
1552
|
+
console.log(`Element: ${element.id} Viewport X: ${viewportX}, Y: ${viewportY}, Scale: ${viewportScale}, PageX: ${viewportPageX}, PageY: ${viewportPageY}`);
|
|
1553
|
+
}
|
|
1554
|
+
return element.getBoundingClientRect();
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
class IcpEventService {
|
|
1559
|
+
constructor() {
|
|
1560
|
+
this.enabled = new BehaviorSubject(false);
|
|
1561
|
+
this.sessionLaunch = new Subject();
|
|
1562
|
+
this.becomingPresenter = new Subject();
|
|
1563
|
+
this.stoppingPresenting = new Subject();
|
|
1564
|
+
this.leavingSession = new BehaviorSubject(false);
|
|
1565
|
+
this.sessionExitConfirmed = new Subject();
|
|
1566
|
+
this.participantsListVisible = new BehaviorSubject(false);
|
|
1567
|
+
this.launchSession = () => {
|
|
1568
|
+
this.sessionLaunch.next();
|
|
1569
|
+
};
|
|
1570
|
+
this.enable = () => {
|
|
1571
|
+
this.enabled.next(true);
|
|
1572
|
+
this.launchSession();
|
|
1573
|
+
};
|
|
1574
|
+
this.becomePresenter = () => {
|
|
1575
|
+
this.becomingPresenter.next();
|
|
1576
|
+
};
|
|
1577
|
+
this.stopPresenting = () => {
|
|
1578
|
+
this.stoppingPresenting.next();
|
|
1579
|
+
};
|
|
1580
|
+
this.leaveSession = () => {
|
|
1581
|
+
this.leavingSession.next(true);
|
|
1582
|
+
};
|
|
1583
|
+
this.confirmExit = () => {
|
|
1584
|
+
this.sessionExitConfirmed.next();
|
|
1585
|
+
this.participantsListVisible.next(false);
|
|
1586
|
+
this.enabled.next(false);
|
|
1587
|
+
};
|
|
1588
|
+
}
|
|
1589
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1590
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpEventService, providedIn: 'root' }); }
|
|
1591
|
+
}
|
|
1592
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpEventService, decorators: [{
|
|
1593
|
+
type: Injectable,
|
|
1594
|
+
args: [{
|
|
1595
|
+
providedIn: 'root'
|
|
1596
|
+
}]
|
|
1597
|
+
}], ctorParameters: () => [] });
|
|
1598
|
+
|
|
1599
|
+
var SearchType;
|
|
1600
|
+
(function (SearchType) {
|
|
1601
|
+
SearchType["Redact"] = "Redact";
|
|
1602
|
+
SearchType["Highlight"] = "Highlight";
|
|
1603
|
+
})(SearchType || (SearchType = {}));
|
|
1604
|
+
class ToolbarEventService {
|
|
1605
|
+
constructor(icpEventService) {
|
|
1606
|
+
this.icpEventService = icpEventService;
|
|
1607
|
+
this.highlightModeSubject = new BehaviorSubject(false);
|
|
1608
|
+
this.highlightToolbarSubject = new BehaviorSubject(false);
|
|
1609
|
+
this.drawModeSubject = new BehaviorSubject(false);
|
|
1610
|
+
this.rotateSubject = new Subject();
|
|
1611
|
+
this.searchSubject = new Subject();
|
|
1612
|
+
this.searchResultsCountSubject = new Subject();
|
|
1613
|
+
this.zoomSubject = new Subject();
|
|
1614
|
+
this.stepZoomSubject = new Subject();
|
|
1615
|
+
this.zoomValueSubject = new BehaviorSubject(1);
|
|
1616
|
+
this.pageCountSubject = new Subject();
|
|
1617
|
+
this.printSubject = new Subject();
|
|
1618
|
+
this.downloadSubject = new Subject();
|
|
1619
|
+
this.setCurrentPageSubject = new Subject();
|
|
1620
|
+
this.setCurrentPageInputValueSubject = new Subject();
|
|
1621
|
+
this.changePageByDeltaSubject = new Subject();
|
|
1622
|
+
this.showCommentSummary = new BehaviorSubject(false);
|
|
1623
|
+
this.grabNDrag = new BehaviorSubject(false);
|
|
1624
|
+
this.saveRotationSubject = new Subject();
|
|
1625
|
+
this.redactionMode = new BehaviorSubject(false);
|
|
1626
|
+
this.redactionPreview = new Subject();
|
|
1627
|
+
this.applyRedactToDocument = new Subject();
|
|
1628
|
+
this.clearAllRedactMarkers = new Subject();
|
|
1629
|
+
this.redactWholePage = new Subject();
|
|
1630
|
+
this.redactionSerachSubject = new Subject();
|
|
1631
|
+
this.redactAllInProgressSubject = new BehaviorSubject(false);
|
|
1632
|
+
this.openRedactionSearch = new BehaviorSubject(null);
|
|
1633
|
+
this.sidebarOpen = new BehaviorSubject(false);
|
|
1634
|
+
this.sidebarOutlineView = new BehaviorSubject(true);
|
|
1635
|
+
this.searchBarHidden = new BehaviorSubject(true);
|
|
1636
|
+
this.commentsPanelVisible = new BehaviorSubject(false);
|
|
1637
|
+
}
|
|
1638
|
+
/**
|
|
1639
|
+
* Reset the stateful behaviour subjects
|
|
1640
|
+
*/
|
|
1641
|
+
reset() {
|
|
1642
|
+
this.setCurrentPageSubject.next(1);
|
|
1643
|
+
this.zoomValueSubject.next(1);
|
|
1644
|
+
this.highlightModeSubject.next(false);
|
|
1645
|
+
this.highlightToolbarSubject.next(false);
|
|
1646
|
+
this.drawModeSubject.next(false);
|
|
1647
|
+
this.showCommentSummary.next(false);
|
|
1648
|
+
this.grabNDrag.next(false);
|
|
1649
|
+
}
|
|
1650
|
+
// Function to inform Observers that highlightMode has been enabled
|
|
1651
|
+
toggleHighlightMode() {
|
|
1652
|
+
// Highlight and Draw states are mutually exclusive
|
|
1653
|
+
if (this.highlightModeSubject.getValue() === false) {
|
|
1654
|
+
this.drawModeSubject.next(false);
|
|
1655
|
+
this.grabNDrag.next(false);
|
|
1656
|
+
this.highlightModeSubject.next(true);
|
|
1657
|
+
}
|
|
1658
|
+
else {
|
|
1659
|
+
this.highlightModeSubject.next(false);
|
|
1660
|
+
}
|
|
1661
|
+
}
|
|
1662
|
+
// Function to inform Observers that ToggleMode has been enabled
|
|
1663
|
+
toggleDrawMode() {
|
|
1664
|
+
if (this.drawModeSubject.getValue() === false) {
|
|
1665
|
+
this.highlightModeSubject.next(false);
|
|
1666
|
+
this.grabNDrag.next(false);
|
|
1667
|
+
this.drawModeSubject.next(true);
|
|
1668
|
+
}
|
|
1669
|
+
else {
|
|
1670
|
+
this.drawModeSubject.next(false);
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
toggleHighlightToolbar() {
|
|
1674
|
+
this.highlightToolbarSubject.next(!this.highlightToolbarSubject.getValue());
|
|
1675
|
+
}
|
|
1676
|
+
rotate(angle) {
|
|
1677
|
+
this.rotateSubject.next(angle);
|
|
1678
|
+
}
|
|
1679
|
+
search(phrase) {
|
|
1680
|
+
this.searchSubject.next(phrase);
|
|
1681
|
+
}
|
|
1682
|
+
getSearchResultsCount() {
|
|
1683
|
+
return this.searchResultsCountSubject.asObservable();
|
|
1684
|
+
}
|
|
1685
|
+
zoom(value) {
|
|
1686
|
+
this.zoomSubject.next(value);
|
|
1687
|
+
}
|
|
1688
|
+
stepZoom(value) {
|
|
1689
|
+
this.stepZoomSubject.next(value);
|
|
1690
|
+
}
|
|
1691
|
+
getZoomValue() {
|
|
1692
|
+
return this.zoomValueSubject.asObservable();
|
|
1693
|
+
}
|
|
1694
|
+
getPageCount() {
|
|
1695
|
+
return this.pageCountSubject.asObservable();
|
|
1696
|
+
}
|
|
1697
|
+
print() {
|
|
1698
|
+
this.printSubject.next();
|
|
1699
|
+
}
|
|
1700
|
+
download() {
|
|
1701
|
+
this.downloadSubject.next();
|
|
1702
|
+
}
|
|
1703
|
+
setPage(value) {
|
|
1704
|
+
this.setCurrentPageSubject.next(value);
|
|
1705
|
+
}
|
|
1706
|
+
incrementPage(value) {
|
|
1707
|
+
this.changePageByDeltaSubject.next(value);
|
|
1708
|
+
}
|
|
1709
|
+
getCurrentPageNumber() {
|
|
1710
|
+
return this.setCurrentPageInputValueSubject.asObservable();
|
|
1711
|
+
}
|
|
1712
|
+
getShowCommentSummary() {
|
|
1713
|
+
return this.showCommentSummary.asObservable();
|
|
1714
|
+
}
|
|
1715
|
+
toggleCommentsSummary(value) {
|
|
1716
|
+
this.showCommentSummary.next(value);
|
|
1717
|
+
}
|
|
1718
|
+
saveRotation() {
|
|
1719
|
+
this.saveRotationSubject.next();
|
|
1720
|
+
}
|
|
1721
|
+
toggleGrabNDrag() {
|
|
1722
|
+
this.grabNDrag.next(!this.grabNDrag.getValue());
|
|
1723
|
+
}
|
|
1724
|
+
toggleSideBar(toggle) {
|
|
1725
|
+
this.sidebarOpen.next(toggle);
|
|
1726
|
+
}
|
|
1727
|
+
toggleSideBarView(toggle) {
|
|
1728
|
+
this.sidebarOutlineView.next(toggle);
|
|
1729
|
+
}
|
|
1730
|
+
toggleRedactionMode() {
|
|
1731
|
+
if (this.redactionMode.getValue() === false) {
|
|
1732
|
+
this.drawModeSubject.next(false);
|
|
1733
|
+
this.grabNDrag.next(false);
|
|
1734
|
+
this.redactionMode.next(true);
|
|
1735
|
+
}
|
|
1736
|
+
else {
|
|
1737
|
+
this.redactionMode.next(false);
|
|
1738
|
+
}
|
|
1739
|
+
this.openRedactionSearch.next({ modeType: SearchType.Redact, isOpen: false });
|
|
1740
|
+
}
|
|
1741
|
+
toggleRedactionPreview(viewMode) {
|
|
1742
|
+
this.redactionPreview.next(viewMode);
|
|
1743
|
+
}
|
|
1744
|
+
unmarkAll() {
|
|
1745
|
+
this.clearAllRedactMarkers.next();
|
|
1746
|
+
}
|
|
1747
|
+
applyRedactionToDocument() {
|
|
1748
|
+
this.applyRedactToDocument.next();
|
|
1749
|
+
}
|
|
1750
|
+
redactPage() {
|
|
1751
|
+
this.redactWholePage.next();
|
|
1752
|
+
}
|
|
1753
|
+
toggleCommentsPanel(isVisible) {
|
|
1754
|
+
if (isVisible) {
|
|
1755
|
+
this.toggleParticipantsList(!isVisible);
|
|
1756
|
+
}
|
|
1757
|
+
this.commentsPanelVisible.next(isVisible);
|
|
1758
|
+
}
|
|
1759
|
+
toggleParticipantsList(isVisible) {
|
|
1760
|
+
if (isVisible) {
|
|
1761
|
+
this.toggleCommentsPanel(!isVisible);
|
|
1762
|
+
}
|
|
1763
|
+
this.icpEventService.participantsListVisible.next(isVisible);
|
|
1764
|
+
}
|
|
1765
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarEventService, deps: [{ token: IcpEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1766
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarEventService, providedIn: 'root' }); }
|
|
1767
|
+
}
|
|
1768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarEventService, decorators: [{
|
|
1769
|
+
type: Injectable,
|
|
1770
|
+
args: [{ providedIn: 'root' }]
|
|
1771
|
+
}], ctorParameters: () => [{ type: IcpEventService }] });
|
|
1772
|
+
|
|
1773
|
+
class ViewerEventService {
|
|
1774
|
+
constructor() {
|
|
1775
|
+
this.textHighlight = new Subject();
|
|
1776
|
+
this.boxHighlight = new Subject();
|
|
1777
|
+
this.ctxToolbarCleared = new Subject();
|
|
1778
|
+
this.navigationEvent = new Subject();
|
|
1779
|
+
this.navigationEventICP = new Subject();
|
|
1780
|
+
}
|
|
1781
|
+
textSelected(selectionData) {
|
|
1782
|
+
this.textHighlight.next(selectionData);
|
|
1783
|
+
}
|
|
1784
|
+
boxSelected(selectionData) {
|
|
1785
|
+
this.boxHighlight.next(selectionData);
|
|
1786
|
+
}
|
|
1787
|
+
clearCtxToolbar() {
|
|
1788
|
+
this.ctxToolbarCleared.next();
|
|
1789
|
+
}
|
|
1790
|
+
goToDestination(destination) {
|
|
1791
|
+
this.navigationEvent.next(destination);
|
|
1792
|
+
}
|
|
1793
|
+
goToDestinationICP(destination) {
|
|
1794
|
+
this.navigationEventICP.next(destination);
|
|
1795
|
+
}
|
|
1796
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1797
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerEventService, providedIn: 'root' }); }
|
|
1798
|
+
}
|
|
1799
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerEventService, decorators: [{
|
|
1800
|
+
type: Injectable,
|
|
1801
|
+
args: [{ providedIn: 'root' }]
|
|
1802
|
+
}], ctorParameters: () => [] });
|
|
1803
|
+
|
|
1804
|
+
const getTagsRootState = createSelector(getMVState, (state) => state.tags);
|
|
1805
|
+
const getTagEntities = createSelector(getTagsRootState, getTagNameEnt);
|
|
1806
|
+
const getTagFilters = createSelector(getTagsRootState, getFilters);
|
|
1807
|
+
const getTagFiltered = createSelector(getTagsRootState, getFilteredComments);
|
|
1808
|
+
const getFilteredPageEntities = createSelector(getTagsRootState, getFilteredPageEnt);
|
|
1809
|
+
const getAllTagsArr = createSelector(getTagEntities, (tagEnt) => Object.keys(tagEnt).map(key => {
|
|
1810
|
+
return {
|
|
1811
|
+
key,
|
|
1812
|
+
length: Object.keys(tagEnt[key]).length
|
|
1813
|
+
};
|
|
1814
|
+
}));
|
|
1815
|
+
|
|
1816
|
+
const getAnnotationsSetState = createSelector(getMVState, (state) => state.annotations);
|
|
1817
|
+
const getAnnotationEntities = createSelector(getAnnotationsSetState, getAnnoEnt);
|
|
1818
|
+
const getSet = createSelector(getAnnotationsSetState, getAnnoSet);
|
|
1819
|
+
const getDocumentIdSetId = createSelector(getSet, (annoSet) => {
|
|
1820
|
+
return {
|
|
1821
|
+
documentId: annoSet.documentId,
|
|
1822
|
+
annotationSetId: annoSet.id
|
|
1823
|
+
};
|
|
1824
|
+
});
|
|
1825
|
+
const getAnnotationSet = createSelector(getAnnotationEntities, getSet, (entities, set) => {
|
|
1826
|
+
return {
|
|
1827
|
+
...set,
|
|
1828
|
+
annotations: Object.keys(entities).map(key => entities[key])
|
|
1829
|
+
};
|
|
1830
|
+
});
|
|
1831
|
+
const getSelectedAnnotation = createSelector(getAnnotationsSetState, getSelectedAnno);
|
|
1832
|
+
const getCommentEntities = createSelector(getAnnotationsSetState, getCommentEnts);
|
|
1833
|
+
const getPageEntities = createSelector(getAnnotationsSetState, getAnnoPageEnt);
|
|
1834
|
+
const getComponentSearchQueries = createSelector(getAnnotationsSetState, commentSearchQ);
|
|
1835
|
+
const getComponentSearchText = createSelector(getComponentSearchQueries, (queries) => queries.commentSearch);
|
|
1836
|
+
const getCommentSummaryFilters = createSelector(getAnnotationsSetState, getSummaryFilters);
|
|
1837
|
+
const getAnnoPerPage = createSelector(getPages, getPageEntities, getFilteredPageEntities, (pages, pageEnt, filteredPageEnt) => {
|
|
1838
|
+
const isFiltered = !!Object.keys(filteredPageEnt).length;
|
|
1839
|
+
const entities = isFiltered ? filteredPageEnt : pageEnt;
|
|
1840
|
+
if (pages) {
|
|
1841
|
+
const arr = [];
|
|
1842
|
+
Object.keys(pages).forEach(key => {
|
|
1843
|
+
arr.push({
|
|
1844
|
+
anno: entities[key] ? entities[key] : [],
|
|
1845
|
+
styles: pages[key].styles
|
|
1846
|
+
});
|
|
1847
|
+
});
|
|
1848
|
+
return arr;
|
|
1849
|
+
}
|
|
1850
|
+
});
|
|
1851
|
+
const getCommentsArray = createSelector(getCommentEntities, getPages, getAnnotationEntities, getTagFiltered, (commentEnts, pages, annoEnts, filtered) => {
|
|
1852
|
+
if (commentEnts && annoEnts && pages[1]) {
|
|
1853
|
+
const isFiltered = !!Object.keys(filtered).length;
|
|
1854
|
+
const com = isFiltered ? filtered : commentEnts;
|
|
1855
|
+
return Object.keys(com).map(key => {
|
|
1856
|
+
const page = annoEnts[key].page;
|
|
1857
|
+
return {
|
|
1858
|
+
...commentEnts[key],
|
|
1859
|
+
page,
|
|
1860
|
+
pages
|
|
1861
|
+
};
|
|
1862
|
+
});
|
|
1863
|
+
}
|
|
1864
|
+
});
|
|
1865
|
+
const getCommentSummary = createSelector(getCommentsArray, getCommentSummaryFilters, (commentSummary = [], filters) => {
|
|
1866
|
+
const comments = StoreUtils.filterCommentsSummary(commentSummary, filters.filters);
|
|
1867
|
+
if (comments.length) {
|
|
1868
|
+
const savedComments = comments.filter((comment) => {
|
|
1869
|
+
return comment.createdByDetails !== undefined;
|
|
1870
|
+
});
|
|
1871
|
+
return savedComments.map((comment) => {
|
|
1872
|
+
return {
|
|
1873
|
+
page: comment.page,
|
|
1874
|
+
user: comment.createdByDetails.forename.concat(' ').concat(comment.createdByDetails.surname),
|
|
1875
|
+
date: moment(comment.lastModifiedDate).format('D MMMM YYYY'),
|
|
1876
|
+
tags: comment.tags,
|
|
1877
|
+
comment: comment.content
|
|
1878
|
+
};
|
|
1879
|
+
});
|
|
1880
|
+
}
|
|
1881
|
+
return [''];
|
|
1882
|
+
});
|
|
1883
|
+
const getFilteredAnnotations = createSelector(getAnnotationEntities, getTagFiltered, (annoEnt, filters) => {
|
|
1884
|
+
const isFiltered = !!Object.keys(filters).length;
|
|
1885
|
+
const anno = isFiltered ? filters : annoEnt;
|
|
1886
|
+
return Object.keys(anno).map(key => annoEnt[key])
|
|
1887
|
+
.filter(annotation => annotation.comments && annotation.comments.length > 0);
|
|
1888
|
+
});
|
|
1889
|
+
|
|
1890
|
+
class HighlightCreateService {
|
|
1891
|
+
constructor(toolBarEvents, store) {
|
|
1892
|
+
this.toolBarEvents = toolBarEvents;
|
|
1893
|
+
this.store = store;
|
|
1894
|
+
}
|
|
1895
|
+
saveAnnotation(rectangles, page) {
|
|
1896
|
+
this.store.pipe(select(getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {
|
|
1897
|
+
const anno = {
|
|
1898
|
+
id: v4(),
|
|
1899
|
+
color: 'FFFF00',
|
|
1900
|
+
comments: [],
|
|
1901
|
+
page: page,
|
|
1902
|
+
rectangles: rectangles,
|
|
1903
|
+
type: 'highlight',
|
|
1904
|
+
...anoSetDocId,
|
|
1905
|
+
createdBy: '',
|
|
1906
|
+
createdByDetails: undefined,
|
|
1907
|
+
createdDate: moment.utc().tz('Europe/London').toISOString(),
|
|
1908
|
+
lastModifiedBy: '',
|
|
1909
|
+
lastModifiedByDetails: undefined,
|
|
1910
|
+
lastModifiedDate: '',
|
|
1911
|
+
tags: [],
|
|
1912
|
+
};
|
|
1913
|
+
this.store.dispatch(new SaveAnnotation(anno));
|
|
1914
|
+
});
|
|
1915
|
+
}
|
|
1916
|
+
saveAnnotationSet(searchRectangles) {
|
|
1917
|
+
this.store.pipe(select(getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {
|
|
1918
|
+
const annoSet = searchRectangles.map(x => {
|
|
1919
|
+
return {
|
|
1920
|
+
id: v4(),
|
|
1921
|
+
color: 'FFFF00',
|
|
1922
|
+
comments: [],
|
|
1923
|
+
page: x.page,
|
|
1924
|
+
rectangles: x.rectangles,
|
|
1925
|
+
type: 'highlight',
|
|
1926
|
+
...anoSetDocId,
|
|
1927
|
+
createdBy: '',
|
|
1928
|
+
createdByDetails: undefined,
|
|
1929
|
+
createdDate: moment.utc().tz('Europe/London').toISOString(),
|
|
1930
|
+
lastModifiedBy: '',
|
|
1931
|
+
lastModifiedByDetails: undefined,
|
|
1932
|
+
lastModifiedDate: '',
|
|
1933
|
+
tags: [],
|
|
1934
|
+
};
|
|
1935
|
+
});
|
|
1936
|
+
this.store.dispatch(new SaveAnnotationSet({
|
|
1937
|
+
id: anoSetDocId.annotationSetId, annotations: annoSet, documentId: anoSetDocId.documentId
|
|
1938
|
+
}));
|
|
1939
|
+
});
|
|
1940
|
+
}
|
|
1941
|
+
applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom) {
|
|
1942
|
+
const { x, y, width, height } = {
|
|
1943
|
+
x: +(offsetLeft / zoom).toFixed(2),
|
|
1944
|
+
y: +(offsetTop / zoom).toFixed(2),
|
|
1945
|
+
width: +(offsetWidth / zoom).toFixed(2),
|
|
1946
|
+
height: +(offsetHeight / zoom).toFixed(2)
|
|
1947
|
+
};
|
|
1948
|
+
const rectangle = { x, y, width, height };
|
|
1949
|
+
switch (rotate) {
|
|
1950
|
+
case 90:
|
|
1951
|
+
rectangle.width = height;
|
|
1952
|
+
rectangle.height = width;
|
|
1953
|
+
rectangle.x = y;
|
|
1954
|
+
rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);
|
|
1955
|
+
break;
|
|
1956
|
+
case 180:
|
|
1957
|
+
rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);
|
|
1958
|
+
rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);
|
|
1959
|
+
break;
|
|
1960
|
+
case 270:
|
|
1961
|
+
rectangle.width = height;
|
|
1962
|
+
rectangle.height = width;
|
|
1963
|
+
rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);
|
|
1964
|
+
rectangle.y = x;
|
|
1965
|
+
break;
|
|
1966
|
+
}
|
|
1967
|
+
return rectangle;
|
|
1968
|
+
}
|
|
1969
|
+
resetHighlight() {
|
|
1970
|
+
window.getSelection().removeAllRanges();
|
|
1971
|
+
this.toolBarEvents.highlightModeSubject.next(false);
|
|
1972
|
+
}
|
|
1973
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateService, deps: [{ token: ToolbarEventService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1974
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateService, providedIn: 'root' }); }
|
|
1975
|
+
}
|
|
1976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateService, decorators: [{
|
|
1977
|
+
type: Injectable,
|
|
1978
|
+
args: [{ providedIn: 'root' }]
|
|
1979
|
+
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: i1.Store }] });
|
|
1980
|
+
|
|
1981
|
+
class HighlightCreateDirective {
|
|
1982
|
+
constructor(element, toolbarEvents, viewerEvents, highlightService, store) {
|
|
1983
|
+
this.element = element;
|
|
1984
|
+
this.toolbarEvents = toolbarEvents;
|
|
1985
|
+
this.viewerEvents = viewerEvents;
|
|
1986
|
+
this.highlightService = highlightService;
|
|
1987
|
+
this.store = store;
|
|
1988
|
+
this.$subscriptions = [];
|
|
1989
|
+
}
|
|
1990
|
+
ngOnInit() {
|
|
1991
|
+
this.$subscriptions.push(this.store.select(getPages).subscribe((pages) => {
|
|
1992
|
+
if (pages[1]) {
|
|
1993
|
+
this.allPages = pages;
|
|
1994
|
+
}
|
|
1995
|
+
}));
|
|
1996
|
+
this.$subscriptions.push(this.toolbarEvents.highlightModeSubject.pipe(filter(enabled => enabled && !!this.element.nativeElement), debounceTime(100)).subscribe(() => {
|
|
1997
|
+
this.element.nativeElement.focus();
|
|
1998
|
+
}));
|
|
1999
|
+
}
|
|
2000
|
+
ngOnDestroy() {
|
|
2001
|
+
this.$subscriptions.forEach(sub => sub.unsubscribe());
|
|
2002
|
+
}
|
|
2003
|
+
onMouseUp(mouseEvent) {
|
|
2004
|
+
let page;
|
|
2005
|
+
let currentElement = mouseEvent.target;
|
|
2006
|
+
while (currentElement.offsetParent) {
|
|
2007
|
+
currentElement = currentElement.offsetParent;
|
|
2008
|
+
if (currentElement.getAttribute) {
|
|
2009
|
+
page = parseInt(currentElement.getAttribute('data-page-number'), 10);
|
|
2010
|
+
if (page) {
|
|
2011
|
+
break;
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
2014
|
+
}
|
|
2015
|
+
if (this.toolbarEvents.highlightModeSubject.getValue()) {
|
|
2016
|
+
const rectangles = this.getRectangles(mouseEvent, page);
|
|
2017
|
+
this.viewerEvents.textSelected({ page, rectangles });
|
|
2018
|
+
}
|
|
2019
|
+
}
|
|
2020
|
+
onKeyboardSelectionConfirmed() {
|
|
2021
|
+
if (this.toolbarEvents.highlightModeSubject.getValue()) {
|
|
2022
|
+
const selection = window.getSelection();
|
|
2023
|
+
if (selection && selection.rangeCount && !selection.isCollapsed) {
|
|
2024
|
+
const page = this.getCurrentPageFromSelection(selection);
|
|
2025
|
+
const rectangles = this.getRectanglesFromSelection(selection, page);
|
|
2026
|
+
if (rectangles && rectangles.length > 0) {
|
|
2027
|
+
this.viewerEvents.textSelected({ page, rectangles });
|
|
2028
|
+
}
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
getCurrentPageFromSelection(selection) {
|
|
2033
|
+
const range = selection.getRangeAt(0);
|
|
2034
|
+
let currentElement = range.startContainer;
|
|
2035
|
+
if (currentElement.nodeType === Node.TEXT_NODE) {
|
|
2036
|
+
currentElement = currentElement.parentElement;
|
|
2037
|
+
}
|
|
2038
|
+
while (currentElement && currentElement.offsetParent) {
|
|
2039
|
+
currentElement = currentElement.offsetParent;
|
|
2040
|
+
if (currentElement.getAttribute) {
|
|
2041
|
+
const page = parseInt(currentElement.getAttribute('data-page-number'), 10);
|
|
2042
|
+
if (page) {
|
|
2043
|
+
return page;
|
|
2044
|
+
}
|
|
2045
|
+
}
|
|
2046
|
+
}
|
|
2047
|
+
return 1;
|
|
2048
|
+
}
|
|
2049
|
+
getRectanglesFromSelection(selection, page) {
|
|
2050
|
+
if (!this.allPages || !this.allPages[page]) {
|
|
2051
|
+
return [];
|
|
2052
|
+
}
|
|
2053
|
+
this.setPageProperties(page);
|
|
2054
|
+
const range = selection.getRangeAt(0).cloneRange();
|
|
2055
|
+
const clientRects = range.getClientRects();
|
|
2056
|
+
if (!clientRects || clientRects.length === 0) {
|
|
2057
|
+
return [];
|
|
2058
|
+
}
|
|
2059
|
+
let textLayerElement = range.startContainer;
|
|
2060
|
+
if (textLayerElement.nodeType === Node.TEXT_NODE) {
|
|
2061
|
+
textLayerElement = textLayerElement.parentElement;
|
|
2062
|
+
}
|
|
2063
|
+
const textLayer = textLayerElement.closest('.textLayer');
|
|
2064
|
+
if (!textLayer) {
|
|
2065
|
+
return [];
|
|
2066
|
+
}
|
|
2067
|
+
this.removeEnhancedTextModeStyling(textLayerElement);
|
|
2068
|
+
return this.processClientRects(clientRects, textLayer);
|
|
2069
|
+
}
|
|
2070
|
+
onPdfViewerClick(event) {
|
|
2071
|
+
this.store.dispatch(new SelectedAnnotation({
|
|
2072
|
+
annotationId: '',
|
|
2073
|
+
selected: false,
|
|
2074
|
+
editable: false,
|
|
2075
|
+
}));
|
|
2076
|
+
this.viewerEvents.clearCtxToolbar();
|
|
2077
|
+
}
|
|
2078
|
+
getRectangles(event, page) {
|
|
2079
|
+
this.setPageProperties(page);
|
|
2080
|
+
const selection = window.getSelection();
|
|
2081
|
+
if (selection) {
|
|
2082
|
+
const localElement = event.target;
|
|
2083
|
+
this.removeEnhancedTextModeStyling(localElement);
|
|
2084
|
+
if (selection.rangeCount && !selection.isCollapsed) {
|
|
2085
|
+
const range = selection.getRangeAt(0).cloneRange();
|
|
2086
|
+
const clientRects = range.getClientRects();
|
|
2087
|
+
if (clientRects) {
|
|
2088
|
+
const textLayer = localElement.closest(".textLayer");
|
|
2089
|
+
return this.processClientRects(clientRects, textLayer);
|
|
2090
|
+
}
|
|
2091
|
+
}
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
createTextRectangle(rect, parentRect) {
|
|
2095
|
+
const height = rect.bottom - rect.top;
|
|
2096
|
+
const width = rect.right - rect.left;
|
|
2097
|
+
const top = rect.top - parentRect.top;
|
|
2098
|
+
const left = rect.left - parentRect.left;
|
|
2099
|
+
let rectangle = this.highlightService.applyRotation(this.pageHeight, this.pageWidth, height, width, top, left, this.rotate, this.zoom);
|
|
2100
|
+
rectangle = { id: v4(), ...rectangle };
|
|
2101
|
+
return rectangle;
|
|
2102
|
+
}
|
|
2103
|
+
removeEnhancedTextModeStyling(element) {
|
|
2104
|
+
if (element.parentElement.children) {
|
|
2105
|
+
for (let i = 0; i < element.parentElement.children.length; i++) {
|
|
2106
|
+
const child = element.parentElement.children[i];
|
|
2107
|
+
child.style.padding = '0';
|
|
2108
|
+
// regex will be targeting the translate style in string
|
|
2109
|
+
// e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)
|
|
2110
|
+
const translateCSSRegex = /translate[XYZ]\(-?\d*(\.\d+)?(px)?\)/g;
|
|
2111
|
+
child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();
|
|
2112
|
+
}
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2115
|
+
setPageProperties(page) {
|
|
2116
|
+
this.pageHeight = this.allPages[page].styles.height;
|
|
2117
|
+
this.pageWidth = this.allPages[page].styles.width;
|
|
2118
|
+
this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);
|
|
2119
|
+
this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);
|
|
2120
|
+
}
|
|
2121
|
+
processClientRects(clientRects, textLayer) {
|
|
2122
|
+
const parentRect = HtmlTemplatesHelper.getAdjustedBoundingRect(textLayer);
|
|
2123
|
+
const selectionRectangles = [];
|
|
2124
|
+
for (let i = 0; i < clientRects.length; i++) {
|
|
2125
|
+
const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
|
|
2126
|
+
const findSelectionRectangle = selectionRectangles.find((rect) => rect.width === selectionRectangle.width && rect.x === selectionRectangle.x);
|
|
2127
|
+
if (!findSelectionRectangle) {
|
|
2128
|
+
selectionRectangles.push(selectionRectangle);
|
|
2129
|
+
}
|
|
2130
|
+
}
|
|
2131
|
+
return selectionRectangles;
|
|
2132
|
+
}
|
|
2133
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateDirective, deps: [{ token: i0.ElementRef }, { token: ToolbarEventService }, { token: ViewerEventService }, { token: HighlightCreateService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2134
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: HighlightCreateDirective, selector: "[mvCreateTextHighlight]", host: { listeners: { "mouseup": "onMouseUp($event)", "mousedown": "onPdfViewerClick($event)" } }, ngImport: i0 }); }
|
|
2135
|
+
}
|
|
2136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightCreateDirective, decorators: [{
|
|
2137
|
+
type: Directive,
|
|
2138
|
+
args: [{
|
|
2139
|
+
selector: '[mvCreateTextHighlight]'
|
|
2140
|
+
}]
|
|
2141
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ToolbarEventService }, { type: ViewerEventService }, { type: HighlightCreateService }, { type: i1.Store }], propDecorators: { onMouseUp: [{
|
|
2142
|
+
type: HostListener,
|
|
2143
|
+
args: ['mouseup', ['$event']]
|
|
2144
|
+
}], onPdfViewerClick: [{
|
|
2145
|
+
type: HostListener,
|
|
2146
|
+
args: ['mousedown', ['$event']]
|
|
2147
|
+
}] } });
|
|
2148
|
+
|
|
1529
2149
|
pdfjs.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';
|
|
1530
2150
|
/**
|
|
1531
2151
|
* Values of the state field returned by the find events
|
|
@@ -1788,221 +2408,6 @@ class PdfJsWrapper {
|
|
|
1788
2408
|
}
|
|
1789
2409
|
}
|
|
1790
2410
|
|
|
1791
|
-
class IcpEventService {
|
|
1792
|
-
constructor() {
|
|
1793
|
-
this.enabled = new BehaviorSubject(false);
|
|
1794
|
-
this.sessionLaunch = new Subject();
|
|
1795
|
-
this.becomingPresenter = new Subject();
|
|
1796
|
-
this.stoppingPresenting = new Subject();
|
|
1797
|
-
this.leavingSession = new BehaviorSubject(false);
|
|
1798
|
-
this.sessionExitConfirmed = new Subject();
|
|
1799
|
-
this.participantsListVisible = new BehaviorSubject(false);
|
|
1800
|
-
this.launchSession = () => {
|
|
1801
|
-
this.sessionLaunch.next();
|
|
1802
|
-
};
|
|
1803
|
-
this.enable = () => {
|
|
1804
|
-
this.enabled.next(true);
|
|
1805
|
-
this.launchSession();
|
|
1806
|
-
};
|
|
1807
|
-
this.becomePresenter = () => {
|
|
1808
|
-
this.becomingPresenter.next();
|
|
1809
|
-
};
|
|
1810
|
-
this.stopPresenting = () => {
|
|
1811
|
-
this.stoppingPresenting.next();
|
|
1812
|
-
};
|
|
1813
|
-
this.leaveSession = () => {
|
|
1814
|
-
this.leavingSession.next(true);
|
|
1815
|
-
};
|
|
1816
|
-
this.confirmExit = () => {
|
|
1817
|
-
this.sessionExitConfirmed.next();
|
|
1818
|
-
this.participantsListVisible.next(false);
|
|
1819
|
-
this.enabled.next(false);
|
|
1820
|
-
};
|
|
1821
|
-
}
|
|
1822
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IcpEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1823
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IcpEventService, providedIn: 'root' }); }
|
|
1824
|
-
}
|
|
1825
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IcpEventService, decorators: [{
|
|
1826
|
-
type: Injectable,
|
|
1827
|
-
args: [{
|
|
1828
|
-
providedIn: 'root'
|
|
1829
|
-
}]
|
|
1830
|
-
}], ctorParameters: () => [] });
|
|
1831
|
-
|
|
1832
|
-
var SearchType;
|
|
1833
|
-
(function (SearchType) {
|
|
1834
|
-
SearchType["Redact"] = "Redact";
|
|
1835
|
-
SearchType["Highlight"] = "Highlight";
|
|
1836
|
-
})(SearchType || (SearchType = {}));
|
|
1837
|
-
class ToolbarEventService {
|
|
1838
|
-
constructor(icpEventService) {
|
|
1839
|
-
this.icpEventService = icpEventService;
|
|
1840
|
-
this.highlightModeSubject = new BehaviorSubject(false);
|
|
1841
|
-
this.highlightToolbarSubject = new BehaviorSubject(false);
|
|
1842
|
-
this.drawModeSubject = new BehaviorSubject(false);
|
|
1843
|
-
this.rotateSubject = new Subject();
|
|
1844
|
-
this.searchSubject = new Subject();
|
|
1845
|
-
this.searchResultsCountSubject = new Subject();
|
|
1846
|
-
this.zoomSubject = new Subject();
|
|
1847
|
-
this.stepZoomSubject = new Subject();
|
|
1848
|
-
this.zoomValueSubject = new BehaviorSubject(1);
|
|
1849
|
-
this.pageCountSubject = new Subject();
|
|
1850
|
-
this.printSubject = new Subject();
|
|
1851
|
-
this.downloadSubject = new Subject();
|
|
1852
|
-
this.setCurrentPageSubject = new Subject();
|
|
1853
|
-
this.setCurrentPageInputValueSubject = new Subject();
|
|
1854
|
-
this.changePageByDeltaSubject = new Subject();
|
|
1855
|
-
this.showCommentSummary = new BehaviorSubject(false);
|
|
1856
|
-
this.grabNDrag = new BehaviorSubject(false);
|
|
1857
|
-
this.saveRotationSubject = new Subject();
|
|
1858
|
-
this.redactionMode = new BehaviorSubject(false);
|
|
1859
|
-
this.redactionPreview = new Subject();
|
|
1860
|
-
this.applyRedactToDocument = new Subject();
|
|
1861
|
-
this.clearAllRedactMarkers = new Subject();
|
|
1862
|
-
this.redactWholePage = new Subject();
|
|
1863
|
-
this.redactionSerachSubject = new Subject();
|
|
1864
|
-
this.redactAllInProgressSubject = new BehaviorSubject(false);
|
|
1865
|
-
this.openRedactionSearch = new BehaviorSubject(null);
|
|
1866
|
-
this.sidebarOpen = new BehaviorSubject(false);
|
|
1867
|
-
this.sidebarOutlineView = new BehaviorSubject(true);
|
|
1868
|
-
this.searchBarHidden = new BehaviorSubject(true);
|
|
1869
|
-
this.commentsPanelVisible = new BehaviorSubject(false);
|
|
1870
|
-
}
|
|
1871
|
-
/**
|
|
1872
|
-
* Reset the stateful behaviour subjects
|
|
1873
|
-
*/
|
|
1874
|
-
reset() {
|
|
1875
|
-
this.setCurrentPageSubject.next(1);
|
|
1876
|
-
this.zoomValueSubject.next(1);
|
|
1877
|
-
this.highlightModeSubject.next(false);
|
|
1878
|
-
this.highlightToolbarSubject.next(false);
|
|
1879
|
-
this.drawModeSubject.next(false);
|
|
1880
|
-
this.showCommentSummary.next(false);
|
|
1881
|
-
this.grabNDrag.next(false);
|
|
1882
|
-
}
|
|
1883
|
-
// Function to inform Observers that highlightMode has been enabled
|
|
1884
|
-
toggleHighlightMode() {
|
|
1885
|
-
// Highlight and Draw states are mutually exclusive
|
|
1886
|
-
if (this.highlightModeSubject.getValue() === false) {
|
|
1887
|
-
this.drawModeSubject.next(false);
|
|
1888
|
-
this.grabNDrag.next(false);
|
|
1889
|
-
this.highlightModeSubject.next(true);
|
|
1890
|
-
}
|
|
1891
|
-
else {
|
|
1892
|
-
this.highlightModeSubject.next(false);
|
|
1893
|
-
}
|
|
1894
|
-
}
|
|
1895
|
-
// Function to inform Observers that ToggleMode has been enabled
|
|
1896
|
-
toggleDrawMode() {
|
|
1897
|
-
if (this.drawModeSubject.getValue() === false) {
|
|
1898
|
-
this.highlightModeSubject.next(false);
|
|
1899
|
-
this.grabNDrag.next(false);
|
|
1900
|
-
this.drawModeSubject.next(true);
|
|
1901
|
-
}
|
|
1902
|
-
else {
|
|
1903
|
-
this.drawModeSubject.next(false);
|
|
1904
|
-
}
|
|
1905
|
-
}
|
|
1906
|
-
toggleHighlightToolbar() {
|
|
1907
|
-
this.highlightToolbarSubject.next(!this.highlightToolbarSubject.getValue());
|
|
1908
|
-
}
|
|
1909
|
-
rotate(angle) {
|
|
1910
|
-
this.rotateSubject.next(angle);
|
|
1911
|
-
}
|
|
1912
|
-
search(phrase) {
|
|
1913
|
-
this.searchSubject.next(phrase);
|
|
1914
|
-
}
|
|
1915
|
-
getSearchResultsCount() {
|
|
1916
|
-
return this.searchResultsCountSubject.asObservable();
|
|
1917
|
-
}
|
|
1918
|
-
zoom(value) {
|
|
1919
|
-
this.zoomSubject.next(value);
|
|
1920
|
-
}
|
|
1921
|
-
stepZoom(value) {
|
|
1922
|
-
this.stepZoomSubject.next(value);
|
|
1923
|
-
}
|
|
1924
|
-
getZoomValue() {
|
|
1925
|
-
return this.zoomValueSubject.asObservable();
|
|
1926
|
-
}
|
|
1927
|
-
getPageCount() {
|
|
1928
|
-
return this.pageCountSubject.asObservable();
|
|
1929
|
-
}
|
|
1930
|
-
print() {
|
|
1931
|
-
this.printSubject.next();
|
|
1932
|
-
}
|
|
1933
|
-
download() {
|
|
1934
|
-
this.downloadSubject.next();
|
|
1935
|
-
}
|
|
1936
|
-
setPage(value) {
|
|
1937
|
-
this.setCurrentPageSubject.next(value);
|
|
1938
|
-
}
|
|
1939
|
-
incrementPage(value) {
|
|
1940
|
-
this.changePageByDeltaSubject.next(value);
|
|
1941
|
-
}
|
|
1942
|
-
getCurrentPageNumber() {
|
|
1943
|
-
return this.setCurrentPageInputValueSubject.asObservable();
|
|
1944
|
-
}
|
|
1945
|
-
getShowCommentSummary() {
|
|
1946
|
-
return this.showCommentSummary.asObservable();
|
|
1947
|
-
}
|
|
1948
|
-
toggleCommentsSummary(value) {
|
|
1949
|
-
this.showCommentSummary.next(value);
|
|
1950
|
-
}
|
|
1951
|
-
saveRotation() {
|
|
1952
|
-
this.saveRotationSubject.next();
|
|
1953
|
-
}
|
|
1954
|
-
toggleGrabNDrag() {
|
|
1955
|
-
this.grabNDrag.next(!this.grabNDrag.getValue());
|
|
1956
|
-
}
|
|
1957
|
-
toggleSideBar(toggle) {
|
|
1958
|
-
this.sidebarOpen.next(toggle);
|
|
1959
|
-
}
|
|
1960
|
-
toggleSideBarView(toggle) {
|
|
1961
|
-
this.sidebarOutlineView.next(toggle);
|
|
1962
|
-
}
|
|
1963
|
-
toggleRedactionMode() {
|
|
1964
|
-
if (this.redactionMode.getValue() === false) {
|
|
1965
|
-
this.drawModeSubject.next(false);
|
|
1966
|
-
this.grabNDrag.next(false);
|
|
1967
|
-
this.redactionMode.next(true);
|
|
1968
|
-
}
|
|
1969
|
-
else {
|
|
1970
|
-
this.redactionMode.next(false);
|
|
1971
|
-
}
|
|
1972
|
-
this.openRedactionSearch.next({ modeType: SearchType.Redact, isOpen: false });
|
|
1973
|
-
}
|
|
1974
|
-
toggleRedactionPreview(viewMode) {
|
|
1975
|
-
this.redactionPreview.next(viewMode);
|
|
1976
|
-
}
|
|
1977
|
-
unmarkAll() {
|
|
1978
|
-
this.clearAllRedactMarkers.next();
|
|
1979
|
-
}
|
|
1980
|
-
applyRedactionToDocument() {
|
|
1981
|
-
this.applyRedactToDocument.next();
|
|
1982
|
-
}
|
|
1983
|
-
redactPage() {
|
|
1984
|
-
this.redactWholePage.next();
|
|
1985
|
-
}
|
|
1986
|
-
toggleCommentsPanel(isVisible) {
|
|
1987
|
-
if (isVisible) {
|
|
1988
|
-
this.toggleParticipantsList(!isVisible);
|
|
1989
|
-
}
|
|
1990
|
-
this.commentsPanelVisible.next(isVisible);
|
|
1991
|
-
}
|
|
1992
|
-
toggleParticipantsList(isVisible) {
|
|
1993
|
-
if (isVisible) {
|
|
1994
|
-
this.toggleCommentsPanel(!isVisible);
|
|
1995
|
-
}
|
|
1996
|
-
this.icpEventService.participantsListVisible.next(isVisible);
|
|
1997
|
-
}
|
|
1998
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ToolbarEventService, deps: [{ token: IcpEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1999
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ToolbarEventService, providedIn: 'root' }); }
|
|
2000
|
-
}
|
|
2001
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ToolbarEventService, decorators: [{
|
|
2002
|
-
type: Injectable,
|
|
2003
|
-
args: [{ providedIn: 'root' }]
|
|
2004
|
-
}], ctorParameters: () => [{ type: IcpEventService }] });
|
|
2005
|
-
|
|
2006
2411
|
class PdfJsWrapperFactory {
|
|
2007
2412
|
constructor(toolbarEvents) {
|
|
2008
2413
|
this.toolbarEvents = toolbarEvents;
|
|
@@ -2028,74 +2433,43 @@ class PdfJsWrapperFactory {
|
|
|
2028
2433
|
pdfWrapper() {
|
|
2029
2434
|
return this.pdfJsWrapper;
|
|
2030
2435
|
}
|
|
2031
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2032
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2436
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, deps: [{ token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2437
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, providedIn: 'root' }); }
|
|
2033
2438
|
}
|
|
2034
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, decorators: [{
|
|
2035
2440
|
type: Injectable,
|
|
2036
2441
|
args: [{ providedIn: 'root' }]
|
|
2037
2442
|
}], ctorParameters: () => [{ type: ToolbarEventService }] });
|
|
2038
2443
|
|
|
2039
2444
|
class PrintService {
|
|
2040
2445
|
printDocumentNatively(url) {
|
|
2041
|
-
const printWindow = window.open(url);
|
|
2042
|
-
printWindow.focus();
|
|
2043
|
-
setTimeout((printer) => {
|
|
2044
|
-
printer.print();
|
|
2045
|
-
}, 3000, printWindow);
|
|
2046
|
-
}
|
|
2047
|
-
printElementNatively(element, width, height) {
|
|
2048
|
-
const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);
|
|
2049
|
-
const documentHead = document.head;
|
|
2050
|
-
printWindow.document.body.appendChild(documentHead.cloneNode(true));
|
|
2051
|
-
printWindow.document.body.appendChild(element.cloneNode(true));
|
|
2052
|
-
printWindow.document.close();
|
|
2053
|
-
printWindow.focus();
|
|
2054
|
-
printWindow.print();
|
|
2055
|
-
setTimeout((printer) => {
|
|
2056
|
-
printer.close();
|
|
2057
|
-
}, 1000, printWindow);
|
|
2058
|
-
}
|
|
2059
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PrintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2060
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PrintService, providedIn: 'root' }); }
|
|
2061
|
-
}
|
|
2062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PrintService, decorators: [{
|
|
2063
|
-
type: Injectable,
|
|
2064
|
-
args: [{
|
|
2065
|
-
providedIn: 'root'
|
|
2066
|
-
}]
|
|
2067
|
-
}] });
|
|
2068
|
-
|
|
2069
|
-
class ViewerEventService {
|
|
2070
|
-
constructor() {
|
|
2071
|
-
this.textHighlight = new Subject();
|
|
2072
|
-
this.boxHighlight = new Subject();
|
|
2073
|
-
this.ctxToolbarCleared = new Subject();
|
|
2074
|
-
this.navigationEvent = new Subject();
|
|
2075
|
-
this.navigationEventICP = new Subject();
|
|
2076
|
-
}
|
|
2077
|
-
textSelected(selectionData) {
|
|
2078
|
-
this.textHighlight.next(selectionData);
|
|
2079
|
-
}
|
|
2080
|
-
boxSelected(selectionData) {
|
|
2081
|
-
this.boxHighlight.next(selectionData);
|
|
2082
|
-
}
|
|
2083
|
-
clearCtxToolbar() {
|
|
2084
|
-
this.ctxToolbarCleared.next();
|
|
2085
|
-
}
|
|
2086
|
-
goToDestination(destination) {
|
|
2087
|
-
this.navigationEvent.next(destination);
|
|
2446
|
+
const printWindow = window.open(url);
|
|
2447
|
+
printWindow.focus();
|
|
2448
|
+
setTimeout((printer) => {
|
|
2449
|
+
printer.print();
|
|
2450
|
+
}, 3000, printWindow);
|
|
2088
2451
|
}
|
|
2089
|
-
|
|
2090
|
-
|
|
2452
|
+
printElementNatively(element, width, height) {
|
|
2453
|
+
const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);
|
|
2454
|
+
const documentHead = document.head;
|
|
2455
|
+
printWindow.document.body.appendChild(documentHead.cloneNode(true));
|
|
2456
|
+
printWindow.document.body.appendChild(element.cloneNode(true));
|
|
2457
|
+
printWindow.document.close();
|
|
2458
|
+
printWindow.focus();
|
|
2459
|
+
printWindow.print();
|
|
2460
|
+
setTimeout((printer) => {
|
|
2461
|
+
printer.close();
|
|
2462
|
+
}, 1000, printWindow);
|
|
2091
2463
|
}
|
|
2092
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2093
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2464
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2465
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintService, providedIn: 'root' }); }
|
|
2094
2466
|
}
|
|
2095
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrintService, decorators: [{
|
|
2096
2468
|
type: Injectable,
|
|
2097
|
-
args: [{
|
|
2098
|
-
|
|
2469
|
+
args: [{
|
|
2470
|
+
providedIn: 'root'
|
|
2471
|
+
}]
|
|
2472
|
+
}] });
|
|
2099
2473
|
|
|
2100
2474
|
const getIcpState = createSelector(getMVState, (state) => state.icp);
|
|
2101
2475
|
const getIcpSession = createSelector(getIcpState, getIcpSession$1);
|
|
@@ -2238,10 +2612,10 @@ class SocketService {
|
|
|
2238
2612
|
this.socket = new WebSocket(url, 'json.webpubsub.azure.v1');
|
|
2239
2613
|
return of(this.socket);
|
|
2240
2614
|
}
|
|
2241
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2242
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2615
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2616
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SocketService, providedIn: 'root' }); }
|
|
2243
2617
|
}
|
|
2244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2618
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SocketService, decorators: [{
|
|
2245
2619
|
type: Injectable,
|
|
2246
2620
|
args: [{ providedIn: 'root' }]
|
|
2247
2621
|
}], ctorParameters: () => [] });
|
|
@@ -2307,10 +2681,10 @@ class IcpUpdateService {
|
|
|
2307
2681
|
screenUpdated() {
|
|
2308
2682
|
return this.socket.listen(IcpEvents.SCREEN_UPDATED);
|
|
2309
2683
|
}
|
|
2310
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2311
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2684
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpUpdateService, deps: [{ token: SocketService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2685
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpUpdateService, providedIn: 'root' }); }
|
|
2312
2686
|
}
|
|
2313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2687
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpUpdateService, decorators: [{
|
|
2314
2688
|
type: Injectable,
|
|
2315
2689
|
args: [{ providedIn: 'root' }]
|
|
2316
2690
|
}], ctorParameters: () => [{ type: SocketService }] });
|
|
@@ -2355,10 +2729,10 @@ class IcpPresenterService {
|
|
|
2355
2729
|
this.onPositionUpdate(this.pdfPosition);
|
|
2356
2730
|
this.socketService.updatePresenter(this.presenter);
|
|
2357
2731
|
}
|
|
2358
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2359
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2732
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpPresenterService, deps: [{ token: ToolbarEventService }, { token: IcpUpdateService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2733
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpPresenterService, providedIn: 'root' }); }
|
|
2360
2734
|
}
|
|
2361
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2735
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpPresenterService, decorators: [{
|
|
2362
2736
|
type: Injectable,
|
|
2363
2737
|
args: [{ providedIn: 'root' }]
|
|
2364
2738
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: IcpUpdateService }, { type: i1.Store }] });
|
|
@@ -2411,10 +2785,10 @@ class IcpFollowerService {
|
|
|
2411
2785
|
}
|
|
2412
2786
|
});
|
|
2413
2787
|
}
|
|
2414
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2415
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2788
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpFollowerService, deps: [{ token: ToolbarEventService }, { token: ViewerEventService }, { token: IcpUpdateService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2789
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpFollowerService, providedIn: 'root' }); }
|
|
2416
2790
|
}
|
|
2417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2791
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpFollowerService, decorators: [{
|
|
2418
2792
|
type: Injectable,
|
|
2419
2793
|
args: [{ providedIn: 'root' }]
|
|
2420
2794
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: ViewerEventService }, { type: IcpUpdateService }, { type: i1.Store }] });
|
|
@@ -2428,7 +2802,7 @@ class IcpService {
|
|
|
2428
2802
|
this.followerSubscriptions = followerSubscriptions;
|
|
2429
2803
|
this.store = store;
|
|
2430
2804
|
this.icpEventService = icpEventService;
|
|
2431
|
-
this.subscription = this.store.pipe(select(getCaseId), filter(value => !!value)).subscribe(caseId => {
|
|
2805
|
+
this.subscription = this.store.pipe(select(getCaseId), filter$1(value => !!value)).subscribe(caseId => {
|
|
2432
2806
|
this.caseId = caseId;
|
|
2433
2807
|
});
|
|
2434
2808
|
this.subscription.add(this.store.pipe(select(getDocumentId)).subscribe(docId => this.documentId = docId));
|
|
@@ -2444,7 +2818,7 @@ class IcpService {
|
|
|
2444
2818
|
}
|
|
2445
2819
|
launchSession() {
|
|
2446
2820
|
this.store.dispatch(new LoadIcpSession({ caseId: this.caseId, documentId: this.documentId }));
|
|
2447
|
-
this.subscription.add(this.store.pipe(select(getIcpSession), filter(value => !!value && Object.keys(value).length > 1), take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));
|
|
2821
|
+
this.subscription.add(this.store.pipe(select(getIcpSession), filter$1(value => !!value && Object.keys(value).length > 1), take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));
|
|
2448
2822
|
}
|
|
2449
2823
|
setUpSessionSubscriptions() {
|
|
2450
2824
|
this.sessionSubscription = this.icpEventService.becomingPresenter.subscribe(() => this.becomePresenter());
|
|
@@ -2495,10 +2869,10 @@ class IcpService {
|
|
|
2495
2869
|
removeParticipant(participantId) {
|
|
2496
2870
|
this.socketService.removeParticipant(participantId);
|
|
2497
2871
|
}
|
|
2498
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2499
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2872
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpService, deps: [{ token: ToolbarEventService }, { token: ViewerEventService }, { token: IcpUpdateService }, { token: IcpPresenterService }, { token: IcpFollowerService }, { token: i1.Store }, { token: IcpEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2873
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpService, providedIn: 'root' }); }
|
|
2500
2874
|
}
|
|
2501
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2875
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpService, decorators: [{
|
|
2502
2876
|
type: Injectable,
|
|
2503
2877
|
args: [{ providedIn: 'root' }]
|
|
2504
2878
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: ViewerEventService }, { type: IcpUpdateService }, { type: IcpPresenterService }, { type: IcpFollowerService }, { type: i1.Store }, { type: IcpEventService }] });
|
|
@@ -2546,10 +2920,10 @@ class ToolbarButtonVisibilityService {
|
|
|
2546
2920
|
this[key] = options[key];
|
|
2547
2921
|
}
|
|
2548
2922
|
}
|
|
2549
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2550
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2923
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarButtonVisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2924
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarButtonVisibilityService, providedIn: 'root' }); }
|
|
2551
2925
|
}
|
|
2552
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2926
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarButtonVisibilityService, decorators: [{
|
|
2553
2927
|
type: Injectable,
|
|
2554
2928
|
args: [{ providedIn: 'root' }]
|
|
2555
2929
|
}] });
|
|
@@ -2565,241 +2939,35 @@ const defaultPdfOptions = {
|
|
|
2565
2939
|
showSearchBar: true,
|
|
2566
2940
|
showSidebar: true,
|
|
2567
2941
|
showGrabNDragButton: true,
|
|
2568
|
-
showCommentSummary: true,
|
|
2569
|
-
showPresentationMode: true,
|
|
2570
|
-
showRedact: true
|
|
2571
|
-
};
|
|
2572
|
-
/**
|
|
2573
|
-
* Default toolbar state for the image viewer
|
|
2574
|
-
*/
|
|
2575
|
-
const defaultImageOptions = {
|
|
2576
|
-
showPrint: true,
|
|
2577
|
-
showDownload: true,
|
|
2578
|
-
showZoom: true,
|
|
2579
|
-
showRotate: true,
|
|
2580
|
-
showGrabNDragButton: true,
|
|
2581
|
-
showCommentSummary: true,
|
|
2582
|
-
showRedact: true
|
|
2583
|
-
};
|
|
2584
|
-
/**
|
|
2585
|
-
* Default toolbar state for multimedia
|
|
2586
|
-
*/
|
|
2587
|
-
const defaultMultimediaOptions = {
|
|
2588
|
-
showDownload: true
|
|
2589
|
-
};
|
|
2590
|
-
/**
|
|
2591
|
-
* Default toolbar state for unsupported media
|
|
2592
|
-
*/
|
|
2593
|
-
const defaultUnsupportedOptions = {
|
|
2594
|
-
showDownload: true,
|
|
2595
|
-
showPrint: true
|
|
2596
|
-
};
|
|
2597
|
-
|
|
2598
|
-
/**
|
|
2599
|
-
* Helper Class
|
|
2600
|
-
* Used for dynamic templates manipulation
|
|
2601
|
-
* */
|
|
2602
|
-
class HtmlTemplatesHelper {
|
|
2603
|
-
static setDescribedBy(errorMessage, config) {
|
|
2604
|
-
if (!errorMessage) {
|
|
2605
|
-
return config.hint ? `${config.id}-hint` : null;
|
|
2606
|
-
}
|
|
2607
|
-
else if (errorMessage && errorMessage.isInvalid) {
|
|
2608
|
-
return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;
|
|
2609
|
-
}
|
|
2610
|
-
else {
|
|
2611
|
-
return config.hint ? `${config.id}-hint` : null;
|
|
2612
|
-
}
|
|
2613
|
-
}
|
|
2614
|
-
static getAdjustedBoundingRect(element, log = true) {
|
|
2615
|
-
const viewportX = window.visualViewport.offsetLeft;
|
|
2616
|
-
const viewportY = window.visualViewport.offsetTop;
|
|
2617
|
-
const viewportScale = window.visualViewport.scale;
|
|
2618
|
-
const viewportPageX = window.visualViewport.pageLeft;
|
|
2619
|
-
const viewportPageY = window.visualViewport.pageTop;
|
|
2620
|
-
if (log && viewportX || viewportY || (viewportScale != 1) || viewportPageX || viewportPageY) {
|
|
2621
|
-
console.log(`Element: ${element.id} Viewport X: ${viewportX}, Y: ${viewportY}, Scale: ${viewportScale}, PageX: ${viewportPageX}, PageY: ${viewportPageY}`);
|
|
2622
|
-
}
|
|
2623
|
-
return element.getBoundingClientRect();
|
|
2624
|
-
}
|
|
2625
|
-
}
|
|
2626
|
-
|
|
2627
|
-
const getTagsRootState = createSelector(getMVState, (state) => state.tags);
|
|
2628
|
-
const getTagEntities = createSelector(getTagsRootState, getTagNameEnt);
|
|
2629
|
-
const getTagFilters = createSelector(getTagsRootState, getFilters);
|
|
2630
|
-
const getTagFiltered = createSelector(getTagsRootState, getFilteredComments);
|
|
2631
|
-
const getFilteredPageEntities = createSelector(getTagsRootState, getFilteredPageEnt);
|
|
2632
|
-
const getAllTagsArr = createSelector(getTagEntities, (tagEnt) => Object.keys(tagEnt).map(key => {
|
|
2633
|
-
return {
|
|
2634
|
-
key,
|
|
2635
|
-
length: Object.keys(tagEnt[key]).length
|
|
2636
|
-
};
|
|
2637
|
-
}));
|
|
2638
|
-
|
|
2639
|
-
const getAnnotationsSetState = createSelector(getMVState, (state) => state.annotations);
|
|
2640
|
-
const getAnnotationEntities = createSelector(getAnnotationsSetState, getAnnoEnt);
|
|
2641
|
-
const getSet = createSelector(getAnnotationsSetState, getAnnoSet);
|
|
2642
|
-
const getDocumentIdSetId = createSelector(getSet, (annoSet) => {
|
|
2643
|
-
return {
|
|
2644
|
-
documentId: annoSet.documentId,
|
|
2645
|
-
annotationSetId: annoSet.id
|
|
2646
|
-
};
|
|
2647
|
-
});
|
|
2648
|
-
const getAnnotationSet = createSelector(getAnnotationEntities, getSet, (entities, set) => {
|
|
2649
|
-
return {
|
|
2650
|
-
...set,
|
|
2651
|
-
annotations: Object.keys(entities).map(key => entities[key])
|
|
2652
|
-
};
|
|
2653
|
-
});
|
|
2654
|
-
const getSelectedAnnotation = createSelector(getAnnotationsSetState, getSelectedAnno);
|
|
2655
|
-
const getCommentEntities = createSelector(getAnnotationsSetState, getCommentEnts);
|
|
2656
|
-
const getPageEntities = createSelector(getAnnotationsSetState, getAnnoPageEnt);
|
|
2657
|
-
const getComponentSearchQueries = createSelector(getAnnotationsSetState, commentSearchQ);
|
|
2658
|
-
const getComponentSearchText = createSelector(getComponentSearchQueries, (queries) => queries.commentSearch);
|
|
2659
|
-
const getCommentSummaryFilters = createSelector(getAnnotationsSetState, getSummaryFilters);
|
|
2660
|
-
const getAnnoPerPage = createSelector(getPages, getPageEntities, getFilteredPageEntities, (pages, pageEnt, filteredPageEnt) => {
|
|
2661
|
-
const isFiltered = !!Object.keys(filteredPageEnt).length;
|
|
2662
|
-
const entities = isFiltered ? filteredPageEnt : pageEnt;
|
|
2663
|
-
if (pages) {
|
|
2664
|
-
const arr = [];
|
|
2665
|
-
Object.keys(pages).forEach(key => {
|
|
2666
|
-
arr.push({
|
|
2667
|
-
anno: entities[key] ? entities[key] : [],
|
|
2668
|
-
styles: pages[key].styles
|
|
2669
|
-
});
|
|
2670
|
-
});
|
|
2671
|
-
return arr;
|
|
2672
|
-
}
|
|
2673
|
-
});
|
|
2674
|
-
const getCommentsArray = createSelector(getCommentEntities, getPages, getAnnotationEntities, getTagFiltered, (commentEnts, pages, annoEnts, filtered) => {
|
|
2675
|
-
if (commentEnts && annoEnts && pages[1]) {
|
|
2676
|
-
const isFiltered = !!Object.keys(filtered).length;
|
|
2677
|
-
const com = isFiltered ? filtered : commentEnts;
|
|
2678
|
-
return Object.keys(com).map(key => {
|
|
2679
|
-
const page = annoEnts[key].page;
|
|
2680
|
-
return {
|
|
2681
|
-
...commentEnts[key],
|
|
2682
|
-
page,
|
|
2683
|
-
pages
|
|
2684
|
-
};
|
|
2685
|
-
});
|
|
2686
|
-
}
|
|
2687
|
-
});
|
|
2688
|
-
const getCommentSummary = createSelector(getCommentsArray, getCommentSummaryFilters, (commentSummary = [], filters) => {
|
|
2689
|
-
const comments = StoreUtils.filterCommentsSummary(commentSummary, filters.filters);
|
|
2690
|
-
if (comments.length) {
|
|
2691
|
-
const savedComments = comments.filter((comment) => {
|
|
2692
|
-
return comment.createdByDetails !== undefined;
|
|
2693
|
-
});
|
|
2694
|
-
return savedComments.map((comment) => {
|
|
2695
|
-
return {
|
|
2696
|
-
page: comment.page,
|
|
2697
|
-
user: comment.createdByDetails.forename.concat(' ').concat(comment.createdByDetails.surname),
|
|
2698
|
-
date: moment(comment.lastModifiedDate).format('D MMMM YYYY'),
|
|
2699
|
-
tags: comment.tags,
|
|
2700
|
-
comment: comment.content
|
|
2701
|
-
};
|
|
2702
|
-
});
|
|
2703
|
-
}
|
|
2704
|
-
return [''];
|
|
2705
|
-
});
|
|
2706
|
-
const getFilteredAnnotations = createSelector(getAnnotationEntities, getTagFiltered, (annoEnt, filters) => {
|
|
2707
|
-
const isFiltered = !!Object.keys(filters).length;
|
|
2708
|
-
const anno = isFiltered ? filters : annoEnt;
|
|
2709
|
-
return Object.keys(anno).map(key => annoEnt[key])
|
|
2710
|
-
.filter(annotation => annotation.comments && annotation.comments.length > 0);
|
|
2711
|
-
});
|
|
2712
|
-
|
|
2713
|
-
class HighlightCreateService {
|
|
2714
|
-
constructor(toolBarEvents, store) {
|
|
2715
|
-
this.toolBarEvents = toolBarEvents;
|
|
2716
|
-
this.store = store;
|
|
2717
|
-
}
|
|
2718
|
-
saveAnnotation(rectangles, page) {
|
|
2719
|
-
this.store.pipe(select(getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {
|
|
2720
|
-
const anno = {
|
|
2721
|
-
id: v4(),
|
|
2722
|
-
color: 'FFFF00',
|
|
2723
|
-
comments: [],
|
|
2724
|
-
page: page,
|
|
2725
|
-
rectangles: rectangles,
|
|
2726
|
-
type: 'highlight',
|
|
2727
|
-
...anoSetDocId,
|
|
2728
|
-
createdBy: '',
|
|
2729
|
-
createdByDetails: undefined,
|
|
2730
|
-
createdDate: moment.utc().tz('Europe/London').toISOString(),
|
|
2731
|
-
lastModifiedBy: '',
|
|
2732
|
-
lastModifiedByDetails: undefined,
|
|
2733
|
-
lastModifiedDate: '',
|
|
2734
|
-
tags: [],
|
|
2735
|
-
};
|
|
2736
|
-
this.store.dispatch(new SaveAnnotation(anno));
|
|
2737
|
-
});
|
|
2738
|
-
}
|
|
2739
|
-
saveAnnotationSet(searchRectangles) {
|
|
2740
|
-
this.store.pipe(select(getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {
|
|
2741
|
-
const annoSet = searchRectangles.map(x => {
|
|
2742
|
-
return {
|
|
2743
|
-
id: v4(),
|
|
2744
|
-
color: 'FFFF00',
|
|
2745
|
-
comments: [],
|
|
2746
|
-
page: x.page,
|
|
2747
|
-
rectangles: x.rectangles,
|
|
2748
|
-
type: 'highlight',
|
|
2749
|
-
...anoSetDocId,
|
|
2750
|
-
createdBy: '',
|
|
2751
|
-
createdByDetails: undefined,
|
|
2752
|
-
createdDate: moment.utc().tz('Europe/London').toISOString(),
|
|
2753
|
-
lastModifiedBy: '',
|
|
2754
|
-
lastModifiedByDetails: undefined,
|
|
2755
|
-
lastModifiedDate: '',
|
|
2756
|
-
tags: [],
|
|
2757
|
-
};
|
|
2758
|
-
});
|
|
2759
|
-
this.store.dispatch(new SaveAnnotationSet({
|
|
2760
|
-
id: anoSetDocId.annotationSetId, annotations: annoSet, documentId: anoSetDocId.documentId
|
|
2761
|
-
}));
|
|
2762
|
-
});
|
|
2763
|
-
}
|
|
2764
|
-
applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom) {
|
|
2765
|
-
const { x, y, width, height } = {
|
|
2766
|
-
x: +(offsetLeft / zoom).toFixed(2),
|
|
2767
|
-
y: +(offsetTop / zoom).toFixed(2),
|
|
2768
|
-
width: +(offsetWidth / zoom).toFixed(2),
|
|
2769
|
-
height: +(offsetHeight / zoom).toFixed(2)
|
|
2770
|
-
};
|
|
2771
|
-
const rectangle = { x, y, width, height };
|
|
2772
|
-
switch (rotate) {
|
|
2773
|
-
case 90:
|
|
2774
|
-
rectangle.width = height;
|
|
2775
|
-
rectangle.height = width;
|
|
2776
|
-
rectangle.x = y;
|
|
2777
|
-
rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);
|
|
2778
|
-
break;
|
|
2779
|
-
case 180:
|
|
2780
|
-
rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);
|
|
2781
|
-
rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);
|
|
2782
|
-
break;
|
|
2783
|
-
case 270:
|
|
2784
|
-
rectangle.width = height;
|
|
2785
|
-
rectangle.height = width;
|
|
2786
|
-
rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);
|
|
2787
|
-
rectangle.y = x;
|
|
2788
|
-
break;
|
|
2789
|
-
}
|
|
2790
|
-
return rectangle;
|
|
2791
|
-
}
|
|
2792
|
-
resetHighlight() {
|
|
2793
|
-
window.getSelection().removeAllRanges();
|
|
2794
|
-
this.toolBarEvents.highlightModeSubject.next(false);
|
|
2795
|
-
}
|
|
2796
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: HighlightCreateService, deps: [{ token: ToolbarEventService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2797
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: HighlightCreateService, providedIn: 'root' }); }
|
|
2798
|
-
}
|
|
2799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: HighlightCreateService, decorators: [{
|
|
2800
|
-
type: Injectable,
|
|
2801
|
-
args: [{ providedIn: 'root' }]
|
|
2802
|
-
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: i1.Store }] });
|
|
2942
|
+
showCommentSummary: true,
|
|
2943
|
+
showPresentationMode: true,
|
|
2944
|
+
showRedact: true
|
|
2945
|
+
};
|
|
2946
|
+
/**
|
|
2947
|
+
* Default toolbar state for the image viewer
|
|
2948
|
+
*/
|
|
2949
|
+
const defaultImageOptions = {
|
|
2950
|
+
showPrint: true,
|
|
2951
|
+
showDownload: true,
|
|
2952
|
+
showZoom: true,
|
|
2953
|
+
showRotate: true,
|
|
2954
|
+
showGrabNDragButton: true,
|
|
2955
|
+
showCommentSummary: true,
|
|
2956
|
+
showRedact: true
|
|
2957
|
+
};
|
|
2958
|
+
/**
|
|
2959
|
+
* Default toolbar state for multimedia
|
|
2960
|
+
*/
|
|
2961
|
+
const defaultMultimediaOptions = {
|
|
2962
|
+
showDownload: true
|
|
2963
|
+
};
|
|
2964
|
+
/**
|
|
2965
|
+
* Default toolbar state for unsupported media
|
|
2966
|
+
*/
|
|
2967
|
+
const defaultUnsupportedOptions = {
|
|
2968
|
+
showDownload: true,
|
|
2969
|
+
showPrint: true
|
|
2970
|
+
};
|
|
2803
2971
|
|
|
2804
2972
|
class RedactionSearchBarComponent {
|
|
2805
2973
|
constructor(store, toolbarButtons, toolbarEvents, highlightService) {
|
|
@@ -3008,12 +3176,12 @@ class RedactionSearchBarComponent {
|
|
|
3008
3176
|
rectangle = { id: v4(), ...rectangle };
|
|
3009
3177
|
return rectangle;
|
|
3010
3178
|
}
|
|
3011
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3012
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3179
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionSearchBarComponent, deps: [{ token: i1.Store }, { token: ToolbarButtonVisibilityService }, { token: ToolbarEventService }, { token: HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3180
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RedactionSearchBarComponent, selector: "mv-redaction-search-bar", host: { listeners: { "window:keydown": "onWindowKeyDown($event)" } }, viewQueries: [{ propertyName: "findInput", first: true, predicate: ["findInput"], descendants: true, static: true }], ngImport: i0, template: "<div\n *ngIf=\"openSearchModal\"\n class=\"searchbar redaction-search-bar govuk-!-padding-3\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full govuk-!-padding-right-0\">\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onCloseSearchModal()\"\n ></button>\n </div>\n <input\n id=\"search_input\"\n class=\"govuk-input govuk-!-width-three-quarters govuk-!-display-inline-block govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Redact from search\"\n #findInput\n title=\"Redact from search\"\n placeholder=\"{{ titleText + ' from search...' | rpxTranslate }}\"\n data-l10n-id=\"search_input\"\n [ngModel]=\"searchText\"\n (ngModelChange)=\"searchText = $event\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n />\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvSearchAllBtn\"\n class=\"govuk-button govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Search\" | rpxTranslate }}\n </button>\n <button\n id=\"mvRedactAllBtn\"\n class=\"govuk-button govuk-!-margin-left-2 govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search(false)\"\n [disabled]=\"redactAllInProgress || resultCount <= 0\"\n >\n {{ titleText + \" all\" | rpxTranslate }}\n </button>\n </div>\n <div\n class=\"govuk-grid-column-three-quarters govuk-!-padding-left-0 govuk-!-padding-top-2 redaction-status-text\"\n >\n <span\n id=\"findRedactResultsCount\"\n class=\"govuk-grid-column-full govuk-!-margin-right-4 govuk-!-margin-left-0 govuk-!-padding-left-0\"\n ><h4\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n *ngIf=\"redactAllInProgress\"\n >\n {{ inProgressText + \" in progress\" | rpxTranslate }}\n </h4>\n {{ redactAllInProgress ? \"\" : resultsText }}</span\n >\n <span>\n <h5\n id=\"redactAllInProgressCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n >\n {{ redactAllInProgress ? redactAllText : \"\" }}\n </h5>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".redaction-search-buttons-area{display:flex;flex-direction:row;padding-top:.5rem}.redaction-search-bar{width:20rem;left:73%;top:2%}.redaction-status-text{height:2.6rem}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
3013
3181
|
}
|
|
3014
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionSearchBarComponent, decorators: [{
|
|
3015
3183
|
type: Component,
|
|
3016
|
-
args: [{ selector: 'mv-redaction-search-bar',
|
|
3184
|
+
args: [{ selector: 'mv-redaction-search-bar', template: "<div\n *ngIf=\"openSearchModal\"\n class=\"searchbar redaction-search-bar govuk-!-padding-3\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full govuk-!-padding-right-0\">\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onCloseSearchModal()\"\n ></button>\n </div>\n <input\n id=\"search_input\"\n class=\"govuk-input govuk-!-width-three-quarters govuk-!-display-inline-block govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Redact from search\"\n #findInput\n title=\"Redact from search\"\n placeholder=\"{{ titleText + ' from search...' | rpxTranslate }}\"\n data-l10n-id=\"search_input\"\n [ngModel]=\"searchText\"\n (ngModelChange)=\"searchText = $event\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n />\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvSearchAllBtn\"\n class=\"govuk-button govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Search\" | rpxTranslate }}\n </button>\n <button\n id=\"mvRedactAllBtn\"\n class=\"govuk-button govuk-!-margin-left-2 govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search(false)\"\n [disabled]=\"redactAllInProgress || resultCount <= 0\"\n >\n {{ titleText + \" all\" | rpxTranslate }}\n </button>\n </div>\n <div\n class=\"govuk-grid-column-three-quarters govuk-!-padding-left-0 govuk-!-padding-top-2 redaction-status-text\"\n >\n <span\n id=\"findRedactResultsCount\"\n class=\"govuk-grid-column-full govuk-!-margin-right-4 govuk-!-margin-left-0 govuk-!-padding-left-0\"\n ><h4\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n *ngIf=\"redactAllInProgress\"\n >\n {{ inProgressText + \" in progress\" | rpxTranslate }}\n </h4>\n {{ redactAllInProgress ? \"\" : resultsText }}</span\n >\n <span>\n <h5\n id=\"redactAllInProgressCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n >\n {{ redactAllInProgress ? redactAllText : \"\" }}\n </h5>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".redaction-search-buttons-area{display:flex;flex-direction:row;padding-top:.5rem}.redaction-search-bar{width:20rem;left:73%;top:2%}.redaction-status-text{height:2.6rem}\n"] }]
|
|
3017
3185
|
}], ctorParameters: () => [{ type: i1.Store }, { type: ToolbarButtonVisibilityService }, { type: ToolbarEventService }, { type: HighlightCreateService }], propDecorators: { findInput: [{
|
|
3018
3186
|
type: ViewChild,
|
|
3019
3187
|
args: ['findInput', { static: true }]
|
|
@@ -3062,10 +3230,10 @@ class CommentService {
|
|
|
3062
3230
|
createMarginToCommentEvent(margin) {
|
|
3063
3231
|
this.marginToCommentEmitter.next(margin);
|
|
3064
3232
|
}
|
|
3065
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3066
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3233
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3234
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService }); }
|
|
3067
3235
|
}
|
|
3068
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService, decorators: [{
|
|
3069
3237
|
type: Injectable
|
|
3070
3238
|
}] });
|
|
3071
3239
|
|
|
@@ -3114,10 +3282,10 @@ class CommentSetRenderService {
|
|
|
3114
3282
|
return HtmlTemplatesHelper.getAdjustedBoundingRect(element.form.nativeElement)?.height | 0;
|
|
3115
3283
|
}
|
|
3116
3284
|
difference(a, b) { return Math.abs(a - b); }
|
|
3117
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3118
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3285
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetRenderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3286
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetRenderService }); }
|
|
3119
3287
|
}
|
|
3120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3288
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetRenderService, decorators: [{
|
|
3121
3289
|
type: Injectable
|
|
3122
3290
|
}] });
|
|
3123
3291
|
|
|
@@ -3152,10 +3320,10 @@ class TagsServices {
|
|
|
3152
3320
|
[annoId]: snakeCased
|
|
3153
3321
|
};
|
|
3154
3322
|
}
|
|
3155
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3156
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3323
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TagsServices, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3324
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TagsServices }); }
|
|
3157
3325
|
}
|
|
3158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TagsServices, decorators: [{
|
|
3159
3327
|
type: Injectable
|
|
3160
3328
|
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
3161
3329
|
|
|
@@ -3192,14 +3360,13 @@ class TextHighlightDirective {
|
|
|
3192
3360
|
highlightPattern(dynamicText) {
|
|
3193
3361
|
return '<span class="mvTextHighlight">' + dynamicText + '</span>';
|
|
3194
3362
|
}
|
|
3195
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3196
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
3363
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextHighlightDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3364
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TextHighlightDirective, selector: "[mvTextHighlight]", inputs: { textToHighlight: "textToHighlight" }, ngImport: i0 }); }
|
|
3197
3365
|
}
|
|
3198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextHighlightDirective, decorators: [{
|
|
3199
3367
|
type: Directive,
|
|
3200
3368
|
args: [{
|
|
3201
|
-
selector: '[mvTextHighlight]'
|
|
3202
|
-
standalone: false
|
|
3369
|
+
selector: '[mvTextHighlight]'
|
|
3203
3370
|
}]
|
|
3204
3371
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { textToHighlight: [{
|
|
3205
3372
|
type: Input
|
|
@@ -3221,14 +3388,13 @@ class TextareaAutoExpandDirective {
|
|
|
3221
3388
|
nativeElement.style.height = 'auto';
|
|
3222
3389
|
nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';
|
|
3223
3390
|
}
|
|
3224
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3225
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
3391
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaAutoExpandDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3392
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TextareaAutoExpandDirective, selector: "[mvTextAreaAutoExpand]", host: { listeners: { "input": "onMouseDown()" } }, ngImport: i0 }); }
|
|
3226
3393
|
}
|
|
3227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaAutoExpandDirective, decorators: [{
|
|
3228
3395
|
type: Directive,
|
|
3229
3396
|
args: [{
|
|
3230
|
-
selector: '[mvTextAreaAutoExpand]'
|
|
3231
|
-
standalone: false
|
|
3397
|
+
selector: '[mvTextAreaAutoExpand]'
|
|
3232
3398
|
}]
|
|
3233
3399
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onMouseDown: [{
|
|
3234
3400
|
type: HostListener,
|
|
@@ -3266,12 +3432,12 @@ class TagsComponent {
|
|
|
3266
3432
|
}
|
|
3267
3433
|
return null;
|
|
3268
3434
|
}
|
|
3269
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3270
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3435
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TagsComponent, deps: [{ token: TagsServices }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3436
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TagsComponent, selector: "mv-tags", inputs: { tagItems: "tagItems", userId: "userId", editable: "editable", annoId: "annoId" }, ngImport: i0, template: "<div class=\"tags\">\n <tag-input\n *ngIf=\"editable\" class=\"tags__edit\"\n [maxItems]=\"10\"\n [ngModel]=\"tagItems\"\n (ngModelChange)=\"tagItems = $event; onUpdateTags($event)\"\n [ngModelOptions]=\"{standalone:true}\"\n [placeholder]=\"'Add tag'\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [onTextChangeDebounce]=\"250\"\n [secondaryPlaceholder]=\"'Search or add tags'\"\n [validators]=\"validators\"\n [errorMessages]=\"errorMessages\"\n [onlyFromAutocomplete]=\"false\">\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [zIndex]=\"10000\"\n [minimumTextLength]=\"2\">\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.label }}\n </ng-template>\n </tag-input-dropdown>\n </tag-input>\n\n <div class=\"tags__renderer\" *ngIf=\"!editable && (tagItems && tagItems.length)\">\n <span *ngFor=\"let tag of tagItems\" class=\"tags__item hmcts-badge\">\n {{tag.label}}\n </span>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TagInputComponent, selector: "tag-input", inputs: ["separatorKeys", "separatorKeyCodes", "placeholder", "secondaryPlaceholder", "maxItems", "validators", "asyncValidators", "onlyFromAutocomplete", "errorMessages", "theme", "onTextChangeDebounce", "inputId", "inputClass", "clearOnBlur", "hideForm", "addOnBlur", "addOnPaste", "pasteSplitPattern", "blinkIfDupe", "removable", "editable", "allowDupes", "modelAsStrings", "trimTags", "inputText", "ripple", "tabindex", "disable", "dragZone", "onRemoving", "onAdding", "animationDuration"], outputs: ["onAdd", "onRemove", "onSelect", "onFocus", "onBlur", "onTextChange", "onPaste", "onValidationError", "onTagEdited", "inputTextChange"] }, { kind: "component", type: i4.TagInputDropdown, selector: "tag-input-dropdown", inputs: ["offset", "focusFirstElement", "showDropdownIfEmpty", "autocompleteObservable", "minimumTextLength", "limitItemsTo", "displayBy", "identifyBy", "matchingFn", "appendToBody", "keepOpen", "dynamicUpdate", "zIndex", "autocompleteItems"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3271
3437
|
}
|
|
3272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3438
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TagsComponent, decorators: [{
|
|
3273
3439
|
type: Component,
|
|
3274
|
-
args: [{ selector: 'mv-tags', encapsulation: ViewEncapsulation.None,
|
|
3440
|
+
args: [{ selector: 'mv-tags', encapsulation: ViewEncapsulation.None, template: "<div class=\"tags\">\n <tag-input\n *ngIf=\"editable\" class=\"tags__edit\"\n [maxItems]=\"10\"\n [ngModel]=\"tagItems\"\n (ngModelChange)=\"tagItems = $event; onUpdateTags($event)\"\n [ngModelOptions]=\"{standalone:true}\"\n [placeholder]=\"'Add tag'\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [onTextChangeDebounce]=\"250\"\n [secondaryPlaceholder]=\"'Search or add tags'\"\n [validators]=\"validators\"\n [errorMessages]=\"errorMessages\"\n [onlyFromAutocomplete]=\"false\">\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [zIndex]=\"10000\"\n [minimumTextLength]=\"2\">\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.label }}\n </ng-template>\n </tag-input-dropdown>\n </tag-input>\n\n <div class=\"tags__renderer\" *ngIf=\"!editable && (tagItems && tagItems.length)\">\n <span *ngFor=\"let tag of tagItems\" class=\"tags__item hmcts-badge\">\n {{tag.label}}\n </span>\n </div>\n</div>\n\n" }]
|
|
3275
3441
|
}], ctorParameters: () => [{ type: TagsServices }], propDecorators: { tagItems: [{
|
|
3276
3442
|
type: Input
|
|
3277
3443
|
}], userId: [{
|
|
@@ -3294,14 +3460,13 @@ class MomentDatePipe extends DatePipe {
|
|
|
3294
3460
|
const timezoneOffset = moment(value).tz(timezone).format('Z');
|
|
3295
3461
|
return super.transform(value, format, timezoneOffset);
|
|
3296
3462
|
}
|
|
3297
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3298
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3463
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MomentDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3464
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MomentDatePipe, name: "momentDate" }); }
|
|
3299
3465
|
}
|
|
3300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3466
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MomentDatePipe, decorators: [{
|
|
3301
3467
|
type: Pipe,
|
|
3302
3468
|
args: [{
|
|
3303
|
-
name: 'momentDate'
|
|
3304
|
-
standalone: false
|
|
3469
|
+
name: 'momentDate'
|
|
3305
3470
|
}]
|
|
3306
3471
|
}] });
|
|
3307
3472
|
|
|
@@ -3432,12 +3597,12 @@ class CommentComponent {
|
|
|
3432
3597
|
get height() {
|
|
3433
3598
|
return HtmlTemplatesHelper.getAdjustedBoundingRect(this.form.nativeElement).height / this.zoom;
|
|
3434
3599
|
}
|
|
3435
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3436
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3600
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentComponent, deps: [{ token: i1.Store }, { token: CommentService }, { token: TagsServices }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3601
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentComponent, selector: "mv-anno-comment", inputs: { rotate: "rotate", zoom: "zoom", index: "index", page: "page", comment: "comment", annotation: "annotation" }, outputs: { commentClick: "commentClick", renderComments: "renderComments", delete: "delete", updated: "updated", changes: "changes" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "editableComment", first: true, predicate: ["editableComment"], descendants: true }], ngImport: i0, template: "<div\n #form\n (click)=\"onCommentClick()\"\n class=\"aui-comment\"\n [ngClass]=\"{ stylestoggle: (marginToComment$ | async) }\"\n [style.top.px]=\"commentTop\"\n [style.zIndex]=\"selected ? 100 : 0\"\n>\n <div id=\"detailsWrapper {{ index }}\" class=\"aui-comment__header\">\n <span *ngIf=\"author && !editor\" class=\"aui-comment__author\">\n {{ author.forename }} {{ author.surname }}\n </span>\n <span *ngIf=\"editor\" class=\"aui-comment__author\">\n {{ editor.forename }} {{ editor.surname }}\n </span>\n <time [hidden]=\"!selected && !this.editable\" class=\"aui-comment__meta\">\n {{ lastUpdate | momentDate : \"d MMMM y h:mm a\" }}\n </time>\n </div>\n <mv-tags\n [tagItems]=\"tagItems\"\n [userId]=\"createdBy\"\n [editable]=\"editable\"\n [annoId]=\"_comment.annotationId\"\n >\n </mv-tags>\n <textarea\n *ngIf=\"selected && editable\"\n #editableComment\n mvTextAreaAutoExpand\n type=\"text\"\n required\n name=\"content\"\n [maxlength]=\"CHAR_LIMIT\"\n class=\"aui-comment__content form-control mimic-focus edit-mode expanded\"\n [ngModel]=\"fullComment\"\n (ngModelChange)=\"fullComment = $event; reRenderComments(); onCommentChange($event)\"\n aria-label=\"comment\"\n >\n </textarea>\n <p\n *ngIf=\"!editable\"\n mvTextHighlight\n class=\"commentText\"\n [textToHighlight]=\"searchString\"\n >\n {{ fullComment }}\n </p>\n <div\n *ngIf=\"\n selected ||\n this.editable ||\n (!fullComment.length && tagItems && !tagItems.length)\n \"\n class=\"aui-comment__footer commentBtns\"\n >\n <button\n class=\"govuk-button\"\n type=\"button\"\n role=\"button\"\n (click)=\"editOrSave()\"\n >\n {{ !editable ? (\"Edit\" | rpxTranslate) : (\"Save\" | rpxTranslate) }}\n </button>\n <button\n type=\"button\"\n role=\"button\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"deleteOrCancel()\"\n >\n {{ !editable ? (\"Delete\" | rpxTranslate) : (\"Cancel\" | rpxTranslate) }}\n </button>\n </div>\n <span class=\"aui-comment__private\">{{ \"private\" | rpxTranslate }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TextHighlightDirective, selector: "[mvTextHighlight]", inputs: ["textToHighlight"] }, { kind: "directive", type: TextareaAutoExpandDirective, selector: "[mvTextAreaAutoExpand]" }, { kind: "component", type: TagsComponent, selector: "mv-tags", inputs: ["tagItems", "userId", "editable", "annoId"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: MomentDatePipe, name: "momentDate" }] }); }
|
|
3437
3602
|
}
|
|
3438
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3603
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentComponent, decorators: [{
|
|
3439
3604
|
type: Component,
|
|
3440
|
-
args: [{ selector: 'mv-anno-comment',
|
|
3605
|
+
args: [{ selector: 'mv-anno-comment', template: "<div\n #form\n (click)=\"onCommentClick()\"\n class=\"aui-comment\"\n [ngClass]=\"{ stylestoggle: (marginToComment$ | async) }\"\n [style.top.px]=\"commentTop\"\n [style.zIndex]=\"selected ? 100 : 0\"\n>\n <div id=\"detailsWrapper {{ index }}\" class=\"aui-comment__header\">\n <span *ngIf=\"author && !editor\" class=\"aui-comment__author\">\n {{ author.forename }} {{ author.surname }}\n </span>\n <span *ngIf=\"editor\" class=\"aui-comment__author\">\n {{ editor.forename }} {{ editor.surname }}\n </span>\n <time [hidden]=\"!selected && !this.editable\" class=\"aui-comment__meta\">\n {{ lastUpdate | momentDate : \"d MMMM y h:mm a\" }}\n </time>\n </div>\n <mv-tags\n [tagItems]=\"tagItems\"\n [userId]=\"createdBy\"\n [editable]=\"editable\"\n [annoId]=\"_comment.annotationId\"\n >\n </mv-tags>\n <textarea\n *ngIf=\"selected && editable\"\n #editableComment\n mvTextAreaAutoExpand\n type=\"text\"\n required\n name=\"content\"\n [maxlength]=\"CHAR_LIMIT\"\n class=\"aui-comment__content form-control mimic-focus edit-mode expanded\"\n [ngModel]=\"fullComment\"\n (ngModelChange)=\"fullComment = $event; reRenderComments(); onCommentChange($event)\"\n aria-label=\"comment\"\n >\n </textarea>\n <p\n *ngIf=\"!editable\"\n mvTextHighlight\n class=\"commentText\"\n [textToHighlight]=\"searchString\"\n >\n {{ fullComment }}\n </p>\n <div\n *ngIf=\"\n selected ||\n this.editable ||\n (!fullComment.length && tagItems && !tagItems.length)\n \"\n class=\"aui-comment__footer commentBtns\"\n >\n <button\n class=\"govuk-button\"\n type=\"button\"\n role=\"button\"\n (click)=\"editOrSave()\"\n >\n {{ !editable ? (\"Edit\" | rpxTranslate) : (\"Save\" | rpxTranslate) }}\n </button>\n <button\n type=\"button\"\n role=\"button\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"deleteOrCancel()\"\n >\n {{ !editable ? (\"Delete\" | rpxTranslate) : (\"Cancel\" | rpxTranslate) }}\n </button>\n </div>\n <span class=\"aui-comment__private\">{{ \"private\" | rpxTranslate }}</span>\n</div>\n" }]
|
|
3441
3606
|
}], ctorParameters: () => [{ type: i1.Store }, { type: CommentService }, { type: TagsServices }], propDecorators: { commentClick: [{
|
|
3442
3607
|
type: Output
|
|
3443
3608
|
}], renderComments: [{
|
|
@@ -3551,12 +3716,12 @@ class CommentSetComponent {
|
|
|
3551
3716
|
allCommentsSaved() {
|
|
3552
3717
|
this.commentService.allCommentsSaved();
|
|
3553
3718
|
}
|
|
3554
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3555
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3719
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetComponent, deps: [{ token: i1.Store }, { token: CommentService }, { token: CommentSetRenderService }, { token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3720
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentSetComponent, selector: "mv-comment-set", inputs: { annotationSet: "annotationSet", zoom: "zoom", rotate: "rotate", height: "height", pageHeights: "pageHeights", contentScrollTop: "contentScrollTop" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "commentComponents", predicate: ["commentComponent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #container [ngClass]=\"{'comments': showCommentsPanel}\">\n <div #panel [ngClass]=\"{ 'comments-panel comment-container': true, 'expanded': showCommentsPanel }\"\n [style.height.px]=\"height\"\n (click)=\"onContainerClick($event)\">\n <ng-container *ngFor=\"let comment of (comments$ | async); let i = index;\">\n <mv-anno-comment\n [ngStyle]=\"showCommentsPanel ? {} : {'display':'none'}\"\n #commentComponent\n (commentClick)=\"onSelect($event)\"\n (delete)=\"onCommentDelete($event)\"\n (updated)=\"onCommentUpdate($event)\"\n (changes)=\"allCommentsSaved()\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [index]=\"i\"\n [page]=\"comment.page\"\n [comment]=\"comment\"\n [annotation]=\"(annoEntities$ | async)[comment.annotationId]\"\n (renderComments)=\"redrawComments()\">\n </mv-anno-comment>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CommentComponent, selector: "mv-anno-comment", inputs: ["rotate", "zoom", "index", "page", "comment", "annotation"], outputs: ["commentClick", "renderComments", "delete", "updated", "changes"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
3556
3721
|
}
|
|
3557
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3722
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetComponent, decorators: [{
|
|
3558
3723
|
type: Component,
|
|
3559
|
-
args: [{ selector: 'mv-comment-set',
|
|
3724
|
+
args: [{ selector: 'mv-comment-set', template: "<div #container [ngClass]=\"{'comments': showCommentsPanel}\">\n <div #panel [ngClass]=\"{ 'comments-panel comment-container': true, 'expanded': showCommentsPanel }\"\n [style.height.px]=\"height\"\n (click)=\"onContainerClick($event)\">\n <ng-container *ngFor=\"let comment of (comments$ | async); let i = index;\">\n <mv-anno-comment\n [ngStyle]=\"showCommentsPanel ? {} : {'display':'none'}\"\n #commentComponent\n (commentClick)=\"onSelect($event)\"\n (delete)=\"onCommentDelete($event)\"\n (updated)=\"onCommentUpdate($event)\"\n (changes)=\"allCommentsSaved()\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [index]=\"i\"\n [page]=\"comment.page\"\n [comment]=\"comment\"\n [annotation]=\"(annoEntities$ | async)[comment.annotationId]\"\n (renderComments)=\"redrawComments()\">\n </mv-anno-comment>\n </ng-container>\n </div>\n</div>\n" }]
|
|
3560
3725
|
}], ctorParameters: () => [{ type: i1.Store }, { type: CommentService }, { type: CommentSetRenderService }, { type: ToolbarEventService }], propDecorators: { annotationSet: [{
|
|
3561
3726
|
type: Input
|
|
3562
3727
|
}], zoom: [{
|
|
@@ -3653,12 +3818,12 @@ class CommentsNavigateComponent {
|
|
|
3653
3818
|
[...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);
|
|
3654
3819
|
return { x: rectangles[0].x, y: rectangles[0].y };
|
|
3655
3820
|
}
|
|
3656
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3657
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3821
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsNavigateComponent, deps: [{ token: i1.Store }, { token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3822
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsNavigateComponent, selector: "mv-comments-navigate", inputs: { annotationList: "annotationList", autoSelect: "autoSelect" }, usesOnChanges: true, ngImport: i0, template: "<p class=\"comment-search\">\n <span class=\"comment-search__item\">\n Showing {{ index + 1 }} of {{ navigationList.length }}\n </span>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Previous comment\"\n (click)=\"prevItem()\">Prev</a>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Next comment'\"\n (click)=\"nextItem()\">Next</a>\n</p>\n", dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3658
3823
|
}
|
|
3659
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3824
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsNavigateComponent, decorators: [{
|
|
3660
3825
|
type: Component,
|
|
3661
|
-
args: [{ selector: 'mv-comments-navigate', encapsulation: ViewEncapsulation.None,
|
|
3826
|
+
args: [{ selector: 'mv-comments-navigate', encapsulation: ViewEncapsulation.None, template: "<p class=\"comment-search\">\n <span class=\"comment-search__item\">\n Showing {{ index + 1 }} of {{ navigationList.length }}\n </span>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Previous comment\"\n (click)=\"prevItem()\">Prev</a>\n <a [routerLink]=\"[]\"\n class=\"comment-search__item\"\n title=\"Next comment'\"\n (click)=\"nextItem()\">Next</a>\n</p>\n" }]
|
|
3662
3827
|
}], ctorParameters: () => [{ type: i1.Store }, { type: ToolbarEventService }], propDecorators: { annotationList: [{
|
|
3663
3828
|
type: Input
|
|
3664
3829
|
}], autoSelect: [{
|
|
@@ -3698,12 +3863,12 @@ class CommentSearchComponent {
|
|
|
3698
3863
|
this.searchIndex = 0;
|
|
3699
3864
|
this.store.dispatch(new SearchComment(''));
|
|
3700
3865
|
}
|
|
3701
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3702
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3866
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSearchComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3867
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentSearchComponent, selector: "mv-comment-search", inputs: { annotations: "annotations" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<input\n #searchInput\n type=\"text\"\n class=\"govuk-input comment-search__item\"\n id=\"search-comments-input\"\n name=\"searchString\"\n aria-label=\"search comments input\"\n [ngModel]=\"searchString\"\n (ngModelChange)=\"searchString = $event\"\n/>\n<button\n type=\"button\"\n [class.govuk-button--disabled]=\"searchInput?.value.length <= 2\"\n class=\"govuk-button comment-search__item\"\n (click)=\"searchComments(searchInput.value.trim())\"\n>\n {{ \"Search\" | rpxTranslate }}\n</button>\n<ng-container *ngIf=\"searchResults.length > 0\">\n <mv-comments-navigate [annotationList]=\"searchResults\"></mv-comments-navigate>\n</ng-container>\n<ng-container *ngIf=\"searchString && searchResults?.length === 0\">\n <p class=\"comment-search__item\">\n {{ \"No matches have been found\" | rpxTranslate }}\n </p>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CommentsNavigateComponent, selector: "mv-comments-navigate", inputs: ["annotationList", "autoSelect"] }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3703
3868
|
}
|
|
3704
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3869
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSearchComponent, decorators: [{
|
|
3705
3870
|
type: Component,
|
|
3706
|
-
args: [{ selector: 'mv-comment-search', encapsulation: ViewEncapsulation.None,
|
|
3871
|
+
args: [{ selector: 'mv-comment-search', encapsulation: ViewEncapsulation.None, template: "<input\n #searchInput\n type=\"text\"\n class=\"govuk-input comment-search__item\"\n id=\"search-comments-input\"\n name=\"searchString\"\n aria-label=\"search comments input\"\n [ngModel]=\"searchString\"\n (ngModelChange)=\"searchString = $event\"\n/>\n<button\n type=\"button\"\n [class.govuk-button--disabled]=\"searchInput?.value.length <= 2\"\n class=\"govuk-button comment-search__item\"\n (click)=\"searchComments(searchInput.value.trim())\"\n>\n {{ \"Search\" | rpxTranslate }}\n</button>\n<ng-container *ngIf=\"searchResults.length > 0\">\n <mv-comments-navigate [annotationList]=\"searchResults\"></mv-comments-navigate>\n</ng-container>\n<ng-container *ngIf=\"searchString && searchResults?.length === 0\">\n <p class=\"comment-search__item\">\n {{ \"No matches have been found\" | rpxTranslate }}\n </p>\n</ng-container>\n" }]
|
|
3707
3872
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { annotations: [{
|
|
3708
3873
|
type: Input
|
|
3709
3874
|
}], searchInput: [{
|
|
@@ -3731,14 +3896,13 @@ class FilterPipe {
|
|
|
3731
3896
|
return false;
|
|
3732
3897
|
});
|
|
3733
3898
|
}
|
|
3734
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3735
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3899
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3900
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FilterPipe, name: "filter" }); }
|
|
3736
3901
|
}
|
|
3737
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3902
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterPipe, decorators: [{
|
|
3738
3903
|
type: Pipe,
|
|
3739
3904
|
args: [{
|
|
3740
|
-
name: 'filter'
|
|
3741
|
-
standalone: false
|
|
3905
|
+
name: 'filter'
|
|
3742
3906
|
}]
|
|
3743
3907
|
}] });
|
|
3744
3908
|
|
|
@@ -3746,14 +3910,13 @@ class UnsnakePipe {
|
|
|
3746
3910
|
transform(items) {
|
|
3747
3911
|
return items.split('_').join(' ');
|
|
3748
3912
|
}
|
|
3749
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3750
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3913
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnsnakePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3914
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UnsnakePipe, name: "unsnake" }); }
|
|
3751
3915
|
}
|
|
3752
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3916
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnsnakePipe, decorators: [{
|
|
3753
3917
|
type: Pipe,
|
|
3754
3918
|
args: [{
|
|
3755
|
-
name: 'unsnake'
|
|
3756
|
-
standalone: false
|
|
3919
|
+
name: 'unsnake'
|
|
3757
3920
|
}]
|
|
3758
3921
|
}] });
|
|
3759
3922
|
|
|
@@ -3797,12 +3960,12 @@ class CommentFilterComponent {
|
|
|
3797
3960
|
onToggleFilterView() {
|
|
3798
3961
|
this.isPreview = !this.isPreview;
|
|
3799
3962
|
}
|
|
3800
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3801
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3963
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentFilterComponent, deps: [{ token: i1.Store }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3964
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentFilterComponent, selector: "mv-comment-filter", ngImport: i0, template: "<div class=\"comment-filter\">\n <div class=\"hmcts-filter__content\">\n <div class=\"hmcts-filter__toggle-filters\">\n <p\n class=\"hmcts-filter__toggle-filters-link\"\n [ngClass]=\"{ 'govuk-accordion__section--expanded': isPreview }\"\n (click)=\"onToggleFilterView()\"\n >\n <strong>{{ \"Filter options\" | rpxTranslate }}</strong\n ><span class=\"govuk-accordion__icon\"></span>\n </p>\n </div>\n\n <ng-container *ngIf=\"filter$ | async as filters\">\n <div class=\"hmcts-filter__selected-heading\" *ngIf=\"filters.length\">\n <div class=\"hmcts-filter__heading-action\">\n <p>\n <a\n (click)=\"onClearFilters()\"\n class=\"govuk-link govuk-link--no-visited-state\"\n [routerLink]=\"[]\"\n >{{ \"Clear filters\" | rpxTranslate }}</a\n >\n </p>\n </div>\n </div>\n\n <h4\n class=\"govuk-heading-s govuk-!-margin-bottom-0\"\n *ngIf=\"filters.length\"\n >\n {{ \"Tag filters\" | rpxTranslate }}\n </h4>\n\n <ul class=\"hmcts-filter-tags\" *ngIf=\"filters.length\">\n <li *ngFor=\"let tagName of filters\">\n <a\n class=\"hmcts-filter__tag\"\n [routerLink]=\"[]\"\n (click)=\"onRemoveFilter(tagName)\"\n >\n <span class=\"govuk-visually-hidden\">{{\n \"Remove this filter\" | rpxTranslate\n }}</span\n >{{ tagName | unsnake }}</a\n >\n </li>\n </ul>\n </ng-container>\n\n <div class=\"hmcts-filter__options\" [ngClass]=\"{ isVisible: isPreview }\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-label--s\" for=\"keywords\">\n {{ \"Search Tags\" | rpxTranslate }}\n </label>\n <input\n class=\"govuk-input\"\n id=\"keywords\"\n name=\"keywords\"\n type=\"text\"\n [ngModel]=\"searchValue\"\n (ngModelChange)=\"searchValue = $event\"\n />\n </div>\n\n <div class=\"govuk-form-group\">\n <div [formGroup]=\"tagGroup\">\n <fieldset class=\"govuk-fieldset\" formGroupName=\"tagFilters\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--s\">\n Tags\n </legend>\n <div class=\"govuk-checkboxes--scroll\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"\n let item of allTags$ | async | filter : searchValue : 'key'\n \"\n >\n <input\n [formControlName]=\"item.key\"\n [id]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n [attr.aria-describedby]=\"item.key\"\n type=\"checkbox\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n [for]=\"item.key\"\n >\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: FilterPipe, name: "filter" }, { kind: "pipe", type: UnsnakePipe, name: "unsnake" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3802
3965
|
}
|
|
3803
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3966
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentFilterComponent, decorators: [{
|
|
3804
3967
|
type: Component,
|
|
3805
|
-
args: [{ selector: 'mv-comment-filter', encapsulation: ViewEncapsulation.None,
|
|
3968
|
+
args: [{ selector: 'mv-comment-filter', encapsulation: ViewEncapsulation.None, template: "<div class=\"comment-filter\">\n <div class=\"hmcts-filter__content\">\n <div class=\"hmcts-filter__toggle-filters\">\n <p\n class=\"hmcts-filter__toggle-filters-link\"\n [ngClass]=\"{ 'govuk-accordion__section--expanded': isPreview }\"\n (click)=\"onToggleFilterView()\"\n >\n <strong>{{ \"Filter options\" | rpxTranslate }}</strong\n ><span class=\"govuk-accordion__icon\"></span>\n </p>\n </div>\n\n <ng-container *ngIf=\"filter$ | async as filters\">\n <div class=\"hmcts-filter__selected-heading\" *ngIf=\"filters.length\">\n <div class=\"hmcts-filter__heading-action\">\n <p>\n <a\n (click)=\"onClearFilters()\"\n class=\"govuk-link govuk-link--no-visited-state\"\n [routerLink]=\"[]\"\n >{{ \"Clear filters\" | rpxTranslate }}</a\n >\n </p>\n </div>\n </div>\n\n <h4\n class=\"govuk-heading-s govuk-!-margin-bottom-0\"\n *ngIf=\"filters.length\"\n >\n {{ \"Tag filters\" | rpxTranslate }}\n </h4>\n\n <ul class=\"hmcts-filter-tags\" *ngIf=\"filters.length\">\n <li *ngFor=\"let tagName of filters\">\n <a\n class=\"hmcts-filter__tag\"\n [routerLink]=\"[]\"\n (click)=\"onRemoveFilter(tagName)\"\n >\n <span class=\"govuk-visually-hidden\">{{\n \"Remove this filter\" | rpxTranslate\n }}</span\n >{{ tagName | unsnake }}</a\n >\n </li>\n </ul>\n </ng-container>\n\n <div class=\"hmcts-filter__options\" [ngClass]=\"{ isVisible: isPreview }\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-label--s\" for=\"keywords\">\n {{ \"Search Tags\" | rpxTranslate }}\n </label>\n <input\n class=\"govuk-input\"\n id=\"keywords\"\n name=\"keywords\"\n type=\"text\"\n [ngModel]=\"searchValue\"\n (ngModelChange)=\"searchValue = $event\"\n />\n </div>\n\n <div class=\"govuk-form-group\">\n <div [formGroup]=\"tagGroup\">\n <fieldset class=\"govuk-fieldset\" formGroupName=\"tagFilters\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--s\">\n Tags\n </legend>\n <div class=\"govuk-checkboxes--scroll\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"\n let item of allTags$ | async | filter : searchValue : 'key'\n \"\n >\n <input\n [formControlName]=\"item.key\"\n [id]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n [attr.aria-describedby]=\"item.key\"\n type=\"checkbox\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n [for]=\"item.key\"\n >\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
3806
3969
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.UntypedFormBuilder }] });
|
|
3807
3970
|
|
|
3808
3971
|
class CommentSetHeaderComponent {
|
|
@@ -3848,12 +4011,12 @@ class CommentSetHeaderComponent {
|
|
|
3848
4011
|
ngOnDestroy() {
|
|
3849
4012
|
this.$subscriptions.unsubscribe();
|
|
3850
4013
|
}
|
|
3851
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3852
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4014
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetHeaderComponent, deps: [{ token: i1.Store }, { token: CommentService }, { token: ToolbarEventService }, { token: IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4015
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentSetHeaderComponent, selector: "mv-comment-set-header", inputs: { showCommentSummary: "showCommentSummary", isHidden: "isHidden" }, outputs: { showCommentSummaryDialog: "showCommentSummaryDialog" }, ngImport: i0, template: "<div class=\"govuk-tabs commentSummaryHeader\" [ngClass]=\"{'icp-mode': icpEventService.enabled | async}\" data-module=\"govuk-tabs\">\n <ul class=\"govuk-tabs__list\">\n <li *ngFor=\"let tab of tabs; let i = index\" class=\"govuk-tabs__list-item govuk-tabs__list-item\"\n [ngClass]=\"{'govuk-tabs__list-item--selected': tabSelected === tab.label}\">\n <a id=\"commentSubPane{{ i }}\" (click)=\"selectTab(tab.label)\" [routerLink]=\"[]\" [ngClass]=\"{'govuk-tabs__list-item--filtered': tab.isFiltered}\"\n class=\"govuk-tabs__tab\" [hidden]=\"isHidden\">\n {{ tab.label | titlecase }}\n </a>\n </li>\n <li>\n <button id=\"mvCloseBtn\" #mvCloseBtn class=\"mv-button commentSummaryHeader-button--close\"\n title=\"Close Comments\" (click)=\"toggleCommentsPanel()\" [hidden]=\"isHidden\">\n </button>\n </li>\n </ul>\n <div class=\"govuk-tabs__panel\" [hidden]=\"!tabSelected\">\n <ng-container *ngIf=\"tabSelected === 'comments'\">\n <div style=\"width: 100%\">\n <div class=\"hmcts-banner\" *ngIf=\"navigationList?.length === 0\">\n <svg alt=\"\" class=\"hmcts-banner__icon\" fill=\"currentColor\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\nC13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">information</span>\n Select text to add a comment or highlight.\n </div>\n </div>\n <button type=\"button\" class=\"govuk-button\"\n id=\"commentSummary\" tabindex=\"0\"\n data-l10n-id=\"commentSummary\"\n title=\"Open collate summary\"\n (click)=\"toggleCommentsSummary()\">Collate comments</button>\n </div>\n <ng-container *ngIf=\"navigationList?.length > 0\">\n <mv-comments-navigate\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </ng-container>\n <p class=\"aui-comment__private-text\">\n <span class=\"aui-comment__private\">private</span>\n All comments can only be seen by you\n </p>\n </ng-container>\n <div [hidden]=\"tabSelected !== 'filter'\">\n <div class=\"govuk-tabs__panel--container\">\n <mv-comment-filter></mv-comment-filter>\n <mv-comments-navigate\n *ngIf=\"navigationList?.length > 0\"\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </div>\n </div>\n\n <div [hidden]=\"tabSelected !== 'search'\">\n <mv-comment-search [annotations]=\"navigationList\"></mv-comment-search>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: CommentSearchComponent, selector: "mv-comment-search", inputs: ["annotations"] }, { kind: "component", type: CommentsNavigateComponent, selector: "mv-comments-navigate", inputs: ["annotationList", "autoSelect"] }, { kind: "component", type: CommentFilterComponent, selector: "mv-comment-filter" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3853
4016
|
}
|
|
3854
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4017
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentSetHeaderComponent, decorators: [{
|
|
3855
4018
|
type: Component,
|
|
3856
|
-
args: [{ selector: 'mv-comment-set-header', encapsulation: ViewEncapsulation.None,
|
|
4019
|
+
args: [{ selector: 'mv-comment-set-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"govuk-tabs commentSummaryHeader\" [ngClass]=\"{'icp-mode': icpEventService.enabled | async}\" data-module=\"govuk-tabs\">\n <ul class=\"govuk-tabs__list\">\n <li *ngFor=\"let tab of tabs; let i = index\" class=\"govuk-tabs__list-item govuk-tabs__list-item\"\n [ngClass]=\"{'govuk-tabs__list-item--selected': tabSelected === tab.label}\">\n <a id=\"commentSubPane{{ i }}\" (click)=\"selectTab(tab.label)\" [routerLink]=\"[]\" [ngClass]=\"{'govuk-tabs__list-item--filtered': tab.isFiltered}\"\n class=\"govuk-tabs__tab\" [hidden]=\"isHidden\">\n {{ tab.label | titlecase }}\n </a>\n </li>\n <li>\n <button id=\"mvCloseBtn\" #mvCloseBtn class=\"mv-button commentSummaryHeader-button--close\"\n title=\"Close Comments\" (click)=\"toggleCommentsPanel()\" [hidden]=\"isHidden\">\n </button>\n </li>\n </ul>\n <div class=\"govuk-tabs__panel\" [hidden]=\"!tabSelected\">\n <ng-container *ngIf=\"tabSelected === 'comments'\">\n <div style=\"width: 100%\">\n <div class=\"hmcts-banner\" *ngIf=\"navigationList?.length === 0\">\n <svg alt=\"\" class=\"hmcts-banner__icon\" fill=\"currentColor\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\nC13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\" /></svg>\n <div class=\"hmcts-banner__message\">\n <span class=\"hmcts-banner__assistive\">information</span>\n Select text to add a comment or highlight.\n </div>\n </div>\n <button type=\"button\" class=\"govuk-button\"\n id=\"commentSummary\" tabindex=\"0\"\n data-l10n-id=\"commentSummary\"\n title=\"Open collate summary\"\n (click)=\"toggleCommentsSummary()\">Collate comments</button>\n </div>\n <ng-container *ngIf=\"navigationList?.length > 0\">\n <mv-comments-navigate\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </ng-container>\n <p class=\"aui-comment__private-text\">\n <span class=\"aui-comment__private\">private</span>\n All comments can only be seen by you\n </p>\n </ng-container>\n <div [hidden]=\"tabSelected !== 'filter'\">\n <div class=\"govuk-tabs__panel--container\">\n <mv-comment-filter></mv-comment-filter>\n <mv-comments-navigate\n *ngIf=\"navigationList?.length > 0\"\n [annotationList]=\"navigationList\">\n </mv-comments-navigate>\n </div>\n </div>\n\n <div [hidden]=\"tabSelected !== 'search'\">\n <mv-comment-search [annotations]=\"navigationList\"></mv-comment-search>\n </div>\n </div>\n</div>\n" }]
|
|
3857
4020
|
}], ctorParameters: () => [{ type: i1.Store }, { type: CommentService }, { type: ToolbarEventService }, { type: IcpEventService }], propDecorators: { showCommentSummary: [{
|
|
3858
4021
|
type: Input
|
|
3859
4022
|
}], isHidden: [{
|
|
@@ -3894,6 +4057,148 @@ const getBookmarksPerPage = createSelector(getPages, getBookmarkPages, (pages, p
|
|
|
3894
4057
|
}
|
|
3895
4058
|
});
|
|
3896
4059
|
|
|
4060
|
+
class CtxToolbarComponent {
|
|
4061
|
+
constructor() {
|
|
4062
|
+
this.createHighlightEvent = new EventEmitter();
|
|
4063
|
+
this.deleteHighlightEvent = new EventEmitter();
|
|
4064
|
+
this.addOrEditCommentEvent = new EventEmitter();
|
|
4065
|
+
this.createBookmarkEvent = new EventEmitter();
|
|
4066
|
+
this.cancelEvent = new EventEmitter();
|
|
4067
|
+
this.defaultHeight = 70;
|
|
4068
|
+
this.defaultWidth = 300;
|
|
4069
|
+
}
|
|
4070
|
+
ngOnChanges(changes) {
|
|
4071
|
+
this.setRectangle();
|
|
4072
|
+
this.top = this.popupTop();
|
|
4073
|
+
this.left = this.popupLeft();
|
|
4074
|
+
}
|
|
4075
|
+
onEscapeKey(event) {
|
|
4076
|
+
if (this.rectangle) {
|
|
4077
|
+
event.stopPropagation();
|
|
4078
|
+
event.preventDefault();
|
|
4079
|
+
this.rectangle = undefined;
|
|
4080
|
+
this.cancelEvent.emit();
|
|
4081
|
+
}
|
|
4082
|
+
}
|
|
4083
|
+
set rectangles(rectangles) {
|
|
4084
|
+
if (rectangles) {
|
|
4085
|
+
this._rectangles = rectangles;
|
|
4086
|
+
this.setRectangle();
|
|
4087
|
+
}
|
|
4088
|
+
}
|
|
4089
|
+
get rectangles() {
|
|
4090
|
+
return this._rectangles;
|
|
4091
|
+
}
|
|
4092
|
+
createHighlight() {
|
|
4093
|
+
this.createHighlightEvent.emit();
|
|
4094
|
+
this.rectangle = undefined;
|
|
4095
|
+
}
|
|
4096
|
+
deleteHighlight() {
|
|
4097
|
+
this.deleteHighlightEvent.emit();
|
|
4098
|
+
}
|
|
4099
|
+
addOrEditComment() {
|
|
4100
|
+
this.addOrEditCommentEvent.emit();
|
|
4101
|
+
setTimeout(() => {
|
|
4102
|
+
// This hack to wait until the element is rendered seems to be unreliable,
|
|
4103
|
+
if (!location.hash) {
|
|
4104
|
+
document.getElementById('viewerContainer')?.scrollBy(0, 1);
|
|
4105
|
+
}
|
|
4106
|
+
}, 20);
|
|
4107
|
+
}
|
|
4108
|
+
createBookmark() {
|
|
4109
|
+
this.createBookmarkEvent.emit(this.rectangle);
|
|
4110
|
+
this.rectangle = undefined;
|
|
4111
|
+
}
|
|
4112
|
+
setRectangle() {
|
|
4113
|
+
const rectangle = this.rectangles
|
|
4114
|
+
.reduce((prev, current) => prev.y < current.y ? prev : current);
|
|
4115
|
+
this.rectangle = { ...rectangle };
|
|
4116
|
+
switch (this.rotate) {
|
|
4117
|
+
case 90:
|
|
4118
|
+
this.rectangle.width = rectangle.height;
|
|
4119
|
+
this.rectangle.height = rectangle.width;
|
|
4120
|
+
this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;
|
|
4121
|
+
this.rectangle.y = rectangle.x;
|
|
4122
|
+
break;
|
|
4123
|
+
case 180:
|
|
4124
|
+
this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.x - rectangle.width;
|
|
4125
|
+
this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.y - rectangle.height;
|
|
4126
|
+
break;
|
|
4127
|
+
case 270:
|
|
4128
|
+
this.rectangle.width = rectangle.height;
|
|
4129
|
+
this.rectangle.height = rectangle.width;
|
|
4130
|
+
this.rectangle.x = rectangle.y;
|
|
4131
|
+
this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.x - rectangle.width;
|
|
4132
|
+
break;
|
|
4133
|
+
}
|
|
4134
|
+
}
|
|
4135
|
+
popupTop() {
|
|
4136
|
+
const popupTop = this.rectangle.y * this.zoom - this.defaultHeight;
|
|
4137
|
+
return popupTop <= 0 ? this.defaultHeight : popupTop;
|
|
4138
|
+
}
|
|
4139
|
+
popupLeft() {
|
|
4140
|
+
const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);
|
|
4141
|
+
if (popupLeft <= 0) {
|
|
4142
|
+
return 0;
|
|
4143
|
+
}
|
|
4144
|
+
else if (popupLeft >= this.pageWidth - this.defaultWidth) {
|
|
4145
|
+
return this.pageWidth - this.defaultWidth;
|
|
4146
|
+
}
|
|
4147
|
+
else {
|
|
4148
|
+
return popupLeft;
|
|
4149
|
+
}
|
|
4150
|
+
}
|
|
4151
|
+
focusToolbar() {
|
|
4152
|
+
if (this.toolbarContainer?.nativeElement) {
|
|
4153
|
+
const firstButton = this.toolbarContainer.nativeElement.querySelector('button');
|
|
4154
|
+
if (firstButton) {
|
|
4155
|
+
setTimeout(() => firstButton.focus(), 0);
|
|
4156
|
+
return;
|
|
4157
|
+
}
|
|
4158
|
+
}
|
|
4159
|
+
}
|
|
4160
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CtxToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4161
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: { zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth", canHighlight: "canHighlight", canBookmark: "canBookmark", canComment: "canComment", canDelete: "canDelete", rectangles: "rectangles" }, outputs: { createHighlightEvent: "createHighlightEvent", deleteHighlightEvent: "deleteHighlightEvent", addOrEditCommentEvent: "addOrEditCommentEvent", createBookmarkEvent: "createBookmarkEvent", cancelEvent: "cancelEvent" }, host: { listeners: { "document:keydown.escape": "onEscapeKey($event)" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #toolbarContainer class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\"\n (keydown.enter)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\"\n (keydown.enter)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\"\n (keydown.enter)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\"\n (keydown.enter)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
4162
|
+
}
|
|
4163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CtxToolbarComponent, decorators: [{
|
|
4164
|
+
type: Component,
|
|
4165
|
+
args: [{ selector: 'mv-ctx-toolbar', template: "<div #toolbarContainer class=\"toolbar\" *ngIf=\"rectangle\"\n [style.top.px]=\"top\"\n [style.left.px]=\"left\">\n <button *ngIf=\"canHighlight\"\n type=\"button\" title=\"Highlight\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton aui__toolbar-button-highlight\"\n (mousedown)=\"createHighlight()\"\n (keydown.enter)=\"createHighlight()\">\n <span>Highlight</span>\n </button>\n <button *ngIf=\"canDelete\"\n type=\"button\" title=\"Delete\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn leftButton\"\n (mousedown)=\"deleteHighlight()\"\n (keydown.enter)=\"deleteHighlight()\">\n <span>Remove</span>\n </button>\n <button *ngIf=\"canComment\"\n type=\"button\" title=\"Comment\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-comment\"\n (mousedown)=\"addOrEditComment()\"\n (keydown.enter)=\"addOrEditComment()\">\n <span>Comment</span></button>\n <button *ngIf=\"canBookmark\"\n type=\"button\" title=\"Bookmark\"\n class=\"aui__toolbar-button aui__toolbar-button--comments contextual-btn rightButton aui__toolbar-button-bookmark\"\n id=\"bookmarkButton\"\n (mousedown)=\"createBookmark()\"\n (keydown.enter)=\"createBookmark()\">\n <span>Bookmark</span></button>\n <div class=\"arrow-down\">\n <div class=\"inner-triangle\"></div>\n </div>\n</div>\n" }]
|
|
4166
|
+
}], ctorParameters: () => [], propDecorators: { toolbarContainer: [{
|
|
4167
|
+
type: ViewChild,
|
|
4168
|
+
args: ['toolbarContainer', { static: false }]
|
|
4169
|
+
}], zoom: [{
|
|
4170
|
+
type: Input
|
|
4171
|
+
}], rotate: [{
|
|
4172
|
+
type: Input
|
|
4173
|
+
}], pageHeight: [{
|
|
4174
|
+
type: Input
|
|
4175
|
+
}], pageWidth: [{
|
|
4176
|
+
type: Input
|
|
4177
|
+
}], canHighlight: [{
|
|
4178
|
+
type: Input
|
|
4179
|
+
}], canBookmark: [{
|
|
4180
|
+
type: Input
|
|
4181
|
+
}], canComment: [{
|
|
4182
|
+
type: Input
|
|
4183
|
+
}], canDelete: [{
|
|
4184
|
+
type: Input
|
|
4185
|
+
}], createHighlightEvent: [{
|
|
4186
|
+
type: Output
|
|
4187
|
+
}], deleteHighlightEvent: [{
|
|
4188
|
+
type: Output
|
|
4189
|
+
}], addOrEditCommentEvent: [{
|
|
4190
|
+
type: Output
|
|
4191
|
+
}], createBookmarkEvent: [{
|
|
4192
|
+
type: Output
|
|
4193
|
+
}], cancelEvent: [{
|
|
4194
|
+
type: Output
|
|
4195
|
+
}], onEscapeKey: [{
|
|
4196
|
+
type: HostListener,
|
|
4197
|
+
args: ['document:keydown.escape', ['$event']]
|
|
4198
|
+
}], rectangles: [{
|
|
4199
|
+
type: Input
|
|
4200
|
+
}] } });
|
|
4201
|
+
|
|
3897
4202
|
class BoxHighlightCreateComponent {
|
|
3898
4203
|
constructor(toolbarEvents, highlightService) {
|
|
3899
4204
|
this.toolbarEvents = toolbarEvents;
|
|
@@ -3985,12 +4290,12 @@ class BoxHighlightCreateComponent {
|
|
|
3985
4290
|
this.left = 0;
|
|
3986
4291
|
this.createHighlight();
|
|
3987
4292
|
}
|
|
3988
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3989
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4293
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BoxHighlightCreateComponent, deps: [{ token: ToolbarEventService }, { token: HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4294
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: { page: "page", pageHeight: "pageHeight", pageWidth: "pageWidth", rotate: "rotate", zoom: "zoom", container: "container" }, outputs: { saveSelection: "saveSelection" }, viewQueries: [{ propertyName: "highlight", first: true, predicate: ["boxHighlight"], descendants: true }], ngImport: i0, template: "<div [style.height]=\"defaultHeight\"\n [style.width]=\"defaultWidth\"\n (mousedown)=\"initHighlight($event)\"\n (mousemove)=\"updateHighlight($event)\"\n (mouseup)=\"createHighlight()\">\n <div #boxHighlight\n class=\"box-highlight\"\n [style.display]=\"display\"\n [style.position]=\"position\"\n [style.background-color]=\"backgroundColor\"\n [style.height]=\"height ? height + 'px' : '100%'\"\n [style.width]=\"width ? width + 'px' : '100%'\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\">\n </div>\n</div>\n" }); }
|
|
3990
4295
|
}
|
|
3991
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BoxHighlightCreateComponent, decorators: [{
|
|
3992
4297
|
type: Component,
|
|
3993
|
-
args: [{ selector: 'mv-box-highlight-create',
|
|
4298
|
+
args: [{ selector: 'mv-box-highlight-create', template: "<div [style.height]=\"defaultHeight\"\n [style.width]=\"defaultWidth\"\n (mousedown)=\"initHighlight($event)\"\n (mousemove)=\"updateHighlight($event)\"\n (mouseup)=\"createHighlight()\">\n <div #boxHighlight\n class=\"box-highlight\"\n [style.display]=\"display\"\n [style.position]=\"position\"\n [style.background-color]=\"backgroundColor\"\n [style.height]=\"height ? height + 'px' : '100%'\"\n [style.width]=\"width ? width + 'px' : '100%'\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\">\n </div>\n</div>\n" }]
|
|
3994
4299
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: HighlightCreateService }], propDecorators: { page: [{
|
|
3995
4300
|
type: Input
|
|
3996
4301
|
}], pageHeight: [{
|
|
@@ -4064,175 +4369,59 @@ class RectangleComponent {
|
|
|
4064
4369
|
}
|
|
4065
4370
|
adjustForRotation(rotation) {
|
|
4066
4371
|
const { top, left, height, width } = this;
|
|
4067
|
-
switch (rotation) {
|
|
4068
|
-
case 90:
|
|
4069
|
-
this.width = height;
|
|
4070
|
-
this.height = width;
|
|
4071
|
-
this.left = this.pageWidth - top - height;
|
|
4072
|
-
this.top = left;
|
|
4073
|
-
break;
|
|
4074
|
-
case 180:
|
|
4075
|
-
this.left = this.pageWidth - left - width;
|
|
4076
|
-
this.top = this.pageHeight - top - height;
|
|
4077
|
-
break;
|
|
4078
|
-
case 270:
|
|
4079
|
-
this.width = height;
|
|
4080
|
-
this.height = width;
|
|
4081
|
-
this.left = top;
|
|
4082
|
-
this.top = this.pageHeight - left - width;
|
|
4083
|
-
break;
|
|
4084
|
-
}
|
|
4085
|
-
}
|
|
4086
|
-
hasRectangleChanged(viewRect) {
|
|
4087
|
-
return Math.round(this.left) !== viewRect.offsetLeft ||
|
|
4088
|
-
Math.round(this.top) !== viewRect.offsetTop ||
|
|
4089
|
-
Math.round(this.width) !== viewRect.offsetWidth ||
|
|
4090
|
-
Math.round(this.height) !== viewRect.offsetHeight;
|
|
4091
|
-
}
|
|
4092
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RectangleComponent, deps: [{ token: ToolbarEventService }, { token: HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4093
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: RectangleComponent, isStandalone: false, selector: "mv-anno-rectangle", inputs: { color: "color", zoom: "zoom", rotate: "rotate", editable: "editable", pageHeight: "pageHeight", pageWidth: "pageWidth", annoRect: "annoRect", selected: "selected" }, outputs: { selectEvent: "selectEvent", updateEvent: "updateEvent" }, viewQueries: [{ propertyName: "viewRect", first: true, predicate: ["rectElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"editable; else nonEditable\">\n <div #rectElement\n class=\"rectangle\"\n draggable\n resizable\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected, 'grabNDrag': enableGrabNDrag }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height + 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n [rotate]=\"0\"\n [selected]=\"selected\"\n (click)=\"onClick()\"\n (stopped)=\"onUpdate(rectElement)\">\n </div>\n</div>\n<ng-template #nonEditable>\n <div #rectElement\n class=\"rectangle\"\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height+ 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n (click)=\"onClick()\">\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.DraggableElementDirective, selector: "[draggable]", inputs: ["rotate"], outputs: ["coordinates", "stopped"] }, { kind: "directive", type: i4$1.ResizableElementDirective, selector: "[resizable]", inputs: ["rotate", "selected"], outputs: ["stopped"] }] }); }
|
|
4094
|
-
}
|
|
4095
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RectangleComponent, decorators: [{
|
|
4096
|
-
type: Component,
|
|
4097
|
-
args: [{ selector: 'mv-anno-rectangle', standalone: false, template: "<div *ngIf=\"editable; else nonEditable\">\n <div #rectElement\n class=\"rectangle\"\n draggable\n resizable\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected, 'grabNDrag': enableGrabNDrag }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height + 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n [rotate]=\"0\"\n [selected]=\"selected\"\n (click)=\"onClick()\"\n (stopped)=\"onUpdate(rectElement)\">\n </div>\n</div>\n<ng-template #nonEditable>\n <div #rectElement\n class=\"rectangle\"\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height+ 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n (click)=\"onClick()\">\n </div>\n</ng-template>\n" }]
|
|
4098
|
-
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: HighlightCreateService }], propDecorators: { color: [{
|
|
4099
|
-
type: Input
|
|
4100
|
-
}], zoom: [{
|
|
4101
|
-
type: Input
|
|
4102
|
-
}], rotate: [{
|
|
4103
|
-
type: Input
|
|
4104
|
-
}], editable: [{
|
|
4105
|
-
type: Input
|
|
4106
|
-
}], pageHeight: [{
|
|
4107
|
-
type: Input
|
|
4108
|
-
}], pageWidth: [{
|
|
4109
|
-
type: Input
|
|
4110
|
-
}], selectEvent: [{
|
|
4111
|
-
type: Output
|
|
4112
|
-
}], updateEvent: [{
|
|
4113
|
-
type: Output
|
|
4114
|
-
}], viewRect: [{
|
|
4115
|
-
type: ViewChild,
|
|
4116
|
-
args: ['rectElement', { static: false }]
|
|
4117
|
-
}], annoRect: [{
|
|
4118
|
-
type: Input
|
|
4119
|
-
}], selected: [{
|
|
4120
|
-
type: Input
|
|
4121
|
-
}] } });
|
|
4122
|
-
|
|
4123
|
-
class CtxToolbarComponent {
|
|
4124
|
-
constructor() {
|
|
4125
|
-
this.createHighlightEvent = new EventEmitter();
|
|
4126
|
-
this.deleteHighlightEvent = new EventEmitter();
|
|
4127
|
-
this.addOrEditCommentEvent = new EventEmitter();
|
|
4128
|
-
this.createBookmarkEvent = new EventEmitter();
|
|
4129
|
-
this.defaultHeight = 70;
|
|
4130
|
-
this.defaultWidth = 300;
|
|
4131
|
-
}
|
|
4132
|
-
ngOnChanges(changes) {
|
|
4133
|
-
this.setRectangle();
|
|
4134
|
-
this.top = this.popupTop();
|
|
4135
|
-
this.left = this.popupLeft();
|
|
4136
|
-
}
|
|
4137
|
-
set rectangles(rectangles) {
|
|
4138
|
-
if (rectangles) {
|
|
4139
|
-
this._rectangles = rectangles;
|
|
4140
|
-
this.setRectangle();
|
|
4141
|
-
}
|
|
4142
|
-
}
|
|
4143
|
-
get rectangles() {
|
|
4144
|
-
return this._rectangles;
|
|
4145
|
-
}
|
|
4146
|
-
createHighlight() {
|
|
4147
|
-
this.createHighlightEvent.emit();
|
|
4148
|
-
this.rectangle = undefined;
|
|
4149
|
-
}
|
|
4150
|
-
deleteHighlight() {
|
|
4151
|
-
this.deleteHighlightEvent.emit();
|
|
4152
|
-
}
|
|
4153
|
-
addOrEditComment() {
|
|
4154
|
-
this.addOrEditCommentEvent.emit();
|
|
4155
|
-
setTimeout(() => {
|
|
4156
|
-
// This hack to wait until the element is rendered seems to be unreliable,
|
|
4157
|
-
if (!location.hash) {
|
|
4158
|
-
document.getElementById('viewerContainer')?.scrollBy(0, 1);
|
|
4159
|
-
}
|
|
4160
|
-
}, 20);
|
|
4161
|
-
}
|
|
4162
|
-
createBookmark() {
|
|
4163
|
-
this.createBookmarkEvent.emit(this.rectangle);
|
|
4164
|
-
this.rectangle = undefined;
|
|
4165
|
-
}
|
|
4166
|
-
setRectangle() {
|
|
4167
|
-
const rectangle = this.rectangles
|
|
4168
|
-
.reduce((prev, current) => prev.y < current.y ? prev : current);
|
|
4169
|
-
this.rectangle = { ...rectangle };
|
|
4170
|
-
switch (this.rotate) {
|
|
4171
|
-
case 90:
|
|
4172
|
-
this.rectangle.width = rectangle.height;
|
|
4173
|
-
this.rectangle.height = rectangle.width;
|
|
4174
|
-
this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;
|
|
4175
|
-
this.rectangle.y = rectangle.x;
|
|
4372
|
+
switch (rotation) {
|
|
4373
|
+
case 90:
|
|
4374
|
+
this.width = height;
|
|
4375
|
+
this.height = width;
|
|
4376
|
+
this.left = this.pageWidth - top - height;
|
|
4377
|
+
this.top = left;
|
|
4176
4378
|
break;
|
|
4177
4379
|
case 180:
|
|
4178
|
-
this.
|
|
4179
|
-
this.
|
|
4380
|
+
this.left = this.pageWidth - left - width;
|
|
4381
|
+
this.top = this.pageHeight - top - height;
|
|
4180
4382
|
break;
|
|
4181
4383
|
case 270:
|
|
4182
|
-
this.
|
|
4183
|
-
this.
|
|
4184
|
-
this.
|
|
4185
|
-
this.
|
|
4384
|
+
this.width = height;
|
|
4385
|
+
this.height = width;
|
|
4386
|
+
this.left = top;
|
|
4387
|
+
this.top = this.pageHeight - left - width;
|
|
4186
4388
|
break;
|
|
4187
4389
|
}
|
|
4188
4390
|
}
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);
|
|
4195
|
-
if (popupLeft <= 0) {
|
|
4196
|
-
return 0;
|
|
4197
|
-
}
|
|
4198
|
-
else if (popupLeft >= this.pageWidth - this.defaultWidth) {
|
|
4199
|
-
return this.pageWidth - this.defaultWidth;
|
|
4200
|
-
}
|
|
4201
|
-
else {
|
|
4202
|
-
return popupLeft;
|
|
4203
|
-
}
|
|
4391
|
+
hasRectangleChanged(viewRect) {
|
|
4392
|
+
return Math.round(this.left) !== viewRect.offsetLeft ||
|
|
4393
|
+
Math.round(this.top) !== viewRect.offsetTop ||
|
|
4394
|
+
Math.round(this.width) !== viewRect.offsetWidth ||
|
|
4395
|
+
Math.round(this.height) !== viewRect.offsetHeight;
|
|
4204
4396
|
}
|
|
4205
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4206
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4397
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RectangleComponent, deps: [{ token: ToolbarEventService }, { token: HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4398
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RectangleComponent, selector: "mv-anno-rectangle", inputs: { color: "color", zoom: "zoom", rotate: "rotate", editable: "editable", pageHeight: "pageHeight", pageWidth: "pageWidth", annoRect: "annoRect", selected: "selected" }, outputs: { selectEvent: "selectEvent", updateEvent: "updateEvent" }, viewQueries: [{ propertyName: "viewRect", first: true, predicate: ["rectElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"editable; else nonEditable\">\n <div #rectElement\n class=\"rectangle\"\n draggable\n resizable\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected, 'grabNDrag': enableGrabNDrag }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height + 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n [rotate]=\"0\"\n [selected]=\"selected\"\n (click)=\"onClick()\"\n (stopped)=\"onUpdate(rectElement)\">\n </div>\n</div>\n<ng-template #nonEditable>\n <div #rectElement\n class=\"rectangle\"\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height+ 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n (click)=\"onClick()\">\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.DraggableElementDirective, selector: "[draggable]", inputs: ["rotate"], outputs: ["coordinates", "stopped"] }, { kind: "directive", type: i4$1.ResizableElementDirective, selector: "[resizable]", inputs: ["rotate", "selected"], outputs: ["stopped"] }] }); }
|
|
4207
4399
|
}
|
|
4208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4400
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RectangleComponent, decorators: [{
|
|
4209
4401
|
type: Component,
|
|
4210
|
-
args: [{ selector: 'mv-
|
|
4211
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
4402
|
+
args: [{ selector: 'mv-anno-rectangle', template: "<div *ngIf=\"editable; else nonEditable\">\n <div #rectElement\n class=\"rectangle\"\n draggable\n resizable\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected, 'grabNDrag': enableGrabNDrag }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height + 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n [rotate]=\"0\"\n [selected]=\"selected\"\n (click)=\"onClick()\"\n (stopped)=\"onUpdate(rectElement)\">\n </div>\n</div>\n<ng-template #nonEditable>\n <div #rectElement\n class=\"rectangle\"\n [tabindex]=\"annoRect.id\"\n [ngClass]=\"{ 'selected': selected }\"\n [style.backgroundColor]=\"'#' + color\"\n [style.width]=\"width + 'px'\"\n [style.height]=\"height+ 'px'\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n (click)=\"onClick()\">\n </div>\n</ng-template>\n" }]
|
|
4403
|
+
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: HighlightCreateService }], propDecorators: { color: [{
|
|
4404
|
+
type: Input
|
|
4405
|
+
}], zoom: [{
|
|
4212
4406
|
type: Input
|
|
4213
4407
|
}], rotate: [{
|
|
4214
4408
|
type: Input
|
|
4409
|
+
}], editable: [{
|
|
4410
|
+
type: Input
|
|
4215
4411
|
}], pageHeight: [{
|
|
4216
4412
|
type: Input
|
|
4217
4413
|
}], pageWidth: [{
|
|
4218
4414
|
type: Input
|
|
4219
|
-
}],
|
|
4220
|
-
type: Input
|
|
4221
|
-
}], canBookmark: [{
|
|
4222
|
-
type: Input
|
|
4223
|
-
}], canComment: [{
|
|
4224
|
-
type: Input
|
|
4225
|
-
}], canDelete: [{
|
|
4226
|
-
type: Input
|
|
4227
|
-
}], createHighlightEvent: [{
|
|
4228
|
-
type: Output
|
|
4229
|
-
}], deleteHighlightEvent: [{
|
|
4230
|
-
type: Output
|
|
4231
|
-
}], addOrEditCommentEvent: [{
|
|
4415
|
+
}], selectEvent: [{
|
|
4232
4416
|
type: Output
|
|
4233
|
-
}],
|
|
4417
|
+
}], updateEvent: [{
|
|
4234
4418
|
type: Output
|
|
4235
|
-
}],
|
|
4419
|
+
}], viewRect: [{
|
|
4420
|
+
type: ViewChild,
|
|
4421
|
+
args: ['rectElement', { static: false }]
|
|
4422
|
+
}], annoRect: [{
|
|
4423
|
+
type: Input
|
|
4424
|
+
}], selected: [{
|
|
4236
4425
|
type: Input
|
|
4237
4426
|
}] } });
|
|
4238
4427
|
|
|
@@ -4291,12 +4480,12 @@ class AnnotationViewComponent {
|
|
|
4291
4480
|
this.annotationClick.emit({ annotationId: this.anno.id, editable: true, selected: true });
|
|
4292
4481
|
this.toolbarEvents.toggleCommentsPanel(true);
|
|
4293
4482
|
}
|
|
4294
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4295
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4483
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationViewComponent, deps: [{ token: ToolbarEventService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4484
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AnnotationViewComponent, selector: "mv-annotation", inputs: { annotation: "annotation", zoom: "zoom", rotate: "rotate", selectedAnnoId: "selectedAnnoId", pageHeight: "pageHeight", pageWidth: "pageWidth" }, outputs: { update: "update", delete: "delete", annotationClick: "annotationClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div #container [tabindex]=\"anno.id\">\n <mv-ctx-toolbar *ngIf=\"selected\"\n [canDelete]=\"true\" [canComment]=\"true\"\n [rectangles]=\"anno.rectangles\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (deleteHighlightEvent)=\"deleteHighlight()\"\n (addOrEditCommentEvent)=\"addOrEditComment()\">\n </mv-ctx-toolbar>\n <ng-container *ngFor=\"let rectangle of anno.rectangles\">\n <mv-anno-rectangle\n (selectEvent)=\"onSelect()\"\n (updateEvent)=\"onRectangleUpdate($event)\"\n [selected]=\"selected\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n [editable]=\"anno.rectangles.length <= 1\"\n [annoRect]=\"rectangle\"\n [color]=\"anno.color\">\n </mv-anno-rectangle>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RectangleComponent, selector: "mv-anno-rectangle", inputs: ["color", "zoom", "rotate", "editable", "pageHeight", "pageWidth", "annoRect", "selected"], outputs: ["selectEvent", "updateEvent"] }, { kind: "component", type: CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: ["zoom", "rotate", "pageHeight", "pageWidth", "canHighlight", "canBookmark", "canComment", "canDelete", "rectangles"], outputs: ["createHighlightEvent", "deleteHighlightEvent", "addOrEditCommentEvent", "createBookmarkEvent", "cancelEvent"] }] }); }
|
|
4296
4485
|
}
|
|
4297
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4486
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationViewComponent, decorators: [{
|
|
4298
4487
|
type: Component,
|
|
4299
|
-
args: [{ selector: 'mv-annotation',
|
|
4488
|
+
args: [{ selector: 'mv-annotation', template: "<div #container [tabindex]=\"anno.id\">\n <mv-ctx-toolbar *ngIf=\"selected\"\n [canDelete]=\"true\" [canComment]=\"true\"\n [rectangles]=\"anno.rectangles\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (deleteHighlightEvent)=\"deleteHighlight()\"\n (addOrEditCommentEvent)=\"addOrEditComment()\">\n </mv-ctx-toolbar>\n <ng-container *ngFor=\"let rectangle of anno.rectangles\">\n <mv-anno-rectangle\n (selectEvent)=\"onSelect()\"\n (updateEvent)=\"onRectangleUpdate($event)\"\n [selected]=\"selected\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n [editable]=\"anno.rectangles.length <= 1\"\n [annoRect]=\"rectangle\"\n [color]=\"anno.color\">\n </mv-anno-rectangle>\n </ng-container>\n</div>\n" }]
|
|
4300
4489
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: i1.Store }], propDecorators: { annotation: [{
|
|
4301
4490
|
type: Input
|
|
4302
4491
|
}], zoom: [{
|
|
@@ -4341,12 +4530,12 @@ class AnnotationSetComponent {
|
|
|
4341
4530
|
selectAnnotation(selectedAnnotation) {
|
|
4342
4531
|
this.store.dispatch(new SelectedAnnotation(selectedAnnotation));
|
|
4343
4532
|
}
|
|
4344
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4345
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4533
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationSetComponent, deps: [{ token: i1.Store }, { token: CommentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4534
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AnnotationSetComponent, selector: "mv-annotation-set", inputs: { page: "page", annotations: "annotations", zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth" }, ngImport: i0, template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AnnotationViewComponent, selector: "mv-annotation", inputs: ["annotation", "zoom", "rotate", "selectedAnnoId", "pageHeight", "pageWidth"], outputs: ["update", "delete", "annotationClick"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
4346
4535
|
}
|
|
4347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4536
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationSetComponent, decorators: [{
|
|
4348
4537
|
type: Component,
|
|
4349
|
-
args: [{ selector: 'mv-annotation-set',
|
|
4538
|
+
args: [{ selector: 'mv-annotation-set', template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n" }]
|
|
4350
4539
|
}], ctorParameters: () => [{ type: i1.Store }, { type: CommentService }], propDecorators: { page: [{
|
|
4351
4540
|
type: Input
|
|
4352
4541
|
}], annotations: [{
|
|
@@ -4386,11 +4575,20 @@ class MetadataLayerComponent {
|
|
|
4386
4575
|
this.rectangles = highlight.rectangles;
|
|
4387
4576
|
if (this.rectangles) {
|
|
4388
4577
|
this.toolbarEvents.highlightModeSubject.next(false);
|
|
4578
|
+
setTimeout(() => this.ctxToolbar.focusToolbar(), 0);
|
|
4389
4579
|
}
|
|
4390
4580
|
}
|
|
4391
4581
|
clearContextToolbar() {
|
|
4392
4582
|
this.rectangles = undefined;
|
|
4393
4583
|
}
|
|
4584
|
+
cancelContextToolbar() {
|
|
4585
|
+
const selection = window.getSelection();
|
|
4586
|
+
if (selection) {
|
|
4587
|
+
selection.removeAllRanges();
|
|
4588
|
+
}
|
|
4589
|
+
this.rectangles = undefined;
|
|
4590
|
+
this.toolbarEvents.highlightModeSubject.next(true);
|
|
4591
|
+
}
|
|
4394
4592
|
createHighlight() {
|
|
4395
4593
|
this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);
|
|
4396
4594
|
this.highlightService.resetHighlight();
|
|
@@ -4418,16 +4616,19 @@ class MetadataLayerComponent {
|
|
|
4418
4616
|
this.highlightService.saveAnnotation(rectangles, page);
|
|
4419
4617
|
this.toolbarEvents.drawModeSubject.next(false);
|
|
4420
4618
|
}
|
|
4421
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4422
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4619
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataLayerComponent, deps: [{ token: i1.Store }, { token: HighlightCreateService }, { token: ToolbarEventService }, { token: ViewerEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4620
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataLayerComponent, selector: "mv-metadata-layer", inputs: { zoom: "zoom", rotate: "rotate" }, viewQueries: [{ propertyName: "ctxToolbar", first: true, predicate: CtxToolbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\"\n (cancelEvent)=\"cancelContextToolbar()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: ["page", "pageHeight", "pageWidth", "rotate", "zoom", "container"], outputs: ["saveSelection"] }, { kind: "component", type: AnnotationSetComponent, selector: "mv-annotation-set", inputs: ["page", "annotations", "zoom", "rotate", "pageHeight", "pageWidth"] }, { kind: "component", type: CtxToolbarComponent, selector: "mv-ctx-toolbar", inputs: ["zoom", "rotate", "pageHeight", "pageWidth", "canHighlight", "canBookmark", "canComment", "canDelete", "rectangles"], outputs: ["createHighlightEvent", "deleteHighlightEvent", "addOrEditCommentEvent", "createBookmarkEvent", "cancelEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
4423
4621
|
}
|
|
4424
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataLayerComponent, decorators: [{
|
|
4425
4623
|
type: Component,
|
|
4426
|
-
args: [{ selector: 'mv-metadata-layer',
|
|
4624
|
+
args: [{ selector: 'mv-metadata-layer', template: "<div class=\"pageContainer\">\n <div *ngFor=\"let page of pages; index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': page.styles.width,\n 'height.px': page.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"saveAnnotation($event)\">\n </mv-box-highlight-create>\n <mv-ctx-toolbar *ngIf=\"rectangles && highlightPage === (i + 1)\"\n [rectangles]=\"rectangles\"\n [canBookmark]=\"true\" [canHighlight]=\"true\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n (createBookmarkEvent)=\"createBookmark($event)\"\n (createHighlightEvent)=\"createHighlight()\"\n (cancelEvent)=\"cancelContextToolbar()\">\n </mv-ctx-toolbar>\n <div class=\"pageContainer__page-item\">\n <mv-annotation-set *ngIf=\"(annoPages$ | async) as annoPages\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [pageHeight]=\"page.styles.height\"\n [pageWidth]=\"page.styles.width\"\n [page]=\"i\" [annotations]=\"annoPages[i + 1]\"></mv-annotation-set>\n </div>\n </div>\n</div>\n" }]
|
|
4427
4625
|
}], ctorParameters: () => [{ type: i1.Store }, { type: HighlightCreateService }, { type: ToolbarEventService }, { type: ViewerEventService }], propDecorators: { zoom: [{
|
|
4428
4626
|
type: Input
|
|
4429
4627
|
}], rotate: [{
|
|
4430
4628
|
type: Input
|
|
4629
|
+
}], ctxToolbar: [{
|
|
4630
|
+
type: ViewChild,
|
|
4631
|
+
args: [CtxToolbarComponent, { static: false }]
|
|
4431
4632
|
}] } });
|
|
4432
4633
|
|
|
4433
4634
|
class BookmarksComponent {
|
|
@@ -4774,12 +4975,12 @@ class BookmarksComponent {
|
|
|
4774
4975
|
const result = this.getNode(fromNodeChildren, toNode.id);
|
|
4775
4976
|
return result ? true : false;
|
|
4776
4977
|
}
|
|
4777
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4778
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4978
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4979
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BookmarksComponent, selector: "mv-bookmarks", inputs: { bookmarkNodes: "bookmarkNodes", zoom: "zoom", rotate: "rotate", parentScrollTop: "parentScrollTop" }, outputs: { goToDestination: "goToDestination", treeHasChanged: "treeHasChanged" }, usesOnChanges: true, ngImport: i0, template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n [cdkDropListDisabled]=\"!isDraggingOn\"\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node nest-tree-node-padding\"\n cdkDrag\n cdkDragBoundary=\".bookmarks-tree\"\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.CdkNestedTreeNode, selector: "cdk-nested-tree-node", exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i3$1.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i3$1.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i3$1.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3$1.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "directive", type: i4$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] }); }
|
|
4779
4980
|
}
|
|
4780
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4981
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksComponent, decorators: [{
|
|
4781
4982
|
type: Component,
|
|
4782
|
-
args: [{ selector: 'mv-bookmarks',
|
|
4983
|
+
args: [{ selector: 'mv-bookmarks', template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n [cdkDropListDisabled]=\"!isDraggingOn\"\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node nest-tree-node-padding\"\n cdkDrag\n cdkDragBoundary=\".bookmarks-tree\"\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n" }]
|
|
4783
4984
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { bookmarkNodes: [{
|
|
4784
4985
|
type: Input
|
|
4785
4986
|
}], zoom: [{
|
|
@@ -4822,12 +5023,12 @@ class OutlineItemComponent {
|
|
|
4822
5023
|
showHighlightOutlineCss() {
|
|
4823
5024
|
return this.isCurrentSection ? 'highlightedOutlineItem' : 'outlineItem';
|
|
4824
5025
|
}
|
|
4825
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4826
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5026
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OutlineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5027
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OutlineItemComponent, selector: "mv-outline-item", inputs: { outline: "outline", currentPageNumber: "currentPageNumber", isCurrentSection: "isCurrentSection", endPage: "endPage" }, outputs: { navigationEvent: "navigationEvent" }, ngImport: i0, template: "<div class=\"outlineItem\">\n <div *ngIf=\"outline.items.length > 0\"\n [ngClass]=\"{ 'outlineItemToggler': true, 'outlineItemsHidden': !showOutlineItems }\"\n (click)=\"toggleOutline()\"\n (keyup.enter)=\"toggleOutline()\" tabindex=\"0\"></div>\n <a (click)=\"goToDestination(outline?.dest)\"\n (keyup.enter)=\"goToDestination(outline?.dest)\"\n [style.font-weight]=\"outline.bold ? 'bold' : ''\"\n [style.font-style]=\"outline.italic ? 'italic' : ''\"\n [ngClass]=\"showHighlightOutlineCss()\"\n tabindex=\"0\">\n <div style=\"text-align:left;\" [ngClass]=\"showHighlightOutlineCss()\">\n {{ outline.title }}\n <span style=\"float:right;\">\n {{ outline.pageNumber }}\n </span>\n </div>\n </a>\n \n <div *ngIf=\"outline.items.length > 0\" class=\"outlineItems\">\n <div *ngFor=\"let outlineItem of outline.items; index as i\">\n <mv-outline-item\n [outline]=\"outlineItem\" \n [currentPageNumber]= \"currentPageNumber\" \n [isCurrentSection]= \"isViewedItem(outlineItem, outline.items[i+1])\"\n [endPage]=\"findEndPage(outline.items[i+1])\"\n (navigationEvent)=\"goToDestination($event)\">\n </mv-outline-item>\n </div>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OutlineItemComponent, selector: "mv-outline-item", inputs: ["outline", "currentPageNumber", "isCurrentSection", "endPage"], outputs: ["navigationEvent"] }] }); }
|
|
4827
5028
|
}
|
|
4828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5029
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OutlineItemComponent, decorators: [{
|
|
4829
5030
|
type: Component,
|
|
4830
|
-
args: [{ selector: 'mv-outline-item',
|
|
5031
|
+
args: [{ selector: 'mv-outline-item', template: "<div class=\"outlineItem\">\n <div *ngIf=\"outline.items.length > 0\"\n [ngClass]=\"{ 'outlineItemToggler': true, 'outlineItemsHidden': !showOutlineItems }\"\n (click)=\"toggleOutline()\"\n (keyup.enter)=\"toggleOutline()\" tabindex=\"0\"></div>\n <a (click)=\"goToDestination(outline?.dest)\"\n (keyup.enter)=\"goToDestination(outline?.dest)\"\n [style.font-weight]=\"outline.bold ? 'bold' : ''\"\n [style.font-style]=\"outline.italic ? 'italic' : ''\"\n [ngClass]=\"showHighlightOutlineCss()\"\n tabindex=\"0\">\n <div style=\"text-align:left;\" [ngClass]=\"showHighlightOutlineCss()\">\n {{ outline.title }}\n <span style=\"float:right;\">\n {{ outline.pageNumber }}\n </span>\n </div>\n </a>\n \n <div *ngIf=\"outline.items.length > 0\" class=\"outlineItems\">\n <div *ngFor=\"let outlineItem of outline.items; index as i\">\n <mv-outline-item\n [outline]=\"outlineItem\" \n [currentPageNumber]= \"currentPageNumber\" \n [isCurrentSection]= \"isViewedItem(outlineItem, outline.items[i+1])\"\n [endPage]=\"findEndPage(outline.items[i+1])\"\n (navigationEvent)=\"goToDestination($event)\">\n </mv-outline-item>\n </div>\n </div>\n</div>\n\n" }]
|
|
4831
5032
|
}], propDecorators: { outline: [{
|
|
4832
5033
|
type: Input
|
|
4833
5034
|
}], currentPageNumber: [{
|
|
@@ -4899,12 +5100,12 @@ class SideBarComponent {
|
|
|
4899
5100
|
findEndPage(next) {
|
|
4900
5101
|
return next === undefined ? Number.MAX_SAFE_INTEGER : next.pageNumber;
|
|
4901
5102
|
}
|
|
4902
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4903
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5103
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SideBarComponent, deps: [{ token: ViewerEventService }, { token: i1.Store }, { token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5104
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SideBarComponent, selector: "mv-side-bar", inputs: { annotationsEnabled: "annotationsEnabled", outline: "outline", url: "url", zoom: "zoom", rotate: "rotate", currentPageNumber: "currentPageNumber" }, viewQueries: [{ propertyName: "bookmarks", first: true, predicate: BookmarksComponent, descendants: true }, { propertyName: "sidebarDiv", first: true, predicate: ["sidebar"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"toolbarSidebar\">\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton toggled\"\n >\n <button\n id=\"sortBookmarkPosition\"\n class=\"splitToolbarButton left bookmark__sort__position\"\n (click)=\"bookmarks.sort(bookmarks.positionSort)\"\n title=\"Order by place in document\"\n aria-pressed=\"true\"\n ></button>\n <button\n id=\"sortBookmarkCustom\"\n class=\"splitToolbarButton left bookmark__sort__custom\"\n (click)=\"bookmarks.sort(bookmarks.customSort)\"\n title=\"Order manually\"\n aria-pressed=\"true\"\n ></button>\n </div>\n <div class=\"splitToolbarButtonSeparator\"></div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton right\"\n >\n <button\n id=\"addBookmark\"\n class=\"toolbarButton addBookmark\"\n (click)=\"bookmarks.onAddBookmarkClick()\"\n title=\"Add bookmark\"\n tabindex=\"3\"\n data-l10n-id=\"addBookmark\"\n >\n <span data-l10n-id=\"addBookmark_label\">{{\n \"Add bookmark\" | rpxTranslate\n }}</span>\n </button>\n </div>\n</div>\n<div #sidebar id=\"sidebarContent\" cdkScrollable (scroll)=\"onScroll($event)\" [hidden]=\"!sidebarOpen\">\n <div id=\"outlineView\" class=\"outlineWithDeepNesting\">\n <div class=\"outlineItem\" *ngIf=\"selectedView === 'outline'\">\n <mv-outline-item\n *ngFor=\"let outlineItem of outline; index as i\"\n [outline]=\"outlineItem\"\n [currentPageNumber]=\"currentPageNumber\"\n [isCurrentSection]=\"isViewedItem(outlineItem, outline[i + 1])\"\n [endPage]=\"findEndPage(outline[i + 1])\"\n (navigationEvent)=\"goToDestination($event)\"\n ></mv-outline-item>\n </div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n id=\"bookmarkContainer\"\n >\n <mv-bookmarks\n [bookmarkNodes]=\"bookmarkNodes$ | async\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [parentScrollTop]=\"scrollTop\"\n (goToDestination)=\"goToDestination($event)\"\n (treeHasChanged)=\"hasTreeChanged($event)\"\n ></mv-bookmarks>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: BookmarksComponent, selector: "mv-bookmarks", inputs: ["bookmarkNodes", "zoom", "rotate", "parentScrollTop"], outputs: ["goToDestination", "treeHasChanged"] }, { kind: "component", type: OutlineItemComponent, selector: "mv-outline-item", inputs: ["outline", "currentPageNumber", "isCurrentSection", "endPage"], outputs: ["navigationEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
4904
5105
|
}
|
|
4905
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SideBarComponent, decorators: [{
|
|
4906
5107
|
type: Component,
|
|
4907
|
-
args: [{ selector: 'mv-side-bar',
|
|
5108
|
+
args: [{ selector: 'mv-side-bar', template: "<div id=\"toolbarSidebar\">\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton toggled\"\n >\n <button\n id=\"sortBookmarkPosition\"\n class=\"splitToolbarButton left bookmark__sort__position\"\n (click)=\"bookmarks.sort(bookmarks.positionSort)\"\n title=\"Order by place in document\"\n aria-pressed=\"true\"\n ></button>\n <button\n id=\"sortBookmarkCustom\"\n class=\"splitToolbarButton left bookmark__sort__custom\"\n (click)=\"bookmarks.sort(bookmarks.customSort)\"\n title=\"Order manually\"\n aria-pressed=\"true\"\n ></button>\n </div>\n <div class=\"splitToolbarButtonSeparator\"></div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton right\"\n >\n <button\n id=\"addBookmark\"\n class=\"toolbarButton addBookmark\"\n (click)=\"bookmarks.onAddBookmarkClick()\"\n title=\"Add bookmark\"\n tabindex=\"3\"\n data-l10n-id=\"addBookmark\"\n >\n <span data-l10n-id=\"addBookmark_label\">{{\n \"Add bookmark\" | rpxTranslate\n }}</span>\n </button>\n </div>\n</div>\n<div #sidebar id=\"sidebarContent\" cdkScrollable (scroll)=\"onScroll($event)\" [hidden]=\"!sidebarOpen\">\n <div id=\"outlineView\" class=\"outlineWithDeepNesting\">\n <div class=\"outlineItem\" *ngIf=\"selectedView === 'outline'\">\n <mv-outline-item\n *ngFor=\"let outlineItem of outline; index as i\"\n [outline]=\"outlineItem\"\n [currentPageNumber]=\"currentPageNumber\"\n [isCurrentSection]=\"isViewedItem(outlineItem, outline[i + 1])\"\n [endPage]=\"findEndPage(outline[i + 1])\"\n (navigationEvent)=\"goToDestination($event)\"\n ></mv-outline-item>\n </div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n id=\"bookmarkContainer\"\n >\n <mv-bookmarks\n [bookmarkNodes]=\"bookmarkNodes$ | async\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [parentScrollTop]=\"scrollTop\"\n (goToDestination)=\"goToDestination($event)\"\n (treeHasChanged)=\"hasTreeChanged($event)\"\n ></mv-bookmarks>\n </div>\n </div>\n</div>\n" }]
|
|
4908
5109
|
}], ctorParameters: () => [{ type: ViewerEventService }, { type: i1.Store }, { type: ToolbarEventService }], propDecorators: { annotationsEnabled: [{
|
|
4909
5110
|
type: Input
|
|
4910
5111
|
}], outline: [{
|
|
@@ -4957,14 +5158,13 @@ class GrabNDragDirective {
|
|
|
4957
5158
|
onWindowPointerUp() {
|
|
4958
5159
|
this.pointerDown = false;
|
|
4959
5160
|
}
|
|
4960
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4961
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5161
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GrabNDragDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5162
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GrabNDragDirective, selector: "[mvGrabNDrag]", inputs: { dragEnabled: "dragEnabled", dragX: "dragX" }, host: { listeners: { "pointerdown": "onPointerDown($event)", "window:pointermove": "onPointerMove($event)", "window:pointerup": "onWindowPointerUp()" } }, ngImport: i0 }); }
|
|
4962
5163
|
}
|
|
4963
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GrabNDragDirective, decorators: [{
|
|
4964
5165
|
type: Directive,
|
|
4965
5166
|
args: [{
|
|
4966
|
-
selector: '[mvGrabNDrag]'
|
|
4967
|
-
standalone: false
|
|
5167
|
+
selector: '[mvGrabNDrag]'
|
|
4968
5168
|
}]
|
|
4969
5169
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { dragEnabled: [{
|
|
4970
5170
|
type: Input
|
|
@@ -4981,115 +5181,347 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
4981
5181
|
args: ['window:pointerup']
|
|
4982
5182
|
}] } });
|
|
4983
5183
|
|
|
4984
|
-
class
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
this.
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
this.
|
|
5184
|
+
class KeyboardTextHighlightDirective {
|
|
5185
|
+
set enabled(value) {
|
|
5186
|
+
const wasEnabled = this._enabled;
|
|
5187
|
+
this._enabled = value;
|
|
5188
|
+
}
|
|
5189
|
+
get enabled() {
|
|
5190
|
+
return this._enabled;
|
|
5191
|
+
}
|
|
5192
|
+
static { this.lastInteractionWasKeyboard = false; }
|
|
5193
|
+
constructor(elementRef) {
|
|
5194
|
+
this.elementRef = elementRef;
|
|
5195
|
+
this._enabled = false;
|
|
5196
|
+
this.incrementSmall = 5;
|
|
5197
|
+
this.incrementMedium = 10;
|
|
5198
|
+
this.incrementLarge = 20;
|
|
5199
|
+
this.selectionStarted = new EventEmitter();
|
|
5200
|
+
this.selectionUpdated = new EventEmitter();
|
|
5201
|
+
this.selectionConfirmed = new EventEmitter();
|
|
5202
|
+
this.selectionCancelled = new EventEmitter();
|
|
5203
|
+
this.cursorPositionChanged = new EventEmitter();
|
|
5204
|
+
this.selectionCursorPositionChanged = new EventEmitter();
|
|
5205
|
+
this.isSelecting = false;
|
|
5206
|
+
this.showCursor = false;
|
|
5207
|
+
this.lastValidEndNode = null;
|
|
5208
|
+
this.lastValidEndOffset = 0;
|
|
5209
|
+
if (typeof window !== 'undefined') {
|
|
5210
|
+
window.addEventListener('keydown', KeyboardTextHighlightDirective.onGlobalKeyDown, { capture: true });
|
|
5211
|
+
window.addEventListener('mousedown', KeyboardTextHighlightDirective.onGlobalMouseDown, { capture: true });
|
|
5212
|
+
}
|
|
5213
|
+
}
|
|
5214
|
+
static onGlobalKeyDown() {
|
|
5215
|
+
KeyboardTextHighlightDirective.lastInteractionWasKeyboard = true;
|
|
5216
|
+
}
|
|
5217
|
+
static onGlobalMouseDown() {
|
|
5218
|
+
KeyboardTextHighlightDirective.lastInteractionWasKeyboard = false;
|
|
4991
5219
|
}
|
|
4992
|
-
|
|
4993
|
-
this
|
|
4994
|
-
|
|
4995
|
-
|
|
5220
|
+
ngOnDestroy() {
|
|
5221
|
+
this.cleanup();
|
|
5222
|
+
}
|
|
5223
|
+
onKeyDown(event) {
|
|
5224
|
+
if (!this.enabled) {
|
|
5225
|
+
return;
|
|
5226
|
+
}
|
|
5227
|
+
if (event.key === 'Enter') {
|
|
5228
|
+
event.preventDefault();
|
|
5229
|
+
event.stopPropagation();
|
|
5230
|
+
if (!this.isSelecting) {
|
|
5231
|
+
this.startTextSelection();
|
|
5232
|
+
}
|
|
5233
|
+
else {
|
|
5234
|
+
this.confirmTextSelection();
|
|
5235
|
+
}
|
|
5236
|
+
return;
|
|
5237
|
+
}
|
|
5238
|
+
if (event.key === 'Escape') {
|
|
5239
|
+
event.preventDefault();
|
|
5240
|
+
event.stopPropagation();
|
|
5241
|
+
if (this.isSelecting) {
|
|
5242
|
+
this.cancelTextSelection();
|
|
5243
|
+
}
|
|
5244
|
+
else if (this.showCursor) {
|
|
5245
|
+
this.hideCursor();
|
|
5246
|
+
}
|
|
5247
|
+
return;
|
|
5248
|
+
}
|
|
5249
|
+
if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {
|
|
5250
|
+
event.preventDefault();
|
|
5251
|
+
event.stopPropagation();
|
|
5252
|
+
if (this.isSelecting) {
|
|
5253
|
+
this.expandTextSelection(event);
|
|
5254
|
+
}
|
|
5255
|
+
else {
|
|
5256
|
+
this.moveCursor(event);
|
|
4996
5257
|
}
|
|
5258
|
+
}
|
|
5259
|
+
}
|
|
5260
|
+
onBlur() {
|
|
5261
|
+
if (this.showCursor && !this.isSelecting) {
|
|
5262
|
+
this.hideCursor();
|
|
5263
|
+
}
|
|
5264
|
+
}
|
|
5265
|
+
moveCursor(event) {
|
|
5266
|
+
const increment = event.shiftKey ? this.incrementLarge : this.incrementMedium;
|
|
5267
|
+
if (!this.showCursor) {
|
|
5268
|
+
const viewportWidth = window.innerWidth;
|
|
5269
|
+
const viewportHeight = window.innerHeight;
|
|
5270
|
+
this.cursorX = viewportWidth / 2;
|
|
5271
|
+
this.cursorY = viewportHeight / 2;
|
|
5272
|
+
this.showCursor = true;
|
|
5273
|
+
this.emitCursorPosition();
|
|
5274
|
+
return;
|
|
5275
|
+
}
|
|
5276
|
+
const viewportWidth = window.innerWidth;
|
|
5277
|
+
const viewportHeight = window.innerHeight;
|
|
5278
|
+
switch (event.key) {
|
|
5279
|
+
case 'ArrowUp':
|
|
5280
|
+
this.cursorY = Math.max(0, this.cursorY - increment);
|
|
5281
|
+
break;
|
|
5282
|
+
case 'ArrowDown':
|
|
5283
|
+
this.cursorY = Math.min(viewportHeight, this.cursorY + increment);
|
|
5284
|
+
break;
|
|
5285
|
+
case 'ArrowLeft':
|
|
5286
|
+
this.cursorX = Math.max(0, this.cursorX - increment);
|
|
5287
|
+
break;
|
|
5288
|
+
case 'ArrowRight':
|
|
5289
|
+
this.cursorX = Math.min(viewportWidth, this.cursorX + increment);
|
|
5290
|
+
break;
|
|
5291
|
+
}
|
|
5292
|
+
this.emitCursorPosition();
|
|
5293
|
+
}
|
|
5294
|
+
startTextSelection() {
|
|
5295
|
+
if (this.showCursor) {
|
|
5296
|
+
this.selectionStartX = this.cursorX;
|
|
5297
|
+
this.selectionStartY = this.cursorY;
|
|
5298
|
+
this.selectionEndX = this.cursorX;
|
|
5299
|
+
this.selectionEndY = this.cursorY;
|
|
5300
|
+
this.showCursor = false;
|
|
5301
|
+
this.emitCursorPosition();
|
|
5302
|
+
}
|
|
5303
|
+
else {
|
|
5304
|
+
// default to center
|
|
5305
|
+
this.selectionStartX = window.innerWidth / 2;
|
|
5306
|
+
this.selectionStartY = window.innerHeight / 2;
|
|
5307
|
+
this.selectionEndX = this.selectionStartX;
|
|
5308
|
+
this.selectionEndY = this.selectionStartY;
|
|
5309
|
+
}
|
|
5310
|
+
this.isSelecting = true;
|
|
5311
|
+
this.currentPage = this.getCurrentPageNumber();
|
|
5312
|
+
this.lastValidEndNode = null;
|
|
5313
|
+
this.lastValidEndOffset = 0;
|
|
5314
|
+
this.selectionCursorPositionChanged.emit({
|
|
5315
|
+
x: this.selectionEndX,
|
|
5316
|
+
y: this.selectionEndY,
|
|
5317
|
+
visible: true
|
|
5318
|
+
});
|
|
5319
|
+
this.createTextSelectionAtPoint(this.selectionStartX, this.selectionStartY);
|
|
5320
|
+
this.selectionStarted.emit();
|
|
5321
|
+
}
|
|
5322
|
+
expandTextSelection(event) {
|
|
5323
|
+
const increment = event.shiftKey ? this.incrementLarge : this.incrementSmall;
|
|
5324
|
+
const viewportWidth = window.innerWidth;
|
|
5325
|
+
const viewportHeight = window.innerHeight;
|
|
5326
|
+
switch (event.key) {
|
|
5327
|
+
case 'ArrowRight':
|
|
5328
|
+
this.selectionEndX = Math.min(viewportWidth, this.selectionEndX + increment);
|
|
5329
|
+
break;
|
|
5330
|
+
case 'ArrowLeft':
|
|
5331
|
+
this.selectionEndX = Math.max(0, this.selectionEndX - increment);
|
|
5332
|
+
break;
|
|
5333
|
+
case 'ArrowDown':
|
|
5334
|
+
this.selectionEndY = Math.min(viewportHeight, this.selectionEndY + increment);
|
|
5335
|
+
break;
|
|
5336
|
+
case 'ArrowUp':
|
|
5337
|
+
this.selectionEndY = Math.max(0, this.selectionEndY - increment);
|
|
5338
|
+
break;
|
|
5339
|
+
}
|
|
5340
|
+
this.selectionCursorPositionChanged.emit({
|
|
5341
|
+
x: this.selectionEndX,
|
|
5342
|
+
y: this.selectionEndY,
|
|
5343
|
+
visible: true
|
|
4997
5344
|
});
|
|
5345
|
+
this.updateTextSelection();
|
|
5346
|
+
this.emitSelectionUpdated();
|
|
4998
5347
|
}
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5348
|
+
createTextSelectionAtPoint(viewportX, viewportY) {
|
|
5349
|
+
const selection = window.getSelection();
|
|
5350
|
+
// get precise caret position at the coordinates
|
|
5351
|
+
// caretPositionFromPoint is standard but not supported in all browsers
|
|
5352
|
+
// caretRangeFromPoint is older and supported in more browsers
|
|
5353
|
+
let range = null;
|
|
5354
|
+
if (document.caretPositionFromPoint) {
|
|
5355
|
+
const caretPosition = document.caretPositionFromPoint(viewportX, viewportY);
|
|
5356
|
+
if (caretPosition) {
|
|
5357
|
+
range = document.createRange();
|
|
5358
|
+
range.setStart(caretPosition.offsetNode, caretPosition.offset);
|
|
5359
|
+
range.collapse(true);
|
|
5360
|
+
}
|
|
5361
|
+
}
|
|
5362
|
+
else if (document.caretRangeFromPoint) {
|
|
5363
|
+
range = document.caretRangeFromPoint(viewportX, viewportY);
|
|
5364
|
+
}
|
|
5365
|
+
if (range) {
|
|
5366
|
+
selection.removeAllRanges();
|
|
5367
|
+
selection.addRange(range);
|
|
5002
5368
|
}
|
|
5003
5369
|
}
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5370
|
+
updateTextSelection() {
|
|
5371
|
+
const selection = window.getSelection();
|
|
5372
|
+
if (!selection || selection.rangeCount === 0) {
|
|
5373
|
+
return;
|
|
5374
|
+
}
|
|
5375
|
+
const range = selection.getRangeAt(0);
|
|
5376
|
+
const startNode = range.startContainer;
|
|
5377
|
+
const startOffset = range.startOffset;
|
|
5378
|
+
let endNode = null;
|
|
5379
|
+
let endOffset = 0;
|
|
5380
|
+
if (document.caretPositionFromPoint) {
|
|
5381
|
+
const caretPosition = document.caretPositionFromPoint(this.selectionEndX, this.selectionEndY);
|
|
5382
|
+
if (caretPosition) {
|
|
5383
|
+
endNode = caretPosition.offsetNode;
|
|
5384
|
+
endOffset = caretPosition.offset;
|
|
5014
5385
|
}
|
|
5015
5386
|
}
|
|
5016
|
-
if (
|
|
5017
|
-
const
|
|
5018
|
-
|
|
5387
|
+
else if (document.caretRangeFromPoint) {
|
|
5388
|
+
const caretRange = document.caretRangeFromPoint(this.selectionEndX, this.selectionEndY);
|
|
5389
|
+
if (caretRange) {
|
|
5390
|
+
endNode = caretRange.startContainer;
|
|
5391
|
+
endOffset = caretRange.startOffset;
|
|
5392
|
+
}
|
|
5393
|
+
}
|
|
5394
|
+
if (endNode) {
|
|
5395
|
+
const range = document.createRange();
|
|
5396
|
+
range.setStart(startNode, startOffset);
|
|
5397
|
+
range.setEnd(endNode, endOffset);
|
|
5398
|
+
const isBackward = range.collapsed && (startNode !== endNode || endOffset < startOffset);
|
|
5399
|
+
const comparison = startNode.compareDocumentPosition(endNode);
|
|
5400
|
+
const endBeforeStart = (comparison & Node.DOCUMENT_POSITION_PRECEDING) !== 0;
|
|
5401
|
+
if (isBackward || endBeforeStart) {
|
|
5402
|
+
if (this.lastValidEndNode) {
|
|
5403
|
+
endNode = this.lastValidEndNode;
|
|
5404
|
+
endOffset = this.lastValidEndOffset;
|
|
5405
|
+
}
|
|
5406
|
+
else {
|
|
5407
|
+
endNode = startNode;
|
|
5408
|
+
endOffset = startOffset;
|
|
5409
|
+
}
|
|
5410
|
+
}
|
|
5411
|
+
else {
|
|
5412
|
+
this.lastValidEndNode = endNode;
|
|
5413
|
+
this.lastValidEndOffset = endOffset;
|
|
5414
|
+
}
|
|
5415
|
+
selection.setBaseAndExtent(startNode, startOffset, endNode, endOffset);
|
|
5019
5416
|
}
|
|
5020
5417
|
}
|
|
5021
|
-
|
|
5022
|
-
this.
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
|
|
5418
|
+
confirmTextSelection() {
|
|
5419
|
+
this.selectionConfirmed.emit();
|
|
5420
|
+
this.selectionCursorPositionChanged.emit({
|
|
5421
|
+
x: this.selectionEndX,
|
|
5422
|
+
y: this.selectionEndY,
|
|
5423
|
+
visible: false
|
|
5424
|
+
});
|
|
5425
|
+
this.cleanup();
|
|
5028
5426
|
}
|
|
5029
|
-
|
|
5030
|
-
this.pageHeight = this.allPages[page].styles.height;
|
|
5031
|
-
this.pageWidth = this.allPages[page].styles.width;
|
|
5032
|
-
this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);
|
|
5033
|
-
this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);
|
|
5427
|
+
cancelTextSelection() {
|
|
5034
5428
|
const selection = window.getSelection();
|
|
5035
5429
|
if (selection) {
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5430
|
+
selection.removeAllRanges();
|
|
5431
|
+
}
|
|
5432
|
+
this.selectionCancelled.emit();
|
|
5433
|
+
this.selectionCursorPositionChanged.emit({
|
|
5434
|
+
x: this.selectionEndX,
|
|
5435
|
+
y: this.selectionEndY,
|
|
5436
|
+
visible: false
|
|
5437
|
+
});
|
|
5438
|
+
this.cleanup();
|
|
5439
|
+
}
|
|
5440
|
+
hideCursor() {
|
|
5441
|
+
this.showCursor = false;
|
|
5442
|
+
this.emitCursorPosition();
|
|
5443
|
+
}
|
|
5444
|
+
cleanup() {
|
|
5445
|
+
this.isSelecting = false;
|
|
5446
|
+
this.showCursor = false;
|
|
5447
|
+
this.cursorX = undefined;
|
|
5448
|
+
this.cursorY = undefined;
|
|
5449
|
+
this.selectionStartX = undefined;
|
|
5450
|
+
this.selectionStartY = undefined;
|
|
5451
|
+
this.selectionEndX = undefined;
|
|
5452
|
+
this.selectionEndY = undefined;
|
|
5453
|
+
this.currentPage = undefined;
|
|
5454
|
+
this.lastValidEndNode = null;
|
|
5455
|
+
this.lastValidEndOffset = 0;
|
|
5456
|
+
}
|
|
5457
|
+
getCurrentPageNumber() {
|
|
5458
|
+
let currentElement = this.elementRef.nativeElement;
|
|
5459
|
+
while (currentElement && currentElement.offsetParent) {
|
|
5460
|
+
currentElement = currentElement.offsetParent;
|
|
5461
|
+
if (currentElement.getAttribute) {
|
|
5462
|
+
const page = parseInt(currentElement.getAttribute('data-page-number'), 10);
|
|
5463
|
+
if (page) {
|
|
5464
|
+
return page;
|
|
5053
5465
|
}
|
|
5054
5466
|
}
|
|
5055
5467
|
}
|
|
5468
|
+
return 1;
|
|
5056
5469
|
}
|
|
5057
|
-
|
|
5058
|
-
const
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5470
|
+
emitCursorPosition() {
|
|
5471
|
+
const position = {
|
|
5472
|
+
x: this.cursorX,
|
|
5473
|
+
y: this.cursorY,
|
|
5474
|
+
visible: this.showCursor
|
|
5475
|
+
};
|
|
5476
|
+
this.cursorPositionChanged.emit(position);
|
|
5477
|
+
}
|
|
5478
|
+
emitSelectionUpdated() {
|
|
5479
|
+
this.selectionUpdated.emit({
|
|
5480
|
+
page: this.currentPage,
|
|
5481
|
+
startX: this.selectionStartX,
|
|
5482
|
+
startY: this.selectionStartY,
|
|
5483
|
+
endX: this.selectionEndX,
|
|
5484
|
+
endY: this.selectionEndY
|
|
5485
|
+
});
|
|
5065
5486
|
}
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
const child = element.parentElement.children[i];
|
|
5070
|
-
child.style.padding = '0';
|
|
5071
|
-
// regex will be targeting the translate style in string
|
|
5072
|
-
// e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)
|
|
5073
|
-
const translateCSSRegex = /translate[XYZ]\(-?\d*(\.\d+)?(px)?\)/g;
|
|
5074
|
-
child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();
|
|
5075
|
-
}
|
|
5076
|
-
}
|
|
5487
|
+
reset() {
|
|
5488
|
+
this.cleanup();
|
|
5489
|
+
this.emitCursorPosition();
|
|
5077
5490
|
}
|
|
5078
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5079
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5491
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeyboardTextHighlightDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5492
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KeyboardTextHighlightDirective, selector: "[mvKeyboardTextHighlight]", inputs: { enabled: "enabled", incrementSmall: "incrementSmall", incrementMedium: "incrementMedium", incrementLarge: "incrementLarge" }, outputs: { selectionStarted: "selectionStarted", selectionUpdated: "selectionUpdated", selectionConfirmed: "selectionConfirmed", selectionCancelled: "selectionCancelled", cursorPositionChanged: "cursorPositionChanged", selectionCursorPositionChanged: "selectionCursorPositionChanged" }, host: { listeners: { "keydown": "onKeyDown($event)", "blur": "onBlur()" } }, ngImport: i0 }); }
|
|
5080
5493
|
}
|
|
5081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeyboardTextHighlightDirective, decorators: [{
|
|
5082
5495
|
type: Directive,
|
|
5083
5496
|
args: [{
|
|
5084
|
-
selector: '[
|
|
5085
|
-
standalone: false
|
|
5497
|
+
selector: '[mvKeyboardTextHighlight]'
|
|
5086
5498
|
}]
|
|
5087
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }
|
|
5499
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { enabled: [{
|
|
5500
|
+
type: Input
|
|
5501
|
+
}], incrementSmall: [{
|
|
5502
|
+
type: Input
|
|
5503
|
+
}], incrementMedium: [{
|
|
5504
|
+
type: Input
|
|
5505
|
+
}], incrementLarge: [{
|
|
5506
|
+
type: Input
|
|
5507
|
+
}], selectionStarted: [{
|
|
5508
|
+
type: Output
|
|
5509
|
+
}], selectionUpdated: [{
|
|
5510
|
+
type: Output
|
|
5511
|
+
}], selectionConfirmed: [{
|
|
5512
|
+
type: Output
|
|
5513
|
+
}], selectionCancelled: [{
|
|
5514
|
+
type: Output
|
|
5515
|
+
}], cursorPositionChanged: [{
|
|
5516
|
+
type: Output
|
|
5517
|
+
}], selectionCursorPositionChanged: [{
|
|
5518
|
+
type: Output
|
|
5519
|
+
}], onKeyDown: [{
|
|
5088
5520
|
type: HostListener,
|
|
5089
|
-
args: ['
|
|
5090
|
-
}],
|
|
5521
|
+
args: ['keydown', ['$event']]
|
|
5522
|
+
}], onBlur: [{
|
|
5091
5523
|
type: HostListener,
|
|
5092
|
-
args: ['
|
|
5524
|
+
args: ['blur']
|
|
5093
5525
|
}] } });
|
|
5094
5526
|
|
|
5095
5527
|
const getRedactionState = createSelector(getMVState, (state) => state.redactions);
|
|
@@ -5124,7 +5556,7 @@ class RedactionComponent {
|
|
|
5124
5556
|
this.redactionsPerPage$ = this.store.pipe(select(getRedactionsPerPage));
|
|
5125
5557
|
this.selectedRedaction$ = this.store.pipe(select(getSelected));
|
|
5126
5558
|
this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);
|
|
5127
|
-
this.$subscription.add(this.store.pipe(select(getRedactedDocumentInfo), filter(value => !!value))
|
|
5559
|
+
this.$subscription.add(this.store.pipe(select(getRedactedDocumentInfo), filter$1(value => !!value))
|
|
5128
5560
|
.subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));
|
|
5129
5561
|
this.$subscription.add(this.store.pipe(select(getDocumentId)).subscribe(docId => this.documentId = docId));
|
|
5130
5562
|
this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));
|
|
@@ -5176,12 +5608,12 @@ class RedactionComponent {
|
|
|
5176
5608
|
URL.revokeObjectURL(url);
|
|
5177
5609
|
this.store.dispatch(new ResetRedactedDocument());
|
|
5178
5610
|
}
|
|
5179
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5180
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5611
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionComponent, deps: [{ token: i1.Store }, { token: ViewerEventService }, { token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5612
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RedactionComponent, selector: "mv-redactions", inputs: { zoom: "zoom", rotate: "rotate" }, ngImport: i0, template: "<div class=\"pageContainer\">\n <div *ngFor=\"let redaction of (redactionsPerPage$ | async); index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': redaction.styles.width,\n 'height.px': redaction.styles.height\n }\"\n [attr.redaction-page-num]=\"i+1\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"markBoxRedaction($event)\">\n </mv-box-highlight-create>\n <div class=\"pageContainer__page-item\">\n <ng-container *ngFor=\"let anno of redaction.anno\">\n <!-- TODO rename this to selection -->\n <mv-annotation [annotation]=\"anno\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedRedaction$ | async\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n (update)=\"onMarkerUpdate($event)\"\n (delete)=\"onMarkerDelete($event)\"\n (annotationClick)=\"selectRedaction($event)\">\n </mv-annotation>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AnnotationViewComponent, selector: "mv-annotation", inputs: ["annotation", "zoom", "rotate", "selectedAnnoId", "pageHeight", "pageWidth"], outputs: ["update", "delete", "annotationClick"] }, { kind: "component", type: BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: ["page", "pageHeight", "pageWidth", "rotate", "zoom", "container"], outputs: ["saveSelection"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
5181
5613
|
}
|
|
5182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5614
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionComponent, decorators: [{
|
|
5183
5615
|
type: Component,
|
|
5184
|
-
args: [{ selector: 'mv-redactions',
|
|
5616
|
+
args: [{ selector: 'mv-redactions', template: "<div class=\"pageContainer\">\n <div *ngFor=\"let redaction of (redactionsPerPage$ | async); index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': redaction.styles.width,\n 'height.px': redaction.styles.height\n }\"\n [attr.redaction-page-num]=\"i+1\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"markBoxRedaction($event)\">\n </mv-box-highlight-create>\n <div class=\"pageContainer__page-item\">\n <ng-container *ngFor=\"let anno of redaction.anno\">\n <!-- TODO rename this to selection -->\n <mv-annotation [annotation]=\"anno\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedRedaction$ | async\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n (update)=\"onMarkerUpdate($event)\"\n (delete)=\"onMarkerDelete($event)\"\n (annotationClick)=\"selectRedaction($event)\">\n </mv-annotation>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
5185
5617
|
}], ctorParameters: () => [{ type: i1.Store }, { type: ViewerEventService }, { type: ToolbarEventService }], propDecorators: { zoom: [{
|
|
5186
5618
|
type: Input
|
|
5187
5619
|
}], rotate: [{
|
|
@@ -5195,12 +5627,12 @@ class BookmarkIconsComponent {
|
|
|
5195
5627
|
ngOnInit() {
|
|
5196
5628
|
this.bookmarksPerPage$ = this.store.pipe(select(getBookmarksPerPage));
|
|
5197
5629
|
}
|
|
5198
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5199
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5630
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarkIconsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5631
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BookmarkIconsComponent, selector: "mv-bookmark-icons", inputs: { zoom: "zoom", rotate: "rotate" }, ngImport: i0, template: "<div class=\"pageContainer\">\n <div *ngFor=\"let bookmarks of (bookmarksPerPage$ | async); index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': bookmarks.styles.width,\n 'height.px': bookmarks.styles.height\n }\">\n <div class=\"pageContainer__page-item\">\n <ng-container *ngFor=\"let bMrk of bookmarks.bookmark\">\n <div class=\"bookmark__here\"\n [style.width]=\"16 * zoom + 'px'\"\n [style.height]=\"24 * zoom + 'px'\"\n [style.top]=\"bMrk.yCoordinate * zoom + 'px'\"\n [title]=\"bMrk.name\">\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
5200
5632
|
}
|
|
5201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5633
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarkIconsComponent, decorators: [{
|
|
5202
5634
|
type: Component,
|
|
5203
|
-
args: [{ selector: 'mv-bookmark-icons',
|
|
5635
|
+
args: [{ selector: 'mv-bookmark-icons', template: "<div class=\"pageContainer\">\n <div *ngFor=\"let bookmarks of (bookmarksPerPage$ | async); index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': bookmarks.styles.width,\n 'height.px': bookmarks.styles.height\n }\">\n <div class=\"pageContainer__page-item\">\n <ng-container *ngFor=\"let bMrk of bookmarks.bookmark\">\n <div class=\"bookmark__here\"\n [style.width]=\"16 * zoom + 'px'\"\n [style.height]=\"24 * zoom + 'px'\"\n [style.top]=\"bMrk.yCoordinate * zoom + 'px'\"\n [title]=\"bMrk.name\">\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
5204
5636
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { zoom: [{
|
|
5205
5637
|
type: Input
|
|
5206
5638
|
}], rotate: [{
|
|
@@ -5223,12 +5655,12 @@ class ParticipantsListComponent {
|
|
|
5223
5655
|
ngOnDestroy() {
|
|
5224
5656
|
this.subscription.unsubscribe();
|
|
5225
5657
|
}
|
|
5226
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5227
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5658
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParticipantsListComponent, deps: [{ token: ToolbarEventService }, { token: i1.Store }, { token: IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5659
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ParticipantsListComponent, selector: "mv-participants-list", ngImport: i0, template: "<div class=\"comments-panel comment-container icp-mode\" [ngClass]=\"{'expanded': showParticipantsList }\">\n\n <div class=\"participant__card no-shadow\">\n <p class=\"participant__name\">All Participants</p>\n </div>\n\n <div *ngIf=\"(presenter$ | async)?.username !== ''\" class=\"participant__card\">\n <div class=\"participant__header\"> Presenting </div>\n <p class=\"participant__name\">{{(presenter$ | async)?.username}}</p>\n </div>\n\n <div *ngIf=\"(participants$ | async).length > 1\" class=\"participant__card\">\n <div class=\"participant__header\">Following</div>\n <ng-container *ngFor=\"let participant of (participants$ | async)\">\n <p *ngIf=\"participant.id !== (presenter$ | async)?.id\" class=\"participant__name\">{{participant.username}}</p>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
5228
5660
|
}
|
|
5229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParticipantsListComponent, decorators: [{
|
|
5230
5662
|
type: Component,
|
|
5231
|
-
args: [{ selector: 'mv-participants-list',
|
|
5663
|
+
args: [{ selector: 'mv-participants-list', template: "<div class=\"comments-panel comment-container icp-mode\" [ngClass]=\"{'expanded': showParticipantsList }\">\n\n <div class=\"participant__card no-shadow\">\n <p class=\"participant__name\">All Participants</p>\n </div>\n\n <div *ngIf=\"(presenter$ | async)?.username !== ''\" class=\"participant__card\">\n <div class=\"participant__header\"> Presenting </div>\n <p class=\"participant__name\">{{(presenter$ | async)?.username}}</p>\n </div>\n\n <div *ngIf=\"(participants$ | async).length > 1\" class=\"participant__card\">\n <div class=\"participant__header\">Following</div>\n <ng-container *ngFor=\"let participant of (participants$ | async)\">\n <p *ngIf=\"participant.id !== (presenter$ | async)?.id\" class=\"participant__name\">{{participant.username}}</p>\n </ng-container>\n </div>\n</div>\n" }]
|
|
5232
5664
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: i1.Store }, { type: IcpEventService }] });
|
|
5233
5665
|
|
|
5234
5666
|
class PdfViewerComponent {
|
|
@@ -5251,6 +5683,8 @@ class PdfViewerComponent {
|
|
|
5251
5683
|
this.loadingDocument = false;
|
|
5252
5684
|
this.hasDifferentPageSize = false;
|
|
5253
5685
|
this.enableGrabNDrag = false;
|
|
5686
|
+
this.showSelectionStartCursor = false;
|
|
5687
|
+
this.showSelectionEndCursor = false;
|
|
5254
5688
|
this.highlightMode = toolbarEvents.highlightModeSubject.pipe(tap(() => {
|
|
5255
5689
|
this.store.dispatch(new ClearFilterTags());
|
|
5256
5690
|
}));
|
|
@@ -5289,7 +5723,7 @@ class PdfViewerComponent {
|
|
|
5289
5723
|
if (changes.url && this.pdfWrapper) {
|
|
5290
5724
|
await this.loadDocument();
|
|
5291
5725
|
if (this.enableRedactions) {
|
|
5292
|
-
this.toolbarEvents.redactionMode.pipe(filter(value => !!value))
|
|
5726
|
+
this.toolbarEvents.redactionMode.pipe(filter$1(value => !!value))
|
|
5293
5727
|
.subscribe(() => this.resetRotation());
|
|
5294
5728
|
}
|
|
5295
5729
|
}
|
|
@@ -5400,12 +5834,43 @@ class PdfViewerComponent {
|
|
|
5400
5834
|
getCurrentPageNumber() {
|
|
5401
5835
|
return this.pdfWrapper.getPageNumber();
|
|
5402
5836
|
}
|
|
5403
|
-
|
|
5404
|
-
|
|
5837
|
+
onKeyboardTextSelectionConfirmed() {
|
|
5838
|
+
if (this.highlightCreateDirective) {
|
|
5839
|
+
this.highlightCreateDirective.onKeyboardSelectionConfirmed();
|
|
5840
|
+
}
|
|
5841
|
+
}
|
|
5842
|
+
onKeyboardTextSelectionCancelled() {
|
|
5843
|
+
const selection = window.getSelection();
|
|
5844
|
+
if (selection) {
|
|
5845
|
+
selection.removeAllRanges();
|
|
5846
|
+
}
|
|
5847
|
+
}
|
|
5848
|
+
onSelectionStartCursorChanged(position) {
|
|
5849
|
+
if (position.visible) {
|
|
5850
|
+
this.selectionStartCursorX = position.x;
|
|
5851
|
+
this.selectionStartCursorY = position.y;
|
|
5852
|
+
this.showSelectionStartCursor = true;
|
|
5853
|
+
}
|
|
5854
|
+
else {
|
|
5855
|
+
this.showSelectionStartCursor = false;
|
|
5856
|
+
}
|
|
5857
|
+
}
|
|
5858
|
+
onSelectionEndCursorChanged(position) {
|
|
5859
|
+
if (position.visible) {
|
|
5860
|
+
this.selectionEndCursorX = position.x;
|
|
5861
|
+
this.selectionEndCursorY = position.y;
|
|
5862
|
+
this.showSelectionEndCursor = true;
|
|
5863
|
+
}
|
|
5864
|
+
else {
|
|
5865
|
+
this.showSelectionEndCursor = false;
|
|
5866
|
+
}
|
|
5867
|
+
}
|
|
5868
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i1.Store }, { token: i1.Store }, { token: PdfJsWrapperFactory }, { token: PrintService }, { token: ToolbarEventService }, { token: ViewerEventService }, { token: IcpService }, { token: ToolbarButtonVisibilityService }, { token: IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5869
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PdfViewerComponent, selector: "mv-pdf-viewer", inputs: { downloadUrl: "downloadUrl", url: "url", downloadFileName: "downloadFileName", enableAnnotations: "enableAnnotations", enableRedactions: "enableRedactions", enableICP: "enableICP", annotationSet: "annotationSet", enableRedactSearch: "enableRedactSearch", height: "height", caseId: "caseId", searchBarHidden: "searchBarHidden" }, outputs: { mediaLoadStatus: "mediaLoadStatus", pdfViewerException: "pdfViewerException", documentTitle: "documentTitle" }, viewQueries: [{ propertyName: "viewerContainer", first: true, predicate: ["viewerContainer"], descendants: true, static: true }, { propertyName: "pdfViewer", first: true, predicate: ["pdfViewer"], descendants: true }, { propertyName: "highlightCreateDirective", first: true, predicate: HighlightCreateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mv-side-bar\n *ngIf=\"toolbarEvents.sidebarOpen\"\n id=\"sidebarContainer\"\n [url]=\"url\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [outline]=\"documentOutline\"\n [annotationsEnabled]=\"enableAnnotations\"\n [currentPageNumber]=\"getCurrentPageNumber()\"\n>\n</mv-side-bar>\n<mv-comment-set-header\n *ngIf=\"enableAnnotations\"\n [ngClass]=\"{ 'show-comments-panel': showCommentsPanel }\"\n [isHidden]=\"!showCommentsPanel\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\"\n>\n</mv-comment-set-header>\n<mv-participants-list></mv-participants-list>\n<div\n class=\"pdfContainer\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ pdfContainer: true, hidden: errorMessage }\"\n>\n <mv-redaction-search-bar></mv-redaction-search-bar>\n <div\n #viewerContainer\n mvGrabNDrag\n [dragX]=\"viewerContainer\"\n [dragEnabled]=\"enableGrabNDrag\"\n id=\"viewerContainer\"\n class=\"viewer-container\"\n [class.annotations]=\"enableAnnotations\"\n [class.show-comments-panel]=\"\n (showCommentsPanel || showIcpParticipantsList) &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [class.grabNDrag]=\"enableGrabNDrag\"\n >\n <div\n #pdfViewer\n class=\"pdfViewer\"\n mvCreateTextHighlight\n mvKeyboardTextHighlight\n [enabled]=\"highlightMode | async\"\n [tabindex]=\"(highlightMode | async) ? 0 : -1\"\n (selectionConfirmed)=\"onKeyboardTextSelectionConfirmed()\"\n (selectionCancelled)=\"onKeyboardTextSelectionCancelled()\"\n (cursorPositionChanged)=\"onSelectionStartCursorChanged($event)\"\n (selectionCursorPositionChanged)=\"onSelectionEndCursorChanged($event)\"\n [ngClass]=\"{\n hidden: false,\n highlightMode: highlightMode | async,\n drawMode: drawMode | async\n }\"\n ></div>\n <div *ngIf=\"showSelectionStartCursor\"\n class=\"selection-start-cursor\"\n [style.position]=\"'fixed'\"\n [style.top]=\"selectionStartCursorY + 'px'\"\n [style.left]=\"selectionStartCursorX + 'px'\">\n </div>\n <div *ngIf=\"showSelectionEndCursor\"\n class=\"selection-end-cursor\"\n [style.position]=\"'fixed'\"\n [style.top]=\"selectionEndCursorY + 'px'\"\n [style.left]=\"selectionEndCursorX + 'px'\">\n </div>\n <mv-redactions\n *ngIf=\"toolbarEvents.redactionMode | async; else annotationTemplate\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n ></mv-redactions>\n <ng-template #annotationTemplate>\n <mv-metadata-layer\n *ngIf=\"enableAnnotations && annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n >\n </mv-metadata-layer>\n <mv-bookmark-icons [zoom]=\"zoom\" [rotate]=\"rotation\"> </mv-bookmark-icons>\n </ng-template>\n </div>\n <mv-comment-set\n [contentScrollTop]=\"viewerContainer.scrollTop\"\n *ngIf=\"\n enableAnnotations &&\n annotationSet &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [annotationSet]=\"annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [height]=\"pdfViewer.offsetHeight\"\n [pageHeights]=\"pageHeights\"\n >\n </mv-comment-set>\n <div class=\"loadingMessage\" *ngIf=\"loadingDocument\">\n <h3 class=\"govuk-heading-m\">\n {{ \"Loading...\" | rpxTranslate}}{{\n loadingDocumentProgress ? loadingDocumentProgress + \"%\" : \"\"\n }}\n </h3>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: RedactionSearchBarComponent, selector: "mv-redaction-search-bar" }, { kind: "component", type: CommentSetComponent, selector: "mv-comment-set", inputs: ["annotationSet", "zoom", "rotate", "height", "pageHeights", "contentScrollTop"] }, { kind: "component", type: CommentSetHeaderComponent, selector: "mv-comment-set-header", inputs: ["showCommentSummary", "isHidden"], outputs: ["showCommentSummaryDialog"] }, { kind: "component", type: MetadataLayerComponent, selector: "mv-metadata-layer", inputs: ["zoom", "rotate"] }, { kind: "component", type: SideBarComponent, selector: "mv-side-bar", inputs: ["annotationsEnabled", "outline", "url", "zoom", "rotate", "currentPageNumber"] }, { kind: "directive", type: GrabNDragDirective, selector: "[mvGrabNDrag]", inputs: ["dragEnabled", "dragX"] }, { kind: "directive", type: HighlightCreateDirective, selector: "[mvCreateTextHighlight]" }, { kind: "directive", type: KeyboardTextHighlightDirective, selector: "[mvKeyboardTextHighlight]", inputs: ["enabled", "incrementSmall", "incrementMedium", "incrementLarge"], outputs: ["selectionStarted", "selectionUpdated", "selectionConfirmed", "selectionCancelled", "cursorPositionChanged", "selectionCursorPositionChanged"] }, { kind: "component", type: RedactionComponent, selector: "mv-redactions", inputs: ["zoom", "rotate"] }, { kind: "component", type: BookmarkIconsComponent, selector: "mv-bookmark-icons", inputs: ["zoom", "rotate"] }, { kind: "component", type: ParticipantsListComponent, selector: "mv-participants-list" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
5405
5870
|
}
|
|
5406
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5871
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfViewerComponent, decorators: [{
|
|
5407
5872
|
type: Component,
|
|
5408
|
-
args: [{ selector: 'mv-pdf-viewer', encapsulation: ViewEncapsulation.None,
|
|
5873
|
+
args: [{ selector: 'mv-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "<mv-side-bar\n *ngIf=\"toolbarEvents.sidebarOpen\"\n id=\"sidebarContainer\"\n [url]=\"url\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [outline]=\"documentOutline\"\n [annotationsEnabled]=\"enableAnnotations\"\n [currentPageNumber]=\"getCurrentPageNumber()\"\n>\n</mv-side-bar>\n<mv-comment-set-header\n *ngIf=\"enableAnnotations\"\n [ngClass]=\"{ 'show-comments-panel': showCommentsPanel }\"\n [isHidden]=\"!showCommentsPanel\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\"\n>\n</mv-comment-set-header>\n<mv-participants-list></mv-participants-list>\n<div\n class=\"pdfContainer\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ pdfContainer: true, hidden: errorMessage }\"\n>\n <mv-redaction-search-bar></mv-redaction-search-bar>\n <div\n #viewerContainer\n mvGrabNDrag\n [dragX]=\"viewerContainer\"\n [dragEnabled]=\"enableGrabNDrag\"\n id=\"viewerContainer\"\n class=\"viewer-container\"\n [class.annotations]=\"enableAnnotations\"\n [class.show-comments-panel]=\"\n (showCommentsPanel || showIcpParticipantsList) &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [class.grabNDrag]=\"enableGrabNDrag\"\n >\n <div\n #pdfViewer\n class=\"pdfViewer\"\n mvCreateTextHighlight\n mvKeyboardTextHighlight\n [enabled]=\"highlightMode | async\"\n [tabindex]=\"(highlightMode | async) ? 0 : -1\"\n (selectionConfirmed)=\"onKeyboardTextSelectionConfirmed()\"\n (selectionCancelled)=\"onKeyboardTextSelectionCancelled()\"\n (cursorPositionChanged)=\"onSelectionStartCursorChanged($event)\"\n (selectionCursorPositionChanged)=\"onSelectionEndCursorChanged($event)\"\n [ngClass]=\"{\n hidden: false,\n highlightMode: highlightMode | async,\n drawMode: drawMode | async\n }\"\n ></div>\n <div *ngIf=\"showSelectionStartCursor\"\n class=\"selection-start-cursor\"\n [style.position]=\"'fixed'\"\n [style.top]=\"selectionStartCursorY + 'px'\"\n [style.left]=\"selectionStartCursorX + 'px'\">\n </div>\n <div *ngIf=\"showSelectionEndCursor\"\n class=\"selection-end-cursor\"\n [style.position]=\"'fixed'\"\n [style.top]=\"selectionEndCursorY + 'px'\"\n [style.left]=\"selectionEndCursorX + 'px'\">\n </div>\n <mv-redactions\n *ngIf=\"toolbarEvents.redactionMode | async; else annotationTemplate\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n ></mv-redactions>\n <ng-template #annotationTemplate>\n <mv-metadata-layer\n *ngIf=\"enableAnnotations && annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n >\n </mv-metadata-layer>\n <mv-bookmark-icons [zoom]=\"zoom\" [rotate]=\"rotation\"> </mv-bookmark-icons>\n </ng-template>\n </div>\n <mv-comment-set\n [contentScrollTop]=\"viewerContainer.scrollTop\"\n *ngIf=\"\n enableAnnotations &&\n annotationSet &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [annotationSet]=\"annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [height]=\"pdfViewer.offsetHeight\"\n [pageHeights]=\"pageHeights\"\n >\n </mv-comment-set>\n <div class=\"loadingMessage\" *ngIf=\"loadingDocument\">\n <h3 class=\"govuk-heading-m\">\n {{ \"Loading...\" | rpxTranslate}}{{\n loadingDocumentProgress ? loadingDocumentProgress + \"%\" : \"\"\n }}\n </h3>\n </div>\n</div>\n" }]
|
|
5409
5874
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i1.Store }, { type: PdfJsWrapperFactory }, { type: PrintService }, { type: ToolbarEventService }, { type: ViewerEventService }, { type: IcpService }, { type: ToolbarButtonVisibilityService }, { type: IcpEventService }], propDecorators: { mediaLoadStatus: [{
|
|
5410
5875
|
type: Output
|
|
5411
5876
|
}], pdfViewerException: [{
|
|
@@ -5438,6 +5903,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
5438
5903
|
}], pdfViewer: [{
|
|
5439
5904
|
type: ViewChild,
|
|
5440
5905
|
args: ['pdfViewer', { static: false }]
|
|
5906
|
+
}], highlightCreateDirective: [{
|
|
5907
|
+
type: ViewChild,
|
|
5908
|
+
args: [HighlightCreateDirective, { static: false }]
|
|
5441
5909
|
}], searchBarHidden: [{
|
|
5442
5910
|
type: Input
|
|
5443
5911
|
}] } });
|
|
@@ -5449,10 +5917,10 @@ class ViewerUtilService {
|
|
|
5449
5917
|
validateFile(url) {
|
|
5450
5918
|
return this.http.head(url);
|
|
5451
5919
|
}
|
|
5452
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5453
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5920
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerUtilService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5921
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerUtilService, providedIn: 'root' }); }
|
|
5454
5922
|
}
|
|
5455
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5923
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerUtilService, decorators: [{
|
|
5456
5924
|
type: Injectable,
|
|
5457
5925
|
args: [{
|
|
5458
5926
|
providedIn: 'root'
|
|
@@ -5580,12 +6048,12 @@ class ImageViewerComponent {
|
|
|
5580
6048
|
toggleCommentsSummary() {
|
|
5581
6049
|
this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());
|
|
5582
6050
|
}
|
|
5583
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5584
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6051
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageViewerComponent, deps: [{ token: i1.Store }, { token: PrintService }, { token: ViewerUtilService }, { token: ToolbarEventService }, { token: ToolbarButtonVisibilityService }, { token: ViewerEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6052
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageViewerComponent, selector: "mv-image-viewer", inputs: { url: "url", downloadFileName: "downloadFileName", enableAnnotations: "enableAnnotations", annotationSet: "annotationSet", height: "height" }, outputs: { mediaLoadStatus: "mediaLoadStatus", imageViewerException: "imageViewerException" }, host: { listeners: { "mousedown": "onImageViewerClick($event)" } }, viewQueries: [{ propertyName: "img", first: true, predicate: ["img"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mv-comment-set-header\n [ngClass]=\"{ 'show-comments-panel': showCommentsPanel }\"\n [isHidden]=\"!showCommentsPanel\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\"\n>\n</mv-comment-set-header>\n<div\n id=\"viewer-wrapper\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ grabNDrag: enableGrabNDrag }\"\n *ngIf=\"url && !errorMessage\"\n>\n <div\n #imageContainer\n id=\"image-container\"\n mvGrabNDrag\n [dragX]=\"imageContainer\"\n [dragEnabled]=\"enableGrabNDrag\"\n (scroll)=\"($event)\"\n [ngClass]=\"{\n 'image-container': true,\n annotations: enableAnnotations,\n 'show-comments-panel': showCommentsPanel\n }\"\n >\n <img\n #img\n alt=\"\"\n [src]=\"url\"\n [ngClass]=\"'rot' + rotation\"\n (error)=\"onLoadError(url)\"\n (load)=\"onLoad(img)\"\n />\n <mv-redactions\n *ngIf=\"toolbarEvents.redactionMode | async; else annotationTemplate\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n ></mv-redactions>\n <ng-template #annotationTemplate>\n <mv-metadata-layer\n *ngIf=\"enableAnnotations && annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n >\n </mv-metadata-layer>\n </ng-template>\n </div>\n\n <mv-comment-set\n [contentScrollTop]=\"imageContainer.scrollTop\"\n *ngIf=\"\n enableAnnotations &&\n annotationSet &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [annotationSet]=\"annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [height]=\"imageHeight\"\n >\n </mv-comment-set>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CommentSetComponent, selector: "mv-comment-set", inputs: ["annotationSet", "zoom", "rotate", "height", "pageHeights", "contentScrollTop"] }, { kind: "component", type: CommentSetHeaderComponent, selector: "mv-comment-set-header", inputs: ["showCommentSummary", "isHidden"], outputs: ["showCommentSummaryDialog"] }, { kind: "component", type: MetadataLayerComponent, selector: "mv-metadata-layer", inputs: ["zoom", "rotate"] }, { kind: "directive", type: GrabNDragDirective, selector: "[mvGrabNDrag]", inputs: ["dragEnabled", "dragX"] }, { kind: "component", type: RedactionComponent, selector: "mv-redactions", inputs: ["zoom", "rotate"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
|
|
5585
6053
|
}
|
|
5586
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6054
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageViewerComponent, decorators: [{
|
|
5587
6055
|
type: Component,
|
|
5588
|
-
args: [{ selector: 'mv-image-viewer',
|
|
6056
|
+
args: [{ selector: 'mv-image-viewer', template: "<mv-comment-set-header\n [ngClass]=\"{ 'show-comments-panel': showCommentsPanel }\"\n [isHidden]=\"!showCommentsPanel\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\"\n>\n</mv-comment-set-header>\n<div\n id=\"viewer-wrapper\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ grabNDrag: enableGrabNDrag }\"\n *ngIf=\"url && !errorMessage\"\n>\n <div\n #imageContainer\n id=\"image-container\"\n mvGrabNDrag\n [dragX]=\"imageContainer\"\n [dragEnabled]=\"enableGrabNDrag\"\n (scroll)=\"($event)\"\n [ngClass]=\"{\n 'image-container': true,\n annotations: enableAnnotations,\n 'show-comments-panel': showCommentsPanel\n }\"\n >\n <img\n #img\n alt=\"\"\n [src]=\"url\"\n [ngClass]=\"'rot' + rotation\"\n (error)=\"onLoadError(url)\"\n (load)=\"onLoad(img)\"\n />\n <mv-redactions\n *ngIf=\"toolbarEvents.redactionMode | async; else annotationTemplate\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n ></mv-redactions>\n <ng-template #annotationTemplate>\n <mv-metadata-layer\n *ngIf=\"enableAnnotations && annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n >\n </mv-metadata-layer>\n </ng-template>\n </div>\n\n <mv-comment-set\n [contentScrollTop]=\"imageContainer.scrollTop\"\n *ngIf=\"\n enableAnnotations &&\n annotationSet &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [annotationSet]=\"annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [height]=\"imageHeight\"\n >\n </mv-comment-set>\n</div>\n" }]
|
|
5589
6057
|
}], ctorParameters: () => [{ type: i1.Store }, { type: PrintService }, { type: ViewerUtilService }, { type: ToolbarEventService }, { type: ToolbarButtonVisibilityService }, { type: ViewerEventService }], propDecorators: { url: [{
|
|
5590
6058
|
type: Input
|
|
5591
6059
|
}], downloadFileName: [{
|
|
@@ -5630,12 +6098,12 @@ class UnsupportedViewerComponent {
|
|
|
5630
6098
|
subscription.unsubscribe();
|
|
5631
6099
|
}
|
|
5632
6100
|
}
|
|
5633
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5634
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6101
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnsupportedViewerComponent, deps: [{ token: ToolbarEventService }, { token: ViewerUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6102
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UnsupportedViewerComponent, selector: "mv-unsupported-viewer", inputs: { url: "url", downloadFileName: "downloadFileName", typeException: "typeException" }, outputs: { loadStatus: "loadStatus", unsupportedViewerException: "unsupportedViewerException" }, viewQueries: [{ propertyName: "downloadLink", first: true, predicate: ["downloadLink"], descendants: true }], ngImport: i0, template: "<div class=\"govuk-width-container\">\n <div class=\"govuk-notification-banner__content\">\n <p>\n <span *ngIf=\"typeException, else unsupported\">The document could not be displayed, or the file type is unsupported.</span>\n Please <a #downloadLink [href]=\"url\" [download]=\"downloadFileName\">click here to download</a>.\n </p>\n <ng-template #unsupported>\n <span>This file type is not supported by this viewer.</span>\n </ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
5635
6103
|
}
|
|
5636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnsupportedViewerComponent, decorators: [{
|
|
5637
6105
|
type: Component,
|
|
5638
|
-
args: [{ selector: 'mv-unsupported-viewer',
|
|
6106
|
+
args: [{ selector: 'mv-unsupported-viewer', template: "<div class=\"govuk-width-container\">\n <div class=\"govuk-notification-banner__content\">\n <p>\n <span *ngIf=\"typeException, else unsupported\">The document could not be displayed, or the file type is unsupported.</span>\n Please <a #downloadLink [href]=\"url\" [download]=\"downloadFileName\">click here to download</a>.\n </p>\n <ng-template #unsupported>\n <span>This file type is not supported by this viewer.</span>\n </ng-template>\n </div>\n</div>\n" }]
|
|
5639
6107
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: ViewerUtilService }], propDecorators: { url: [{
|
|
5640
6108
|
type: Input
|
|
5641
6109
|
}], downloadFileName: [{
|
|
@@ -5698,10 +6166,10 @@ class AnnotationApiService {
|
|
|
5698
6166
|
get annotationFullsUrl() {
|
|
5699
6167
|
return this.annotationApiUrl + this.annotationBaseUrl;
|
|
5700
6168
|
}
|
|
5701
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5702
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6169
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationApiService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6170
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationApiService }); }
|
|
5703
6171
|
}
|
|
5704
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationApiService, decorators: [{
|
|
5705
6173
|
type: Injectable
|
|
5706
6174
|
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
5707
6175
|
|
|
@@ -5716,10 +6184,10 @@ class NumberHelperService {
|
|
|
5716
6184
|
&& value !== ''
|
|
5717
6185
|
&& !isNaN(Number(value.toString())));
|
|
5718
6186
|
}
|
|
5719
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5720
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6187
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6188
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberHelperService, providedIn: 'root' }); }
|
|
5721
6189
|
}
|
|
5722
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberHelperService, decorators: [{
|
|
5723
6191
|
type: Injectable,
|
|
5724
6192
|
args: [{
|
|
5725
6193
|
providedIn: 'root'
|
|
@@ -5810,12 +6278,12 @@ class SearchBarComponent {
|
|
|
5810
6278
|
toggleSearchBar() {
|
|
5811
6279
|
this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());
|
|
5812
6280
|
}
|
|
5813
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5814
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6281
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBarComponent, deps: [{ token: ToolbarButtonVisibilityService }, { token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6282
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchBarComponent, selector: "mv-search-bar", host: { listeners: { "window:keydown": "onWindowKeyDown($event)" } }, viewQueries: [{ propertyName: "findInput", first: true, predicate: ["findInput"], descendants: true, static: true }, { propertyName: "findNext", first: true, predicate: ["findNext"], descendants: true }], ngImport: i0, template: "<div\n class=\"searchbar govuk-!-padding-3\"\n [hidden]=\"toolbarEvents.searchBarHidden | async\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <input\n class=\"govuk-input govuk-!-display-inline-block govuk-!-width-three-quarters govuk-!-margin-bottom-5 govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Search document\"\n #findInput\n [ngModel]=\"searchText\"\n (ngModelChange)=\"searchText = $event\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n title=\"Search document\"\n placeholder=\"Search document for\u2026\"\n tabindex=\"0\"\n data-l10n-id=\"find_input\"\n />\n <button\n class=\"govuk-button govuk-!-display-inline-block govuk-!-margin-bottom-4\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n style=\"position: absolute; top: 40px; right: 10px\"\n >\n Search\n </button>\n </div>\n </div>\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-three-quarters\">\n <span\n id=\"findResultsCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-right-4\"\n role=\"status\"\n >{{ resultsText }}</span\n >\n <a\n *ngIf=\"resultCount > 0\"\n id=\"findPrevious\"\n [routerLink]=\"[]\"\n role=\"button\"\n class=\"govuk-link govuk-link--no-visited-state govuk-!-margin-right-2\"\n (click)=\"searchPrev()\"\n title=\"Find the previous occurrence of the phrase\"\n data-l10n-id=\"find_previous\"\n >{{ \"Prev\" | rpxTranslate }}</a\n >\n <a\n *ngIf=\"resultCount > 0\"\n id=\"findNext\"\n #findNext\n [routerLink]=\"[]\"\n role=\"button\"\n class=\"govuk-link govuk-link--no-visited-state\"\n (click)=\"searchNext()\"\n title=\"Find the next occurrence of the phrase\"\n data-l10n-id=\"find_next\"\n >{{ \"Next\" | rpxTranslate }}</a\n >\n </div>\n <div class=\"govuk-grid-column-one-quarter\">\n <a\n [routerLink]=\"[]\"\n class=\"govuk-link govuk-link--no-visited-state\"\n role=\"button\"\n (click)=\"toggleAdvancedSearch()\"\n title=\"Advanced\"\n [attr.aria-expanded]=\"advancedSearchVisible\"\n aria-controls=\"advancedSearchVisible\"\n data-l10n-id=\"find_advanced\"\n style=\"position: absolute; top: 95px; right: 15px\"\n >{{ \"Advanced\" | rpxTranslate }}</a\n >\n </div>\n </div>\n\n <div\n id=\"advancedSearchVisible\"\n class=\"govuk-grid-row\"\n *ngIf=\"advancedSearchVisible\"\n >\n <div class=\"govuk-grid-column-full\">\n <div\n class=\"govuk-form-group govuk-!-margin-top-3 govuk-!-margin-bottom-1\"\n >\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"advanced\">\n <div class=\"govuk-checkboxes\">\n <div class=\"govuk-checkboxes__item\">\n <input\n class=\"govuk-checkboxes__input\"\n id=\"findHighlightAll\"\n name=\"findHighlightAll\"\n type=\"checkbox\"\n (change)=\"highlightAll = !highlightAll; search()\"\n [checked]=\"highlightAll\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n for=\"findHighlightAll\"\n data-l10n-id=\"find_highlight\"\n >\n {{ \"Highlight all\" | rpxTranslate }}\n </label>\n </div>\n <div class=\"govuk-checkboxes__item\">\n <input\n class=\"govuk-checkboxes__input\"\n id=\"findMatchCase\"\n name=\"findMatchCase\"\n type=\"checkbox\"\n (change)=\"matchCase = !matchCase; search()\"\n [checked]=\"matchCase\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n for=\"findMatchCase\"\n data-l10n-id=\"find_match_case_label\"\n >\n {{ \"Match text (exact case)\" | rpxTranslate }}\n </label>\n </div>\n <div class=\"govuk-checkboxes__item\">\n <input\n class=\"govuk-checkboxes__input\"\n id=\"findEntireWord\"\n name=\"findMatchCase\"\n type=\"checkbox\"\n (change)=\"wholeWord = !wholeWord; search()\"\n [checked]=\"wholeWord\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n for=\"findEntireWord\"\n data-l10n-id=\"find_entire_word_label\"\n >\n {{ \"Match whole words or sentences\" | rpxTranslate }}\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <div>\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"toggleSearchBar()\"\n ></button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
5815
6283
|
}
|
|
5816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6284
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBarComponent, decorators: [{
|
|
5817
6285
|
type: Component,
|
|
5818
|
-
args: [{ selector: 'mv-search-bar',
|
|
6286
|
+
args: [{ selector: 'mv-search-bar', template: "<div\n class=\"searchbar govuk-!-padding-3\"\n [hidden]=\"toolbarEvents.searchBarHidden | async\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <input\n class=\"govuk-input govuk-!-display-inline-block govuk-!-width-three-quarters govuk-!-margin-bottom-5 govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Search document\"\n #findInput\n [ngModel]=\"searchText\"\n (ngModelChange)=\"searchText = $event\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n title=\"Search document\"\n placeholder=\"Search document for\u2026\"\n tabindex=\"0\"\n data-l10n-id=\"find_input\"\n />\n <button\n class=\"govuk-button govuk-!-display-inline-block govuk-!-margin-bottom-4\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n style=\"position: absolute; top: 40px; right: 10px\"\n >\n Search\n </button>\n </div>\n </div>\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-three-quarters\">\n <span\n id=\"findResultsCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-right-4\"\n role=\"status\"\n >{{ resultsText }}</span\n >\n <a\n *ngIf=\"resultCount > 0\"\n id=\"findPrevious\"\n [routerLink]=\"[]\"\n role=\"button\"\n class=\"govuk-link govuk-link--no-visited-state govuk-!-margin-right-2\"\n (click)=\"searchPrev()\"\n title=\"Find the previous occurrence of the phrase\"\n data-l10n-id=\"find_previous\"\n >{{ \"Prev\" | rpxTranslate }}</a\n >\n <a\n *ngIf=\"resultCount > 0\"\n id=\"findNext\"\n #findNext\n [routerLink]=\"[]\"\n role=\"button\"\n class=\"govuk-link govuk-link--no-visited-state\"\n (click)=\"searchNext()\"\n title=\"Find the next occurrence of the phrase\"\n data-l10n-id=\"find_next\"\n >{{ \"Next\" | rpxTranslate }}</a\n >\n </div>\n <div class=\"govuk-grid-column-one-quarter\">\n <a\n [routerLink]=\"[]\"\n class=\"govuk-link govuk-link--no-visited-state\"\n role=\"button\"\n (click)=\"toggleAdvancedSearch()\"\n title=\"Advanced\"\n [attr.aria-expanded]=\"advancedSearchVisible\"\n aria-controls=\"advancedSearchVisible\"\n data-l10n-id=\"find_advanced\"\n style=\"position: absolute; top: 95px; right: 15px\"\n >{{ \"Advanced\" | rpxTranslate }}</a\n >\n </div>\n </div>\n\n <div\n id=\"advancedSearchVisible\"\n class=\"govuk-grid-row\"\n *ngIf=\"advancedSearchVisible\"\n >\n <div class=\"govuk-grid-column-full\">\n <div\n class=\"govuk-form-group govuk-!-margin-top-3 govuk-!-margin-bottom-1\"\n >\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"advanced\">\n <div class=\"govuk-checkboxes\">\n <div class=\"govuk-checkboxes__item\">\n <input\n class=\"govuk-checkboxes__input\"\n id=\"findHighlightAll\"\n name=\"findHighlightAll\"\n type=\"checkbox\"\n (change)=\"highlightAll = !highlightAll; search()\"\n [checked]=\"highlightAll\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n for=\"findHighlightAll\"\n data-l10n-id=\"find_highlight\"\n >\n {{ \"Highlight all\" | rpxTranslate }}\n </label>\n </div>\n <div class=\"govuk-checkboxes__item\">\n <input\n class=\"govuk-checkboxes__input\"\n id=\"findMatchCase\"\n name=\"findMatchCase\"\n type=\"checkbox\"\n (change)=\"matchCase = !matchCase; search()\"\n [checked]=\"matchCase\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n for=\"findMatchCase\"\n data-l10n-id=\"find_match_case_label\"\n >\n {{ \"Match text (exact case)\" | rpxTranslate }}\n </label>\n </div>\n <div class=\"govuk-checkboxes__item\">\n <input\n class=\"govuk-checkboxes__input\"\n id=\"findEntireWord\"\n name=\"findMatchCase\"\n type=\"checkbox\"\n (change)=\"wholeWord = !wholeWord; search()\"\n [checked]=\"wholeWord\"\n />\n <label\n class=\"govuk-label govuk-checkboxes__label\"\n for=\"findEntireWord\"\n data-l10n-id=\"find_entire_word_label\"\n >\n {{ \"Match whole words or sentences\" | rpxTranslate }}\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n </div>\n </div>\n <div>\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"toggleSearchBar()\"\n ></button>\n </div>\n</div>\n" }]
|
|
5819
6287
|
}], ctorParameters: () => [{ type: ToolbarButtonVisibilityService }, { type: ToolbarEventService }], propDecorators: { findInput: [{
|
|
5820
6288
|
type: ViewChild,
|
|
5821
6289
|
args: ['findInput', { static: true }]
|
|
@@ -5827,6 +6295,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
5827
6295
|
args: ['window:keydown', ['$event']]
|
|
5828
6296
|
}] } });
|
|
5829
6297
|
|
|
6298
|
+
class TooltipDismissDirective {
|
|
6299
|
+
constructor(el) {
|
|
6300
|
+
this.el = el;
|
|
6301
|
+
}
|
|
6302
|
+
onEscapeDismissTooltip() {
|
|
6303
|
+
const element = this.el.nativeElement;
|
|
6304
|
+
element.setAttribute('data-tooltip-dismissed', 'true');
|
|
6305
|
+
}
|
|
6306
|
+
onShowTooltip() {
|
|
6307
|
+
const element = this.el.nativeElement;
|
|
6308
|
+
element.removeAttribute('data-tooltip-dismissed');
|
|
6309
|
+
}
|
|
6310
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDismissDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6311
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TooltipDismissDirective, selector: ".mv-tooltip, [mvTooltipDismiss]", host: { listeners: { "document:keydown.escape": "onEscapeDismissTooltip($event)", "mouseenter": "onShowTooltip()", "focus": "onShowTooltip()", "focusin": "onShowTooltip()" } }, ngImport: i0 }); }
|
|
6312
|
+
}
|
|
6313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDismissDirective, decorators: [{
|
|
6314
|
+
type: Directive,
|
|
6315
|
+
args: [{
|
|
6316
|
+
selector: '.mv-tooltip, [mvTooltipDismiss]'
|
|
6317
|
+
}]
|
|
6318
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onEscapeDismissTooltip: [{
|
|
6319
|
+
type: HostListener,
|
|
6320
|
+
args: ['document:keydown.escape', ['$event']]
|
|
6321
|
+
}], onShowTooltip: [{
|
|
6322
|
+
type: HostListener,
|
|
6323
|
+
args: ['mouseenter']
|
|
6324
|
+
}, {
|
|
6325
|
+
type: HostListener,
|
|
6326
|
+
args: ['focus']
|
|
6327
|
+
}, {
|
|
6328
|
+
type: HostListener,
|
|
6329
|
+
args: ['focusin']
|
|
6330
|
+
}] } });
|
|
6331
|
+
|
|
5830
6332
|
class MainToolbarComponent {
|
|
5831
6333
|
constructor(toolbarEvents, toolbarButtons, cdr, numberHelper, icpEventService) {
|
|
5832
6334
|
this.toolbarEvents = toolbarEvents;
|
|
@@ -5986,12 +6488,12 @@ class MainToolbarComponent {
|
|
|
5986
6488
|
}
|
|
5987
6489
|
}, 100);
|
|
5988
6490
|
}
|
|
5989
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5990
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: MainToolbarComponent, isStandalone: false, selector: "mv-main-toolbar", inputs: { enableAnnotations: "enableAnnotations", enableRedactions: "enableRedactions", enableICP: "enableICP", contentType: "contentType" }, host: { listeners: { "window:resize": "onResize()", "document:keydown.control.p": "onControlPrint($event)", "document:keydown.meta.p": "onControlPrint($event)" } }, viewQueries: [{ propertyName: "zoomSelect", first: true, predicate: ["zoomSelect"], descendants: true }, { propertyName: "mvToolbarMain", first: true, predicate: ["mvToolbarMain"], descendants: true }, { propertyName: "mvMenuItems", first: true, predicate: ["dropdownMenu"], descendants: true }], ngImport: i0, template: "<div class=\"toolbar\">\n <div id=\"toolbarContainer\">\n <div class=\"mv-toolbar__container\">\n <div #mvToolbar class=\"mv-toolbar\" [class.notSupported]=\"!contentType\">\n <!-- The mvToolbarMain div contains all toolbar buttons except the \"More options\" button. This allows for calculation of the available space to display buttons -->\n <div id=\"mvToolbarMain\" class=\"mv-toolbar-main\" #mvToolbarMain>\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n <!-- The mvToolbarMoreOptions div contains the \"More options\" toolbar button (and the overlay template for the dropdown menu).\n The space occupied by the button (if visible) is excluded from the toolbar space available calculation -->\n <div id=\"mvToolbarMoreOptions\" class=\"mv-toolbar-more-options\">\n <button\n id=\"mvMoreOptionsBtn\"\n class=\"mv-button mv-toolbar__menu-button--more-options\"\n [class.mv-toolbar__menu-button--more-options__hidden]=\"\n mvToolbar.offsetWidth >= allButtonsWidth\n \"\n [attr.aria-expanded]=\"isDropdownMenuOpen\"\n (click)=\"toggleMoreOptions()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [disabled]=\"redactAllInProgress\"\n >\n <span>{{ \"More options\" | rpxTranslate }}</span>\n </button>\n <!-- This template displays the overlay content for the dropdown menu and is connected to the \"More options\" button -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownMenuOpen\"\n [cdkConnectedOverlayPositions]=\"dropdownMenuPositions\"\n >\n <div class=\"dropdown-menu\" #dropdownMenu tabindex=\"0\">\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n\n <div id=\"mvMenuItems\" #mvMenuItems>\n <ng-template #menuItems>\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvIndexBtn\"\n title=\"Index\"\n data-l10n-id=\"index\"\n #mvIndexBtn\n class=\"mv-button mv-toolbar__menu-button--index\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvIndexBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvIndexBtn']\n \"\n [attr.aria-expanded]=\"isIndexOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleIndexSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Index\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvBookmarksBtn\"\n title=\"Bookmarks\"\n data-l10n-id=\"bookmarks\"\n #mvBookmarksBtn\n [ngClass]=\"{\n 'mv-button mv-toolbar__menu-button--bookmarks': true,\n 'button-hidden-on-toolbar':\n mvToolbarMain.offsetWidth <\n widthRequiredForBtn['mvBookmarksBtn'],\n 'button-hidden-on-dropdown':\n mvToolbarMain.offsetWidth >=\n widthRequiredForBtn['mvBookmarksBtn']\n }\"\n [attr.aria-expanded]=\"isBookmarksOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleBookmarksSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Bookmarks\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDrawButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDrawBtn\"\n #mvDrawBtn\n class=\"mv-button mv-toolbar__menu-button--draw\"\n title=\"Draw a box\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvDrawBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvDrawBtn']\n \"\n [class.toggled]=\"toolbarEvents.drawModeSubject | async\"\n aria-pressed=\"false\"\n data-l10n-id=\"toggleDrawButton\"\n (click)=\"onClickDrawToggle(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"draw_label\">{{\n \"Draw a box\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showHighlightButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvHighlightBtn\"\n #mvHighlightBtn\n class=\"mv-button mv-toolbar__menu-button--highlight\"\n title=\"Highlight\"\n aria-label=\"Highlight\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.toggled]=\"toolbarEvents.highlightToolbarSubject | async\"\n aria-pressed=\"false\"\n (click)=\"onClickHighlightToggle(); isDropdownMenuOpen = false\"\n data-l10n-id=\"toggleHighlightButton\"\n >\n <span data-l10n-id=\"highlight_label\">{{\n \"Highlight\" | rpxTranslate\n }}</span>\n </button>\n\n <ng-container *ngIf=\"toolbarButtons.showNavigation\">\n <div\n id=\"mvPageBtn\"\n #mvPageBtn\n class=\"mv-toolbar__menu-button--page\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvPageBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvPageBtn']\n \"\n >\n <span>{{ \"Page\" | rpxTranslate }}</span>\n\n <button\n id=\"mvUpBtn\"\n [disabled]=\"pageNumber === 1 || redactAllInProgress\"\n title=\"Previous Page\"\n class=\"mv-toolbar__menu-button--up button-image\"\n data-l10n-id=\"previous\"\n (click)=\"decreasePageNumber()\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvDownBtn\"\n [disabled]=\"pageNumber === pageCount || redactAllInProgress\"\n title=\"Next Page\"\n class=\"mv-toolbar__menu-button--down button-image\"\n data-l10n-id=\"next\"\n (click)=\"increasePageNumber()\"\n >\n <span></span>\n </button>\n\n <input\n type=\"number\"\n id=\"pageNumber\"\n class=\"hmcts-toolbar-input govuk-input--width-2\"\n title=\"Page Number\"\n value=\"1\"\n size=\"4\"\n min=\"1\"\n [value]=\"pageNumber\"\n aria-label=\"page number\"\n tabindex=\"0\"\n data-l10n-id=\"page\"\n (change)=\"onPageNumberInputChange(pageNumberInput.value)\"\n [disabled]=\"redactAllInProgress\"\n #pageNumberInput\n />\n <span id=\"numPages\" class=\"toolbarLabel\">/ {{ pageCount }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"toolbarButtons.showZoom\">\n <div\n id=\"mvZoomBtn\"\n #mvZoomBtn\n class=\"mv-toolbar__menu-button--zoom\"\n aria-pressed=\"false\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvZoomBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvZoomBtn']\n \"\n >\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 0.1 ||\n redactAllInProgress\n \"\n id=\"mvMinusBtn\"\n class=\"mv-toolbar__menu-button--zoom-out button-image\"\n title=\"Zoom Out\"\n data-l10n-id=\"zoom_out\"\n (click)=\"stepZoom(-0.1)\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom Out\" | rpxTranslate\n }}</span>\n </button>\n <select\n id=\"scaleSelect\"\n class=\"hmcts-toolbar-select\"\n title=\"Zoom\"\n tabindex=\"0\"\n data-l10n-id=\"zoom\"\n (change)=\"zoom($event.target.value)\"\n aria-label=\"zoom\"\n [disabled]=\"redactAllInProgress\"\n >\n <option\n #zoomSelect\n id=\"customScaleOption\"\n title=\"\"\n [value]=\"toolbarEvents.zoomValueSubject.value\"\n >\n {{\n toolbarEvents.zoomValueSubject.value * 100\n | number : \"1.0-0\"\n }}%\n </option>\n <option\n *ngFor=\"let zoomScale of zoomScales\"\n title=\"\"\n [value]=\"zoomScale\"\n [attr.data-l10n-id]=\"'page_scale_percent_' + zoomScale * 100\"\n >\n {{ zoomScale * 100 }}%\n </option>\n </select>\n\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 5 ||\n redactAllInProgress\n \"\n id=\"mvPlusBtn\"\n class=\"mv-toolbar__menu-button--zoom-in button-image\"\n (click)=\"stepZoom(0.1)\"\n title=\"Zoom In\"\n data-l10n-id=\"zoom_in\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom In\" | rpxTranslate\n }}</span>\n </button>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"toolbarButtons.showRotate\"\n id=\"mvRotateBtn\"\n #mvRotateBtn\n class=\"mv-toolbar__menu-button--rotate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvRotateBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvRotateBtn']\n \"\n >\n <button\n id=\"mvRotateLeftBtn\"\n class=\"mv-toolbar__menu-button--rotate_left button-image\"\n title=\"Rotate Counterclockwise\"\n data-l10n-id=\"page_rotate_ccw\"\n (click)=\"rotate(270)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvRotateRightBtn\"\n class=\"mv-toolbar__menu-button--rotate_right button-image\"\n title=\"Rotate Clockwise\"\n data-l10n-id=\"page_rotate_cw\"\n (click)=\"rotate(90)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <span>{{ \"Rotate\" | rpxTranslate }}</span>\n </div>\n\n <button\n *ngIf=\"toolbarButtons.showSearchBar\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvSearchBtn\"\n #mvSearchBtn\n title=\"Search\"\n data-l10n-id=\"searchbar\"\n class=\"mv-button mv-toolbar__menu-button--search\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvSearchBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvSearchBtn']\n \"\n aria-pressed=\"false\"\n (click)=\"toggleSearchBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Search\" | rpxTranslate }}</span>\n </button>\n <mv-search-bar\n *ngIf=\"!toolbarEvents.searchBarHidden.getValue()\"\n ></mv-search-bar>\n\n <button\n *ngIf=\"enableICP && toolbarButtons.showPresentationMode && isPdf()\"\n [disabled]=\"icpEnabled || !contentType || redactionEnabled\"\n id=\"mvPresentBtn\"\n #mvPresentBtn\n class=\"mv-button mv-toolbar__menu-button--present\"\n title=\"In-Court Presentation Mode\"\n data-l10n-id=\"icpMode_label\"\n [ngClass]=\"onToolBarOffSetChange('mvPresentBtn')\"\n aria-pressed=\"false\"\n (click)=\"togglePresentBar(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"icpMode_label\">{{\n \"Present\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"enableRedactions && toolbarButtons.showRedact\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvRedactBtn\"\n #mvRedactBtn\n title=\"Redact\"\n data-l10n-id=\"redact\"\n class=\"mv-button mv-toolbar__menu-button--redact\"\n [ngClass]=\"onToolBarOffSetChange('mvRedactBtn')\"\n [attr.aria-expanded]=\"isRedactOpen\"\n (click)=\"toggleRedactBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Redact\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showGrabNDragButton\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvGrabBtn\"\n #mvGrabBtn\n class=\"mv-button mv-toolbar__menu-button--grab\"\n title=\"Grab and drag\"\n [ngClass]=\"onToolBarOffSetChange('mvGrabBtn')\"\n aria-pressed=\"false\"\n (click)=\"toggleGrabNDrag(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Grab and drag\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDownload\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDownloadBtn\"\n #mvDownloadBtn\n class=\"mv-button mv-toolbar__menu-button--download\"\n title=\"Download\"\n data-l10n-id=\"download\"\n [ngClass]=\"onToolBarOffSetChange('mvDownloadBtn')\"\n aria-pressed=\"false\"\n (click)=\"downloadFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Download\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showPrint\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvPrintBtn\"\n #mvPrintBtn\n title=\"Print\"\n data-l10n-id=\"print\"\n class=\"mv-button mv-toolbar__menu-button--print\"\n [ngClass]=\"onToolBarOffSetChange('mvPrintBtn')\"\n aria-pressed=\"false\"\n (click)=\"printFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Print\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"enableAnnotations && toolbarButtons.showCommentSummary\"\n [disabled]=\"redactionEnabled\"\n id=\"mvCommentsBtn\"\n #mvCommentsBtn\n class=\"mv-button mv-toolbar__menu-button--comments\"\n title=\"Comments\"\n data-l10n-id=\"comments\"\n [ngClass]=\"onToolBarOffSetChange('mvCommentsBtn')\"\n [attr.aria-expanded]=\"isCommentsOpen\"\n (click)=\"toggleCommentsPanel(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Comments\" | rpxTranslate }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\"></div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i7.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: SearchBarComponent, selector: "mv-search-bar" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.DecimalPipe, name: "number" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
6491
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainToolbarComponent, deps: [{ token: ToolbarEventService }, { token: ToolbarButtonVisibilityService }, { token: i0.ChangeDetectorRef }, { token: NumberHelperService }, { token: IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6492
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MainToolbarComponent, selector: "mv-main-toolbar", inputs: { enableAnnotations: "enableAnnotations", enableRedactions: "enableRedactions", enableICP: "enableICP", contentType: "contentType" }, host: { listeners: { "window:resize": "onResize()", "document:keydown.control.p": "onControlPrint($event)", "document:keydown.meta.p": "onControlPrint($event)" } }, viewQueries: [{ propertyName: "zoomSelect", first: true, predicate: ["zoomSelect"], descendants: true }, { propertyName: "mvToolbarMain", first: true, predicate: ["mvToolbarMain"], descendants: true }, { propertyName: "mvMenuItems", first: true, predicate: ["dropdownMenu"], descendants: true }], ngImport: i0, template: "<div class=\"toolbar\">\n <div id=\"toolbarContainer\">\n <div class=\"mv-toolbar__container\">\n <div #mvToolbar class=\"mv-toolbar\" [class.notSupported]=\"!contentType\">\n <!-- The mvToolbarMain div contains all toolbar buttons except the \"More options\" button. This allows for calculation of the available space to display buttons -->\n <div id=\"mvToolbarMain\" class=\"mv-toolbar-main\" #mvToolbarMain>\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n <!-- The mvToolbarMoreOptions div contains the \"More options\" toolbar button (and the overlay template for the dropdown menu).\n The space occupied by the button (if visible) is excluded from the toolbar space available calculation -->\n <div id=\"mvToolbarMoreOptions\" class=\"mv-toolbar-more-options\">\n <button\n id=\"mvMoreOptionsBtn\"\n class=\"mv-button mv-toolbar__menu-button--more-options mv-tooltip\"\n [class.mv-toolbar__menu-button--more-options__hidden]=\"\n mvToolbar.offsetWidth >= allButtonsWidth\n \"\n [attr.aria-expanded]=\"isDropdownMenuOpen\"\n [attr.data-tooltip]=\"'More options' | rpxTranslate\"\n (click)=\"toggleMoreOptions()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [disabled]=\"redactAllInProgress\"\n >\n <span>{{ \"More options\" | rpxTranslate }}</span>\n </button>\n <!-- This template displays the overlay content for the dropdown menu and is connected to the \"More options\" button -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownMenuOpen\"\n [cdkConnectedOverlayPositions]=\"dropdownMenuPositions\"\n >\n <div class=\"dropdown-menu\" #dropdownMenu tabindex=\"0\">\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n <div id=\"mvMenuItems\" #mvMenuItems>\n <ng-template #menuItems>\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvIndexBtn\"\n data-l10n-id=\"index\"\n [attr.data-tooltip]=\"'Index' | rpxTranslate\"\n #mvIndexBtn\n class=\"mv-button mv-toolbar__menu-button--index mv-tooltip\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvIndexBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvIndexBtn']\n \"\n [attr.aria-expanded]=\"isIndexOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleIndexSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Index\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvBookmarksBtn\"\n data-l10n-id=\"bookmarks\"\n [attr.data-tooltip]=\"'Bookmarks' | rpxTranslate\"\n #mvBookmarksBtn\n [ngClass]=\"{\n 'mv-button mv-tooltip mv-toolbar__menu-button--bookmarks': true,\n 'button-hidden-on-toolbar':\n mvToolbarMain.offsetWidth <\n widthRequiredForBtn['mvBookmarksBtn'],\n 'button-hidden-on-dropdown':\n mvToolbarMain.offsetWidth >=\n widthRequiredForBtn['mvBookmarksBtn']\n }\"\n [attr.aria-expanded]=\"isBookmarksOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleBookmarksSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Bookmarks\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDrawButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDrawBtn\"\n #mvDrawBtn\n class=\"mv-button mv-toolbar__menu-button--draw mv-tooltip\"\n [attr.data-tooltip]=\"'Draw a box' | rpxTranslate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvDrawBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvDrawBtn']\n \"\n [class.toggled]=\"toolbarEvents.drawModeSubject | async\"\n aria-pressed=\"false\"\n data-l10n-id=\"toggleDrawButton\"\n (click)=\"onClickDrawToggle(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"draw_label\">{{\n \"Draw a box\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showHighlightButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvHighlightBtn\"\n #mvHighlightBtn\n class=\"mv-button mv-toolbar__menu-button--highlight mv-tooltip\"\n [attr.data-tooltip]=\"'Highlight' | rpxTranslate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.toggled]=\"toolbarEvents.highlightToolbarSubject | async\"\n aria-pressed=\"false\"\n (click)=\"onClickHighlightToggle(); isDropdownMenuOpen = false\"\n data-l10n-id=\"toggleHighlightButton\"\n >\n <span data-l10n-id=\"highlight_label\">{{\n \"Highlight\" | rpxTranslate\n }}</span>\n </button>\n\n <ng-container *ngIf=\"toolbarButtons.showNavigation\">\n <div\n id=\"mvPageBtn\"\n #mvPageBtn\n class=\"mv-toolbar__menu-button--page\"\n [attr.data-tooltip]=\"'Page' | rpxTranslate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvPageBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvPageBtn']\n \"\n >\n <span>{{ \"Page\" | rpxTranslate }}</span>\n\n <button\n id=\"mvUpBtn\"\n [disabled]=\"pageNumber === 1 || redactAllInProgress\"\n [attr.data-tooltip]=\"'Previous page' | rpxTranslate\"\n [attr.aria-label]=\"'Previous page' | rpxTranslate\"\n class=\"mv-toolbar__menu-button--up button-image mv-tooltip\"\n data-l10n-id=\"previous\"\n (click)=\"decreasePageNumber()\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvDownBtn\"\n [disabled]=\"pageNumber === pageCount || redactAllInProgress\"\n [attr.data-tooltip]=\"'Next page' | rpxTranslate\"\n [attr.aria-label]=\"'Next page' | rpxTranslate\"\n class=\"mv-toolbar__menu-button--down button-image mv-tooltip\"\n data-l10n-id=\"next\"\n (click)=\"increasePageNumber()\"\n >\n <span></span>\n </button>\n\n <span class=\"mv-tooltip\" [attr.data-tooltip]=\"'Page number' | rpxTranslate\">\n <input\n type=\"number\"\n id=\"pageNumber\"\n class=\"hmcts-toolbar-input govuk-input--width-2\"\n [attr.aria-label]=\"'Page number' | rpxTranslate\"\n value=\"1\"\n size=\"4\"\n min=\"1\"\n [value]=\"pageNumber\"\n tabindex=\"0\"\n data-l10n-id=\"page\"\n (change)=\"onPageNumberInputChange(pageNumberInput.value)\"\n [disabled]=\"redactAllInProgress\"\n #pageNumberInput\n />\n </span>\n <span id=\"numPages\" class=\"toolbarLabel\">/ {{ pageCount }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"toolbarButtons.showZoom\">\n <div\n id=\"mvZoomBtn\"\n #mvZoomBtn\n class=\"mv-toolbar__menu-button--zoom\"\n aria-pressed=\"false\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvZoomBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvZoomBtn']\n \"\n >\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 0.1 ||\n redactAllInProgress\n \"\n id=\"mvMinusBtn\"\n class=\"mv-toolbar__menu-button--zoom-out button-image mv-tooltip\"\n [attr.data-tooltip]=\"'Zoom out' | rpxTranslate\"\n data-l10n-id=\"zoom_out\"\n (click)=\"stepZoom(-0.1)\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom Out\" | rpxTranslate\n }}</span>\n </button>\n <span class=\"mv-tooltip\" [attr.data-tooltip]=\"'Zoom' | rpxTranslate\"> \n <select\n id=\"scaleSelect\"\n class=\"hmcts-toolbar-select\"\n data-l10n-id=\"zoom\"\n (change)=\"zoom($event.target.value)\"\n tabindex=\"0\"\n [disabled]=\"redactAllInProgress\"\n >\n <option\n #zoomSelect\n id=\"customScaleOption\"\n title=\"\"\n [value]=\"toolbarEvents.zoomValueSubject.value\"\n >\n {{\n toolbarEvents.zoomValueSubject.value * 100\n | number : \"1.0-0\"\n }}%\n </option>\n <option\n *ngFor=\"let zoomScale of zoomScales\"\n title=\"\"\n [value]=\"zoomScale\"\n [attr.data-l10n-id]=\"'page_scale_percent_' + zoomScale * 100\"\n >\n {{ zoomScale * 100 }}%\n </option>\n </select>\n </span>\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 5 ||\n redactAllInProgress\n \"\n id=\"mvPlusBtn\"\n class=\"mv-toolbar__menu-button--zoom-in button-image mv-tooltip\"\n (click)=\"stepZoom(0.1)\"\n [attr.data-tooltip]=\"'Zoom in' | rpxTranslate\"\n data-l10n-id=\"zoom_in\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom In\" | rpxTranslate\n }}</span>\n </button>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"toolbarButtons.showRotate\"\n id=\"mvRotateBtn\"\n #mvRotateBtn\n class=\"mv-toolbar__menu-button--rotate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvRotateBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvRotateBtn']\n \"\n >\n <button\n id=\"mvRotateLeftBtn\"\n class=\"mv-toolbar__menu-button--rotate_left button-image mv-tooltip\"\n [attr.aria-label]=\"'Rotate counterclockwise' | rpxTranslate\"\n [attr.data-tooltip]=\"'Rotate counterclockwise' | rpxTranslate\"\n data-l10n-id=\"page_rotate_ccw\"\n (click)=\"rotate(270)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvRotateRightBtn\"\n class=\"mv-toolbar__menu-button--rotate_right button-image mv-tooltip\"\n [attr.aria-label]=\"'Rotate clockwise' | rpxTranslate\"\n [attr.data-tooltip]=\"'Rotate clockwise' | rpxTranslate\"\n data-l10n-id=\"page_rotate_cw\"\n (click)=\"rotate(90)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <span>{{ \"Rotate\" | rpxTranslate }}</span>\n </div>\n\n <button\n *ngIf=\"toolbarButtons.showSearchBar\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvSearchBtn\"\n #mvSearchBtn\n [attr.data-tooltip]=\"'Search' | rpxTranslate\"\n data-l10n-id=\"searchbar\"\n class=\"mv-button mv-toolbar__menu-button--search mv-tooltip\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvSearchBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvSearchBtn']\n \"\n aria-pressed=\"false\"\n (click)=\"toggleSearchBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Search\" | rpxTranslate }}</span>\n </button>\n <mv-search-bar\n *ngIf=\"!toolbarEvents.searchBarHidden.getValue()\"\n ></mv-search-bar>\n\n <button\n *ngIf=\"enableICP && toolbarButtons.showPresentationMode && isPdf()\"\n [disabled]=\"icpEnabled || !contentType || redactionEnabled\"\n id=\"mvPresentBtn\"\n #mvPresentBtn\n class=\"mv-button mv-toolbar__menu-button--present mv-tooltip\"\n [attr.data-tooltip]=\"'In-Court presentation mode' | rpxTranslate\"\n data-l10n-id=\"icpMode_label\"\n [ngClass]=\"onToolBarOffSetChange('mvPresentBtn')\"\n aria-pressed=\"false\"\n (click)=\"togglePresentBar(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"icpMode_label\">{{\n \"Present\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"enableRedactions && toolbarButtons.showRedact\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvRedactBtn\"\n #mvRedactBtn\n [attr.data-tooltip]=\"'Redact' | rpxTranslate\"\n data-l10n-id=\"redact\"\n class=\"mv-button mv-toolbar__menu-button--redact mv-tooltip\"\n [ngClass]=\"onToolBarOffSetChange('mvRedactBtn')\"\n [attr.aria-expanded]=\"isRedactOpen\"\n (click)=\"toggleRedactBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Redact\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showGrabNDragButton\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvGrabBtn\"\n #mvGrabBtn\n class=\"mv-button mv-toolbar__menu-button--grab mv-tooltip\"\n data-tooltip=\"Grab and drag\"\n [ngClass]=\"onToolBarOffSetChange('mvGrabBtn')\"\n aria-pressed=\"false\"\n (click)=\"toggleGrabNDrag(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Grab and drag\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDownload\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDownloadBtn\"\n #mvDownloadBtn\n class=\"mv-button mv-toolbar__menu-button--download mv-tooltip\"\n [attr.data-tooltip]=\"'Download' | rpxTranslate\"\n data-l10n-id=\"download\"\n [ngClass]=\"onToolBarOffSetChange('mvDownloadBtn')\"\n aria-pressed=\"false\"\n (click)=\"downloadFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Download\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showPrint\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvPrintBtn\"\n #mvPrintBtn\n data-l10n-id=\"print\"\n aria-label=\"Print\"\n [attr.data-tooltip]=\"'Print' | rpxTranslate\"\n data-l10n-id=\"print\"\n class=\"mv-button mv-toolbar__menu-button--print mv-tooltip\"\n [ngClass]=\"onToolBarOffSetChange('mvPrintBtn')\"\n aria-pressed=\"false\"\n (click)=\"printFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Print\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"enableAnnotations && toolbarButtons.showCommentSummary\"\n [disabled]=\"redactionEnabled\"\n id=\"mvCommentsBtn\"\n #mvCommentsBtn\n class=\"mv-button mv-toolbar__menu-button--comments mv-tooltip\"\n [attr.data-tooltip]=\"'Comments' | rpxTranslate\"\n data-l10n-id=\"comments\"\n [ngClass]=\"onToolBarOffSetChange('mvCommentsBtn')\"\n [attr.aria-expanded]=\"isCommentsOpen\"\n (click)=\"toggleCommentsPanel(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Comments\" | rpxTranslate }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\"></div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i7.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: SearchBarComponent, selector: "mv-search-bar" }, { kind: "directive", type: TooltipDismissDirective, selector: ".mv-tooltip, [mvTooltipDismiss]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.DecimalPipe, name: "number" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
5991
6493
|
}
|
|
5992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainToolbarComponent, decorators: [{
|
|
5993
6495
|
type: Component,
|
|
5994
|
-
args: [{ selector: 'mv-main-toolbar', standalone: false, template: "<div class=\"toolbar\">\n <div id=\"toolbarContainer\">\n <div class=\"mv-toolbar__container\">\n <div #mvToolbar class=\"mv-toolbar\" [class.notSupported]=\"!contentType\">\n <!-- The mvToolbarMain div contains all toolbar buttons except the \"More options\" button. This allows for calculation of the available space to display buttons -->\n <div id=\"mvToolbarMain\" class=\"mv-toolbar-main\" #mvToolbarMain>\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n <!-- The mvToolbarMoreOptions div contains the \"More options\" toolbar button (and the overlay template for the dropdown menu).\n The space occupied by the button (if visible) is excluded from the toolbar space available calculation -->\n <div id=\"mvToolbarMoreOptions\" class=\"mv-toolbar-more-options\">\n <button\n id=\"mvMoreOptionsBtn\"\n class=\"mv-button mv-toolbar__menu-button--more-options\"\n [class.mv-toolbar__menu-button--more-options__hidden]=\"\n mvToolbar.offsetWidth >= allButtonsWidth\n \"\n [attr.aria-expanded]=\"isDropdownMenuOpen\"\n (click)=\"toggleMoreOptions()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [disabled]=\"redactAllInProgress\"\n >\n <span>{{ \"More options\" | rpxTranslate }}</span>\n </button>\n <!-- This template displays the overlay content for the dropdown menu and is connected to the \"More options\" button -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownMenuOpen\"\n [cdkConnectedOverlayPositions]=\"dropdownMenuPositions\"\n >\n <div class=\"dropdown-menu\" #dropdownMenu tabindex=\"0\">\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n\n <div id=\"mvMenuItems\" #mvMenuItems>\n <ng-template #menuItems>\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvIndexBtn\"\n title=\"Index\"\n data-l10n-id=\"index\"\n #mvIndexBtn\n class=\"mv-button mv-toolbar__menu-button--index\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvIndexBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvIndexBtn']\n \"\n [attr.aria-expanded]=\"isIndexOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleIndexSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Index\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvBookmarksBtn\"\n title=\"Bookmarks\"\n data-l10n-id=\"bookmarks\"\n #mvBookmarksBtn\n [ngClass]=\"{\n 'mv-button mv-toolbar__menu-button--bookmarks': true,\n 'button-hidden-on-toolbar':\n mvToolbarMain.offsetWidth <\n widthRequiredForBtn['mvBookmarksBtn'],\n 'button-hidden-on-dropdown':\n mvToolbarMain.offsetWidth >=\n widthRequiredForBtn['mvBookmarksBtn']\n }\"\n [attr.aria-expanded]=\"isBookmarksOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleBookmarksSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Bookmarks\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDrawButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDrawBtn\"\n #mvDrawBtn\n class=\"mv-button mv-toolbar__menu-button--draw\"\n title=\"Draw a box\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvDrawBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvDrawBtn']\n \"\n [class.toggled]=\"toolbarEvents.drawModeSubject | async\"\n aria-pressed=\"false\"\n data-l10n-id=\"toggleDrawButton\"\n (click)=\"onClickDrawToggle(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"draw_label\">{{\n \"Draw a box\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showHighlightButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvHighlightBtn\"\n #mvHighlightBtn\n class=\"mv-button mv-toolbar__menu-button--highlight\"\n title=\"Highlight\"\n aria-label=\"Highlight\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.toggled]=\"toolbarEvents.highlightToolbarSubject | async\"\n aria-pressed=\"false\"\n (click)=\"onClickHighlightToggle(); isDropdownMenuOpen = false\"\n data-l10n-id=\"toggleHighlightButton\"\n >\n <span data-l10n-id=\"highlight_label\">{{\n \"Highlight\" | rpxTranslate\n }}</span>\n </button>\n\n <ng-container *ngIf=\"toolbarButtons.showNavigation\">\n <div\n id=\"mvPageBtn\"\n #mvPageBtn\n class=\"mv-toolbar__menu-button--page\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvPageBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvPageBtn']\n \"\n >\n <span>{{ \"Page\" | rpxTranslate }}</span>\n\n <button\n id=\"mvUpBtn\"\n [disabled]=\"pageNumber === 1 || redactAllInProgress\"\n title=\"Previous Page\"\n class=\"mv-toolbar__menu-button--up button-image\"\n data-l10n-id=\"previous\"\n (click)=\"decreasePageNumber()\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvDownBtn\"\n [disabled]=\"pageNumber === pageCount || redactAllInProgress\"\n title=\"Next Page\"\n class=\"mv-toolbar__menu-button--down button-image\"\n data-l10n-id=\"next\"\n (click)=\"increasePageNumber()\"\n >\n <span></span>\n </button>\n\n <input\n type=\"number\"\n id=\"pageNumber\"\n class=\"hmcts-toolbar-input govuk-input--width-2\"\n title=\"Page Number\"\n value=\"1\"\n size=\"4\"\n min=\"1\"\n [value]=\"pageNumber\"\n aria-label=\"page number\"\n tabindex=\"0\"\n data-l10n-id=\"page\"\n (change)=\"onPageNumberInputChange(pageNumberInput.value)\"\n [disabled]=\"redactAllInProgress\"\n #pageNumberInput\n />\n <span id=\"numPages\" class=\"toolbarLabel\">/ {{ pageCount }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"toolbarButtons.showZoom\">\n <div\n id=\"mvZoomBtn\"\n #mvZoomBtn\n class=\"mv-toolbar__menu-button--zoom\"\n aria-pressed=\"false\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvZoomBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvZoomBtn']\n \"\n >\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 0.1 ||\n redactAllInProgress\n \"\n id=\"mvMinusBtn\"\n class=\"mv-toolbar__menu-button--zoom-out button-image\"\n title=\"Zoom Out\"\n data-l10n-id=\"zoom_out\"\n (click)=\"stepZoom(-0.1)\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom Out\" | rpxTranslate\n }}</span>\n </button>\n <select\n id=\"scaleSelect\"\n class=\"hmcts-toolbar-select\"\n title=\"Zoom\"\n tabindex=\"0\"\n data-l10n-id=\"zoom\"\n (change)=\"zoom($event.target.value)\"\n aria-label=\"zoom\"\n [disabled]=\"redactAllInProgress\"\n >\n <option\n #zoomSelect\n id=\"customScaleOption\"\n title=\"\"\n [value]=\"toolbarEvents.zoomValueSubject.value\"\n >\n {{\n toolbarEvents.zoomValueSubject.value * 100\n | number : \"1.0-0\"\n }}%\n </option>\n <option\n *ngFor=\"let zoomScale of zoomScales\"\n title=\"\"\n [value]=\"zoomScale\"\n [attr.data-l10n-id]=\"'page_scale_percent_' + zoomScale * 100\"\n >\n {{ zoomScale * 100 }}%\n </option>\n </select>\n\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 5 ||\n redactAllInProgress\n \"\n id=\"mvPlusBtn\"\n class=\"mv-toolbar__menu-button--zoom-in button-image\"\n (click)=\"stepZoom(0.1)\"\n title=\"Zoom In\"\n data-l10n-id=\"zoom_in\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom In\" | rpxTranslate\n }}</span>\n </button>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"toolbarButtons.showRotate\"\n id=\"mvRotateBtn\"\n #mvRotateBtn\n class=\"mv-toolbar__menu-button--rotate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvRotateBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvRotateBtn']\n \"\n >\n <button\n id=\"mvRotateLeftBtn\"\n class=\"mv-toolbar__menu-button--rotate_left button-image\"\n title=\"Rotate Counterclockwise\"\n data-l10n-id=\"page_rotate_ccw\"\n (click)=\"rotate(270)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvRotateRightBtn\"\n class=\"mv-toolbar__menu-button--rotate_right button-image\"\n title=\"Rotate Clockwise\"\n data-l10n-id=\"page_rotate_cw\"\n (click)=\"rotate(90)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <span>{{ \"Rotate\" | rpxTranslate }}</span>\n </div>\n\n <button\n *ngIf=\"toolbarButtons.showSearchBar\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvSearchBtn\"\n #mvSearchBtn\n title=\"Search\"\n data-l10n-id=\"searchbar\"\n class=\"mv-button mv-toolbar__menu-button--search\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvSearchBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvSearchBtn']\n \"\n aria-pressed=\"false\"\n (click)=\"toggleSearchBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Search\" | rpxTranslate }}</span>\n </button>\n <mv-search-bar\n *ngIf=\"!toolbarEvents.searchBarHidden.getValue()\"\n ></mv-search-bar>\n\n <button\n *ngIf=\"enableICP && toolbarButtons.showPresentationMode && isPdf()\"\n [disabled]=\"icpEnabled || !contentType || redactionEnabled\"\n id=\"mvPresentBtn\"\n #mvPresentBtn\n class=\"mv-button mv-toolbar__menu-button--present\"\n title=\"In-Court Presentation Mode\"\n data-l10n-id=\"icpMode_label\"\n [ngClass]=\"onToolBarOffSetChange('mvPresentBtn')\"\n aria-pressed=\"false\"\n (click)=\"togglePresentBar(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"icpMode_label\">{{\n \"Present\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"enableRedactions && toolbarButtons.showRedact\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvRedactBtn\"\n #mvRedactBtn\n title=\"Redact\"\n data-l10n-id=\"redact\"\n class=\"mv-button mv-toolbar__menu-button--redact\"\n [ngClass]=\"onToolBarOffSetChange('mvRedactBtn')\"\n [attr.aria-expanded]=\"isRedactOpen\"\n (click)=\"toggleRedactBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Redact\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showGrabNDragButton\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvGrabBtn\"\n #mvGrabBtn\n class=\"mv-button mv-toolbar__menu-button--grab\"\n title=\"Grab and drag\"\n [ngClass]=\"onToolBarOffSetChange('mvGrabBtn')\"\n aria-pressed=\"false\"\n (click)=\"toggleGrabNDrag(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Grab and drag\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDownload\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDownloadBtn\"\n #mvDownloadBtn\n class=\"mv-button mv-toolbar__menu-button--download\"\n title=\"Download\"\n data-l10n-id=\"download\"\n [ngClass]=\"onToolBarOffSetChange('mvDownloadBtn')\"\n aria-pressed=\"false\"\n (click)=\"downloadFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Download\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showPrint\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvPrintBtn\"\n #mvPrintBtn\n title=\"Print\"\n data-l10n-id=\"print\"\n class=\"mv-button mv-toolbar__menu-button--print\"\n [ngClass]=\"onToolBarOffSetChange('mvPrintBtn')\"\n aria-pressed=\"false\"\n (click)=\"printFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Print\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"enableAnnotations && toolbarButtons.showCommentSummary\"\n [disabled]=\"redactionEnabled\"\n id=\"mvCommentsBtn\"\n #mvCommentsBtn\n class=\"mv-button mv-toolbar__menu-button--comments\"\n title=\"Comments\"\n data-l10n-id=\"comments\"\n [ngClass]=\"onToolBarOffSetChange('mvCommentsBtn')\"\n [attr.aria-expanded]=\"isCommentsOpen\"\n (click)=\"toggleCommentsPanel(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Comments\" | rpxTranslate }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\"></div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
6496
|
+
args: [{ selector: 'mv-main-toolbar', template: "<div class=\"toolbar\">\n <div id=\"toolbarContainer\">\n <div class=\"mv-toolbar__container\">\n <div #mvToolbar class=\"mv-toolbar\" [class.notSupported]=\"!contentType\">\n <!-- The mvToolbarMain div contains all toolbar buttons except the \"More options\" button. This allows for calculation of the available space to display buttons -->\n <div id=\"mvToolbarMain\" class=\"mv-toolbar-main\" #mvToolbarMain>\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n <!-- The mvToolbarMoreOptions div contains the \"More options\" toolbar button (and the overlay template for the dropdown menu).\n The space occupied by the button (if visible) is excluded from the toolbar space available calculation -->\n <div id=\"mvToolbarMoreOptions\" class=\"mv-toolbar-more-options\">\n <button\n id=\"mvMoreOptionsBtn\"\n class=\"mv-button mv-toolbar__menu-button--more-options mv-tooltip\"\n [class.mv-toolbar__menu-button--more-options__hidden]=\"\n mvToolbar.offsetWidth >= allButtonsWidth\n \"\n [attr.aria-expanded]=\"isDropdownMenuOpen\"\n [attr.data-tooltip]=\"'More options' | rpxTranslate\"\n (click)=\"toggleMoreOptions()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [disabled]=\"redactAllInProgress\"\n >\n <span>{{ \"More options\" | rpxTranslate }}</span>\n </button>\n <!-- This template displays the overlay content for the dropdown menu and is connected to the \"More options\" button -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownMenuOpen\"\n [cdkConnectedOverlayPositions]=\"dropdownMenuPositions\"\n >\n <div class=\"dropdown-menu\" #dropdownMenu tabindex=\"0\">\n <ng-container *ngTemplateOutlet=\"menuItems\"></ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n <div id=\"mvMenuItems\" #mvMenuItems>\n <ng-template #menuItems>\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvIndexBtn\"\n data-l10n-id=\"index\"\n [attr.data-tooltip]=\"'Index' | rpxTranslate\"\n #mvIndexBtn\n class=\"mv-button mv-toolbar__menu-button--index mv-tooltip\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvIndexBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvIndexBtn']\n \"\n [attr.aria-expanded]=\"isIndexOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleIndexSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Index\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showSidebar\"\n id=\"mvBookmarksBtn\"\n data-l10n-id=\"bookmarks\"\n [attr.data-tooltip]=\"'Bookmarks' | rpxTranslate\"\n #mvBookmarksBtn\n [ngClass]=\"{\n 'mv-button mv-tooltip mv-toolbar__menu-button--bookmarks': true,\n 'button-hidden-on-toolbar':\n mvToolbarMain.offsetWidth <\n widthRequiredForBtn['mvBookmarksBtn'],\n 'button-hidden-on-dropdown':\n mvToolbarMain.offsetWidth >=\n widthRequiredForBtn['mvBookmarksBtn']\n }\"\n [attr.aria-expanded]=\"isBookmarksOpen\"\n [disabled]=\"redactAllInProgress\"\n (click)=\"toggleBookmarksSideBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Bookmarks\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDrawButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDrawBtn\"\n #mvDrawBtn\n class=\"mv-button mv-toolbar__menu-button--draw mv-tooltip\"\n [attr.data-tooltip]=\"'Draw a box' | rpxTranslate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvDrawBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvDrawBtn']\n \"\n [class.toggled]=\"toolbarEvents.drawModeSubject | async\"\n aria-pressed=\"false\"\n data-l10n-id=\"toggleDrawButton\"\n (click)=\"onClickDrawToggle(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"draw_label\">{{\n \"Draw a box\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showHighlightButton\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvHighlightBtn\"\n #mvHighlightBtn\n class=\"mv-button mv-toolbar__menu-button--highlight mv-tooltip\"\n [attr.data-tooltip]=\"'Highlight' | rpxTranslate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvHighlightBtn']\n \"\n [class.toggled]=\"toolbarEvents.highlightToolbarSubject | async\"\n aria-pressed=\"false\"\n (click)=\"onClickHighlightToggle(); isDropdownMenuOpen = false\"\n data-l10n-id=\"toggleHighlightButton\"\n >\n <span data-l10n-id=\"highlight_label\">{{\n \"Highlight\" | rpxTranslate\n }}</span>\n </button>\n\n <ng-container *ngIf=\"toolbarButtons.showNavigation\">\n <div\n id=\"mvPageBtn\"\n #mvPageBtn\n class=\"mv-toolbar__menu-button--page\"\n [attr.data-tooltip]=\"'Page' | rpxTranslate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvPageBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvPageBtn']\n \"\n >\n <span>{{ \"Page\" | rpxTranslate }}</span>\n\n <button\n id=\"mvUpBtn\"\n [disabled]=\"pageNumber === 1 || redactAllInProgress\"\n [attr.data-tooltip]=\"'Previous page' | rpxTranslate\"\n [attr.aria-label]=\"'Previous page' | rpxTranslate\"\n class=\"mv-toolbar__menu-button--up button-image mv-tooltip\"\n data-l10n-id=\"previous\"\n (click)=\"decreasePageNumber()\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvDownBtn\"\n [disabled]=\"pageNumber === pageCount || redactAllInProgress\"\n [attr.data-tooltip]=\"'Next page' | rpxTranslate\"\n [attr.aria-label]=\"'Next page' | rpxTranslate\"\n class=\"mv-toolbar__menu-button--down button-image mv-tooltip\"\n data-l10n-id=\"next\"\n (click)=\"increasePageNumber()\"\n >\n <span></span>\n </button>\n\n <span class=\"mv-tooltip\" [attr.data-tooltip]=\"'Page number' | rpxTranslate\">\n <input\n type=\"number\"\n id=\"pageNumber\"\n class=\"hmcts-toolbar-input govuk-input--width-2\"\n [attr.aria-label]=\"'Page number' | rpxTranslate\"\n value=\"1\"\n size=\"4\"\n min=\"1\"\n [value]=\"pageNumber\"\n tabindex=\"0\"\n data-l10n-id=\"page\"\n (change)=\"onPageNumberInputChange(pageNumberInput.value)\"\n [disabled]=\"redactAllInProgress\"\n #pageNumberInput\n />\n </span>\n <span id=\"numPages\" class=\"toolbarLabel\">/ {{ pageCount }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"toolbarButtons.showZoom\">\n <div\n id=\"mvZoomBtn\"\n #mvZoomBtn\n class=\"mv-toolbar__menu-button--zoom\"\n aria-pressed=\"false\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvZoomBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvZoomBtn']\n \"\n >\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 0.1 ||\n redactAllInProgress\n \"\n id=\"mvMinusBtn\"\n class=\"mv-toolbar__menu-button--zoom-out button-image mv-tooltip\"\n [attr.data-tooltip]=\"'Zoom out' | rpxTranslate\"\n data-l10n-id=\"zoom_out\"\n (click)=\"stepZoom(-0.1)\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom Out\" | rpxTranslate\n }}</span>\n </button>\n <span class=\"mv-tooltip\" [attr.data-tooltip]=\"'Zoom' | rpxTranslate\"> \n <select\n id=\"scaleSelect\"\n class=\"hmcts-toolbar-select\"\n data-l10n-id=\"zoom\"\n (change)=\"zoom($event.target.value)\"\n tabindex=\"0\"\n [disabled]=\"redactAllInProgress\"\n >\n <option\n #zoomSelect\n id=\"customScaleOption\"\n title=\"\"\n [value]=\"toolbarEvents.zoomValueSubject.value\"\n >\n {{\n toolbarEvents.zoomValueSubject.value * 100\n | number : \"1.0-0\"\n }}%\n </option>\n <option\n *ngFor=\"let zoomScale of zoomScales\"\n title=\"\"\n [value]=\"zoomScale\"\n [attr.data-l10n-id]=\"'page_scale_percent_' + zoomScale * 100\"\n >\n {{ zoomScale * 100 }}%\n </option>\n </select>\n </span>\n <button\n [disabled]=\"\n toolbarEvents.zoomValueSubject.value === 5 ||\n redactAllInProgress\n \"\n id=\"mvPlusBtn\"\n class=\"mv-toolbar__menu-button--zoom-in button-image mv-tooltip\"\n (click)=\"stepZoom(0.1)\"\n [attr.data-tooltip]=\"'Zoom in' | rpxTranslate\"\n data-l10n-id=\"zoom_in\"\n >\n <span class=\"mv-toolbar__menu-button--zoom-out-text\">{{\n \"Zoom In\" | rpxTranslate\n }}</span>\n </button>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"toolbarButtons.showRotate\"\n id=\"mvRotateBtn\"\n #mvRotateBtn\n class=\"mv-toolbar__menu-button--rotate\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvRotateBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvRotateBtn']\n \"\n >\n <button\n id=\"mvRotateLeftBtn\"\n class=\"mv-toolbar__menu-button--rotate_left button-image mv-tooltip\"\n [attr.aria-label]=\"'Rotate counterclockwise' | rpxTranslate\"\n [attr.data-tooltip]=\"'Rotate counterclockwise' | rpxTranslate\"\n data-l10n-id=\"page_rotate_ccw\"\n (click)=\"rotate(270)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <button\n id=\"mvRotateRightBtn\"\n class=\"mv-toolbar__menu-button--rotate_right button-image mv-tooltip\"\n [attr.aria-label]=\"'Rotate clockwise' | rpxTranslate\"\n [attr.data-tooltip]=\"'Rotate clockwise' | rpxTranslate\"\n data-l10n-id=\"page_rotate_cw\"\n (click)=\"rotate(90)\"\n [disabled]=\"redactAllInProgress\"\n >\n <span></span>\n </button>\n <span>{{ \"Rotate\" | rpxTranslate }}</span>\n </div>\n\n <button\n *ngIf=\"toolbarButtons.showSearchBar\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvSearchBtn\"\n #mvSearchBtn\n [attr.data-tooltip]=\"'Search' | rpxTranslate\"\n data-l10n-id=\"searchbar\"\n class=\"mv-button mv-toolbar__menu-button--search mv-tooltip\"\n [class.button-hidden-on-toolbar]=\"\n mvToolbarMain.offsetWidth < widthRequiredForBtn['mvSearchBtn']\n \"\n [class.button-hidden-on-dropdown]=\"\n mvToolbarMain.offsetWidth >= widthRequiredForBtn['mvSearchBtn']\n \"\n aria-pressed=\"false\"\n (click)=\"toggleSearchBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Search\" | rpxTranslate }}</span>\n </button>\n <mv-search-bar\n *ngIf=\"!toolbarEvents.searchBarHidden.getValue()\"\n ></mv-search-bar>\n\n <button\n *ngIf=\"enableICP && toolbarButtons.showPresentationMode && isPdf()\"\n [disabled]=\"icpEnabled || !contentType || redactionEnabled\"\n id=\"mvPresentBtn\"\n #mvPresentBtn\n class=\"mv-button mv-toolbar__menu-button--present mv-tooltip\"\n [attr.data-tooltip]=\"'In-Court presentation mode' | rpxTranslate\"\n data-l10n-id=\"icpMode_label\"\n [ngClass]=\"onToolBarOffSetChange('mvPresentBtn')\"\n aria-pressed=\"false\"\n (click)=\"togglePresentBar(); isDropdownMenuOpen = false\"\n >\n <span data-l10n-id=\"icpMode_label\">{{\n \"Present\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"enableRedactions && toolbarButtons.showRedact\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvRedactBtn\"\n #mvRedactBtn\n [attr.data-tooltip]=\"'Redact' | rpxTranslate\"\n data-l10n-id=\"redact\"\n class=\"mv-button mv-toolbar__menu-button--redact mv-tooltip\"\n [ngClass]=\"onToolBarOffSetChange('mvRedactBtn')\"\n [attr.aria-expanded]=\"isRedactOpen\"\n (click)=\"toggleRedactBar(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Redact\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showGrabNDragButton\"\n [disabled]=\"icpEnabled || redactAllInProgress\"\n id=\"mvGrabBtn\"\n #mvGrabBtn\n class=\"mv-button mv-toolbar__menu-button--grab mv-tooltip\"\n data-tooltip=\"Grab and drag\"\n [ngClass]=\"onToolBarOffSetChange('mvGrabBtn')\"\n aria-pressed=\"false\"\n (click)=\"toggleGrabNDrag(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Grab and drag\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showDownload\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvDownloadBtn\"\n #mvDownloadBtn\n class=\"mv-button mv-toolbar__menu-button--download mv-tooltip\"\n [attr.data-tooltip]=\"'Download' | rpxTranslate\"\n data-l10n-id=\"download\"\n [ngClass]=\"onToolBarOffSetChange('mvDownloadBtn')\"\n aria-pressed=\"false\"\n (click)=\"downloadFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Download\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showPrint\"\n [disabled]=\"icpEnabled || redactionEnabled\"\n id=\"mvPrintBtn\"\n #mvPrintBtn\n data-l10n-id=\"print\"\n aria-label=\"Print\"\n [attr.data-tooltip]=\"'Print' | rpxTranslate\"\n data-l10n-id=\"print\"\n class=\"mv-button mv-toolbar__menu-button--print mv-tooltip\"\n [ngClass]=\"onToolBarOffSetChange('mvPrintBtn')\"\n aria-pressed=\"false\"\n (click)=\"printFile(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Print\" | rpxTranslate }}</span>\n </button>\n\n <button\n *ngIf=\"enableAnnotations && toolbarButtons.showCommentSummary\"\n [disabled]=\"redactionEnabled\"\n id=\"mvCommentsBtn\"\n #mvCommentsBtn\n class=\"mv-button mv-toolbar__menu-button--comments mv-tooltip\"\n [attr.data-tooltip]=\"'Comments' | rpxTranslate\"\n data-l10n-id=\"comments\"\n [ngClass]=\"onToolBarOffSetChange('mvCommentsBtn')\"\n [attr.aria-expanded]=\"isCommentsOpen\"\n (click)=\"toggleCommentsPanel(); isDropdownMenuOpen = false\"\n >\n <span>{{ \"Comments\" | rpxTranslate }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\"></div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
5995
6497
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: ToolbarButtonVisibilityService }, { type: i0.ChangeDetectorRef }, { type: NumberHelperService }, { type: IcpEventService }], propDecorators: { enableAnnotations: [{
|
|
5996
6498
|
type: Input
|
|
5997
6499
|
}], enableRedactions: [{
|
|
@@ -6068,12 +6570,12 @@ class RedactionToolbarComponent {
|
|
|
6068
6570
|
subscription.unsubscribe();
|
|
6069
6571
|
}
|
|
6070
6572
|
}
|
|
6071
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6072
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6573
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionToolbarComponent, deps: [{ token: ToolbarEventService }, { token: ToolbarButtonVisibilityService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6574
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RedactionToolbarComponent, selector: "mv-redaction-toolbar", inputs: { showRedactSearch: "showRedactSearch" }, ngImport: i0, template: "<div class=\"redaction\">\n <label class=\"govuk-label redaction-title\" data-l10n-id=\"redaction_options\">{{\n \"Redaction options\" | rpxTranslate\n }}</label>\n <button\n id=\"toggleDrawButton\"\n class=\"mv-button redaction-button--draw mv-tooltip\"\n [attr.data-tooltip]=\"'Draw a box' | rpxTranslate\"\n data-l10n-id=\"toggleDrawButton\"\n (click)=\"toggleDrawMode()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"toggleDrawButton_label\">{{\n \"Draw a box\" | rpxTranslate\n }}</span>\n </button>\n <button\n id=\"redactPageButton\"\n class=\"mv-button redaction-button--redact-page mv-tooltip\"\n [attr.data-tooltip]=\"'Redact page' | rpxTranslate\"\n data-l10n-id=\"redactPageButton\"\n (click)=\"redactPage()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"redactPageButton_label\">{{\n \"Redact page\" | rpxTranslate\n }}</span>\n </button>\n <button\n *ngIf=\"showRedactSearch\"\n id=\"mvRedactFromSearchBtn\"\n class=\"mv-button redaction-button--search mv-tooltip\"\n [attr.data-tooltip]=\"'From search' | rpxTranslate\"\n data-l10n-id=\"fromSearchButton\"\n (click)=\"onRedactAllSearch()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span style=\"width: 5rem\" data-l10n-id=\"fromSearchButton_label\">{{\n \"From search\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showHighlightButton\"\n id=\"toggleHighlightButton\"\n class=\"mv-button redaction-button--redact mv-tooltip\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Redact text' | rpxTranslate\"\n data-l10n-id=\"toggleTextRedactionButton\"\n (click)=\"toggleTextRedactionMode()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"toggleTextRedactionButton_label\">{{\n \"Redact text\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n [disabled]=\"!hasRedactions || redactionAllInProgress\"\n id=\"mvClearBtn\"\n #mvClearBtn\n class=\"mv-button redaction-button--clear mv-tooltip\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Clear all' | rpxTranslate\"\n data-l10n-id=\"toggleClearAllButton\"\n (click)=\"unmarkAll()\"\n >\n <span data-l10n-id=\"Clear all\">{{ \"Clear all\" | rpxTranslate }}</span>\n </button>\n\n <button\n [disabled]=\"!hasRedactions || redactionAllInProgress\"\n id=\"mvPreviewBtn\"\n class=\"mv-button mv-tooltip\"\n [class.redaction-button--preview]=\"!preview\"\n [class.redaction-button--hide-preview]=\"preview\"\n redaction-button--preview\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Preview' | rpxTranslate\"\n data-l10n-id=\"togglePreviewButton\"\n (click)=\"togglePreview()\"\n >\n <span *ngIf=\"!preview\" data-l10n-id=\"redaction-preview_label\">{{\n \"Preview\" | rpxTranslate\n }}</span>\n <span *ngIf=\"preview\" data-l10n-id=\"redaction-hide-preview_label\">{{\n \"Hide preview\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n [disabled]=\"!hasRedactions || redactionAllInProgress\"\n id=\"mvRedactBtn\"\n class=\"mv-button redaction-button--download mv-tooltip\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Save document' | rpxTranslate\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"redact()\"\n >\n <span data-l10n-id=\"Save Document\">{{\n \"Save document\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button redaction-button--close mv-tooltip\"\n [attr.data-tooltip]=\"'Close Redaction' | rpxTranslate\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"toggleRedactBar()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"Close Redaction\">{{\n \"Close Redaction\" | rpxTranslate\n }}</span>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TooltipDismissDirective, selector: ".mv-tooltip, [mvTooltipDismiss]" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
6073
6575
|
}
|
|
6074
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionToolbarComponent, decorators: [{
|
|
6075
6577
|
type: Component,
|
|
6076
|
-
args: [{ selector: 'mv-redaction-toolbar',
|
|
6578
|
+
args: [{ selector: 'mv-redaction-toolbar', template: "<div class=\"redaction\">\n <label class=\"govuk-label redaction-title\" data-l10n-id=\"redaction_options\">{{\n \"Redaction options\" | rpxTranslate\n }}</label>\n <button\n id=\"toggleDrawButton\"\n class=\"mv-button redaction-button--draw mv-tooltip\"\n [attr.data-tooltip]=\"'Draw a box' | rpxTranslate\"\n data-l10n-id=\"toggleDrawButton\"\n (click)=\"toggleDrawMode()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"toggleDrawButton_label\">{{\n \"Draw a box\" | rpxTranslate\n }}</span>\n </button>\n <button\n id=\"redactPageButton\"\n class=\"mv-button redaction-button--redact-page mv-tooltip\"\n [attr.data-tooltip]=\"'Redact page' | rpxTranslate\"\n data-l10n-id=\"redactPageButton\"\n (click)=\"redactPage()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"redactPageButton_label\">{{\n \"Redact page\" | rpxTranslate\n }}</span>\n </button>\n <button\n *ngIf=\"showRedactSearch\"\n id=\"mvRedactFromSearchBtn\"\n class=\"mv-button redaction-button--search mv-tooltip\"\n [attr.data-tooltip]=\"'From search' | rpxTranslate\"\n data-l10n-id=\"fromSearchButton\"\n (click)=\"onRedactAllSearch()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span style=\"width: 5rem\" data-l10n-id=\"fromSearchButton_label\">{{\n \"From search\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n *ngIf=\"toolbarButtons.showHighlightButton\"\n id=\"toggleHighlightButton\"\n class=\"mv-button redaction-button--redact mv-tooltip\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Redact text' | rpxTranslate\"\n data-l10n-id=\"toggleTextRedactionButton\"\n (click)=\"toggleTextRedactionMode()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"toggleTextRedactionButton_label\">{{\n \"Redact text\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n [disabled]=\"!hasRedactions || redactionAllInProgress\"\n id=\"mvClearBtn\"\n #mvClearBtn\n class=\"mv-button redaction-button--clear mv-tooltip\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Clear all' | rpxTranslate\"\n data-l10n-id=\"toggleClearAllButton\"\n (click)=\"unmarkAll()\"\n >\n <span data-l10n-id=\"Clear all\">{{ \"Clear all\" | rpxTranslate }}</span>\n </button>\n\n <button\n [disabled]=\"!hasRedactions || redactionAllInProgress\"\n id=\"mvPreviewBtn\"\n class=\"mv-button mv-tooltip\"\n [class.redaction-button--preview]=\"!preview\"\n [class.redaction-button--hide-preview]=\"preview\"\n redaction-button--preview\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Preview' | rpxTranslate\"\n data-l10n-id=\"togglePreviewButton\"\n (click)=\"togglePreview()\"\n >\n <span *ngIf=\"!preview\" data-l10n-id=\"redaction-preview_label\">{{\n \"Preview\" | rpxTranslate\n }}</span>\n <span *ngIf=\"preview\" data-l10n-id=\"redaction-hide-preview_label\">{{\n \"Hide preview\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n [disabled]=\"!hasRedactions || redactionAllInProgress\"\n id=\"mvRedactBtn\"\n class=\"mv-button redaction-button--download mv-tooltip\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'Save document' | rpxTranslate\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"redact()\"\n >\n <span data-l10n-id=\"Save Document\">{{\n \"Save document\" | rpxTranslate\n }}</span>\n </button>\n\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button redaction-button--close mv-tooltip\"\n [attr.data-tooltip]=\"'Close Redaction' | rpxTranslate\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"toggleRedactBar()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"Close Redaction\">{{\n \"Close Redaction\" | rpxTranslate\n }}</span>\n </button>\n</div>\n" }]
|
|
6077
6579
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: ToolbarButtonVisibilityService }, { type: i1.Store }], propDecorators: { showRedactSearch: [{
|
|
6078
6580
|
type: Input
|
|
6079
6581
|
}] } });
|
|
@@ -6105,12 +6607,12 @@ class IcpToolbarComponent {
|
|
|
6105
6607
|
showParticipantsList() {
|
|
6106
6608
|
this.toolbarEventService.toggleParticipantsList(!this.icpEventService.participantsListVisible.getValue());
|
|
6107
6609
|
}
|
|
6108
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6109
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6610
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpToolbarComponent, deps: [{ token: ToolbarEventService }, { token: i1.Store }, { token: IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6611
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IcpToolbarComponent, selector: "mv-icp-toolbar", ngImport: i0, template: "<div id=\"icp-toolbar\" class=\"icpMode\">\n <div id=\"toolbar-title\">\n <label class=\"govuk-label\" data-l10n-id=\"digitalEvidence_label\">Digital evidence presentation</label>\n </div>\n\n <div id=\"presentation-mode\">\n <div class=\"item-label\">\n <label class=\"govuk-label\" data-l10n-id=\"icpInfo_label\">You are in presentation mode</label>\n </div>\n <div class=\"item-button\">\n <button class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" tabindex=\"0\"\n title=\"Leave presentation\" (click)=\"leaveIcpSession()\">\n <span data-l10n-id=\"icp-leave-presentation_label\">Leave presentation</span>\n </button>\n </div>\n </div>\n\n <div id=\"presenter-info\">\n <div class=\"item-label\">\n <label class=\"govuk-label\" *ngIf=\"!presenterName\" data-l10n-id=\"noPresenter_label\">Waiting for presenter</label>\n <label class=\"govuk-label\" *ngIf=\"presenterName && isPresenter\" data-l10n-id=\"isPresenter_label\">You are\n presenting</label>\n <label class=\"govuk-label\" *ngIf=\"presenterName && !isPresenter\"\n data-l10n-id=\"otherPresenter_label\">{{ presenterName | titlecase }}\n is presenting</label>\n </div>\n <div class=\"item-button\">\n <button *ngIf=\"!presenterName\" class=\"govuk-button\" id=\"icp-present\" tabindex=\"0\" title=\"Present\"\n (click)=\"present()\">\n <span data-l10n-id=\"icp-present_label\">Start presenting</span>\n </button>\n <button *ngIf=\"isPresenter\" class=\"govuk-button govuk-button--warning\" id=\"icp-stop-presenting\" tabindex=\"0\"\n title=\"Stop presenting\" (click)=\"stopPresenting()\">\n <span data-l10n-id=\"icp-stop-presenting_label\">Stop Presenting</span>\n </button>\n </div>\n </div>\n\n <div id=\"participant-list\">\n <button class=\"govuk-button govuk-button--secondary\" id=\"icp-participants-list\" tabindex=\"0\"\n title=\"Participants list\" (click)=\"showParticipantsList()\">\n <span\n data-l10n-id=\"icp-stop-presenting_label\">{{(icpEventService.participantsListVisible | async) ? 'Hide': 'Show'}}\n participants</span>\n </button>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] }); }
|
|
6110
6612
|
}
|
|
6111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6613
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpToolbarComponent, decorators: [{
|
|
6112
6614
|
type: Component,
|
|
6113
|
-
args: [{ selector: 'mv-icp-toolbar',
|
|
6615
|
+
args: [{ selector: 'mv-icp-toolbar', template: "<div id=\"icp-toolbar\" class=\"icpMode\">\n <div id=\"toolbar-title\">\n <label class=\"govuk-label\" data-l10n-id=\"digitalEvidence_label\">Digital evidence presentation</label>\n </div>\n\n <div id=\"presentation-mode\">\n <div class=\"item-label\">\n <label class=\"govuk-label\" data-l10n-id=\"icpInfo_label\">You are in presentation mode</label>\n </div>\n <div class=\"item-button\">\n <button class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" tabindex=\"0\"\n title=\"Leave presentation\" (click)=\"leaveIcpSession()\">\n <span data-l10n-id=\"icp-leave-presentation_label\">Leave presentation</span>\n </button>\n </div>\n </div>\n\n <div id=\"presenter-info\">\n <div class=\"item-label\">\n <label class=\"govuk-label\" *ngIf=\"!presenterName\" data-l10n-id=\"noPresenter_label\">Waiting for presenter</label>\n <label class=\"govuk-label\" *ngIf=\"presenterName && isPresenter\" data-l10n-id=\"isPresenter_label\">You are\n presenting</label>\n <label class=\"govuk-label\" *ngIf=\"presenterName && !isPresenter\"\n data-l10n-id=\"otherPresenter_label\">{{ presenterName | titlecase }}\n is presenting</label>\n </div>\n <div class=\"item-button\">\n <button *ngIf=\"!presenterName\" class=\"govuk-button\" id=\"icp-present\" tabindex=\"0\" title=\"Present\"\n (click)=\"present()\">\n <span data-l10n-id=\"icp-present_label\">Start presenting</span>\n </button>\n <button *ngIf=\"isPresenter\" class=\"govuk-button govuk-button--warning\" id=\"icp-stop-presenting\" tabindex=\"0\"\n title=\"Stop presenting\" (click)=\"stopPresenting()\">\n <span data-l10n-id=\"icp-stop-presenting_label\">Stop Presenting</span>\n </button>\n </div>\n </div>\n\n <div id=\"participant-list\">\n <button class=\"govuk-button govuk-button--secondary\" id=\"icp-participants-list\" tabindex=\"0\"\n title=\"Participants list\" (click)=\"showParticipantsList()\">\n <span\n data-l10n-id=\"icp-stop-presenting_label\">{{(icpEventService.participantsListVisible | async) ? 'Hide': 'Show'}}\n participants</span>\n </button>\n </div>\n</div>" }]
|
|
6114
6616
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: i1.Store }, { type: IcpEventService }] });
|
|
6115
6617
|
|
|
6116
6618
|
class HighlightToolbarComponent {
|
|
@@ -6143,12 +6645,12 @@ class HighlightToolbarComponent {
|
|
|
6143
6645
|
subscription.unsubscribe();
|
|
6144
6646
|
}
|
|
6145
6647
|
}
|
|
6146
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6147
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6648
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightToolbarComponent, deps: [{ token: ToolbarEventService }, { token: ToolbarButtonVisibilityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6649
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HighlightToolbarComponent, selector: "mv-highlight-toolbar", ngImport: i0, template: "<div class=\"redaction\">\n <label class=\"govuk-label redaction-title\" data-l10n-id=\"redaction_options\"\n >{{ \"Highlight options\" | rpxTranslate }}</label\n >\n\n <button\n id=\"mvDrawBtn\"\n #mvDrawBtn\n class=\"mv-button mv-toolbar__menu-button--draw mv-tooltip\"\n [attr.data-tooltip]=\"'Draw a box' | rpxTranslate\"\n [class.toggled]=\"toolbarEventService.drawModeSubject | async\"\n aria-pressed=\"false\"\n data-l10n-id=\"mvDrawBtn\"\n (click)=\"onClickDrawToggle()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"draw_label\">{{ \"Draw a box\" | rpxTranslate }}</span>\n </button>\n\n <button\n id=\"highlightTextBtn\"\n class=\"mv-button mv-toolbar__menu-button--highlight mv-tooltip\"\n [attr.data-tooltip]=\"'Highlight text' | rpxTranslate\"\n data-l10n-id=\"highlightTextBtn\"\n (click)=\"onHighlight()\"\n [class.toggled]=\"toolbarEventService.highlightModeSubject | async\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"highlightTextBtn_label\">{{ \"Highlight text\" | rpxTranslate }}</span>\n </button>\n\n <button\n id=\"mvHighlightFromSearchBtn\"\n [attr.data-tooltip]=\"'From search' | rpxTranslate\"\n data-l10n-id=\"fromSearchButton\"\n class=\"mv-button redaction-button--search mv-tooltip\"\n (click)=\"onAllSearch()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span style=\"width: 5rem\" data-l10n-id=\"fromSearchButton_label\"\n >{{ \"From search\" | rpxTranslate }}</span\n >\n </button>\n\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button redaction-button--close mv-tooltip\"\n [attr.data-tooltip]=\"'Close highlight' | rpxTranslate\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onClose()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"Close Redaction\">{{ \"Close Highlight\" | rpxTranslate }}</span>\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: TooltipDismissDirective, selector: ".mv-tooltip, [mvTooltipDismiss]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
6148
6650
|
}
|
|
6149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6651
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightToolbarComponent, decorators: [{
|
|
6150
6652
|
type: Component,
|
|
6151
|
-
args: [{ selector: 'mv-highlight-toolbar',
|
|
6653
|
+
args: [{ selector: 'mv-highlight-toolbar', template: "<div class=\"redaction\">\n <label class=\"govuk-label redaction-title\" data-l10n-id=\"redaction_options\"\n >{{ \"Highlight options\" | rpxTranslate }}</label\n >\n\n <button\n id=\"mvDrawBtn\"\n #mvDrawBtn\n class=\"mv-button mv-toolbar__menu-button--draw mv-tooltip\"\n [attr.data-tooltip]=\"'Draw a box' | rpxTranslate\"\n [class.toggled]=\"toolbarEventService.drawModeSubject | async\"\n aria-pressed=\"false\"\n data-l10n-id=\"mvDrawBtn\"\n (click)=\"onClickDrawToggle()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"draw_label\">{{ \"Draw a box\" | rpxTranslate }}</span>\n </button>\n\n <button\n id=\"highlightTextBtn\"\n class=\"mv-button mv-toolbar__menu-button--highlight mv-tooltip\"\n [attr.data-tooltip]=\"'Highlight text' | rpxTranslate\"\n data-l10n-id=\"highlightTextBtn\"\n (click)=\"onHighlight()\"\n [class.toggled]=\"toolbarEventService.highlightModeSubject | async\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"highlightTextBtn_label\">{{ \"Highlight text\" | rpxTranslate }}</span>\n </button>\n\n <button\n id=\"mvHighlightFromSearchBtn\"\n [attr.data-tooltip]=\"'From search' | rpxTranslate\"\n data-l10n-id=\"fromSearchButton\"\n class=\"mv-button redaction-button--search mv-tooltip\"\n (click)=\"onAllSearch()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span style=\"width: 5rem\" data-l10n-id=\"fromSearchButton_label\"\n >{{ \"From search\" | rpxTranslate }}</span\n >\n </button>\n\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button redaction-button--close mv-tooltip\"\n [attr.data-tooltip]=\"'Close highlight' | rpxTranslate\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onClose()\"\n [disabled]=\"redactionAllInProgress\"\n >\n <span data-l10n-id=\"Close Redaction\">{{ \"Close Highlight\" | rpxTranslate }}</span>\n </button>\n</div>\n" }]
|
|
6152
6654
|
}], ctorParameters: () => [{ type: ToolbarEventService }, { type: ToolbarButtonVisibilityService }] });
|
|
6153
6655
|
|
|
6154
6656
|
/*
|
|
@@ -6159,14 +6661,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6159
6661
|
* */
|
|
6160
6662
|
class GovUkErrorMessageComponent {
|
|
6161
6663
|
constructor() { }
|
|
6162
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6163
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6664
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6665
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GovUkErrorMessageComponent, selector: " mv-gov-uk-error-message", inputs: { config: "config", errorMessage: "errorMessage" }, ngImport: i0, template: `
|
|
6164
6666
|
<span class="govuk-error-message" [id]="config.id + '-error'" *ngFor="let message of errorMessage?.messages">
|
|
6165
6667
|
<span class="govuk-visually-hidden">Error:</span>{{message}}
|
|
6166
6668
|
</span>
|
|
6167
6669
|
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
6168
6670
|
}
|
|
6169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6671
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkErrorMessageComponent, decorators: [{
|
|
6170
6672
|
type: Component,
|
|
6171
6673
|
args: [{
|
|
6172
6674
|
selector: ' mv-gov-uk-error-message',
|
|
@@ -6174,8 +6676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6174
6676
|
<span class="govuk-error-message" [id]="config.id + '-error'" *ngFor="let message of errorMessage?.messages">
|
|
6175
6677
|
<span class="govuk-visually-hidden">Error:</span>{{message}}
|
|
6176
6678
|
</span>
|
|
6177
|
-
|
|
6178
|
-
standalone: false
|
|
6679
|
+
`
|
|
6179
6680
|
}]
|
|
6180
6681
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
6181
6682
|
type: Input
|
|
@@ -6195,8 +6696,8 @@ class GovUkFieldsetComponent {
|
|
|
6195
6696
|
setDescribedBy() {
|
|
6196
6697
|
return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);
|
|
6197
6698
|
}
|
|
6198
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6199
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6699
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkFieldsetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6700
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GovUkFieldsetComponent, selector: "mv-gov-uk-fieldset", inputs: { config: "config", isHeading: "isHeading", errorMessage: "errorMessage" }, ngImport: i0, template: `
|
|
6200
6701
|
<fieldset class="govuk-fieldset" [attr.aria-describedby]="setDescribedBy()">
|
|
6201
6702
|
<legend [class]="config.classes + ' govuk-fieldset__legend'" *ngIf="!isHeading">
|
|
6202
6703
|
{{config.legend}}
|
|
@@ -6213,7 +6714,7 @@ class GovUkFieldsetComponent {
|
|
|
6213
6714
|
</fieldset>
|
|
6214
6715
|
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
6215
6716
|
}
|
|
6216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkFieldsetComponent, decorators: [{
|
|
6217
6718
|
type: Component,
|
|
6218
6719
|
args: [{
|
|
6219
6720
|
selector: 'mv-gov-uk-fieldset',
|
|
@@ -6232,8 +6733,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6232
6733
|
</span>
|
|
6233
6734
|
<ng-content></ng-content>
|
|
6234
6735
|
</fieldset>
|
|
6235
|
-
|
|
6236
|
-
standalone: false
|
|
6736
|
+
`
|
|
6237
6737
|
}]
|
|
6238
6738
|
}], propDecorators: { config: [{
|
|
6239
6739
|
type: Input
|
|
@@ -6251,8 +6751,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6251
6751
|
* */
|
|
6252
6752
|
class GovUkLabelComponent {
|
|
6253
6753
|
constructor() { }
|
|
6254
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6255
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6754
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6755
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GovUkLabelComponent, selector: "mv-gov-label", inputs: { config: "config" }, ngImport: i0, template: `<h1 *ngIf="config.isPageHeading else noHeading">
|
|
6256
6756
|
<label *ngIf="config.label" [class]="config.classes + ' govuk-label'"
|
|
6257
6757
|
[for]="config.id" [innerHTML]="config.label">
|
|
6258
6758
|
</label>
|
|
@@ -6264,7 +6764,7 @@ class GovUkLabelComponent {
|
|
|
6264
6764
|
</ng-template>
|
|
6265
6765
|
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
6266
6766
|
}
|
|
6267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkLabelComponent, decorators: [{
|
|
6268
6768
|
type: Component,
|
|
6269
6769
|
args: [{
|
|
6270
6770
|
selector: 'mv-gov-label',
|
|
@@ -6278,8 +6778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6278
6778
|
[for]="config.id" [innerHTML]="config.label">
|
|
6279
6779
|
</label>
|
|
6280
6780
|
</ng-template>
|
|
6281
|
-
|
|
6282
|
-
standalone: false
|
|
6781
|
+
`
|
|
6283
6782
|
}]
|
|
6284
6783
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
6285
6784
|
type: Input
|
|
@@ -6292,12 +6791,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6292
6791
|
* displaying errorMessage messages
|
|
6293
6792
|
* */
|
|
6294
6793
|
class GovUkDateComponent {
|
|
6295
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6296
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6794
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6795
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GovUkDateComponent, selector: "mv-gov-uk-date", inputs: { config: "config", errorMessage: "errorMessage", formGroup: "formGroup" }, ngImport: i0, template: "<div\n class=\"govuk-form-group\"\n [ngClass]=\"{ 'govuk-form-group--error': errorMessage?.isInvalid }\"\n [formGroup]=\"formGroup\"\n>\n <mv-gov-uk-fieldset\n [config]=\"{\n legend: config.legend,\n classes: 'govuk-label--m',\n id: config.id,\n hint: ' For example, 12 11 2007'\n }\"\n [isHeading]=\"false\"\n [errorMessage]=\"errorMessage\"\n >\n <mv-gov-uk-error-message\n [config]=\"{ id: 'passport' }\"\n *ngIf=\"errorMessage.isInvalid\"\n [errorMessage]=\"errorMessage\"\n >\n </mv-gov-uk-error-message>\n\n <div class=\"govuk-date-input\" [id]=\"config.id + '-date'\">\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <mv-gov-label\n [config]=\"{\n label: 'Day',\n name: config.id,\n id: config.id + '-day',\n classes: 'govuk-date-input__label'\n }\"\n >\n </mv-gov-label>\n <input\n class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{ 'govuk-input--error': errorMessage?.isInvalid }\"\n [id]=\"config.id + '-day'\"\n [name]=\"config.id + '-day'\"\n type=\"number\"\n value=\"\"\n pattern=\"[0-9]*\"\n [formControlName]=\"'day'\"\n />\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <mv-gov-label\n [config]=\"{\n label: 'Month',\n name: config.id + '-month',\n id: config.id + '-month',\n classes: 'govuk-date-input__label'\n }\"\n >\n </mv-gov-label>\n <input\n class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{ 'govuk-input--error': errorMessage?.isInvalid }\"\n [id]=\"config.id + '-month'\"\n [name]=\"config.id + '-month'\"\n type=\"number\"\n value=\"\"\n pattern=\"[0-9]*\"\n [formControlName]=\"'month'\"\n />\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <mv-gov-label\n [config]=\"{\n label: 'Year',\n name: config.id + '-year',\n id: config.id + '-year',\n classes: 'govuk-date-input__label'\n }\"\n >\n </mv-gov-label>\n <input\n class=\"govuk-input govuk-date-input__input govuk-input--width-4\"\n [ngClass]=\"{ 'govuk-input--error': errorMessage?.isInvalid }\"\n [id]=\"config.id + '-year'\"\n [name]=\"config.id + '-year'\"\n type=\"number\"\n value=\"\"\n pattern=\"[0-9]*\"\n [formControlName]=\"'year'\"\n />\n </div>\n </div>\n </div>\n </mv-gov-uk-fieldset>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: GovUkErrorMessageComponent, selector: " mv-gov-uk-error-message", inputs: ["config", "errorMessage"] }, { kind: "component", type: GovUkFieldsetComponent, selector: "mv-gov-uk-fieldset", inputs: ["config", "isHeading", "errorMessage"] }, { kind: "component", type: GovUkLabelComponent, selector: "mv-gov-label", inputs: ["config"] }] }); }
|
|
6297
6796
|
}
|
|
6298
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GovUkDateComponent, decorators: [{
|
|
6299
6798
|
type: Component,
|
|
6300
|
-
args: [{ selector: 'mv-gov-uk-date',
|
|
6799
|
+
args: [{ selector: 'mv-gov-uk-date', template: "<div\n class=\"govuk-form-group\"\n [ngClass]=\"{ 'govuk-form-group--error': errorMessage?.isInvalid }\"\n [formGroup]=\"formGroup\"\n>\n <mv-gov-uk-fieldset\n [config]=\"{\n legend: config.legend,\n classes: 'govuk-label--m',\n id: config.id,\n hint: ' For example, 12 11 2007'\n }\"\n [isHeading]=\"false\"\n [errorMessage]=\"errorMessage\"\n >\n <mv-gov-uk-error-message\n [config]=\"{ id: 'passport' }\"\n *ngIf=\"errorMessage.isInvalid\"\n [errorMessage]=\"errorMessage\"\n >\n </mv-gov-uk-error-message>\n\n <div class=\"govuk-date-input\" [id]=\"config.id + '-date'\">\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <mv-gov-label\n [config]=\"{\n label: 'Day',\n name: config.id,\n id: config.id + '-day',\n classes: 'govuk-date-input__label'\n }\"\n >\n </mv-gov-label>\n <input\n class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{ 'govuk-input--error': errorMessage?.isInvalid }\"\n [id]=\"config.id + '-day'\"\n [name]=\"config.id + '-day'\"\n type=\"number\"\n value=\"\"\n pattern=\"[0-9]*\"\n [formControlName]=\"'day'\"\n />\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <mv-gov-label\n [config]=\"{\n label: 'Month',\n name: config.id + '-month',\n id: config.id + '-month',\n classes: 'govuk-date-input__label'\n }\"\n >\n </mv-gov-label>\n <input\n class=\"govuk-input govuk-date-input__input govuk-input--width-2\"\n [ngClass]=\"{ 'govuk-input--error': errorMessage?.isInvalid }\"\n [id]=\"config.id + '-month'\"\n [name]=\"config.id + '-month'\"\n type=\"number\"\n value=\"\"\n pattern=\"[0-9]*\"\n [formControlName]=\"'month'\"\n />\n </div>\n </div>\n <div class=\"govuk-date-input__item\">\n <div class=\"govuk-form-group\">\n <mv-gov-label\n [config]=\"{\n label: 'Year',\n name: config.id + '-year',\n id: config.id + '-year',\n classes: 'govuk-date-input__label'\n }\"\n >\n </mv-gov-label>\n <input\n class=\"govuk-input govuk-date-input__input govuk-input--width-4\"\n [ngClass]=\"{ 'govuk-input--error': errorMessage?.isInvalid }\"\n [id]=\"config.id + '-year'\"\n [name]=\"config.id + '-year'\"\n type=\"number\"\n value=\"\"\n pattern=\"[0-9]*\"\n [formControlName]=\"'year'\"\n />\n </div>\n </div>\n </div>\n </mv-gov-uk-fieldset>\n</div>\n" }]
|
|
6301
6800
|
}], propDecorators: { config: [{
|
|
6302
6801
|
type: Input
|
|
6303
6802
|
}], errorMessage: [{
|
|
@@ -6388,12 +6887,12 @@ class CommentsSummaryComponent {
|
|
|
6388
6887
|
ngOnDestroy() {
|
|
6389
6888
|
this.$subscriptions.unsubscribe();
|
|
6390
6889
|
}
|
|
6391
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6392
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: CommentsSummaryComponent, isStandalone: false, selector: "mv-comments-summary", inputs: { title: "title", contentType: "contentType" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["outerContainer"], descendants: true, static: true }, { propertyName: "commentsTable", first: true, predicate: ["commentContainer"], descendants: true }], ngImport: i0, template: "<div id=\"modal-background\" class=\"modal\" (click)=\"onClose()\">\n <div\n #outerContainer\n id=\"modal\"\n class=\"modal-content govuk-width-container clearfix\"\n (click)=\"$event.stopPropagation()\"\n cdkTrapFocus\n tabindex=\"0\"\n >\n <div id=\"comment-container\" class=\"comment-container\" #commentContainer>\n <h2 class=\"govuk-heading-m\">{{ title }}</h2>\n <ng-container *ngIf=\"comments$ | async as comments\">\n <ng-container *ngIf=\"comments.length\">\n <button\n type=\"submit\"\n class=\"govuk-button govuk-!-margin-right-1\"\n (click)=\"onFiltersToggle()\"\n >\n {{\n !showFilters\n ? (\"Show Filters\" | rpxTranslate)\n : (\"Hide Filters\" | rpxTranslate)\n }}\n </button>\n <button\n type=\"submit\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"onClearFilters()\"\n *ngIf=\"hasFilter\"\n >\n {{ \"Clear Filters\" | rpxTranslate }}\n </button>\n <ng-container *ngIf=\"showFilters\">\n <form [formGroup]=\"filtersFg\" (ngSubmit)=\"onFilter()\">\n <div class=\"dates\">\n <div class=\"dates__from\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeFrom', legend: 'From' }\"\n [formGroup]=\"filtersFg.controls['dateRangeFrom']\"\n [errorMessage]=\"{\n isInvalid: !fromFilterValid,\n messages: ['From date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__to\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeTo', legend: 'To' }\"\n [formGroup]=\"filtersFg.controls['dateRangeTo']\"\n [errorMessage]=\"{\n isInvalid: !toFilterValid,\n messages: ['To date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__tags\">\n <mv-gov-uk-fieldset\n [config]=\"{\n legend: 'Tags',\n classes: 'govuk-label--m',\n id: 'filters'\n }\"\n [isHeading]=\"false\"\n >\n <div\n class=\"govuk-checkboxes--scroll\"\n [formGroup]=\"filtersFg.controls['tagFilters']\"\n >\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"let item of allTags$ | async\"\n >\n <input\n [formControlName]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n type=\"checkbox\"\n />\n <label class=\"govuk-label govuk-checkboxes__label\">\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </mv-gov-uk-fieldset>\n </div>\n <div class=\"dates__cta\">\n <button type=\"submit\" class=\"govuk-button\">\n {{ \"Filter comments\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </form>\n </ng-container>\n <ng-container *ngIf=\"comments[0]\">\n <ngx-datatable\n [rows]=\"comments\"\n rowHeight=\"auto\"\n headerHeight=\"auto\"\n [columnMode]=\"'flex'\"\n [sorts]=\"[{ prop: 'date', dir: 'desc' }]\"\n >\n <ngx-datatable-column\n name=\"{{ 'User' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Page' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <a\n [routerLink]=\"[]\"\n class=\"comment-summary_pages\"\n (click)=\"navigateToPage(value)\"\n >{{ value }}</a\n >\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Date' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Comment' | rpxTranslate }}\"\n [flexGrow]=\"3\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Tags' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <span class=\"hmcts-badge\" *ngFor=\"let tag of value\">{{\n tag.label\n }}</span>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!comments[0]\">\n <h3 class=\"govuk-heading-s\">\n {{\n \"No comments available. Select text to add a highlight or comment.\"\n | rpxTranslate\n }}\n </h3>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"button-container\">\n <button (click)=\"onPrint()\" class=\"govuk-button govuk-button--secondary\">\n {{ \"Print\" | rpxTranslate }}\n </button>\n <button id=\"modal-close-button\" (click)=\"onClose()\" class=\"govuk-button\">\n {{ \"Close\" | rpxTranslate }}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5$3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: GovUkDateComponent, selector: "mv-gov-uk-date", inputs: ["config", "errorMessage", "formGroup"] }, { kind: "component", type: GovUkFieldsetComponent, selector: "mv-gov-uk-fieldset", inputs: ["config", "isHeading", "errorMessage"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: UnsnakePipe, name: "unsnake" }] }); }
|
|
6890
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsSummaryComponent, deps: [{ token: i1.Store }, { token: PrintService }, { token: ToolbarEventService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6891
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsSummaryComponent, selector: "mv-comments-summary", inputs: { title: "title", contentType: "contentType" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["outerContainer"], descendants: true, static: true }, { propertyName: "commentsTable", first: true, predicate: ["commentContainer"], descendants: true }], ngImport: i0, template: "<div id=\"modal-background\" class=\"modal\" (click)=\"onClose()\">\n <div\n #outerContainer\n id=\"modal\"\n class=\"modal-content govuk-width-container clearfix\"\n (click)=\"$event.stopPropagation()\"\n cdkTrapFocus\n tabindex=\"0\"\n >\n <div id=\"comment-container\" class=\"comment-container\" #commentContainer>\n <h2 class=\"govuk-heading-m\">{{ title }}</h2>\n <ng-container *ngIf=\"comments$ | async as comments\">\n <ng-container *ngIf=\"comments.length\">\n <button\n type=\"submit\"\n class=\"govuk-button govuk-!-margin-right-1\"\n (click)=\"onFiltersToggle()\"\n >\n {{\n !showFilters\n ? (\"Show Filters\" | rpxTranslate)\n : (\"Hide Filters\" | rpxTranslate)\n }}\n </button>\n <button\n type=\"submit\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"onClearFilters()\"\n *ngIf=\"hasFilter\"\n >\n {{ \"Clear Filters\" | rpxTranslate }}\n </button>\n <ng-container *ngIf=\"showFilters\">\n <form [formGroup]=\"filtersFg\" (ngSubmit)=\"onFilter()\">\n <div class=\"dates\">\n <div class=\"dates__from\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeFrom', legend: 'From' }\"\n [formGroup]=\"filtersFg.controls['dateRangeFrom']\"\n [errorMessage]=\"{\n isInvalid: !fromFilterValid,\n messages: ['From date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__to\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeTo', legend: 'To' }\"\n [formGroup]=\"filtersFg.controls['dateRangeTo']\"\n [errorMessage]=\"{\n isInvalid: !toFilterValid,\n messages: ['To date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__tags\">\n <mv-gov-uk-fieldset\n [config]=\"{\n legend: 'Tags',\n classes: 'govuk-label--m',\n id: 'filters'\n }\"\n [isHeading]=\"false\"\n >\n <div\n class=\"govuk-checkboxes--scroll\"\n [formGroup]=\"filtersFg.controls['tagFilters']\"\n >\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"let item of allTags$ | async\"\n >\n <input\n [formControlName]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n type=\"checkbox\"\n />\n <label class=\"govuk-label govuk-checkboxes__label\">\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </mv-gov-uk-fieldset>\n </div>\n <div class=\"dates__cta\">\n <button type=\"submit\" class=\"govuk-button\">\n {{ \"Filter comments\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </form>\n </ng-container>\n <ng-container *ngIf=\"comments[0]\">\n <ngx-datatable\n [rows]=\"comments\"\n rowHeight=\"auto\"\n headerHeight=\"auto\"\n [columnMode]=\"'flex'\"\n [sorts]=\"[{ prop: 'date', dir: 'desc' }]\"\n >\n <ngx-datatable-column\n name=\"{{ 'User' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Page' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <a\n [routerLink]=\"[]\"\n class=\"comment-summary_pages\"\n (click)=\"navigateToPage(value)\"\n >{{ value }}</a\n >\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Date' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Comment' | rpxTranslate }}\"\n [flexGrow]=\"3\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Tags' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <span class=\"hmcts-badge\" *ngFor=\"let tag of value\">{{\n tag.label\n }}</span>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!comments[0]\">\n <h3 class=\"govuk-heading-s\">\n {{\n \"No comments available. Select text to add a highlight or comment.\"\n | rpxTranslate\n }}\n </h3>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"button-container\">\n <button (click)=\"onPrint()\" class=\"govuk-button govuk-button--secondary\">\n {{ \"Print\" | rpxTranslate }}\n </button>\n <button id=\"modal-close-button\" (click)=\"onClose()\" class=\"govuk-button\">\n {{ \"Close\" | rpxTranslate }}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5$3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: GovUkDateComponent, selector: "mv-gov-uk-date", inputs: ["config", "errorMessage", "formGroup"] }, { kind: "component", type: GovUkFieldsetComponent, selector: "mv-gov-uk-fieldset", inputs: ["config", "isHeading", "errorMessage"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: UnsnakePipe, name: "unsnake" }] }); }
|
|
6393
6892
|
}
|
|
6394
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6893
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsSummaryComponent, decorators: [{
|
|
6395
6894
|
type: Component,
|
|
6396
|
-
args: [{ selector: 'mv-comments-summary',
|
|
6895
|
+
args: [{ selector: 'mv-comments-summary', template: "<div id=\"modal-background\" class=\"modal\" (click)=\"onClose()\">\n <div\n #outerContainer\n id=\"modal\"\n class=\"modal-content govuk-width-container clearfix\"\n (click)=\"$event.stopPropagation()\"\n cdkTrapFocus\n tabindex=\"0\"\n >\n <div id=\"comment-container\" class=\"comment-container\" #commentContainer>\n <h2 class=\"govuk-heading-m\">{{ title }}</h2>\n <ng-container *ngIf=\"comments$ | async as comments\">\n <ng-container *ngIf=\"comments.length\">\n <button\n type=\"submit\"\n class=\"govuk-button govuk-!-margin-right-1\"\n (click)=\"onFiltersToggle()\"\n >\n {{\n !showFilters\n ? (\"Show Filters\" | rpxTranslate)\n : (\"Hide Filters\" | rpxTranslate)\n }}\n </button>\n <button\n type=\"submit\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"onClearFilters()\"\n *ngIf=\"hasFilter\"\n >\n {{ \"Clear Filters\" | rpxTranslate }}\n </button>\n <ng-container *ngIf=\"showFilters\">\n <form [formGroup]=\"filtersFg\" (ngSubmit)=\"onFilter()\">\n <div class=\"dates\">\n <div class=\"dates__from\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeFrom', legend: 'From' }\"\n [formGroup]=\"filtersFg.controls['dateRangeFrom']\"\n [errorMessage]=\"{\n isInvalid: !fromFilterValid,\n messages: ['From date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__to\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeTo', legend: 'To' }\"\n [formGroup]=\"filtersFg.controls['dateRangeTo']\"\n [errorMessage]=\"{\n isInvalid: !toFilterValid,\n messages: ['To date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__tags\">\n <mv-gov-uk-fieldset\n [config]=\"{\n legend: 'Tags',\n classes: 'govuk-label--m',\n id: 'filters'\n }\"\n [isHeading]=\"false\"\n >\n <div\n class=\"govuk-checkboxes--scroll\"\n [formGroup]=\"filtersFg.controls['tagFilters']\"\n >\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"let item of allTags$ | async\"\n >\n <input\n [formControlName]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n type=\"checkbox\"\n />\n <label class=\"govuk-label govuk-checkboxes__label\">\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </mv-gov-uk-fieldset>\n </div>\n <div class=\"dates__cta\">\n <button type=\"submit\" class=\"govuk-button\">\n {{ \"Filter comments\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </form>\n </ng-container>\n <ng-container *ngIf=\"comments[0]\">\n <ngx-datatable\n [rows]=\"comments\"\n rowHeight=\"auto\"\n headerHeight=\"auto\"\n [columnMode]=\"'flex'\"\n [sorts]=\"[{ prop: 'date', dir: 'desc' }]\"\n >\n <ngx-datatable-column\n name=\"{{ 'User' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Page' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <a\n [routerLink]=\"[]\"\n class=\"comment-summary_pages\"\n (click)=\"navigateToPage(value)\"\n >{{ value }}</a\n >\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Date' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Comment' | rpxTranslate }}\"\n [flexGrow]=\"3\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Tags' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <span class=\"hmcts-badge\" *ngFor=\"let tag of value\">{{\n tag.label\n }}</span>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!comments[0]\">\n <h3 class=\"govuk-heading-s\">\n {{\n \"No comments available. Select text to add a highlight or comment.\"\n | rpxTranslate\n }}\n </h3>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"button-container\">\n <button (click)=\"onPrint()\" class=\"govuk-button govuk-button--secondary\">\n {{ \"Print\" | rpxTranslate }}\n </button>\n <button id=\"modal-close-button\" (click)=\"onClose()\" class=\"govuk-button\">\n {{ \"Close\" | rpxTranslate }}\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
6397
6896
|
}], ctorParameters: () => [{ type: i1.Store }, { type: PrintService }, { type: ToolbarEventService }, { type: i2.FormBuilder }], propDecorators: { title: [{
|
|
6398
6897
|
type: Input
|
|
6399
6898
|
}], contentType: [{
|
|
@@ -6437,12 +6936,12 @@ class MultimediaPlayerComponent {
|
|
|
6437
6936
|
onError() {
|
|
6438
6937
|
this.playbackMsg = 'error';
|
|
6439
6938
|
}
|
|
6440
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6441
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6939
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultimediaPlayerComponent, deps: [{ token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6940
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MultimediaPlayerComponent, selector: "mv-multimedia-player", inputs: { url: "url", downloadFileName: "downloadFileName", multimediaOn: "multimediaOn" }, outputs: { loadStatus: "loadStatus" }, viewQueries: [{ propertyName: "downloadLink", first: true, predicate: ["downloadLink"], descendants: true }, { propertyName: "videoPlayer", first: true, predicate: ["videoPlayer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"govuk-width-container\">\n <div class=\"govuk-notification-banner__content\">\n <p>\n <span *ngIf=\"multimediaOn && playbackMsg === 'loading'\">{{\n \"Loading multimedia content ...\" | rpxTranslate\n }}</span>\n <span *ngIf=\"!multimediaOn\"\n >{{ \"Multimedia playback is not enabled, \" | rpxTranslate }}\n </span>\n <span *ngIf=\"multimediaOn && playbackMsg === 'success'\"\n >{{ \"Use the player to play to the file or\" | rpxTranslate }}\n </span>\n <span *ngIf=\"multimediaOn && playbackMsg === 'error'\"\n >{{ \"Mime type not supported.\" | rpxTranslate }}\n </span>\n <a\n *ngIf=\"!multimediaOn || playbackMsg !== 'loading'\"\n #downloadLink\n [href]=\"url\"\n [download]=\"downloadFileName\"\n >{{ \"Click here to download\" | rpxTranslate }}</a\n >\n </p>\n <video\n #videoPlayer\n *ngIf=\"multimediaOn\"\n width=\"100%\"\n height=\"100%\"\n preload=\"auto\"\n (canplay)=\"onSuccess()\"\n controls\n >\n <source (error)=\"onError()\" [src]=\"url\" type=\"video/mp4\" />\n <source\n (error)=\"onError()\"\n [src]=\"url\"\n type=\"video/mp4; codecs='avc1, av01, hvc1, hev1, mp4v, mp4a.40.2, opus'\"\n />\n <source (error)=\"onError()\" [src]=\"url\" type=\"video/ogg\" />\n <source\n (error)=\"onError()\"\n [src]=\"url\"\n type=\"video/ogg; codecs='theora, vp8, vp9, flac, opus, vorbis'\"\n />\n <source (error)=\"onError()\" [src]=\"url\" type=\"video/webm\" />\n <source\n (error)=\"onError()\"\n [src]=\"url\"\n type=\"video/webm; codecs='vp8, vp9, vorbis, opus'\"\n />\n </video>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5$1.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
6442
6941
|
}
|
|
6443
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6942
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultimediaPlayerComponent, decorators: [{
|
|
6444
6943
|
type: Component,
|
|
6445
|
-
args: [{ selector: 'mv-multimedia-player',
|
|
6944
|
+
args: [{ selector: 'mv-multimedia-player', template: "<div class=\"govuk-width-container\">\n <div class=\"govuk-notification-banner__content\">\n <p>\n <span *ngIf=\"multimediaOn && playbackMsg === 'loading'\">{{\n \"Loading multimedia content ...\" | rpxTranslate\n }}</span>\n <span *ngIf=\"!multimediaOn\"\n >{{ \"Multimedia playback is not enabled, \" | rpxTranslate }}\n </span>\n <span *ngIf=\"multimediaOn && playbackMsg === 'success'\"\n >{{ \"Use the player to play to the file or\" | rpxTranslate }}\n </span>\n <span *ngIf=\"multimediaOn && playbackMsg === 'error'\"\n >{{ \"Mime type not supported.\" | rpxTranslate }}\n </span>\n <a\n *ngIf=\"!multimediaOn || playbackMsg !== 'loading'\"\n #downloadLink\n [href]=\"url\"\n [download]=\"downloadFileName\"\n >{{ \"Click here to download\" | rpxTranslate }}</a\n >\n </p>\n <video\n #videoPlayer\n *ngIf=\"multimediaOn\"\n width=\"100%\"\n height=\"100%\"\n preload=\"auto\"\n (canplay)=\"onSuccess()\"\n controls\n >\n <source (error)=\"onError()\" [src]=\"url\" type=\"video/mp4\" />\n <source\n (error)=\"onError()\"\n [src]=\"url\"\n type=\"video/mp4; codecs='avc1, av01, hvc1, hev1, mp4v, mp4a.40.2, opus'\"\n />\n <source (error)=\"onError()\" [src]=\"url\" type=\"video/ogg\" />\n <source\n (error)=\"onError()\"\n [src]=\"url\"\n type=\"video/ogg; codecs='theora, vp8, vp9, flac, opus, vorbis'\"\n />\n <source (error)=\"onError()\" [src]=\"url\" type=\"video/webm\" />\n <source\n (error)=\"onError()\"\n [src]=\"url\"\n type=\"video/webm; codecs='vp8, vp9, vorbis, opus'\"\n />\n </video>\n </div>\n</div>\n" }]
|
|
6446
6945
|
}], ctorParameters: () => [{ type: ToolbarEventService }], propDecorators: { url: [{
|
|
6447
6946
|
type: Input
|
|
6448
6947
|
}], downloadFileName: [{
|
|
@@ -6467,7 +6966,7 @@ class ConvertibleContentViewerComponent {
|
|
|
6467
6966
|
this.documentTitle = new EventEmitter();
|
|
6468
6967
|
}
|
|
6469
6968
|
ngOnInit() {
|
|
6470
|
-
this.$subscription = this.store.pipe(select(getConvertedDocument), filter(value => !!value))
|
|
6969
|
+
this.$subscription = this.store.pipe(select(getConvertedDocument), filter$1(value => !!value))
|
|
6471
6970
|
.subscribe((docInfo) => {
|
|
6472
6971
|
if (docInfo.url) {
|
|
6473
6972
|
this.convertedUrl = docInfo.url;
|
|
@@ -6505,12 +7004,12 @@ class ConvertibleContentViewerComponent {
|
|
|
6505
7004
|
}
|
|
6506
7005
|
return url.replace('/binary', '');
|
|
6507
7006
|
}
|
|
6508
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6509
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
7007
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConvertibleContentViewerComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7008
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConvertibleContentViewerComponent, selector: "mv-conversion-viewer", inputs: { originalUrl: "originalUrl", downloadFileName: "downloadFileName", height: "height", enableAnnotations: "enableAnnotations", enableRedactions: "enableRedactions", annotationSet: "annotationSet" }, outputs: { mediaLoadStatus: "mediaLoadStatus", viewerException: "viewerException", documentTitle: "documentTitle" }, usesOnChanges: true, ngImport: i0, template: "<mv-pdf-viewer *ngIf=\"convertedUrl\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (pdfViewerException)=\"onLoadException($event)\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n [url]=\"convertedUrl\"\n [downloadUrl]=\"originalUrl\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [annotationSet]=\"enableAnnotations ? annotationSet : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"height\">\n</mv-pdf-viewer>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdfViewerComponent, selector: "mv-pdf-viewer", inputs: ["downloadUrl", "url", "downloadFileName", "enableAnnotations", "enableRedactions", "enableICP", "annotationSet", "enableRedactSearch", "height", "caseId", "searchBarHidden"], outputs: ["mediaLoadStatus", "pdfViewerException", "documentTitle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6510
7009
|
}
|
|
6511
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7010
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConvertibleContentViewerComponent, decorators: [{
|
|
6512
7011
|
type: Component,
|
|
6513
|
-
args: [{ selector: 'mv-conversion-viewer', encapsulation: ViewEncapsulation.None,
|
|
7012
|
+
args: [{ selector: 'mv-conversion-viewer', encapsulation: ViewEncapsulation.None, template: "<mv-pdf-viewer *ngIf=\"convertedUrl\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (pdfViewerException)=\"onLoadException($event)\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n [url]=\"convertedUrl\"\n [downloadUrl]=\"originalUrl\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [annotationSet]=\"enableAnnotations ? annotationSet : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"height\">\n</mv-pdf-viewer>\n" }]
|
|
6514
7013
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { originalUrl: [{
|
|
6515
7014
|
type: Input
|
|
6516
7015
|
}], downloadFileName: [{
|
|
@@ -6552,7 +7051,7 @@ class RotationPersistDirective {
|
|
|
6552
7051
|
onMediaLoad(status) {
|
|
6553
7052
|
this.rotation = 0;
|
|
6554
7053
|
this.store.dispatch(new LoadRotation(this.documentId));
|
|
6555
|
-
this.store.pipe(select(rotationLoaded), filter(value => !!value), take(1))
|
|
7054
|
+
this.store.pipe(select(rotationLoaded), filter$1(value => !!value), take(1))
|
|
6556
7055
|
.subscribe(() => {
|
|
6557
7056
|
if (this.savedRotation) {
|
|
6558
7057
|
this.toolbarEvents.rotateSubject.next(this.savedRotation);
|
|
@@ -6570,14 +7069,13 @@ class RotationPersistDirective {
|
|
|
6570
7069
|
};
|
|
6571
7070
|
this.store.dispatch(new SaveRotation(payload));
|
|
6572
7071
|
}
|
|
6573
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6574
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
7072
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RotationPersistDirective, deps: [{ token: i0.ElementRef }, { token: i1.Store }, { token: ToolbarButtonVisibilityService }, { token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7073
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: RotationPersistDirective, selector: "[mvRotationPersist]", host: { listeners: { "mediaLoadStatus": "onMediaLoad($event)" } }, ngImport: i0 }); }
|
|
6575
7074
|
}
|
|
6576
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7075
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RotationPersistDirective, decorators: [{
|
|
6577
7076
|
type: Directive,
|
|
6578
7077
|
args: [{
|
|
6579
|
-
selector: '[mvRotationPersist]'
|
|
6580
|
-
standalone: false
|
|
7078
|
+
selector: '[mvRotationPersist]'
|
|
6581
7079
|
}]
|
|
6582
7080
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Store }, { type: ToolbarButtonVisibilityService }, { type: ToolbarEventService }], propDecorators: { onMediaLoad: [{
|
|
6583
7081
|
type: HostListener,
|
|
@@ -6595,12 +7093,12 @@ class ConfirmActionDialogComponent {
|
|
|
6595
7093
|
this.icpEventService.confirmExit();
|
|
6596
7094
|
this.icpEventService.leavingSession.next(false);
|
|
6597
7095
|
}
|
|
6598
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6599
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
7096
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmActionDialogComponent, deps: [{ token: IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7097
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfirmActionDialogComponent, selector: "mv-confirm-action", ngImport: i0, template: "<div id=\"modal-background\" class=\"modal\" (click)=\"onCancel()\">\n <div id=\"modal\" class=\"modal-content govuk-width-container clearfix\" (click)=\"$event.stopPropagation()\">\n <h2 class=\"govuk-heading-s\">Are you sure you want to leave the presentation?</h2>\n <div class=\"button-container\">\n <button id=\"modal-close-button\" (click)=\"onConfirm()\" class=\"govuk-button\">Confirm</button>\n <button (click)=\"onCancel()\" class=\"govuk-button govuk-button--secondary\">Cancel</button>\n </div>\n </div>\n</div>\n" }); }
|
|
6600
7098
|
}
|
|
6601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7099
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmActionDialogComponent, decorators: [{
|
|
6602
7100
|
type: Component,
|
|
6603
|
-
args: [{ selector: 'mv-confirm-action',
|
|
7101
|
+
args: [{ selector: 'mv-confirm-action', template: "<div id=\"modal-background\" class=\"modal\" (click)=\"onCancel()\">\n <div id=\"modal\" class=\"modal-content govuk-width-container clearfix\" (click)=\"$event.stopPropagation()\">\n <h2 class=\"govuk-heading-s\">Are you sure you want to leave the presentation?</h2>\n <div class=\"button-container\">\n <button id=\"modal-close-button\" (click)=\"onConfirm()\" class=\"govuk-button\">Confirm</button>\n <button (click)=\"onCancel()\" class=\"govuk-button govuk-button--secondary\">Cancel</button>\n </div>\n </div>\n</div>\n" }]
|
|
6604
7102
|
}], ctorParameters: () => [{ type: IcpEventService }] });
|
|
6605
7103
|
|
|
6606
7104
|
var CoreContentTypes;
|
|
@@ -6774,12 +7272,12 @@ class MediaViewerComponent {
|
|
|
6774
7272
|
detectOs() {
|
|
6775
7273
|
this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;
|
|
6776
7274
|
}
|
|
6777
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6778
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
7275
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerComponent, deps: [{ token: i1.Store }, { token: ToolbarButtonVisibilityService }, { token: ToolbarEventService }, { token: AnnotationApiService }, { token: CommentService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7276
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MediaViewerComponent, selector: "mv-media-viewer", inputs: { url: "url", downloadFileName: "downloadFileName", contentType: "contentType", showToolbar: "showToolbar", toolbarButtonOverrides: "toolbarButtonOverrides", height: "height", width: "width", enableAnnotations: "enableAnnotations", annotationApiUrl: "annotationApiUrl", enableRedactions: "enableRedactions", enableICP: "enableICP", multimediaPlayerEnabled: "multimediaPlayerEnabled", enableRedactSearch: "enableRedactSearch", caseId: "caseId" }, outputs: { mediaLoadStatus: "mediaLoadStatus", viewerException: "viewerException", toolbarEventsOutput: "toolbarEventsOutput", unsavedChanges: "unsavedChanges" }, viewQueries: [{ propertyName: "viewerRef", first: true, predicate: ["viewerRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n id=\"outerContainer\"\n [ngClass]=\"{\n 'has-redact-bar': toolbarEvents.redactionMode | async,\n 'icp-mode': icpEventService.enabled | async,\n 'is-redaction-preview': toolbarEvents.redactionPreview | async,\n sidebarOpen: toolbarEvents.sidebarOpen | async,\n 'has-scroll-bar': hasScrollBar,\n 'has-different-page-size': hasDifferentPageSize$ | async\n }\"\n [ngStyle]=\"{ width: width }\"\n>\n <mv-comments-summary\n *ngIf=\"showCommentSummary\"\n [title]=\"documentTitle || 'Comment Summary'\"\n [contentType]=\"contentType\"\n >\n </mv-comments-summary>\n\n <mv-confirm-action\n *ngIf=\"icpEventService.leavingSession | async\"\n ></mv-confirm-action>\n\n <div id=\"mainContainer\">\n <mv-main-toolbar\n *ngIf=\"showToolbar\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableICP]=\"enableICP\"\n [enableRedactions]=\"enableRedactions\"\n [contentType]=\"contentType\"\n >\n </mv-main-toolbar>\n <mv-redaction-toolbar\n [showRedactSearch]=\"enableRedactSearch\"\n *ngIf=\"toolbarEvents.redactionMode | async\"\n ></mv-redaction-toolbar>\n <mv-highlight-toolbar\n *ngIf=\"toolbarEvents.highlightToolbarSubject | async\"\n ></mv-highlight-toolbar>\n <mv-icp-toolbar *ngIf=\"icpEventService.enabled | async\"></mv-icp-toolbar>\n\n <div #viewerRef>\n <mv-conversion-viewer\n *ngIf=\"convertibleContent\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (viewerException)=\"onLoadException($event)\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [originalUrl]=\"url\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n mvRotationPersist\n >\n </mv-conversion-viewer>\n <mv-pdf-viewer\n *ngIf=\"contentType === 'pdf'\"\n #pdfViewer\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (pdfViewerException)=\"onLoadException($event)\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n [url]=\"url\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [enableICP]=\"enableICP\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n [caseId]=\"caseId\"\n mvRotationPersist\n >\n </mv-pdf-viewer>\n <mv-image-viewer\n *ngIf=\"contentType === 'image'\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (imageViewerException)=\"onLoadException($event)\"\n [url]=\"url\"\n [enableAnnotations]=\"enableAnnotations\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n mvRotationPersist\n >\n </mv-image-viewer>\n <mv-multimedia-player\n *ngIf=\"multimediaContent\"\n [multimediaOn]=\"multimediaPlayerEnabled\"\n [url]=\"url\"\n [downloadFileName]=\"downloadFileName\"\n (loadStatus)=\"onMediaLoad($event)\"\n >\n </mv-multimedia-player>\n <mv-unsupported-viewer\n *ngIf=\"unsupportedContent\"\n [url]=\"url\"\n [typeException]=\"typeException\"\n [downloadFileName]=\"downloadFileName\"\n (loadStatus)=\"onMediaLoad($event)\"\n (unsupportedViewerException)=\"onLoadException($event)\"\n >\n </mv-unsupported-viewer>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MainToolbarComponent, selector: "mv-main-toolbar", inputs: ["enableAnnotations", "enableRedactions", "enableICP", "contentType"] }, { kind: "component", type: RedactionToolbarComponent, selector: "mv-redaction-toolbar", inputs: ["showRedactSearch"] }, { kind: "component", type: IcpToolbarComponent, selector: "mv-icp-toolbar" }, { kind: "component", type: HighlightToolbarComponent, selector: "mv-highlight-toolbar" }, { kind: "component", type: CommentsSummaryComponent, selector: "mv-comments-summary", inputs: ["title", "contentType"] }, { kind: "component", type: PdfViewerComponent, selector: "mv-pdf-viewer", inputs: ["downloadUrl", "url", "downloadFileName", "enableAnnotations", "enableRedactions", "enableICP", "annotationSet", "enableRedactSearch", "height", "caseId", "searchBarHidden"], outputs: ["mediaLoadStatus", "pdfViewerException", "documentTitle"] }, { kind: "component", type: ImageViewerComponent, selector: "mv-image-viewer", inputs: ["url", "downloadFileName", "enableAnnotations", "annotationSet", "height"], outputs: ["mediaLoadStatus", "imageViewerException"] }, { kind: "component", type: UnsupportedViewerComponent, selector: "mv-unsupported-viewer", inputs: ["url", "downloadFileName", "typeException"], outputs: ["loadStatus", "unsupportedViewerException"] }, { kind: "component", type: MultimediaPlayerComponent, selector: "mv-multimedia-player", inputs: ["url", "downloadFileName", "multimediaOn"], outputs: ["loadStatus"] }, { kind: "component", type: ConvertibleContentViewerComponent, selector: "mv-conversion-viewer", inputs: ["originalUrl", "downloadFileName", "height", "enableAnnotations", "enableRedactions", "annotationSet"], outputs: ["mediaLoadStatus", "viewerException", "documentTitle"] }, { kind: "directive", type: RotationPersistDirective, selector: "[mvRotationPersist]" }, { kind: "component", type: ConfirmActionDialogComponent, selector: "mv-confirm-action" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6779
7277
|
}
|
|
6780
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerComponent, decorators: [{
|
|
6781
7279
|
type: Component,
|
|
6782
|
-
args: [{ selector: 'mv-media-viewer', encapsulation: ViewEncapsulation.None,
|
|
7280
|
+
args: [{ selector: 'mv-media-viewer', encapsulation: ViewEncapsulation.None, template: "<div\n id=\"outerContainer\"\n [ngClass]=\"{\n 'has-redact-bar': toolbarEvents.redactionMode | async,\n 'icp-mode': icpEventService.enabled | async,\n 'is-redaction-preview': toolbarEvents.redactionPreview | async,\n sidebarOpen: toolbarEvents.sidebarOpen | async,\n 'has-scroll-bar': hasScrollBar,\n 'has-different-page-size': hasDifferentPageSize$ | async\n }\"\n [ngStyle]=\"{ width: width }\"\n>\n <mv-comments-summary\n *ngIf=\"showCommentSummary\"\n [title]=\"documentTitle || 'Comment Summary'\"\n [contentType]=\"contentType\"\n >\n </mv-comments-summary>\n\n <mv-confirm-action\n *ngIf=\"icpEventService.leavingSession | async\"\n ></mv-confirm-action>\n\n <div id=\"mainContainer\">\n <mv-main-toolbar\n *ngIf=\"showToolbar\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableICP]=\"enableICP\"\n [enableRedactions]=\"enableRedactions\"\n [contentType]=\"contentType\"\n >\n </mv-main-toolbar>\n <mv-redaction-toolbar\n [showRedactSearch]=\"enableRedactSearch\"\n *ngIf=\"toolbarEvents.redactionMode | async\"\n ></mv-redaction-toolbar>\n <mv-highlight-toolbar\n *ngIf=\"toolbarEvents.highlightToolbarSubject | async\"\n ></mv-highlight-toolbar>\n <mv-icp-toolbar *ngIf=\"icpEventService.enabled | async\"></mv-icp-toolbar>\n\n <div #viewerRef>\n <mv-conversion-viewer\n *ngIf=\"convertibleContent\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (viewerException)=\"onLoadException($event)\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [originalUrl]=\"url\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n mvRotationPersist\n >\n </mv-conversion-viewer>\n <mv-pdf-viewer\n *ngIf=\"contentType === 'pdf'\"\n #pdfViewer\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (pdfViewerException)=\"onLoadException($event)\"\n (documentTitle)=\"onDocumentTitleChange($event)\"\n [url]=\"url\"\n [enableAnnotations]=\"enableAnnotations\"\n [enableRedactions]=\"enableRedactions\"\n [enableICP]=\"enableICP\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n [caseId]=\"caseId\"\n mvRotationPersist\n >\n </mv-pdf-viewer>\n <mv-image-viewer\n *ngIf=\"contentType === 'image'\"\n (mediaLoadStatus)=\"onMediaLoad($event)\"\n (imageViewerException)=\"onLoadException($event)\"\n [url]=\"url\"\n [enableAnnotations]=\"enableAnnotations\"\n [annotationSet]=\"enableAnnotations ? (annotationSet$ | async) : null\"\n [downloadFileName]=\"downloadFileName\"\n [height]=\"viewerHeight\"\n mvRotationPersist\n >\n </mv-image-viewer>\n <mv-multimedia-player\n *ngIf=\"multimediaContent\"\n [multimediaOn]=\"multimediaPlayerEnabled\"\n [url]=\"url\"\n [downloadFileName]=\"downloadFileName\"\n (loadStatus)=\"onMediaLoad($event)\"\n >\n </mv-multimedia-player>\n <mv-unsupported-viewer\n *ngIf=\"unsupportedContent\"\n [url]=\"url\"\n [typeException]=\"typeException\"\n [downloadFileName]=\"downloadFileName\"\n (loadStatus)=\"onMediaLoad($event)\"\n (unsupportedViewerException)=\"onLoadException($event)\"\n >\n </mv-unsupported-viewer>\n </div>\n </div>\n</div>\n" }]
|
|
6783
7281
|
}], ctorParameters: () => [{ type: i1.Store }, { type: ToolbarButtonVisibilityService }, { type: ToolbarEventService }, { type: AnnotationApiService }, { type: CommentService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: IcpEventService }], propDecorators: { viewerRef: [{
|
|
6784
7282
|
type: ViewChild,
|
|
6785
7283
|
args: ['viewerRef', { static: false }]
|
|
@@ -6822,13 +7320,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6822
7320
|
}] } });
|
|
6823
7321
|
|
|
6824
7322
|
class ToolbarModule {
|
|
6825
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6826
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
7323
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7324
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ToolbarModule, declarations: [SearchBarComponent,
|
|
6827
7325
|
MainToolbarComponent,
|
|
6828
7326
|
RedactionToolbarComponent,
|
|
6829
7327
|
IcpToolbarComponent,
|
|
6830
7328
|
RedactionSearchBarComponent,
|
|
6831
|
-
HighlightToolbarComponent
|
|
7329
|
+
HighlightToolbarComponent,
|
|
7330
|
+
TooltipDismissDirective], imports: [CommonModule,
|
|
6832
7331
|
FormsModule,
|
|
6833
7332
|
OverlayModule,
|
|
6834
7333
|
RouterModule, i5$1.RpxTranslationModule], exports: [MainToolbarComponent,
|
|
@@ -6837,7 +7336,7 @@ class ToolbarModule {
|
|
|
6837
7336
|
IcpToolbarComponent,
|
|
6838
7337
|
RedactionSearchBarComponent,
|
|
6839
7338
|
HighlightToolbarComponent] }); }
|
|
6840
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
7339
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarModule, providers: [
|
|
6841
7340
|
ToolbarButtonVisibilityService
|
|
6842
7341
|
], imports: [CommonModule,
|
|
6843
7342
|
FormsModule,
|
|
@@ -6845,7 +7344,7 @@ class ToolbarModule {
|
|
|
6845
7344
|
RouterModule,
|
|
6846
7345
|
RpxTranslationModule.forChild()] }); }
|
|
6847
7346
|
}
|
|
6848
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7347
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarModule, decorators: [{
|
|
6849
7348
|
type: NgModule,
|
|
6850
7349
|
args: [{
|
|
6851
7350
|
declarations: [
|
|
@@ -6854,7 +7353,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6854
7353
|
RedactionToolbarComponent,
|
|
6855
7354
|
IcpToolbarComponent,
|
|
6856
7355
|
RedactionSearchBarComponent,
|
|
6857
|
-
HighlightToolbarComponent
|
|
7356
|
+
HighlightToolbarComponent,
|
|
7357
|
+
TooltipDismissDirective
|
|
6858
7358
|
],
|
|
6859
7359
|
providers: [
|
|
6860
7360
|
ToolbarButtonVisibilityService
|
|
@@ -6872,7 +7372,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6872
7372
|
FormsModule,
|
|
6873
7373
|
OverlayModule,
|
|
6874
7374
|
RouterModule,
|
|
6875
|
-
RpxTranslationModule.forChild()
|
|
7375
|
+
RpxTranslationModule.forChild()
|
|
6876
7376
|
]
|
|
6877
7377
|
}]
|
|
6878
7378
|
}] });
|
|
@@ -6911,16 +7411,16 @@ class BookmarksApiService {
|
|
|
6911
7411
|
.request('DELETE', `${this.ANNOTATIONS_API}/bookmarks_multiple`, { body: payload, observe: 'response', withCredentials: true })
|
|
6912
7412
|
.pipe(map(response => response.body));
|
|
6913
7413
|
}
|
|
6914
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6915
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7414
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksApiService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7415
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksApiService }); }
|
|
6916
7416
|
}
|
|
6917
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7417
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksApiService, decorators: [{
|
|
6918
7418
|
type: Injectable
|
|
6919
7419
|
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
6920
7420
|
|
|
6921
7421
|
class SharedModule {
|
|
6922
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6923
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
7422
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7423
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SharedModule, declarations: [GovUkDateComponent,
|
|
6924
7424
|
GovUkErrorMessageComponent,
|
|
6925
7425
|
GovUkFieldsetComponent,
|
|
6926
7426
|
GovUkLabelComponent], imports: [CommonModule,
|
|
@@ -6931,13 +7431,13 @@ class SharedModule {
|
|
|
6931
7431
|
GovUkErrorMessageComponent,
|
|
6932
7432
|
GovUkFieldsetComponent,
|
|
6933
7433
|
GovUkLabelComponent] }); }
|
|
6934
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
7434
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedModule, imports: [CommonModule,
|
|
6935
7435
|
FormsModule,
|
|
6936
7436
|
ReactiveFormsModule,
|
|
6937
7437
|
CommonModule,
|
|
6938
7438
|
RouterModule] }); }
|
|
6939
7439
|
}
|
|
6940
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7440
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedModule, decorators: [{
|
|
6941
7441
|
type: NgModule,
|
|
6942
7442
|
args: [{
|
|
6943
7443
|
imports: [
|
|
@@ -6963,8 +7463,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
6963
7463
|
}] });
|
|
6964
7464
|
|
|
6965
7465
|
class AnnotationsModule {
|
|
6966
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6967
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
7466
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7467
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, declarations: [MetadataLayerComponent,
|
|
6968
7468
|
AnnotationViewComponent,
|
|
6969
7469
|
BoxHighlightCreateComponent,
|
|
6970
7470
|
AnnotationSetComponent,
|
|
@@ -7004,7 +7504,7 @@ class AnnotationsModule {
|
|
|
7004
7504
|
FilterPipe,
|
|
7005
7505
|
UnsnakePipe,
|
|
7006
7506
|
MetadataLayerComponent] }); }
|
|
7007
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
7507
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, providers: [
|
|
7008
7508
|
AnnotationApiService,
|
|
7009
7509
|
BookmarksApiService,
|
|
7010
7510
|
CommentSetRenderService,
|
|
@@ -7023,7 +7523,7 @@ class AnnotationsModule {
|
|
|
7023
7523
|
SharedModule,
|
|
7024
7524
|
RpxTranslationModule.forChild()] }); }
|
|
7025
7525
|
}
|
|
7026
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7526
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationsModule, decorators: [{
|
|
7027
7527
|
type: NgModule,
|
|
7028
7528
|
args: [{
|
|
7029
7529
|
imports: [
|
|
@@ -7122,10 +7622,10 @@ class AnnotationEffects {
|
|
|
7122
7622
|
}));
|
|
7123
7623
|
})));
|
|
7124
7624
|
}
|
|
7125
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7126
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7625
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationEffects, deps: [{ token: i1$2.Actions }, { token: AnnotationApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7626
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationEffects }); }
|
|
7127
7627
|
}
|
|
7128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7628
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationEffects, decorators: [{
|
|
7129
7629
|
type: Injectable
|
|
7130
7630
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: AnnotationApiService }] });
|
|
7131
7631
|
|
|
@@ -7155,10 +7655,10 @@ class BookmarksEffects {
|
|
|
7155
7655
|
this.updateBookmark$ = createEffect(() => this.actions$.pipe(ofType(UPDATE_BOOKMARK), map((action) => action.payload), switchMap((bookmark) => this.bookmarksApiService.updateBookmark(bookmark)
|
|
7156
7656
|
.pipe(map(bmrk => new UpdateBookmarkSuccess(bmrk)), catchError(error => of(new UpdateBookmarkFailure(error)))))));
|
|
7157
7657
|
}
|
|
7158
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7159
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7658
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksEffects, deps: [{ token: i1$2.Actions }, { token: i1.Store }, { token: BookmarksApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7659
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksEffects }); }
|
|
7160
7660
|
}
|
|
7161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BookmarksEffects, decorators: [{
|
|
7162
7662
|
type: Injectable
|
|
7163
7663
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i1.Store }, { type: BookmarksApiService }] });
|
|
7164
7664
|
|
|
@@ -7201,10 +7701,10 @@ class RedactionApiService {
|
|
|
7201
7701
|
.post(this.redactApiUrl, payload, { observe: 'response', withCredentials: true, responseType: 'blob' })
|
|
7202
7702
|
.pipe(map(response => response), catchError(() => []));
|
|
7203
7703
|
}
|
|
7204
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7205
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7704
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionApiService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7705
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionApiService }); }
|
|
7206
7706
|
}
|
|
7207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7707
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionApiService, decorators: [{
|
|
7208
7708
|
type: Injectable
|
|
7209
7709
|
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
7210
7710
|
|
|
@@ -7259,10 +7759,10 @@ class RedactionEffects {
|
|
|
7259
7759
|
}));
|
|
7260
7760
|
})));
|
|
7261
7761
|
}
|
|
7262
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7263
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7762
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionEffects, deps: [{ token: i1$2.Actions }, { token: RedactionApiService }, { token: ToolbarEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7763
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionEffects }); }
|
|
7264
7764
|
}
|
|
7265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7765
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RedactionEffects, decorators: [{
|
|
7266
7766
|
type: Injectable
|
|
7267
7767
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: RedactionApiService }, { type: ToolbarEventService }] });
|
|
7268
7768
|
|
|
@@ -7276,10 +7776,10 @@ class DocumentConversionApiService {
|
|
|
7276
7776
|
.post(`${this.documentConversionUrl}/${documentId}`, {}, { observe: 'response', withCredentials: true, responseType: 'blob' })
|
|
7277
7777
|
.pipe(map(response => response), catchError(error => of(error)));
|
|
7278
7778
|
}
|
|
7279
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7280
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7779
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentConversionApiService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7780
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentConversionApiService }); }
|
|
7281
7781
|
}
|
|
7282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentConversionApiService, decorators: [{
|
|
7283
7783
|
type: Injectable
|
|
7284
7784
|
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
7285
7785
|
|
|
@@ -7299,10 +7799,10 @@ class RotationApiService {
|
|
|
7299
7799
|
.post(fixedUrl, payload, { observe: 'response', withCredentials: true })
|
|
7300
7800
|
.pipe(map(response => response), catchError(() => []));
|
|
7301
7801
|
}
|
|
7302
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7303
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7802
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RotationApiService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7803
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RotationApiService }); }
|
|
7304
7804
|
}
|
|
7305
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7805
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RotationApiService, decorators: [{
|
|
7306
7806
|
type: Injectable
|
|
7307
7807
|
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
7308
7808
|
|
|
@@ -7334,10 +7834,10 @@ class DocumentEffects {
|
|
|
7334
7834
|
}));
|
|
7335
7835
|
})));
|
|
7336
7836
|
}
|
|
7337
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7338
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7837
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentEffects, deps: [{ token: i1$2.Actions }, { token: DocumentConversionApiService }, { token: RotationApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7838
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentEffects }); }
|
|
7339
7839
|
}
|
|
7340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentEffects, decorators: [{
|
|
7341
7841
|
type: Injectable
|
|
7342
7842
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: DocumentConversionApiService }, { type: RotationApiService }] });
|
|
7343
7843
|
|
|
@@ -7357,10 +7857,10 @@ class IcpSessionApiService {
|
|
|
7357
7857
|
};
|
|
7358
7858
|
}));
|
|
7359
7859
|
}
|
|
7360
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7361
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7860
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpSessionApiService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7861
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpSessionApiService, providedIn: 'root' }); }
|
|
7362
7862
|
}
|
|
7363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7863
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpSessionApiService, decorators: [{
|
|
7364
7864
|
type: Injectable,
|
|
7365
7865
|
args: [{ providedIn: 'root' }]
|
|
7366
7866
|
}], ctorParameters: () => [{ type: i1$1.HttpClient }] });
|
|
@@ -7375,18 +7875,18 @@ class IcpEffects {
|
|
|
7375
7875
|
this.joinIcpSocketSession$ = createEffect(() => this.actions$.pipe(ofType(JOIN_ICP_SOCKET_SESSION), map((action) => action.payload), switchMap((res) => this.icpUpdateService.joinSession(res.username, res.session, res.token)
|
|
7376
7876
|
.pipe(map(participants => new IcpSocketSessionJoined({ session: res.session, participantInfo: participants }))))));
|
|
7377
7877
|
}
|
|
7378
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7379
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7878
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpEffects, deps: [{ token: i1$2.Actions }, { token: IcpSessionApiService }, { token: IcpUpdateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7879
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpEffects }); }
|
|
7380
7880
|
}
|
|
7381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7881
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpEffects, decorators: [{
|
|
7382
7882
|
type: Injectable
|
|
7383
7883
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: IcpSessionApiService }, { type: IcpUpdateService }] });
|
|
7384
7884
|
|
|
7385
7885
|
const effects = [AnnotationEffects, BookmarksEffects, RedactionEffects, DocumentEffects, IcpEffects];
|
|
7386
7886
|
|
|
7387
7887
|
class MediaViewerModule {
|
|
7388
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7389
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
7888
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7889
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, declarations: [PdfViewerComponent,
|
|
7390
7890
|
SideBarComponent,
|
|
7391
7891
|
BookmarksComponent,
|
|
7392
7892
|
OutlineItemComponent,
|
|
@@ -7398,6 +7898,7 @@ class MediaViewerModule {
|
|
|
7398
7898
|
GrabNDragDirective,
|
|
7399
7899
|
RotationPersistDirective,
|
|
7400
7900
|
HighlightCreateDirective,
|
|
7901
|
+
KeyboardTextHighlightDirective,
|
|
7401
7902
|
ConfirmActionDialogComponent,
|
|
7402
7903
|
RedactionComponent,
|
|
7403
7904
|
BookmarkIconsComponent,
|
|
@@ -7411,7 +7912,7 @@ class MediaViewerModule {
|
|
|
7411
7912
|
RouterModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, MutableDivModule,
|
|
7412
7913
|
CdkTreeModule,
|
|
7413
7914
|
DragDropModule, i5$1.RpxTranslationModule], exports: [MediaViewerComponent] }); }
|
|
7414
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
7915
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, providers: [
|
|
7415
7916
|
PdfJsWrapperFactory,
|
|
7416
7917
|
CommentService,
|
|
7417
7918
|
RedactionApiService,
|
|
@@ -7432,7 +7933,7 @@ class MediaViewerModule {
|
|
|
7432
7933
|
DragDropModule,
|
|
7433
7934
|
RpxTranslationModule.forChild()] }); }
|
|
7434
7935
|
}
|
|
7435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7936
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaViewerModule, decorators: [{
|
|
7436
7937
|
type: NgModule,
|
|
7437
7938
|
args: [{
|
|
7438
7939
|
imports: [
|
|
@@ -7464,6 +7965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
7464
7965
|
GrabNDragDirective,
|
|
7465
7966
|
RotationPersistDirective,
|
|
7466
7967
|
HighlightCreateDirective,
|
|
7968
|
+
KeyboardTextHighlightDirective,
|
|
7467
7969
|
ConfirmActionDialogComponent,
|
|
7468
7970
|
RedactionComponent,
|
|
7469
7971
|
BookmarkIconsComponent,
|