@hmcts/media-viewer 2.9.4-RC.8 → 2.10.0
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 -1
- package/assets/sass/tags.scss +1 -1
- package/assets/sass/toolbar/main-toolbar.scss +7 -6
- package/esm2020/hmcts-media-viewer.mjs +5 -0
- package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
- package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
- package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +75 -0
- package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
- package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
- package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
- package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
- package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +87 -0
- package/esm2020/lib/annotations/annotations.module.mjs +158 -0
- package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +176 -0
- package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
- package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
- package/esm2020/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +31 -0
- package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
- package/esm2020/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +61 -0
- package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +53 -0
- package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
- package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
- package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +123 -0
- package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +113 -0
- package/esm2020/lib/annotations/pipes/date/date.pipe.mjs +26 -0
- package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
- package/esm2020/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +16 -0
- package/esm2020/lib/annotations/services/annotation-api/annotation-api.service.mjs +58 -0
- package/esm2020/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +45 -0
- package/esm2020/lib/annotations/services/tags/tags.services.mjs +41 -0
- package/esm2020/lib/annotations/tags/tags.component.mjs +53 -0
- package/esm2020/lib/bookmark/components/bookmark-icons.component.mjs +25 -0
- package/esm2020/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +22 -0
- package/esm2020/lib/icp/icp-follower.service.mjs +60 -0
- package/esm2020/lib/icp/icp-presenter.service.mjs +55 -0
- package/esm2020/lib/icp/icp-session-api.service.mjs +21 -0
- package/esm2020/lib/icp/icp-update.service.mjs +57 -0
- package/esm2020/lib/icp/icp.service.mjs +93 -0
- package/esm2020/lib/icp/participants-list/participants-list.component.mjs +30 -0
- package/esm2020/lib/icp/socket.service.mjs +118 -0
- package/esm2020/lib/media-viewer.component.mjs +244 -0
- package/esm2020/lib/media-viewer.module.mjs +151 -0
- package/esm2020/lib/print.service.mjs +30 -0
- package/esm2020/lib/redaction/components/redaction.component.mjs +91 -0
- package/esm2020/lib/redaction/services/redaction-api.service.mjs +50 -0
- package/esm2020/lib/shared/gov-uk-date/gov-uk-date.component.mjs +28 -0
- package/esm2020/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +34 -0
- package/esm2020/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +63 -0
- package/esm2020/lib/shared/gov-uk-label/gov-uk-label.component.mjs +44 -0
- package/esm2020/lib/shared/shared.module.mjs +53 -0
- package/esm2020/lib/shared/util/services/number.helper.service.mjs +23 -0
- package/{esm2015/lib/store/bookmarks-store-utils.js → esm2020/lib/store/bookmarks-store-utils.mjs} +1 -3
- package/esm2020/lib/store/effects/annotation.effects.mjs +44 -0
- package/esm2020/lib/store/effects/bookmarks.effects.mjs +44 -0
- package/esm2020/lib/store/effects/document.effects.mjs +44 -0
- package/esm2020/lib/store/effects/icp.effects.mjs +26 -0
- package/esm2020/lib/store/effects/redaction.effects.mjs +67 -0
- package/esm2020/lib/store/reducers/annotations.reducer.mjs +183 -0
- package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +116 -0
- package/esm2020/lib/store/reducers/document.reducer.mjs +135 -0
- package/esm2020/lib/store/reducers/icp.reducer.mjs +56 -0
- package/esm2020/lib/store/reducers/redaction.reducer.mjs +116 -0
- package/esm2020/lib/store/reducers/tags.reducer.mjs +93 -0
- package/esm2020/lib/store/selectors/annotation.selectors.mjs +81 -0
- package/esm2020/lib/store/selectors/bookmark.selectors.mjs +36 -0
- package/{esm2015/lib/store/selectors/document.selectors.js → esm2020/lib/store/selectors/document.selectors.mjs} +3 -6
- package/esm2020/lib/store/selectors/icp.selectors.mjs +13 -0
- package/{esm2015/lib/store/selectors/redaction.selectors.js → esm2020/lib/store/selectors/redaction.selectors.mjs} +6 -10
- package/{esm2015/lib/store/selectors/tag.selectors.js → esm2020/lib/store/selectors/tag.selectors.mjs} +4 -7
- package/esm2020/lib/store/store-utils.mjs +131 -0
- package/esm2020/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +41 -0
- package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +188 -0
- package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +199 -0
- package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +66 -0
- package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +105 -0
- package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
- package/{esm2015/lib/toolbar/toolbar-event.service.js → esm2020/lib/toolbar/toolbar-event.service.mjs} +7 -5
- package/esm2020/lib/toolbar/toolbar.module.mjs +67 -0
- package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +78 -0
- package/esm2020/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +22 -0
- package/esm2020/lib/viewers/grab-n-drag.directive.mjs +57 -0
- package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
- package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +58 -0
- package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +193 -0
- package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +40 -0
- package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +230 -0
- package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +192 -0
- package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
- package/esm2020/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +77 -0
- package/esm2020/lib/viewers/rotation-persist/rotation-api.service.mjs +27 -0
- package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +64 -0
- package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
- package/esm2020/lib/viewers/viewer-event.service.mjs +30 -0
- package/esm2020/lib/viewers/viewer-util.service.mjs +20 -0
- package/esm2020/public_api.mjs +32 -0
- package/fesm2015/hmcts-media-viewer.mjs +6602 -0
- package/fesm2015/hmcts-media-viewer.mjs.map +1 -0
- package/fesm2020/hmcts-media-viewer.mjs +6893 -0
- package/fesm2020/hmcts-media-viewer.mjs.map +1 -0
- package/hmcts-media-viewer.d.ts.map +1 -1
- package/index.d.ts +6 -0
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +3 -0
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +3 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +3 -0
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-set.component.d.ts +3 -0
- package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +3 -0
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +5 -2
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +3 -0
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +3 -0
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -1
- package/lib/annotations/annotations.module.d.ts +32 -0
- package/lib/annotations/annotations.module.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment/comment.component.d.ts +3 -0
- package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment/comment.service.d.ts +5 -2
- package/lib/annotations/comment-set/comment/comment.service.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +3 -0
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +3 -0
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +3 -0
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +6 -3
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +3 -0
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +3 -0
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment-set-render.service.d.ts +3 -0
- package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment-set.component.d.ts +3 -0
- package/lib/annotations/comment-set/comment-set.component.d.ts.map +1 -1
- package/lib/annotations/comments-summary/comments-summary.component.d.ts +6 -3
- package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +1 -1
- package/lib/annotations/pipes/date/date.pipe.d.ts +3 -0
- package/lib/annotations/pipes/date/date.pipe.d.ts.map +1 -1
- package/lib/annotations/pipes/filter/filter.pipe.d.ts +3 -0
- package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +1 -1
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +3 -0
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +1 -1
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +3 -0
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +1 -1
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +3 -0
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +1 -1
- package/lib/annotations/services/tags/tags.services.d.ts +3 -0
- package/lib/annotations/services/tags/tags.services.d.ts.map +1 -1
- package/lib/annotations/tags/tags.component.d.ts +6 -3
- package/lib/annotations/tags/tags.component.d.ts.map +1 -1
- package/lib/bookmark/components/bookmark-icons.component.d.ts +3 -0
- package/lib/bookmark/components/bookmark-icons.component.d.ts.map +1 -1
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +3 -0
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +1 -1
- package/lib/icp/icp-follower.service.d.ts +3 -0
- package/lib/icp/icp-follower.service.d.ts.map +1 -1
- package/lib/icp/icp-presenter.service.d.ts +3 -0
- package/lib/icp/icp-presenter.service.d.ts.map +1 -1
- package/lib/icp/icp-session-api.service.d.ts +3 -0
- package/lib/icp/icp-session-api.service.d.ts.map +1 -1
- package/lib/icp/icp-update.service.d.ts +3 -0
- package/lib/icp/icp-update.service.d.ts.map +1 -1
- package/lib/icp/icp.service.d.ts +3 -0
- package/lib/icp/icp.service.d.ts.map +1 -1
- package/lib/icp/participants-list/participants-list.component.d.ts +3 -0
- package/lib/icp/participants-list/participants-list.component.d.ts.map +1 -1
- package/lib/icp/socket.service.d.ts +3 -0
- package/lib/icp/socket.service.d.ts.map +1 -1
- package/lib/media-viewer.component.d.ts +3 -0
- package/lib/media-viewer.component.d.ts.map +1 -1
- package/lib/media-viewer.module.d.ts +31 -0
- package/lib/media-viewer.module.d.ts.map +1 -1
- package/lib/print.service.d.ts +3 -0
- package/lib/print.service.d.ts.map +1 -1
- package/lib/redaction/components/redaction.component.d.ts +3 -0
- package/lib/redaction/components/redaction.component.d.ts.map +1 -1
- package/lib/redaction/services/redaction-api.service.d.ts +3 -0
- package/lib/redaction/services/redaction-api.service.d.ts.map +1 -1
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +3 -0
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +1 -1
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +3 -0
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +1 -1
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +3 -0
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +1 -1
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +3 -0
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +1 -1
- package/lib/shared/shared.module.d.ts +11 -0
- package/lib/shared/shared.module.d.ts.map +1 -1
- package/lib/shared/util/services/number.helper.service.d.ts +3 -0
- package/lib/shared/util/services/number.helper.service.d.ts.map +1 -1
- package/lib/store/actions/annotation.actions.d.ts +1 -1
- package/lib/store/actions/annotation.actions.d.ts.map +1 -1
- package/lib/store/actions/bookmark.actions.d.ts +1 -1
- package/lib/store/actions/bookmark.actions.d.ts.map +1 -1
- package/lib/store/actions/document.actions.d.ts +1 -1
- package/lib/store/actions/document.actions.d.ts.map +1 -1
- package/lib/store/actions/icp.actions.d.ts +1 -1
- package/lib/store/actions/icp.actions.d.ts.map +1 -1
- package/lib/store/actions/redaction.actions.d.ts +1 -1
- package/lib/store/actions/redaction.actions.d.ts.map +1 -1
- package/lib/store/actions/tag.actions.d.ts +1 -1
- package/lib/store/actions/tag.actions.d.ts.map +1 -1
- package/lib/store/effects/annotation.effects.d.ts +6 -3
- package/lib/store/effects/annotation.effects.d.ts.map +1 -1
- package/lib/store/effects/bookmarks.effects.d.ts +8 -5
- package/lib/store/effects/bookmarks.effects.d.ts.map +1 -1
- package/lib/store/effects/document.effects.d.ts +6 -3
- package/lib/store/effects/document.effects.d.ts.map +1 -1
- package/lib/store/effects/icp.effects.d.ts +5 -2
- package/lib/store/effects/icp.effects.d.ts.map +1 -1
- package/lib/store/effects/redaction.effects.d.ts +9 -6
- package/lib/store/effects/redaction.effects.d.ts.map +1 -1
- package/lib/store/selectors/annotation.selectors.d.ts +70 -27
- package/lib/store/selectors/annotation.selectors.d.ts.map +1 -1
- package/lib/store/selectors/bookmark.selectors.d.ts +18 -10
- package/lib/store/selectors/bookmark.selectors.d.ts.map +1 -1
- package/lib/store/selectors/document.selectors.d.ts +13 -11
- package/lib/store/selectors/document.selectors.d.ts.map +1 -1
- package/lib/store/selectors/icp.selectors.d.ts +9 -8
- package/lib/store/selectors/icp.selectors.d.ts.map +1 -1
- package/lib/store/selectors/redaction.selectors.d.ts +17 -11
- package/lib/store/selectors/redaction.selectors.d.ts.map +1 -1
- package/lib/store/selectors/tag.selectors.d.ts +14 -12
- package/lib/store/selectors/tag.selectors.d.ts.map +1 -1
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +3 -0
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +1 -1
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +4 -0
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -1
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +5 -2
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -1
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +3 -0
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -1
- package/lib/toolbar/search-bar/search-bar.component.d.ts +3 -0
- package/lib/toolbar/search-bar/search-bar.component.d.ts.map +1 -1
- package/lib/toolbar/toolbar-button-visibility.service.d.ts +3 -0
- package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +1 -1
- package/lib/toolbar/toolbar-event.service.d.ts +5 -2
- package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
- package/lib/toolbar/toolbar.module.d.ts +13 -0
- package/lib/toolbar/toolbar.module.d.ts.map +1 -1
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +3 -0
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +1 -1
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +3 -0
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +1 -1
- package/lib/viewers/grab-n-drag.directive.d.ts +3 -0
- package/lib/viewers/grab-n-drag.directive.d.ts.map +1 -1
- package/lib/viewers/image-viewer/image-viewer.component.d.ts +3 -0
- package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +1 -1
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +3 -0
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +3 -0
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +3 -0
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +5 -2
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +3 -0
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +3 -0
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -1
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts +3 -0
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +1 -1
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +3 -0
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +1 -1
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +3 -0
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +1 -1
- package/lib/viewers/viewer-event.service.d.ts +3 -0
- package/lib/viewers/viewer-event.service.d.ts.map +1 -1
- package/lib/viewers/viewer-util.service.d.ts +3 -0
- package/lib/viewers/viewer-util.service.d.ts.map +1 -1
- package/package.json +34 -22
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -1
- package/bundles/hmcts-media-viewer.umd.js +0 -7539
- package/bundles/hmcts-media-viewer.umd.js.map +0 -1
- package/bundles/hmcts-media-viewer.umd.min.js +0 -2
- package/bundles/hmcts-media-viewer.umd.min.js.map +0 -1
- package/esm2015/hmcts-media-viewer.js +0 -64
- package/esm2015/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +0 -113
- package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +0 -111
- package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +0 -61
- package/esm2015/lib/annotations/annotation-set/annotation-set.component.js +0 -47
- package/esm2015/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +0 -86
- package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +0 -108
- package/esm2015/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +0 -107
- package/esm2015/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +0 -81
- package/esm2015/lib/annotations/annotations.module.js +0 -103
- package/esm2015/lib/annotations/comment-set/comment/comment.component.js +0 -162
- package/esm2015/lib/annotations/comment-set/comment/comment.service.js +0 -47
- package/esm2015/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.js +0 -48
- package/esm2015/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.js +0 -31
- package/esm2015/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +0 -95
- package/esm2015/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.js +0 -60
- package/esm2015/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.js +0 -53
- package/esm2015/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +0 -68
- package/esm2015/lib/annotations/comment-set/comment-set-render.service.js +0 -51
- package/esm2015/lib/annotations/comment-set/comment-set.component.js +0 -110
- package/esm2015/lib/annotations/comments-summary/comments-summary.component.js +0 -106
- package/esm2015/lib/annotations/pipes/date/date.pipe.js +0 -22
- package/esm2015/lib/annotations/pipes/filter/filter.pipe.js +0 -28
- package/esm2015/lib/annotations/pipes/unsnake/unsnake.pipe.js +0 -12
- package/esm2015/lib/annotations/services/annotation-api/annotation-api.service.js +0 -59
- package/esm2015/lib/annotations/services/bookmarks-api/bookmarks-api.service.js +0 -46
- package/esm2015/lib/annotations/services/tags/tags.services.js +0 -36
- package/esm2015/lib/annotations/tags/tags.component.js +0 -52
- package/esm2015/lib/bookmark/components/bookmark-icons.component.js +0 -26
- package/esm2015/lib/icp/confirm-exit/confirm-action-dialog.component.js +0 -25
- package/esm2015/lib/icp/icp-follower.service.js +0 -63
- package/esm2015/lib/icp/icp-presenter.service.js +0 -57
- package/esm2015/lib/icp/icp-session-api.service.js +0 -22
- package/esm2015/lib/icp/icp-update.service.js +0 -56
- package/esm2015/lib/icp/icp.service.js +0 -98
- package/esm2015/lib/icp/participants-list/participants-list.component.js +0 -32
- package/esm2015/lib/icp/socket.service.js +0 -117
- package/esm2015/lib/media-viewer.component.js +0 -210
- package/esm2015/lib/media-viewer.module.js +0 -102
- package/esm2015/lib/print.service.js +0 -25
- package/esm2015/lib/redaction/components/redaction.component.js +0 -97
- package/esm2015/lib/redaction/services/redaction-api.service.js +0 -51
- package/esm2015/lib/shared/gov-uk-date/gov-uk-date.component.js +0 -21
- package/esm2015/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +0 -27
- package/esm2015/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -42
- package/esm2015/lib/shared/gov-uk-label/gov-uk-label.component.js +0 -32
- package/esm2015/lib/shared/shared.module.js +0 -34
- package/esm2015/lib/shared/util/services/number.helper.service.js +0 -23
- package/esm2015/lib/store/effects/annotation.effects.js +0 -55
- package/esm2015/lib/store/effects/bookmarks.effects.js +0 -66
- package/esm2015/lib/store/effects/document.effects.js +0 -59
- package/esm2015/lib/store/effects/icp.effects.js +0 -37
- package/esm2015/lib/store/effects/redaction.effects.js +0 -94
- package/esm2015/lib/store/reducers/annotations.reducer.js +0 -115
- package/esm2015/lib/store/reducers/bookmarks.reducer.js +0 -80
- package/esm2015/lib/store/reducers/document.reducer.js +0 -100
- package/esm2015/lib/store/reducers/icp.reducer.js +0 -40
- package/esm2015/lib/store/reducers/redaction.reducer.js +0 -75
- package/esm2015/lib/store/reducers/tags.reducer.js +0 -67
- package/esm2015/lib/store/selectors/annotation.selectors.js +0 -84
- package/esm2015/lib/store/selectors/bookmark.selectors.js +0 -39
- package/esm2015/lib/store/selectors/icp.selectors.js +0 -18
- package/esm2015/lib/store/store-utils.js +0 -105
- package/esm2015/lib/toolbar/icp-toolbar/icp-toolbar.component.js +0 -43
- package/esm2015/lib/toolbar/main-toolbar/main-toolbar.component.js +0 -170
- package/esm2015/lib/toolbar/redaction-search-bar/redaction-search-bar.component.js +0 -201
- package/esm2015/lib/toolbar/redaction-toolbar/redaction-toolbar.component.js +0 -70
- package/esm2015/lib/toolbar/search-bar/search-bar.component.js +0 -102
- package/esm2015/lib/toolbar/toolbar-button-visibility.service.js +0 -92
- package/esm2015/lib/toolbar/toolbar.module.js +0 -45
- package/esm2015/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.js +0 -72
- package/esm2015/lib/viewers/convertible-content-viewer/document-conversion-api.service.js +0 -23
- package/esm2015/lib/viewers/grab-n-drag.directive.js +0 -51
- package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +0 -164
- package/esm2015/lib/viewers/multimedia-player/multimedia-player.component.js +0 -54
- package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +0 -203
- package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +0 -43
- package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +0 -220
- package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +0 -179
- package/esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.js +0 -44
- package/esm2015/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +0 -72
- package/esm2015/lib/viewers/rotation-persist/rotation-api.service.js +0 -28
- package/esm2015/lib/viewers/rotation-persist/rotation-persist.directive.js +0 -67
- package/esm2015/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +0 -47
- package/esm2015/lib/viewers/viewer-event.service.js +0 -30
- package/esm2015/lib/viewers/viewer-util.service.js +0 -23
- package/esm2015/public_api.js +0 -31
- package/fesm2015/hmcts-media-viewer.js +0 -6572
- package/fesm2015/hmcts-media-viewer.js.map +0 -1
- package/hmcts-media-viewer.d.ts +0 -69
- package/hmcts-media-viewer.metadata.json +0 -1
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-set.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/annotations.module.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/comment.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/comment.service.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-render.service.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/comments-summary/comments-summary.component.ngfactory.d.ts.map +0 -1
- package/lib/annotations/pipes/date/date.pipe.ngfactory.d.ts.map +0 -1
- package/lib/annotations/pipes/filter/filter.pipe.ngfactory.d.ts.map +0 -1
- package/lib/annotations/pipes/unsnake/unsnake.pipe.ngfactory.d.ts.map +0 -1
- package/lib/annotations/services/annotation-api/annotation-api.service.ngfactory.d.ts.map +0 -1
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.ngfactory.d.ts.map +0 -1
- package/lib/annotations/services/tags/tags.services.ngfactory.d.ts.map +0 -1
- package/lib/annotations/tags/tags.component.ngfactory.d.ts.map +0 -1
- package/lib/bookmark/components/bookmark-icons.component.ngfactory.d.ts.map +0 -1
- package/lib/icp/confirm-exit/confirm-action-dialog.component.ngfactory.d.ts.map +0 -1
- package/lib/icp/icp-follower.service.ngfactory.d.ts.map +0 -1
- package/lib/icp/icp-presenter.service.ngfactory.d.ts.map +0 -1
- package/lib/icp/icp-session-api.service.ngfactory.d.ts.map +0 -1
- package/lib/icp/icp-update.service.ngfactory.d.ts.map +0 -1
- package/lib/icp/icp.service.ngfactory.d.ts.map +0 -1
- package/lib/icp/participants-list/participants-list.component.ngfactory.d.ts.map +0 -1
- package/lib/icp/socket.service.ngfactory.d.ts.map +0 -1
- package/lib/media-viewer.component.ngfactory.d.ts.map +0 -1
- package/lib/media-viewer.module.ngfactory.d.ts.map +0 -1
- package/lib/print.service.ngfactory.d.ts.map +0 -1
- package/lib/redaction/components/redaction.component.ngfactory.d.ts.map +0 -1
- package/lib/redaction/services/redaction-api.service.ngfactory.d.ts.map +0 -1
- package/lib/shared/gov-uk-date/gov-uk-date.component.ngfactory.d.ts.map +0 -1
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ngfactory.d.ts.map +0 -1
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ngfactory.d.ts.map +0 -1
- package/lib/shared/gov-uk-label/gov-uk-label.component.ngfactory.d.ts.map +0 -1
- package/lib/shared/shared.module.ngfactory.d.ts.map +0 -1
- package/lib/shared/util/services/number.helper.service.ngfactory.d.ts.map +0 -1
- package/lib/store/effects/annotation.effects.ngfactory.d.ts.map +0 -1
- package/lib/store/effects/bookmarks.effects.ngfactory.d.ts.map +0 -1
- package/lib/store/effects/document.effects.ngfactory.d.ts.map +0 -1
- package/lib/store/effects/icp.effects.ngfactory.d.ts.map +0 -1
- package/lib/store/effects/redaction.effects.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/main-toolbar/main-toolbar.component.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/search-bar/search-bar.component.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/toolbar-button-visibility.service.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/toolbar-event.service.ngfactory.d.ts.map +0 -1
- package/lib/toolbar/toolbar.module.ngfactory.d.ts.map +0 -1
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.ngfactory.d.ts.map +0 -1
- package/lib/viewers/grab-n-drag.directive.ngfactory.d.ts.map +0 -1
- package/lib/viewers/image-viewer/image-viewer.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/multimedia-player/multimedia-player.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ngfactory.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/pdf-viewer.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/rotation-persist/rotation-api.service.ngfactory.d.ts.map +0 -1
- package/lib/viewers/rotation-persist/rotation-persist.directive.ngfactory.d.ts.map +0 -1
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.ngfactory.d.ts.map +0 -1
- package/lib/viewers/viewer-event.service.ngfactory.d.ts.map +0 -1
- package/lib/viewers/viewer-util.service.ngfactory.d.ts.map +0 -1
- /package/{esm2015/lib/annotations/annotation-set/annotation-set.model.js → esm2020/lib/annotations/annotation-set/annotation-set.model.mjs} +0 -0
- /package/{esm2015/lib/annotations/annotation-set/annotation-view/annotation.model.js → esm2020/lib/annotations/annotation-set/annotation-view/annotation.model.mjs} +0 -0
- /package/{esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.js → esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs} +0 -0
- /package/{esm2015/lib/annotations/comment-set/comment/comment.model.js → esm2020/lib/annotations/comment-set/comment/comment.model.mjs} +0 -0
- /package/{esm2015/lib/annotations/models/api-persisted.model.js → esm2020/lib/annotations/models/api-persisted.model.mjs} +0 -0
- /package/{esm2015/lib/annotations/models/event-select.model.js → esm2020/lib/annotations/models/event-select.model.mjs} +0 -0
- /package/{esm2015/lib/annotations/models/tags.model.js → esm2020/lib/annotations/models/tags.model.mjs} +0 -0
- /package/{esm2015/lib/annotations/models/user.model.js → esm2020/lib/annotations/models/user.model.mjs} +0 -0
- /package/{esm2015/lib/icp/icp.events.js → esm2020/lib/icp/icp.events.mjs} +0 -0
- /package/{esm2015/lib/icp/icp.interfaces.js → esm2020/lib/icp/icp.interfaces.mjs} +0 -0
- /package/{esm2015/lib/redaction/services/redaction.model.js → esm2020/lib/redaction/services/redaction.model.mjs} +0 -0
- /package/{esm2015/lib/shared/util/helpers/html-templates.helper.js → esm2020/lib/shared/util/helpers/html-templates.helper.mjs} +0 -0
- /package/{esm2015/lib/store/actions/annotation.actions.js → esm2020/lib/store/actions/annotation.actions.mjs} +0 -0
- /package/{esm2015/lib/store/actions/bookmark.actions.js → esm2020/lib/store/actions/bookmark.actions.mjs} +0 -0
- /package/{esm2015/lib/store/actions/document.actions.js → esm2020/lib/store/actions/document.actions.mjs} +0 -0
- /package/{esm2015/lib/store/actions/icp.actions.js → esm2020/lib/store/actions/icp.actions.mjs} +0 -0
- /package/{esm2015/lib/store/actions/redaction.actions.js → esm2020/lib/store/actions/redaction.actions.mjs} +0 -0
- /package/{esm2015/lib/store/actions/tag.actions.js → esm2020/lib/store/actions/tag.actions.mjs} +0 -0
- /package/{esm2015/lib/store/effects/index.js → esm2020/lib/store/effects/index.mjs} +0 -0
- /package/{esm2015/lib/store/models/bookmarks.interface.js → esm2020/lib/store/models/bookmarks.interface.mjs} +0 -0
- /package/{esm2015/lib/store/models/filters.interface.js → esm2020/lib/store/models/filters.interface.mjs} +0 -0
- /package/{esm2015/lib/store/reducers/reducers.js → esm2020/lib/store/reducers/reducers.mjs} +0 -0
- /package/{esm2015/lib/toolbar/icp-event.service.js → esm2020/lib/toolbar/icp-event.service.mjs} +0 -0
- /package/{esm2015/lib/toolbar/redaction-search-bar/redaction-search.model.js → esm2020/lib/toolbar/redaction-search-bar/redaction-search.model.mjs} +0 -0
- /package/{esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.js → esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs} +0 -0
- /package/{esm2015/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.js → esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs} +0 -0
- /package/{esm2015/lib/viewers/rotation-persist/rotation.model.js → esm2020/lib/viewers/rotation-persist/rotation.model.mjs} +0 -0
- /package/{esm2015/lib/viewers/viewer-exception.model.js → esm2020/lib/viewers/viewer-exception.model.mjs} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { catchError, exhaustMap, map, switchMap, withLatestFrom } from 'rxjs/operators';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import * as bookmarksActions from '../actions/bookmark.actions';
|
|
6
|
+
import { select } from '@ngrx/store';
|
|
7
|
+
import * as fromDocument from '../selectors/document.selectors';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@ngrx/effects";
|
|
10
|
+
import * as i2 from "@ngrx/store";
|
|
11
|
+
import * as i3 from "../../annotations/services/bookmarks-api/bookmarks-api.service";
|
|
12
|
+
export class BookmarksEffects {
|
|
13
|
+
constructor(actions$, store, bookmarksApiService) {
|
|
14
|
+
this.actions$ = actions$;
|
|
15
|
+
this.store = store;
|
|
16
|
+
this.bookmarksApiService = bookmarksApiService;
|
|
17
|
+
this.loadBookmarks$ = createEffect(() => this.actions$.pipe(ofType(bookmarksActions.LOAD_BOOKMARKS), withLatestFrom(this.store.pipe(select(fromDocument.getDocumentId))), map(([, documentId]) => documentId), exhaustMap((documentId) => this.bookmarksApiService.getBookmarks(documentId)
|
|
18
|
+
.pipe(map(res => new bookmarksActions.LoadBookmarksSuccess(res)), catchError(err => of(new bookmarksActions.LoadBookmarksFailure(err)))))));
|
|
19
|
+
this.createBookmark$ = createEffect(() => this.actions$.pipe(ofType(bookmarksActions.CREATE_BOOKMARK), map((action) => action.payload), exhaustMap((bookmark) => this.bookmarksApiService.createBookmark(bookmark)
|
|
20
|
+
.pipe(map(bmrk => new bookmarksActions.CreateBookmarkSuccess(bmrk)), catchError(error => of(new bookmarksActions.CreateBookmarkFailure(error)))))));
|
|
21
|
+
this.moveBookmark$ = createEffect(() => this.actions$.pipe(ofType(bookmarksActions.MOVE_BOOKMARK), map((action) => action.payload), exhaustMap((bookmarks) => this.bookmarksApiService.updateMultipleBookmarks(bookmarks)
|
|
22
|
+
.pipe(map(bmrks => new bookmarksActions.MoveBookmarkSuccess(bmrks)), catchError(error => of(new bookmarksActions.MoveBookmarkFailure(error)))))));
|
|
23
|
+
this.deleteBookmark$ = createEffect(() => this.actions$.pipe(ofType(bookmarksActions.DELETE_BOOKMARK), map((action) => action.payload), exhaustMap(({ deleted, updated }) => this.bookmarksApiService.deleteMultipleBookmarks({ deleted, updated })
|
|
24
|
+
.pipe(switchMap(() => {
|
|
25
|
+
if (updated) {
|
|
26
|
+
return [
|
|
27
|
+
new bookmarksActions.DeleteBookmarkSuccess(deleted),
|
|
28
|
+
new bookmarksActions.UpdateBookmarkSuccess(updated)
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return [new bookmarksActions.DeleteBookmarkSuccess(deleted)];
|
|
33
|
+
}
|
|
34
|
+
}), catchError(error => of(new bookmarksActions.DeleteBookmarkFailure(error)))))));
|
|
35
|
+
this.updateBookmark$ = createEffect(() => this.actions$.pipe(ofType(bookmarksActions.UPDATE_BOOKMARK), map((action) => action.payload), switchMap((bookmark) => this.bookmarksApiService.updateBookmark(bookmark)
|
|
36
|
+
.pipe(map(bmrk => new bookmarksActions.UpdateBookmarkSuccess(bmrk)), catchError(error => of(new bookmarksActions.UpdateBookmarkFailure(error)))))));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** @nocollapse */ BookmarksEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BookmarksEffects, deps: [{ token: i1.Actions }, { token: i2.Store }, { token: i3.BookmarksApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
/** @nocollapse */ BookmarksEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BookmarksEffects });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BookmarksEffects, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.Store }, { type: i3.BookmarksApiService }]; } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2Jvb2ttYXJrcy5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxZQUFZLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBS2hFLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBb0IsUUFBaUIsRUFDakIsS0FBdUUsRUFDdkUsbUJBQXdDO1FBRnhDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBa0U7UUFDdkUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUU1RCxtQkFBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2xCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFDdkMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUNuRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFD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QyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUMzRSxDQUNKLENBQUMsQ0FDSCxDQUFDO1FBRUYsb0JBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNsQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxDQUFDLE1BQXVDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDaEUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7YUFDOUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDN0QsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUMzRSxDQUNKLENBQUMsQ0FDSCxDQUFDO0lBM0U2RCxDQUFDOztnSUFKckQsZ0JBQWdCO29JQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBleGhhdXN0TWFwLCBtYXAsIHN3aXRjaE1hcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9va21hcmtzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL3NlcnZpY2VzL2Jvb2ttYXJrcy1hcGkvYm9va21hcmtzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGJvb2ttYXJrc0FjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tQm9va21hcmtzIGZyb20gJy4uL3JlZHVjZXJzL2Jvb2ttYXJrcy5yZWR1Y2VyJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCb29rbWFya3NFZmZlY3RzIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgICAgICAgICAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlfGZyb21Cb29rbWFya3MuQm9va21hcmtzU3RhdGU+LFxuICAgICAgICAgICAgICBwcml2YXRlIGJvb2ttYXJrc0FwaVNlcnZpY2U6IEJvb2ttYXJrc0FwaVNlcnZpY2UpIHt9XG5cbiAgbG9hZEJvb2ttYXJrcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGJvb2ttYXJrc0FjdGlvbnMuTE9BRF9CT09LTUFSS1MpLFxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldERvY3VtZW50SWQpKSksXG4gICAgbWFwKChbLCBkb2N1bWVudElkXSkgPT4gZG9jdW1lbnRJZCksXG4gICAgZXhoYXVzdE1hcCgoZG9jdW1lbnRJZCkgPT5cbiAgICAgIHRoaXMuYm9va21hcmtzQXBpU2VydmljZS5nZXRCb29rbWFya3MoZG9jdW1lbnRJZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHJlcyA9PiBuZXcgYm9va21hcmtzQWN0aW9ucy5Mb2FkQm9va21hcmtzU3VjY2VzcyhyZXMpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiBvZihuZXcgYm9va21hcmtzQWN0aW9ucy5Mb2FkQm9va21hcmtzRmFpbHVyZShlcnIpKSlcbiAgICAgICAgKVxuICAgICkpXG4gICk7XG5cbiAgY3JlYXRlQm9va21hcmskID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShib29rbWFya3NBY3Rpb25zLkNSRUFURV9CT09LTUFSSyksXG4gICAgbWFwKChhY3Rpb246IGJvb2ttYXJrc0FjdGlvbnMuQ3JlYXRlQm9va21hcmspID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICBleGhhdXN0TWFwKChib29rbWFyaykgPT5cbiAgICAgIHRoaXMuYm9va21hcmtzQXBpU2VydmljZS5jcmVhdGVCb29rbWFyayhib29rbWFyaylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKGJtcmsgPT4gbmV3IGJvb2ttYXJrc0FjdGlvbnMuQ3JlYXRlQm9va21hcmtTdWNjZXNzKGJtcmspKSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKG5ldyBib29rbWFya3NBY3Rpb25zLkNyZWF0ZUJvb2ttYXJrRmFpbHVyZShlcnJvcikpKVxuICAgICAgICApXG4gICAgKSlcbiAgKTtcblxuICBtb3ZlQm9va21hcmskID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShib29rbWFya3NBY3Rpb25zLk1PVkVfQk9PS01BUkspLFxuICAgIG1hcCgoYWN0aW9uOiBib29rbWFya3NBY3Rpb25zLk1vdmVCb29rbWFyaykgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIGV4aGF1c3RNYXAoKGJvb2ttYXJrcykgPT5cbiAgICAgIHRoaXMuYm9va21hcmtzQXBpU2VydmljZS51cGRhdGVNdWx0aXBsZUJvb2ttYXJrcyhib29rbWFya3MpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChibXJrcyA9PiBuZXcgYm9va21hcmtzQWN0aW9ucy5Nb3ZlQm9va21hcmtTdWNjZXNzKGJtcmtzKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihuZXcgYm9va21hcmtzQWN0aW9ucy5Nb3ZlQm9va21hcmtGYWlsdXJlKGVycm9yKSkpXG4gICAgICAgIClcbiAgICApKVxuICApO1xuXG4gIGRlbGV0ZUJvb2ttYXJrJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoYm9va21hcmtzQWN0aW9ucy5ERUxFVEVfQk9PS01BUkspLFxuICAgIG1hcCgoYWN0aW9uOiBib29rbWFya3NBY3Rpb25zLkRlbGV0ZUJvb2ttYXJrKSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgZXhoYXVzdE1hcCgoeyBkZWxldGVkLCB1cGRhdGVkIH0pID0+XG4gICAgICB0aGlzLmJvb2ttYXJrc0FwaVNlcnZpY2UuZGVsZXRlTXVsdGlwbGVCb29rbWFya3MoeyBkZWxldGVkLCB1cGRhdGVkIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodXBkYXRlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIG5ldyBib29rbWFya3NBY3Rpb25zLkRlbGV0ZUJvb2ttYXJrU3VjY2VzcyhkZWxldGVkKSxcbiAgICAgICAgICAgICAgICBuZXcgYm9va21hcmtzQWN0aW9ucy5VcGRhdGVCb29rbWFya1N1Y2Nlc3ModXBkYXRlZClcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBbbmV3IGJvb2ttYXJrc0FjdGlvbnMuRGVsZXRlQm9va21hcmtTdWNjZXNzKGRlbGV0ZWQpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKG5ldyBib29rbWFya3NBY3Rpb25zLkRlbGV0ZUJvb2ttYXJrRmFpbHVyZShlcnJvcikpKVxuICAgICAgICApXG4gICAgKSlcbiAgKTtcblxuICB1cGRhdGVCb29rbWFyayQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGJvb2ttYXJrc0FjdGlvbnMuVVBEQVRFX0JPT0tNQVJLKSxcbiAgICBtYXAoKGFjdGlvbjogYm9va21hcmtzQWN0aW9ucy5VcGRhdGVCb29rbWFyaykgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIHN3aXRjaE1hcCgoYm9va21hcmspID0+XG4gICAgICB0aGlzLmJvb2ttYXJrc0FwaVNlcnZpY2UudXBkYXRlQm9va21hcmsoYm9va21hcmspXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChibXJrID0+IG5ldyBib29rbWFya3NBY3Rpb25zLlVwZGF0ZUJvb2ttYXJrU3VjY2VzcyhibXJrKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihuZXcgYm9va21hcmtzQWN0aW9ucy5VcGRhdGVCb29rbWFya0ZhaWx1cmUoZXJyb3IpKSlcbiAgICAgICAgKVxuICAgICkpXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createEffect, ofType } from '@ngrx/effects';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import * as documentActions from '../actions/document.actions';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ngrx/effects";
|
|
8
|
+
import * as i2 from "../../viewers/convertible-content-viewer/document-conversion-api.service";
|
|
9
|
+
import * as i3 from "../../viewers/rotation-persist/rotation-api.service";
|
|
10
|
+
export class DocumentEffects {
|
|
11
|
+
constructor(actions$, documentConversionService, rotationApiService) {
|
|
12
|
+
this.actions$ = actions$;
|
|
13
|
+
this.documentConversionService = documentConversionService;
|
|
14
|
+
this.rotationApiService = rotationApiService;
|
|
15
|
+
this.convert$ = createEffect(() => this.actions$.pipe(ofType(documentActions.CONVERT), map((action) => action.payload), exhaustMap((documentId) => {
|
|
16
|
+
return this.documentConversionService.convert(documentId).pipe(map((result) => {
|
|
17
|
+
const url = URL.createObjectURL(result.body);
|
|
18
|
+
return new documentActions.ConvertSuccess(url);
|
|
19
|
+
}), catchError(error => {
|
|
20
|
+
return of(new documentActions.ConvertFailure(error));
|
|
21
|
+
}));
|
|
22
|
+
})));
|
|
23
|
+
this.loadRotation$ = createEffect(() => this.actions$.pipe(ofType(documentActions.LOAD_ROTATION), map((action) => action.payload), switchMap((documentId) => {
|
|
24
|
+
return this.rotationApiService.getRotation(documentId).pipe(map(resp => {
|
|
25
|
+
return new documentActions.LoadRotationSuccess(resp.body);
|
|
26
|
+
}), catchError(error => {
|
|
27
|
+
return of(new documentActions.LoadRotationFailure(error));
|
|
28
|
+
}));
|
|
29
|
+
})));
|
|
30
|
+
this.saveRotation$ = createEffect(() => this.actions$.pipe(ofType(documentActions.SAVE_ROTATION), map((action) => action.payload), switchMap((payload) => {
|
|
31
|
+
return this.rotationApiService.saveRotation(payload).pipe(map(resp => {
|
|
32
|
+
return new documentActions.SaveRotationSuccess(resp.body);
|
|
33
|
+
}), catchError(error => {
|
|
34
|
+
return of(new documentActions.SaveRotationFailure(error));
|
|
35
|
+
}));
|
|
36
|
+
})));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** @nocollapse */ DocumentEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DocumentEffects, deps: [{ token: i1.Actions }, { token: i2.DocumentConversionApiService }, { token: i3.RotationApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
/** @nocollapse */ DocumentEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DocumentEffects });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DocumentEffects, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.DocumentConversionApiService }, { type: i3.RotationApiService }]; } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3N0b3JlL2VmZmVjdHMvZG9jdW1lbnQuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sS0FBSyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBRy9ELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsUUFBaUIsRUFDakIseUJBQXVELEVBQ3ZELGtCQUFzQztRQUZ0QyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBOEI7UUFDdkQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUdoRCxhQUFRLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFDL0IsR0FBRyxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUN4RCxVQUFVLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHLENBQUMsQ0FBQyxNQUEwQixFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QyxPQUFPLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRixrQkFBYSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2xCLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxDQUFDLE1BQW9DLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDN0QsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDekQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNULE9BQU8sSUFBSSxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakIsT0FBTyxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FDSixDQUFDO1FBRUYsa0JBQWEsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNsQixNQUFNLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxFQUNyQyxHQUFHLENBQUMsQ0FBQyxNQUFvQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQzdELFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDVCxPQUFPLElBQUksZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQTlDRSxDQUFDOzsrSEFMTSxlQUFlO21JQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBleGhhdXN0TWFwLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERvY3VtZW50Q29udmVyc2lvbkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi92aWV3ZXJzL2NvbnZlcnRpYmxlLWNvbnRlbnQtdmlld2VyL2RvY3VtZW50LWNvbnZlcnNpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm90YXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdmlld2Vycy9yb3RhdGlvbi1wZXJzaXN0L3JvdGF0aW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBkb2N1bWVudEFjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERvY3VtZW50RWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBkb2N1bWVudENvbnZlcnNpb25TZXJ2aWNlOiBEb2N1bWVudENvbnZlcnNpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm90YXRpb25BcGlTZXJ2aWNlOiBSb3RhdGlvbkFwaVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgY29udmVydCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGRvY3VtZW50QWN0aW9ucy5DT05WRVJUKSxcbiAgICBtYXAoKGFjdGlvbjogZG9jdW1lbnRBY3Rpb25zLkNvbnZlcnQpID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICBleGhhdXN0TWFwKChkb2N1bWVudElkKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudENvbnZlcnNpb25TZXJ2aWNlLmNvbnZlcnQoZG9jdW1lbnRJZCkucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQ6IEh0dHBSZXNwb25zZTxCbG9iPikgPT4ge1xuICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocmVzdWx0LmJvZHkpO1xuICAgICAgICAgIHJldHVybiBuZXcgZG9jdW1lbnRBY3Rpb25zLkNvbnZlcnRTdWNjZXNzKHVybCk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICByZXR1cm4gb2YobmV3IGRvY3VtZW50QWN0aW9ucy5Db252ZXJ0RmFpbHVyZShlcnJvcikpO1xuICAgICAgICB9KSk7XG4gICAgfSkpXG4gICk7XG5cbiAgbG9hZFJvdGF0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoZG9jdW1lbnRBY3Rpb25zLkxPQURfUk9UQVRJT04pLFxuICAgIG1hcCgoYWN0aW9uOiBkb2N1bWVudEFjdGlvbnMuTG9hZFJvdGF0aW9uKSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgc3dpdGNoTWFwKChkb2N1bWVudElkKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5yb3RhdGlvbkFwaVNlcnZpY2UuZ2V0Um90YXRpb24oZG9jdW1lbnRJZCkucGlwZShcbiAgICAgICAgbWFwKHJlc3AgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgZG9jdW1lbnRBY3Rpb25zLkxvYWRSb3RhdGlvblN1Y2Nlc3MocmVzcC5ib2R5KTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihuZXcgZG9jdW1lbnRBY3Rpb25zLkxvYWRSb3RhdGlvbkZhaWx1cmUoZXJyb3IpKTtcbiAgICAgICAgfSkpO1xuICAgIH0pKVxuICApO1xuXG4gIHNhdmVSb3RhdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGRvY3VtZW50QWN0aW9ucy5TQVZFX1JPVEFUSU9OKSxcbiAgICBtYXAoKGFjdGlvbjogZG9jdW1lbnRBY3Rpb25zLlNhdmVSb3RhdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIHN3aXRjaE1hcCgocGF5bG9hZCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucm90YXRpb25BcGlTZXJ2aWNlLnNhdmVSb3RhdGlvbihwYXlsb2FkKS5waXBlKFxuICAgICAgICBtYXAocmVzcCA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBkb2N1bWVudEFjdGlvbnMuU2F2ZVJvdGF0aW9uU3VjY2VzcyhyZXNwLmJvZHkpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBkb2N1bWVudEFjdGlvbnMuU2F2ZVJvdGF0aW9uRmFpbHVyZShlcnJvcikpO1xuICAgICAgICB9KSk7XG4gICAgfSkpXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import * as icpActions from '../actions/icp.actions';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ngrx/effects";
|
|
8
|
+
import * as i2 from "../../icp/icp-session-api.service";
|
|
9
|
+
import * as i3 from "../../icp/icp-update.service";
|
|
10
|
+
export class IcpEffects {
|
|
11
|
+
constructor(actions$, icpApiService, icpUpdateService) {
|
|
12
|
+
this.actions$ = actions$;
|
|
13
|
+
this.icpApiService = icpApiService;
|
|
14
|
+
this.icpUpdateService = icpUpdateService;
|
|
15
|
+
this.loadIcpSession$ = createEffect(() => this.actions$.pipe(ofType(icpActions.LOAD_ICP_SESSION), map((action) => action.payload), exhaustMap((caseId) => this.icpApiService.loadSession(caseId)
|
|
16
|
+
.pipe(map(res => new icpActions.JoinIcpSocketSession(res)), catchError(error => of(new icpActions.LoadIcpSessionFailure(error)))))));
|
|
17
|
+
this.joinIcpSocketSession$ = createEffect(() => this.actions$.pipe(ofType(icpActions.JOIN_ICP_SOCKET_SESSION), map((action) => action.payload), switchMap((res) => this.icpUpdateService.joinSession(res.username, res.session)
|
|
18
|
+
.pipe(map(participants => new icpActions.IcpSocketSessionJoined({ session: res.session, participantInfo: participants }))))));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** @nocollapse */ IcpEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IcpEffects, deps: [{ token: i1.Actions }, { token: i2.IcpSessionApiService }, { token: i3.IcpUpdateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
/** @nocollapse */ IcpEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IcpEffects });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IcpEffects, decorators: [{
|
|
24
|
+
type: Injectable
|
|
25
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.IcpSessionApiService }, { type: i3.IcpUpdateService }]; } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2ljcC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUIsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBRTs7Ozs7QUFJdEQsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFBb0IsUUFBaUIsRUFDakIsYUFBbUMsRUFDbkMsZ0JBQWtDO1FBRmxDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFFdEQsb0JBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNsQixNQUFNLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQ25DLEdBQUcsQ0FBQyxDQUFDLE1BQWlDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDMUQsVUFBVSxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2FBQ25DLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNwRCxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNyRSxDQUNKLENBQUMsQ0FDSCxDQUFDO1FBR0YsMEJBQXFCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUMxQyxHQUFHLENBQUMsQ0FBQyxNQUF1QyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxDQUFDLEdBQTRDLEVBQUUsRUFBRSxDQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUN6RCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsc0JBQXNCLENBQUMsRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNILENBQUMsQ0FDSCxDQUFDO0lBeEJ1RCxDQUFDOzswSEFKL0MsVUFBVTs4SEFBVixVQUFVOzJGQUFWLFVBQVU7a0JBRHRCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZXhoYXVzdE1hcCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWNwU2Vzc2lvbkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9pY3AvaWNwLXNlc3Npb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwVXBkYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2ljcC9pY3AtdXBkYXRlLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgaWNwQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zL2ljcC5hY3Rpb25zJyA7XG5pbXBvcnQgeyBJY3BTZXNzaW9uIH0gZnJvbSAnLi4vLi4vaWNwL2ljcC5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljcEVmZmVjdHMge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgICAgICAgICAgIHByaXZhdGUgaWNwQXBpU2VydmljZTogSWNwU2Vzc2lvbkFwaVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgaWNwVXBkYXRlU2VydmljZTogSWNwVXBkYXRlU2VydmljZSkge31cblxuICBsb2FkSWNwU2Vzc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGljcEFjdGlvbnMuTE9BRF9JQ1BfU0VTU0lPTiksXG4gICAgbWFwKChhY3Rpb246IGljcEFjdGlvbnMuTG9hZEljcFNlc3Npb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICBleGhhdXN0TWFwKChjYXNlSWQ6IHN0cmluZykgPT5cbiAgICAgIHRoaXMuaWNwQXBpU2VydmljZS5sb2FkU2Vzc2lvbihjYXNlSWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChyZXMgPT4gbmV3IGljcEFjdGlvbnMuSm9pbkljcFNvY2tldFNlc3Npb24ocmVzKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihuZXcgaWNwQWN0aW9ucy5Mb2FkSWNwU2Vzc2lvbkZhaWx1cmUoZXJyb3IpKSlcbiAgICAgICAgKVxuICAgICkpXG4gICk7XG5cblxuICBqb2luSWNwU29ja2V0U2Vzc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGljcEFjdGlvbnMuSk9JTl9JQ1BfU09DS0VUX1NFU1NJT04pLFxuICAgIG1hcCgoYWN0aW9uOiBpY3BBY3Rpb25zLkpvaW5JY3BTb2NrZXRTZXNzaW9uKSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgc3dpdGNoTWFwKChyZXM6IHt1c2VybmFtZTogc3RyaW5nLCBzZXNzaW9uOiBJY3BTZXNzaW9ufSkgPT5cbiAgICAgIHRoaXMuaWNwVXBkYXRlU2VydmljZS5qb2luU2Vzc2lvbihyZXMudXNlcm5hbWUsIHJlcy5zZXNzaW9uKVxuICAgICAgICAucGlwZShtYXAocGFydGljaXBhbnRzID0+IG5ldyBpY3BBY3Rpb25zLkljcFNvY2tldFNlc3Npb25Kb2luZWQoe3Nlc3Npb246IHJlcy5zZXNzaW9uLCBwYXJ0aWNpcGFudEluZm86IHBhcnRpY2lwYW50c30pKSlcbiAgICApKVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { catchError, exhaustMap, map, switchMap, tap } from 'rxjs/operators';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import * as redactionActions from '../actions/redaction.actions';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ngrx/effects";
|
|
8
|
+
import * as i2 from "../../redaction/services/redaction-api.service";
|
|
9
|
+
import * as i3 from "../../toolbar/toolbar-event.service";
|
|
10
|
+
export class RedactionEffects {
|
|
11
|
+
constructor(actions$, redactionApiService, toolbarEvents) {
|
|
12
|
+
this.actions$ = actions$;
|
|
13
|
+
this.redactionApiService = redactionApiService;
|
|
14
|
+
this.toolbarEvents = toolbarEvents;
|
|
15
|
+
this.loadRedactions$ = createEffect(() => this.actions$.pipe(ofType(redactionActions.LOAD_REDACTIONS), map((action) => action.payload), switchMap((documentId) => {
|
|
16
|
+
return this.redactionApiService.getRedactions(documentId).pipe(map(resp => {
|
|
17
|
+
return new redactionActions.LoadRedactionSuccess(resp.body);
|
|
18
|
+
}), catchError(error => {
|
|
19
|
+
return of(new redactionActions.LoadRedactionFailure(error));
|
|
20
|
+
}));
|
|
21
|
+
})));
|
|
22
|
+
this.saveRedaction$ = createEffect(() => this.actions$.pipe(ofType(redactionActions.SAVE_REDACTION), map((action) => action.payload), exhaustMap((redaction) => {
|
|
23
|
+
return this.redactionApiService.saveRedaction(redaction).pipe(map(resp => {
|
|
24
|
+
return new redactionActions.SaveRedactionSuccess(resp);
|
|
25
|
+
}), catchError(error => {
|
|
26
|
+
return of(new redactionActions.SaveRedactionFailure(error));
|
|
27
|
+
}));
|
|
28
|
+
})));
|
|
29
|
+
this.saveBulkRedaction$ = createEffect(() => this.actions$.pipe(ofType(redactionActions.SAVE_BULK_REDACTION), map((action) => action.payload), exhaustMap((redaction) => {
|
|
30
|
+
return this.redactionApiService.saveBulkRedaction(redaction).pipe(tap(() => this.toolbarEvents.redactAllInProgressSubject.next(false))).pipe(map(resp => {
|
|
31
|
+
return new redactionActions.SaveBulkRedactionSuccess(resp);
|
|
32
|
+
}), catchError(error => {
|
|
33
|
+
return of(new redactionActions.SaveBulkRedactionFailure(error));
|
|
34
|
+
}));
|
|
35
|
+
})));
|
|
36
|
+
this.deleteRedaction$ = createEffect(() => this.actions$.pipe(ofType(redactionActions.DELETE_REDACTION), map((action) => action.payload), exhaustMap((redactionPayload) => {
|
|
37
|
+
return this.redactionApiService.deleteRedaction(redactionPayload).pipe(map(() => {
|
|
38
|
+
return new redactionActions.DeleteRedactionSuccess(redactionPayload);
|
|
39
|
+
}), catchError(error => {
|
|
40
|
+
return of(new redactionActions.DeleteRedactionFailure(error));
|
|
41
|
+
}));
|
|
42
|
+
})));
|
|
43
|
+
this.redact$ = createEffect(() => this.actions$.pipe(ofType(redactionActions.REDACT), map((action) => action.payload), exhaustMap((redactionPayload) => {
|
|
44
|
+
return this.redactionApiService.redact(redactionPayload).pipe(map((result) => {
|
|
45
|
+
const header = result.headers.get('content-disposition').split('filename=');
|
|
46
|
+
const filename = header.length > 1 ? header[1].replace(/"/g, '')
|
|
47
|
+
: `redacted-document-${redactionPayload.documentId}`;
|
|
48
|
+
return new redactionActions.RedactSuccess({ blob: result.body, filename });
|
|
49
|
+
}), catchError(error => {
|
|
50
|
+
return of(new redactionActions.RedactFailure(error));
|
|
51
|
+
}));
|
|
52
|
+
})));
|
|
53
|
+
this.unmarkAll$ = createEffect(() => this.actions$.pipe(ofType(redactionActions.UNMARK_ALL), map((action) => action.payload), exhaustMap((documentId) => {
|
|
54
|
+
return this.redactionApiService.deleteAllMarkers(documentId).pipe(map(result => {
|
|
55
|
+
return new redactionActions.UnmarkAllSuccess();
|
|
56
|
+
}), catchError(error => {
|
|
57
|
+
return of(new redactionActions.DeleteRedactionFailure(error));
|
|
58
|
+
}));
|
|
59
|
+
})));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** @nocollapse */ RedactionEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RedactionEffects, deps: [{ token: i1.Actions }, { token: i2.RedactionApiService }, { token: i3.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
63
|
+
/** @nocollapse */ RedactionEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RedactionEffects });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RedactionEffects, decorators: [{
|
|
65
|
+
type: Injectable
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.RedactionApiService }, { type: i3.ToolbarEventService }]; } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL3JlZGFjdGlvbi5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFLakUsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLFFBQWlCLEVBQ2pCLG1CQUF3QyxFQUN4QyxhQUFrQztRQUZsQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBRzVDLG9CQUFlLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUN4QyxHQUFHLENBQUMsQ0FBQyxNQUF1QyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDVCxPQUFPLElB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Q0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFFRixlQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUNuQyxHQUFHLENBQUMsQ0FBQyxNQUFrQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQzNELFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDL0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNYLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pELENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakIsT0FBTyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQyxDQUNKLENBQUM7SUE3RkUsQ0FBQzs7Z0lBTE0sZ0JBQWdCO29JQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBleGhhdXN0TWFwLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlZGFjdGlvbkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZWRhY3Rpb24vc2VydmljZXMvcmVkYWN0aW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIHJlZGFjdGlvbkFjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9yZWRhY3Rpb24uYWN0aW9ucyc7XG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVkYWN0aW9uRWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSByZWRhY3Rpb25BcGlTZXJ2aWNlOiBSZWRhY3Rpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZVxuICApIHsgfVxuXG4gIGxvYWRSZWRhY3Rpb25zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUocmVkYWN0aW9uQWN0aW9ucy5MT0FEX1JFREFDVElPTlMpLFxuICAgIG1hcCgoYWN0aW9uOiByZWRhY3Rpb25BY3Rpb25zLkxvYWRSZWRhY3Rpb25zKSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgc3dpdGNoTWFwKChkb2N1bWVudElkKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5yZWRhY3Rpb25BcGlTZXJ2aWNlLmdldFJlZGFjdGlvbnMoZG9jdW1lbnRJZCkucGlwZShcbiAgICAgICAgbWFwKHJlc3AgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgcmVkYWN0aW9uQWN0aW9ucy5Mb2FkUmVkYWN0aW9uU3VjY2VzcyhyZXNwLmJvZHkpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyByZWRhY3Rpb25BY3Rpb25zLkxvYWRSZWRhY3Rpb25GYWlsdXJlKGVycm9yKSk7XG4gICAgICAgIH0pKTtcbiAgICB9KSlcbiAgKTtcblxuICBzYXZlUmVkYWN0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUocmVkYWN0aW9uQWN0aW9ucy5TQVZFX1JFREFDVElPTiksXG4gICAgbWFwKChhY3Rpb246IHJlZGFjdGlvbkFjdGlvbnMuU2F2ZVJlZGFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIGV4aGF1c3RNYXAoKHJlZGFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucmVkYWN0aW9uQXBpU2VydmljZS5zYXZlUmVkYWN0aW9uKHJlZGFjdGlvbikucGlwZShcbiAgICAgICAgbWFwKHJlc3AgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgcmVkYWN0aW9uQWN0aW9ucy5TYXZlUmVkYWN0aW9uU3VjY2VzcyhyZXNwKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihuZXcgcmVkYWN0aW9uQWN0aW9ucy5TYXZlUmVkYWN0aW9uRmFpbHVyZShlcnJvcikpO1xuICAgICAgICB9KSk7XG4gICAgfSkpXG4gICk7XG5cbiAgc2F2ZUJ1bGtSZWRhY3Rpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShyZWRhY3Rpb25BY3Rpb25zLlNBVkVfQlVMS19SRURBQ1RJT04pLFxuICAgIG1hcCgoYWN0aW9uOiByZWRhY3Rpb25BY3Rpb25zLlNhdmVSZWRhY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICBleGhhdXN0TWFwKChyZWRhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnJlZGFjdGlvbkFwaVNlcnZpY2Uuc2F2ZUJ1bGtSZWRhY3Rpb24ocmVkYWN0aW9uKS5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdEFsbEluUHJvZ3Jlc3NTdWJqZWN0Lm5leHQoZmFsc2UpKSkucGlwZShtYXAocmVzcCA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyByZWRhY3Rpb25BY3Rpb25zLlNhdmVCdWxrUmVkYWN0aW9uU3VjY2VzcyhyZXNwKTtcbiAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb2YobmV3IHJlZGFjdGlvbkFjdGlvbnMuU2F2ZUJ1bGtSZWRhY3Rpb25GYWlsdXJlKGVycm9yKSk7XG4gICAgICAgICAgfSkpO1xuICAgIH0pKVxuICApO1xuXG4gIGRlbGV0ZVJlZGFjdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKHJlZGFjdGlvbkFjdGlvbnMuREVMRVRFX1JFREFDVElPTiksXG4gICAgbWFwKChhY3Rpb246IHJlZGFjdGlvbkFjdGlvbnMuRGVsZXRlUmVkYWN0aW9uKSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgZXhoYXVzdE1hcCgocmVkYWN0aW9uUGF5bG9hZCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucmVkYWN0aW9uQXBpU2VydmljZS5kZWxldGVSZWRhY3Rpb24ocmVkYWN0aW9uUGF5bG9hZCkucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IHJlZGFjdGlvbkFjdGlvbnMuRGVsZXRlUmVkYWN0aW9uU3VjY2VzcyhyZWRhY3Rpb25QYXlsb2FkKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihuZXcgcmVkYWN0aW9uQWN0aW9ucy5EZWxldGVSZWRhY3Rpb25GYWlsdXJlKGVycm9yKSk7XG4gICAgICAgIH0pKTtcbiAgICB9KSlcbiAgKTtcblxuICByZWRhY3QkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShyZWRhY3Rpb25BY3Rpb25zLlJFREFDVCksXG4gICAgbWFwKChhY3Rpb246IHJlZGFjdGlvbkFjdGlvbnMuUmVkYWN0KSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgZXhoYXVzdE1hcCgocmVkYWN0aW9uUGF5bG9hZCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMucmVkYWN0aW9uQXBpU2VydmljZS5yZWRhY3QocmVkYWN0aW9uUGF5bG9hZCkucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQ6IEh0dHBSZXNwb25zZTxCbG9iPikgPT4ge1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHJlc3VsdC5oZWFkZXJzLmdldCgnY29udGVudC1kaXNwb3NpdGlvbicpLnNwbGl0KCdmaWxlbmFtZT0nKTtcbiAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IGhlYWRlci5sZW5ndGggPiAxID8gaGVhZGVyWzFdLnJlcGxhY2UoL1wiL2csICcnKVxuICAgICAgICAgICAgOiBgcmVkYWN0ZWQtZG9jdW1lbnQtJHtyZWRhY3Rpb25QYXlsb2FkLmRvY3VtZW50SWR9YDtcbiAgICAgICAgICByZXR1cm4gbmV3IHJlZGFjdGlvbkFjdGlvbnMuUmVkYWN0U3VjY2Vzcyh7IGJsb2I6IHJlc3VsdC5ib2R5LCBmaWxlbmFtZSB9KTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihuZXcgcmVkYWN0aW9uQWN0aW9ucy5SZWRhY3RGYWlsdXJlKGVycm9yKSk7XG4gICAgICAgIH0pKTtcbiAgICB9KSlcbiAgKTtcblxuICB1bm1hcmtBbGwkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShyZWRhY3Rpb25BY3Rpb25zLlVOTUFSS19BTEwpLFxuICAgIG1hcCgoYWN0aW9uOiByZWRhY3Rpb25BY3Rpb25zLlVubWFya0FsbCkgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIGV4aGF1c3RNYXAoKGRvY3VtZW50SWQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnJlZGFjdGlvbkFwaVNlcnZpY2UuZGVsZXRlQWxsTWFya2Vycyhkb2N1bWVudElkKS5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IHJlZGFjdGlvbkFjdGlvbnMuVW5tYXJrQWxsU3VjY2VzcygpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyByZWRhY3Rpb25BY3Rpb25zLkRlbGV0ZVJlZGFjdGlvbkZhaWx1cmUoZXJyb3IpKTtcbiAgICAgICAgfSkpO1xuICAgIH0pKVxuICApO1xufVxuXG4iXX0=
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import uuid from 'uuid/v4';
|
|
2
|
+
import * as fromAnnotations from '../actions/annotation.actions';
|
|
3
|
+
import { StoreUtils } from '../store-utils';
|
|
4
|
+
export const initialState = {
|
|
5
|
+
annotationSet: {},
|
|
6
|
+
annotationEntities: {},
|
|
7
|
+
commentEntities: {},
|
|
8
|
+
annotationPageEntities: {},
|
|
9
|
+
selectedAnnotation: null,
|
|
10
|
+
commentSearchQueries: { commentSearch: '' },
|
|
11
|
+
commentSummaryFilters: { hasFilter: false, filters: {} },
|
|
12
|
+
loading: false,
|
|
13
|
+
loaded: false,
|
|
14
|
+
};
|
|
15
|
+
export function reducer(state = initialState, action) {
|
|
16
|
+
switch (action.type) {
|
|
17
|
+
case fromAnnotations.LOAD_ANNOTATION_SET: {
|
|
18
|
+
const annotationSet = {
|
|
19
|
+
...state.annotationSet,
|
|
20
|
+
documentId: action.payload
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
...initialState,
|
|
24
|
+
annotationSet,
|
|
25
|
+
loading: true
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS:
|
|
29
|
+
case fromAnnotations.LOAD_ANNOTATION_SET_FAIL: {
|
|
30
|
+
const annotationSet = action.payload.status === 200 ? action.payload.body :
|
|
31
|
+
{
|
|
32
|
+
...state.annotationSet,
|
|
33
|
+
annotations: [],
|
|
34
|
+
id: uuid()
|
|
35
|
+
};
|
|
36
|
+
const annotationEntities = StoreUtils.generateAnnotationEntities(annotationSet.annotations);
|
|
37
|
+
const annotationPageEntities = StoreUtils.groupByKeyEntities(annotationSet.annotations, 'page');
|
|
38
|
+
const commentEntities = StoreUtils.generateCommentsEntities(annotationSet.annotations);
|
|
39
|
+
return {
|
|
40
|
+
...state,
|
|
41
|
+
annotationSet,
|
|
42
|
+
annotationEntities,
|
|
43
|
+
annotationPageEntities,
|
|
44
|
+
commentEntities,
|
|
45
|
+
loading: false,
|
|
46
|
+
loaded: true
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {
|
|
50
|
+
const anno = action.payload;
|
|
51
|
+
const annEntities = {
|
|
52
|
+
...state.annotationEntities,
|
|
53
|
+
[anno.id]: anno
|
|
54
|
+
};
|
|
55
|
+
const annotArray = Object.keys(annEntities).map(key => annEntities[key]);
|
|
56
|
+
const annotationEntities = StoreUtils.generateAnnotationEntities(annotArray);
|
|
57
|
+
const annotationPageEntities = StoreUtils.groupByKeyEntities(annotArray, 'page');
|
|
58
|
+
const commentEntities = StoreUtils.generateCommentsEntities(annotArray);
|
|
59
|
+
const selectedAnnotation = {
|
|
60
|
+
...state.selectedAnnotation,
|
|
61
|
+
annotationId: anno.id,
|
|
62
|
+
editable: false
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
...state,
|
|
66
|
+
annotationEntities,
|
|
67
|
+
annotationPageEntities,
|
|
68
|
+
commentEntities,
|
|
69
|
+
selectedAnnotation,
|
|
70
|
+
loading: false,
|
|
71
|
+
loaded: true
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {
|
|
75
|
+
const id = action.payload;
|
|
76
|
+
const page = state.annotationEntities[id].page;
|
|
77
|
+
const annotationEntities = {
|
|
78
|
+
...state.annotationEntities
|
|
79
|
+
};
|
|
80
|
+
delete annotationEntities[id];
|
|
81
|
+
const pageAnnotationsRemoved = [
|
|
82
|
+
...state.annotationPageEntities[page].filter(anno => anno.id !== id)
|
|
83
|
+
];
|
|
84
|
+
const annotationPageEntities = {
|
|
85
|
+
...state.annotationPageEntities,
|
|
86
|
+
[page]: pageAnnotationsRemoved
|
|
87
|
+
};
|
|
88
|
+
const commentEntities = {
|
|
89
|
+
...state.commentEntities
|
|
90
|
+
};
|
|
91
|
+
if (state.commentEntities[id]) {
|
|
92
|
+
delete commentEntities[id];
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
...state,
|
|
96
|
+
annotationEntities,
|
|
97
|
+
annotationPageEntities,
|
|
98
|
+
commentEntities
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
case fromAnnotations.ADD_OR_EDIT_COMMENT: {
|
|
102
|
+
const comment = {
|
|
103
|
+
[action.payload.annotationId]: action.payload
|
|
104
|
+
};
|
|
105
|
+
const comments = {
|
|
106
|
+
...state.commentEntities,
|
|
107
|
+
...comment
|
|
108
|
+
};
|
|
109
|
+
return {
|
|
110
|
+
...state,
|
|
111
|
+
commentEntities: comments
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
case fromAnnotations.SELECT_ANNOTATION: {
|
|
115
|
+
const payload = action.payload;
|
|
116
|
+
const commentEntity = {
|
|
117
|
+
...state.commentEntities[payload.annotationId],
|
|
118
|
+
editable: payload.editable,
|
|
119
|
+
selected: payload.selected
|
|
120
|
+
};
|
|
121
|
+
const resetCommentEntSelect = StoreUtils.resetCommentEntSelect({ ...state.commentEntities });
|
|
122
|
+
const commentEntities = payload.annotationId && state.commentEntities[payload.annotationId] ? {
|
|
123
|
+
...resetCommentEntSelect,
|
|
124
|
+
[payload.annotationId]: commentEntity
|
|
125
|
+
} : { ...resetCommentEntSelect };
|
|
126
|
+
return {
|
|
127
|
+
...state,
|
|
128
|
+
commentEntities,
|
|
129
|
+
selectedAnnotation: action.payload
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
case fromAnnotations.SEARCH_COMMENT: {
|
|
133
|
+
const commentSearchQueries = {
|
|
134
|
+
...state.commentSearchQueries,
|
|
135
|
+
commentSearch: action.payload
|
|
136
|
+
};
|
|
137
|
+
const commentEntities = StoreUtils.resetCommentEntSelect({ ...state.commentEntities });
|
|
138
|
+
return {
|
|
139
|
+
...state,
|
|
140
|
+
commentEntities,
|
|
141
|
+
commentSearchQueries
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
case fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER: {
|
|
145
|
+
const payload = action.payload;
|
|
146
|
+
const hasTagFilter = () => {
|
|
147
|
+
let isFiltered = false;
|
|
148
|
+
if (payload.tagFilters) {
|
|
149
|
+
Object.keys(payload.tagFilters).map(filter => {
|
|
150
|
+
if (payload.tagFilters[filter] && !isFiltered) {
|
|
151
|
+
isFiltered = true;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return isFiltered;
|
|
156
|
+
};
|
|
157
|
+
const hasFilter = (hasTagFilter() || !!payload.dateRangeFrom || !!payload.dateRangeTo);
|
|
158
|
+
const commentSummaryFilters = {
|
|
159
|
+
hasFilter,
|
|
160
|
+
filters: payload
|
|
161
|
+
};
|
|
162
|
+
return {
|
|
163
|
+
...state,
|
|
164
|
+
commentSummaryFilters: commentSummaryFilters
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
case fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER: {
|
|
168
|
+
return {
|
|
169
|
+
...state,
|
|
170
|
+
commentSummaryFilters: { ...initialState.commentSummaryFilters }
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return state;
|
|
175
|
+
}
|
|
176
|
+
export const getAnnoSet = (state) => state.annotationSet;
|
|
177
|
+
export const getCommentEnts = (state) => state.commentEntities;
|
|
178
|
+
export const getAnnoPageEnt = (state) => state.annotationPageEntities;
|
|
179
|
+
export const getAnnoEnt = (state) => state.annotationEntities;
|
|
180
|
+
export const getSelectedAnno = (state) => state.selectedAnnotation;
|
|
181
|
+
export const commentSearchQ = (state) => state.commentSearchQueries;
|
|
182
|
+
export const getSummaryFilters = (state) => state.commentSummaryFilters;
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2Fubm90YXRpb25zLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxlQUFlLE1BQU0sK0JBQStCLENBQUM7QUFHakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZ0I1QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXVCO0lBQzlDLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLGtCQUFrQixFQUFFLEVBQUU7SUFDdEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsc0JBQXNCLEVBQUUsRUFBRTtJQUMxQixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLG9CQUFvQixFQUFFLEVBQUMsYUFBYSxFQUFFLEVBQUUsRUFBQztJQUN6QyxxQkFBcUIsRUFBRSxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBQztJQUN0RCxPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLE1BQU0sVUFBVSxPQUFPLENBQ3JCLEtBQUssR0FBRyxZQUFZLEVBQ3BCLE1BQTBDO0lBRTFDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUVuQixLQUFLLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sYUFBYSxHQUFHO2dCQUNwQixHQUFHLEtBQUssQ0FBQyxhQUFhO2dCQUN0QixVQUFVLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDM0IsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsR0FBRyxZQUFZO2dCQUNmLGFBQWE7Z0JBQ2IsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1NBQ0g7UUFDRCxLQUFLLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQztRQUNqRCxLQUFLLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekU7b0JBQ0UsR0FBRyxLQUFLLENBQUMsYUFBYTtvQkFDdEIsV0FBVyxFQUFFLEVBQUU7b0JBQ2YsRUFBRSxFQUFFLElBQUksRUFBRTtpQkFDWCxDQUFDO1lBQ0osTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsMEJBQTBCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVGLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEcsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RixPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixhQUFhO2dCQUNiLGtCQUFrQjtnQkFDbEIsc0JBQXNCO2dCQUN0QixlQUFlO2dCQUNmLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNIO1FBRUQsS0FBSyxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQzVCLE1BQU0sV0FBVyxHQUFHO2dCQUNsQixHQUFHLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQzNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUk7YUFDaEIsQ0FBQztZQUNGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekUsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0UsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pGLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4RSxNQUFNLGtCQUFrQixHQUFHO2dCQUN6QixHQUFHLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQzNCLFlBQVksRUFBRyxJQUFJLENBQUMsRUFBRTtnQkFDdEIsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLGtCQUFrQjtnQkFDbEIsc0JBQXNCO2dCQUN0QixlQUFlO2dCQUNmLGtCQUFrQjtnQkFDbEIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLElBQUk7YUFDYixDQUFDO1NBQ0g7UUFFRCxLQUFLLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDMUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMvQyxNQUFNLGtCQUFrQixHQUFHO2dCQUN6QixHQUFHLEtBQUssQ0FBQyxrQkFBa0I7YUFDNUIsQ0FBQztZQUNGLE9BQU8sa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsTUFBTSxzQkFBc0IsR0FBRztnQkFDN0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDckUsQ0FBQztZQUNGLE1BQU0sc0JBQXNCLEdBQUc7Z0JBQzdCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQjtnQkFDL0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxzQkFBc0I7YUFDL0IsQ0FBQztZQUNGLE1BQU0sZUFBZSxHQUFHO2dCQUN0QixHQUFHLEtBQUssQ0FBQyxlQUFlO2FBQ3pCLENBQUM7WUFDRixJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzdCLE9BQU8sZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1Isa0JBQWtCO2dCQUNsQixzQkFBc0I7Z0JBQ3RCLGVBQWU7YUFDaEIsQ0FBQztTQUNIO1FBRUQsS0FBSyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN4QyxNQUFNLE9BQU8sR0FBRztnQkFDZCxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDOUMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUFHO2dCQUNmLEdBQUcsS0FBSyxDQUFDLGVBQWU7Z0JBQ3hCLEdBQUcsT0FBTzthQUNYLENBQUM7WUFDRixPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixlQUFlLEVBQUUsUUFBUTthQUMxQixDQUFDO1NBQ0g7UUFFRCxLQUFLLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDL0IsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUM5QyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTthQUMzQixDQUFDO1lBRUYsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBQyxHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDO1lBRTNGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1RixHQUFHLHFCQUFxQjtnQkFDMUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYTthQUNwQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcscUJBQXFCLEVBQUMsQ0FBQztZQUUvQixPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixlQUFlO2dCQUNmLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxPQUFPO2FBQ25DLENBQUM7U0FDSDtRQUVELEtBQUssZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sb0JBQW9CLEdBQUc7Z0JBQzNCLEdBQUcsS0FBSyxDQUFDLG9CQUFvQjtnQkFDN0IsYUFBYSxFQUFFLE1BQU0sQ0FBQyxPQUFPO2FBQzlCLENBQUM7WUFFRixNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBQyxHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDO1lBQ3JGLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLGVBQWU7Z0JBQ2Ysb0JBQW9CO2FBQ3JCLENBQUM7U0FDSDtRQUVELEtBQUssZUFBZSxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUMvQixNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7Z0JBQ3hCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO29CQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQzNDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTs0QkFDN0MsVUFBVSxHQUFHLElBQUksQ0FBQzt5QkFDbkI7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZGLE1BQU0scUJBQXFCLEdBQUc7Z0JBQzVCLFNBQVM7Z0JBQ1QsT0FBTyxFQUFFLE9BQU87YUFDakIsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLHFCQUFxQixFQUFFLHFCQUFxQjthQUM3QyxDQUFDO1NBQ0g7UUFFRCxLQUFLLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBRWpELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLHFCQUFxQixFQUFHLEVBQUMsR0FBRyxZQUFZLENBQUMscUJBQXFCLEVBQUM7YUFDaEUsQ0FBQztTQUNIO0tBQ0Y7SUFHRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQXlCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7QUFDbkYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQXlCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztBQUNsRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7QUFDdkYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHV1aWQgZnJvbSAndXVpZC92NCc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub3RhdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbiB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9hbm5vdGF0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1lbnQgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgU3RvcmVVdGlscyB9IGZyb20gJy4uL3N0b3JlLXV0aWxzJztcbmltcG9ydCB7IFNlbGVjdGlvbkFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9tb2RlbHMvZXZlbnQtc2VsZWN0Lm1vZGVsJztcbmltcG9ydCB7IEZpbHRlcnMgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVycy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFubm90YXRpb25TZXRTdGF0ZSB7XG4gIGFubm90YXRpb25TZXQ6IGFueTtcbiAgYW5ub3RhdGlvbkVudGl0aWVzOiB7W2lkOiBzdHJpbmddOiBhbnl9O1xuICBhbm5vdGF0aW9uUGFnZUVudGl0aWVzOiB7W2lkOiBzdHJpbmddOiBBbm5vdGF0aW9uW119O1xuICBjb21tZW50RW50aXRpZXM6IHtbaWQ6IHN0cmluZ106IENvbW1lbnR9O1xuICBzZWxlY3RlZEFubm90YXRpb246IFNlbGVjdGlvbkFubm90YXRpb247XG4gIGNvbW1lbnRTZWFyY2hRdWVyaWVzOiB7IGNvbW1lbnRTZWFyY2g6IHN0cmluZyB9O1xuICBjb21tZW50U3VtbWFyeUZpbHRlcnM6IHtoYXNGaWx0ZXI6IGJvb2xlYW47IGZpbHRlcnM6IEZpbHRlcnN9O1xuICBsb2FkZWQ6IGJvb2xlYW47XG4gIGxvYWRpbmc6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSA9IHtcbiAgYW5ub3RhdGlvblNldDoge30sXG4gIGFubm90YXRpb25FbnRpdGllczoge30sXG4gIGNvbW1lbnRFbnRpdGllczoge30sXG4gIGFubm90YXRpb25QYWdlRW50aXRpZXM6IHt9LFxuICBzZWxlY3RlZEFubm90YXRpb246IG51bGwsXG4gIGNvbW1lbnRTZWFyY2hRdWVyaWVzOiB7Y29tbWVudFNlYXJjaDogJyd9LFxuICBjb21tZW50U3VtbWFyeUZpbHRlcnM6IHtoYXNGaWx0ZXI6IGZhbHNlLCBmaWx0ZXJzOiB7fX0sXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBsb2FkZWQ6IGZhbHNlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZXIgKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgYWN0aW9uOiBmcm9tQW5ub3RhdGlvbnMuQW5ub3RhdGlvbnNBY3Rpb25zXG4pOiBBbm5vdGF0aW9uU2V0U3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5MT0FEX0FOTk9UQVRJT05fU0VUOiB7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uU2V0ID0ge1xuICAgICAgICAuLi5zdGF0ZS5hbm5vdGF0aW9uU2V0LFxuICAgICAgICBkb2N1bWVudElkOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICAgICAgYW5ub3RhdGlvblNldCxcbiAgICAgICAgbG9hZGluZzogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuTE9BRF9BTk5PVEFUSU9OX1NFVF9TVUNDRVNTOlxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLkxPQURfQU5OT1RBVElPTl9TRVRfRkFJTDoge1xuICAgICAgY29uc3QgYW5ub3RhdGlvblNldCA9IGFjdGlvbi5wYXlsb2FkLnN0YXR1cyA9PT0gMjAwID8gYWN0aW9uLnBheWxvYWQuYm9keSA6XG4gICAgICAgIHtcbiAgICAgICAgICAuLi5zdGF0ZS5hbm5vdGF0aW9uU2V0LFxuICAgICAgICAgIGFubm90YXRpb25zOiBbXSxcbiAgICAgICAgICBpZDogdXVpZCgpXG4gICAgICAgIH07XG4gICAgICBjb25zdCBhbm5vdGF0aW9uRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQW5ub3RhdGlvbkVudGl0aWVzKGFubm90YXRpb25TZXQuYW5ub3RhdGlvbnMpO1xuICAgICAgY29uc3QgYW5ub3RhdGlvblBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKGFubm90YXRpb25TZXQuYW5ub3RhdGlvbnMsICdwYWdlJyk7XG4gICAgICBjb25zdCBjb21tZW50RW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQ29tbWVudHNFbnRpdGllcyhhbm5vdGF0aW9uU2V0LmFubm90YXRpb25zKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBhbm5vdGF0aW9uU2V0LFxuICAgICAgICBhbm5vdGF0aW9uRW50aXRpZXMsXG4gICAgICAgIGFubm90YXRpb25QYWdlRW50aXRpZXMsXG4gICAgICAgIGNvbW1lbnRFbnRpdGllcyxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGxvYWRlZDogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5TQVZFX0FOTk9UQVRJT05fU1VDQ0VTUzoge1xuICAgICAgY29uc3QgYW5ubyA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgYW5uRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmFubm90YXRpb25FbnRpdGllcyxcbiAgICAgICAgW2Fubm8uaWRdOiBhbm5vXG4gICAgICB9O1xuICAgICAgY29uc3QgYW5ub3RBcnJheSA9IE9iamVjdC5rZXlzKGFubkVudGl0aWVzKS5tYXAoa2V5ID0+IGFubkVudGl0aWVzW2tleV0pO1xuICAgICAgY29uc3QgYW5ub3RhdGlvbkVudGl0aWVzID0gU3RvcmVVdGlscy5nZW5lcmF0ZUFubm90YXRpb25FbnRpdGllcyhhbm5vdEFycmF5KTtcbiAgICAgIGNvbnN0IGFubm90YXRpb25QYWdlRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdyb3VwQnlLZXlFbnRpdGllcyhhbm5vdEFycmF5LCAncGFnZScpO1xuICAgICAgY29uc3QgY29tbWVudEVudGl0aWVzID0gU3RvcmVVdGlscy5nZW5lcmF0ZUNvbW1lbnRzRW50aXRpZXMoYW5ub3RBcnJheSk7XG4gICAgICBjb25zdCBzZWxlY3RlZEFubm90YXRpb24gPSB7XG4gICAgICAgIC4uLnN0YXRlLnNlbGVjdGVkQW5ub3RhdGlvbixcbiAgICAgICAgYW5ub3RhdGlvbklkIDogYW5uby5pZCxcbiAgICAgICAgZWRpdGFibGU6IGZhbHNlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGFubm90YXRpb25FbnRpdGllcyxcbiAgICAgICAgYW5ub3RhdGlvblBhZ2VFbnRpdGllcyxcbiAgICAgICAgY29tbWVudEVudGl0aWVzLFxuICAgICAgICBzZWxlY3RlZEFubm90YXRpb24sXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuREVMRVRFX0FOTk9UQVRJT05fU1VDQ0VTUzoge1xuICAgICAgY29uc3QgaWQgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IHBhZ2UgPSBzdGF0ZS5hbm5vdGF0aW9uRW50aXRpZXNbaWRdLnBhZ2U7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmFubm90YXRpb25FbnRpdGllc1xuICAgICAgfTtcbiAgICAgIGRlbGV0ZSBhbm5vdGF0aW9uRW50aXRpZXNbaWRdO1xuICAgICAgY29uc3QgcGFnZUFubm90YXRpb25zUmVtb3ZlZCA9IFtcbiAgICAgICAgLi4uc3RhdGUuYW5ub3RhdGlvblBhZ2VFbnRpdGllc1twYWdlXS5maWx0ZXIoYW5ubyA9PiBhbm5vLmlkICE9PSBpZClcbiAgICAgIF07XG4gICAgICBjb25zdCBhbm5vdGF0aW9uUGFnZUVudGl0aWVzID0ge1xuICAgICAgICAuLi5zdGF0ZS5hbm5vdGF0aW9uUGFnZUVudGl0aWVzLFxuICAgICAgICBbcGFnZV06IHBhZ2VBbm5vdGF0aW9uc1JlbW92ZWRcbiAgICAgIH07XG4gICAgICBjb25zdCBjb21tZW50RW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmNvbW1lbnRFbnRpdGllc1xuICAgICAgfTtcbiAgICAgIGlmIChzdGF0ZS5jb21tZW50RW50aXRpZXNbaWRdKSB7XG4gICAgICAgIGRlbGV0ZSBjb21tZW50RW50aXRpZXNbaWRdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGFubm90YXRpb25FbnRpdGllcyxcbiAgICAgICAgYW5ub3RhdGlvblBhZ2VFbnRpdGllcyxcbiAgICAgICAgY29tbWVudEVudGl0aWVzXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLkFERF9PUl9FRElUX0NPTU1FTlQ6IHtcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSB7XG4gICAgICAgIFthY3Rpb24ucGF5bG9hZC5hbm5vdGF0aW9uSWRdOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNvbW1lbnRzID0ge1xuICAgICAgICAuLi5zdGF0ZS5jb21tZW50RW50aXRpZXMsXG4gICAgICAgIC4uLmNvbW1lbnRcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29tbWVudEVudGl0aWVzOiBjb21tZW50c1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5TRUxFQ1RfQU5OT1RBVElPTjoge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgY29tbWVudEVudGl0eSA9IHtcbiAgICAgICAgLi4uc3RhdGUuY29tbWVudEVudGl0aWVzW3BheWxvYWQuYW5ub3RhdGlvbklkXSxcbiAgICAgICAgZWRpdGFibGU6IHBheWxvYWQuZWRpdGFibGUsXG4gICAgICAgIHNlbGVjdGVkOiBwYXlsb2FkLnNlbGVjdGVkXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXNldENvbW1lbnRFbnRTZWxlY3QgPSBTdG9yZVV0aWxzLnJlc2V0Q29tbWVudEVudFNlbGVjdCh7Li4uc3RhdGUuY29tbWVudEVudGl0aWVzfSk7XG5cbiAgICAgIGNvbnN0IGNvbW1lbnRFbnRpdGllcyA9IHBheWxvYWQuYW5ub3RhdGlvbklkICYmIHN0YXRlLmNvbW1lbnRFbnRpdGllc1twYXlsb2FkLmFubm90YXRpb25JZF0gPyB7XG4gICAgICAgIC4uLnJlc2V0Q29tbWVudEVudFNlbGVjdCxcbiAgICAgIFtwYXlsb2FkLmFubm90YXRpb25JZF06IGNvbW1lbnRFbnRpdHlcbiAgICAgIH0gOiB7Li4ucmVzZXRDb21tZW50RW50U2VsZWN0fTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbW1lbnRFbnRpdGllcyxcbiAgICAgICAgc2VsZWN0ZWRBbm5vdGF0aW9uOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5TRUFSQ0hfQ09NTUVOVDoge1xuICAgICAgY29uc3QgY29tbWVudFNlYXJjaFF1ZXJpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmNvbW1lbnRTZWFyY2hRdWVyaWVzLFxuICAgICAgICBjb21tZW50U2VhcmNoOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29tbWVudEVudGl0aWVzID0gU3RvcmVVdGlscy5yZXNldENvbW1lbnRFbnRTZWxlY3Qoey4uLnN0YXRlLmNvbW1lbnRFbnRpdGllc30pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbW1lbnRFbnRpdGllcyxcbiAgICAgICAgY29tbWVudFNlYXJjaFF1ZXJpZXNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuQVBQTFlfQ09NTUVOVF9TVU1NQVJZX0ZJTFRFUjoge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgaGFzVGFnRmlsdGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgaXNGaWx0ZXJlZCA9IGZhbHNlO1xuICAgICAgICBpZiAocGF5bG9hZC50YWdGaWx0ZXJzKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMocGF5bG9hZC50YWdGaWx0ZXJzKS5tYXAoZmlsdGVyID0+IHtcbiAgICAgICAgICAgIGlmIChwYXlsb2FkLnRhZ0ZpbHRlcnNbZmlsdGVyXSAmJiAhaXNGaWx0ZXJlZCkge1xuICAgICAgICAgICAgICBpc0ZpbHRlcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNGaWx0ZXJlZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBoYXNGaWx0ZXIgPSAoaGFzVGFnRmlsdGVyKCkgfHwgISFwYXlsb2FkLmRhdGVSYW5nZUZyb20gfHwgISFwYXlsb2FkLmRhdGVSYW5nZVRvKTtcbiAgICAgIGNvbnN0IGNvbW1lbnRTdW1tYXJ5RmlsdGVycyA9IHtcbiAgICAgICAgaGFzRmlsdGVyLFxuICAgICAgICBmaWx0ZXJzOiBwYXlsb2FkXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbW1lbnRTdW1tYXJ5RmlsdGVyczogY29tbWVudFN1bW1hcnlGaWx0ZXJzXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLkNMRUFSX0NPTU1FTlRfU1VNTUFSWV9GSUxURVI6IHtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbW1lbnRTdW1tYXJ5RmlsdGVycyA6IHsuLi5pbml0aWFsU3RhdGUuY29tbWVudFN1bW1hcnlGaWx0ZXJzfVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEFubm9TZXQgPSAoc3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSkgPT4gc3RhdGUuYW5ub3RhdGlvblNldDtcbmV4cG9ydCBjb25zdCBnZXRDb21tZW50RW50cyA9IChzdGF0ZTogQW5ub3RhdGlvblNldFN0YXRlKSA9PiBzdGF0ZS5jb21tZW50RW50aXRpZXM7XG5leHBvcnQgY29uc3QgZ2V0QW5ub1BhZ2VFbnQgPSAoc3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSkgPT4gc3RhdGUuYW5ub3RhdGlvblBhZ2VFbnRpdGllcztcbmV4cG9ydCBjb25zdCBnZXRBbm5vRW50ID0gKHN0YXRlOiBBbm5vdGF0aW9uU2V0U3RhdGUpID0+IHN0YXRlLmFubm90YXRpb25FbnRpdGllcztcbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZEFubm8gPSAoc3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSkgPT4gc3RhdGUuc2VsZWN0ZWRBbm5vdGF0aW9uO1xuZXhwb3J0IGNvbnN0IGNvbW1lbnRTZWFyY2hRID0gKHN0YXRlOiBBbm5vdGF0aW9uU2V0U3RhdGUpID0+IHN0YXRlLmNvbW1lbnRTZWFyY2hRdWVyaWVzO1xuZXhwb3J0IGNvbnN0IGdldFN1bW1hcnlGaWx0ZXJzID0gKHN0YXRlOiBBbm5vdGF0aW9uU2V0U3RhdGUpID0+IHN0YXRlLmNvbW1lbnRTdW1tYXJ5RmlsdGVycztcbiJdfQ==
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as fromBookmarks from '../actions/bookmark.actions';
|
|
2
|
+
import { StoreUtils } from '../store-utils';
|
|
3
|
+
import { generateBookmarkEntities } from '../bookmarks-store-utils';
|
|
4
|
+
export const initialBookmarksState = {
|
|
5
|
+
bookmarks: [],
|
|
6
|
+
bookmarkEntities: {},
|
|
7
|
+
bookmarkPageEntities: {},
|
|
8
|
+
editableBookmark: undefined,
|
|
9
|
+
loaded: false,
|
|
10
|
+
loading: false
|
|
11
|
+
};
|
|
12
|
+
export function bookmarksReducer(state = initialBookmarksState, action) {
|
|
13
|
+
switch (action.type) {
|
|
14
|
+
case fromBookmarks.LOAD_BOOKMARKS: {
|
|
15
|
+
return {
|
|
16
|
+
...state,
|
|
17
|
+
loading: true
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
case fromBookmarks.LOAD_BOOKMARKS_SUCCESS:
|
|
21
|
+
case fromBookmarks.LOAD_BOOKMARKS_FAIL: {
|
|
22
|
+
const bookmarks = action.payload.status === 200 ? action.payload.body : [];
|
|
23
|
+
const bookmarkEntities = generateBookmarkEntities(bookmarks);
|
|
24
|
+
const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarks, 'pageNumber');
|
|
25
|
+
return {
|
|
26
|
+
...state,
|
|
27
|
+
bookmarks,
|
|
28
|
+
bookmarkEntities,
|
|
29
|
+
bookmarkPageEntities,
|
|
30
|
+
loaded: true
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
case fromBookmarks.CREATE_BOOKMARK_SUCCESS: {
|
|
34
|
+
const bookmark = action.payload;
|
|
35
|
+
const bookmarkEntities = {
|
|
36
|
+
...state.bookmarkEntities,
|
|
37
|
+
[bookmark.id]: bookmark,
|
|
38
|
+
};
|
|
39
|
+
const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);
|
|
40
|
+
const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');
|
|
41
|
+
const editableBookmark = bookmark.id;
|
|
42
|
+
return {
|
|
43
|
+
...state,
|
|
44
|
+
bookmarkEntities,
|
|
45
|
+
editableBookmark,
|
|
46
|
+
bookmarkPageEntities,
|
|
47
|
+
loading: false,
|
|
48
|
+
loaded: true
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
case fromBookmarks.MOVE_BOOKMARK_SUCCESS: {
|
|
52
|
+
const movedBookmarks = generateBookmarkEntities(action.payload);
|
|
53
|
+
const bookmarkEntities = {
|
|
54
|
+
...state.bookmarkEntities,
|
|
55
|
+
...movedBookmarks
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
...state,
|
|
59
|
+
bookmarkEntities,
|
|
60
|
+
loading: false,
|
|
61
|
+
loaded: true
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
case fromBookmarks.DELETE_BOOKMARK_SUCCESS: {
|
|
65
|
+
const bookmarkIds = action.payload;
|
|
66
|
+
const bookmarkEntities = { ...state.bookmarkEntities };
|
|
67
|
+
const bookmarkPageEntities = { ...state.bookmarkPageEntities };
|
|
68
|
+
const removeBookmarksByPage = {};
|
|
69
|
+
bookmarkIds.forEach(bookmarkId => {
|
|
70
|
+
if (removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] !== undefined &&
|
|
71
|
+
removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].length > 0) {
|
|
72
|
+
removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].push(bookmarkId);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] = [bookmarkId];
|
|
76
|
+
}
|
|
77
|
+
delete bookmarkEntities[bookmarkId];
|
|
78
|
+
});
|
|
79
|
+
Object.entries(removeBookmarksByPage).forEach(([pageNumber, bmrkIds]) => {
|
|
80
|
+
bookmarkPageEntities[pageNumber]
|
|
81
|
+
= bookmarkPageEntities[pageNumber].filter(bookmark => !bmrkIds.includes(bookmark.id));
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
...state,
|
|
85
|
+
bookmarkEntities,
|
|
86
|
+
bookmarkPageEntities,
|
|
87
|
+
loading: false,
|
|
88
|
+
loaded: true
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
case fromBookmarks.UPDATE_BOOKMARK_SUCCESS: {
|
|
92
|
+
const bookmark = action.payload;
|
|
93
|
+
const bookmarkEntities = {
|
|
94
|
+
...state.bookmarkEntities,
|
|
95
|
+
[bookmark.id]: { ...bookmark }
|
|
96
|
+
};
|
|
97
|
+
const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);
|
|
98
|
+
const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');
|
|
99
|
+
const editableBookmark = undefined;
|
|
100
|
+
return {
|
|
101
|
+
...state,
|
|
102
|
+
bookmarkEntities,
|
|
103
|
+
editableBookmark,
|
|
104
|
+
bookmarkPageEntities,
|
|
105
|
+
loading: false,
|
|
106
|
+
loaded: true
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return state;
|
|
111
|
+
}
|
|
112
|
+
export const getBookmarks = (state) => state.bookmarks;
|
|
113
|
+
export const getBookmarkEnts = (state) => state.bookmarkEntities;
|
|
114
|
+
export const getBookmarkPageEnt = (state) => state.bookmarkPageEntities;
|
|
115
|
+
export const getEditBookmark = (state) => state.editableBookmark;
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy9ib29rbWFya3MucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssYUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVdwRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBbUI7SUFDbkQsU0FBUyxFQUFFLEVBQUU7SUFDYixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsZ0JBQWdCLEVBQUUsU0FBUztJQUMzQixNQUFNLEVBQUUsS0FBSztJQUNiLE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQztBQUVGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBRSxLQUFLLEdBQUcscUJBQXFCLEVBQzdCLE1BQXNDO0lBRXRFLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUVuQixLQUFLLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqQyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixPQUFPLEVBQUUsSUFBSTthQUNkLENBQUM7U0FDSDtRQUVELEtBQUssYUFBYSxDQUFDLHNCQUFzQixDQUFDO1FBQzFDLEtBQUssYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNFLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsU0FBUyxDQUFD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TSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQ2pGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZyb21Cb29rbWFya3MgZnJvbSAnLi4vYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCB7IEJvb2ttYXJrIH0gZnJvbSAnLi4vLi4vdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL2Jvb2ttYXJrcy9ib29rbWFya3MuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdG9yZVV0aWxzIH0gZnJvbSAnLi4vc3RvcmUtdXRpbHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVCb29rbWFya0VudGl0aWVzIH0gZnJvbSAnLi4vYm9va21hcmtzLXN0b3JlLXV0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBCb29rbWFya3NTdGF0ZSB7XG4gIGJvb2ttYXJrczogQm9va21hcmtbXTtcbiAgYm9va21hcmtFbnRpdGllczogeyBbaWQ6IHN0cmluZ106IEJvb2ttYXJrIH07XG4gIGJvb2ttYXJrUGFnZUVudGl0aWVzOiB7W2lkOiBzdHJpbmddOiBhbnl9O1xuICBlZGl0YWJsZUJvb2ttYXJrOiBzdHJpbmc7XG4gIGxvYWRlZDogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxCb29rbWFya3NTdGF0ZTogQm9va21hcmtzU3RhdGUgPSB7XG4gIGJvb2ttYXJrczogW10sXG4gIGJvb2ttYXJrRW50aXRpZXM6IHt9LFxuICBib29rbWFya1BhZ2VFbnRpdGllczoge30sXG4gIGVkaXRhYmxlQm9va21hcms6IHVuZGVmaW5lZCxcbiAgbG9hZGVkOiBmYWxzZSxcbiAgbG9hZGluZzogZmFsc2Vcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBib29rbWFya3NSZWR1Y2VyIChzdGF0ZSA9IGluaXRpYWxCb29rbWFya3NTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGZyb21Cb29rbWFya3MuQm9va21hcmtzQWN0aW9ucyk6IEJvb2ttYXJrc1N0YXRlIHtcblxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIGZyb21Cb29rbWFya3MuTE9BRF9CT09LTUFSS1M6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkaW5nOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5MT0FEX0JPT0tNQVJLU19TVUNDRVNTOlxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5MT0FEX0JPT0tNQVJLU19GQUlMOiB7XG4gICAgICBjb25zdCBib29rbWFya3MgPSBhY3Rpb24ucGF5bG9hZC5zdGF0dXMgPT09IDIwMCA/IGFjdGlvbi5wYXlsb2FkLmJvZHkgOiBbXTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrRW50aXRpZXMgPSBnZW5lcmF0ZUJvb2ttYXJrRW50aXRpZXMoYm9va21hcmtzKTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrUGFnZUVudGl0aWVzID0gU3RvcmVVdGlscy5ncm91cEJ5S2V5RW50aXRpZXMoYm9va21hcmtzLCAncGFnZU51bWJlcicpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYm9va21hcmtzLFxuICAgICAgICBib29rbWFya0VudGl0aWVzLFxuICAgICAgICBib29rbWFya1BhZ2VFbnRpdGllcyxcbiAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5DUkVBVEVfQk9PS01BUktfU1VDQ0VTUzoge1xuICAgICAgY29uc3QgYm9va21hcms6IEJvb2ttYXJrID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBib29rbWFya0VudGl0aWVzID0ge1xuICAgICAgICAuLi5zdGF0ZS5ib29rbWFya0VudGl0aWVzLFxuICAgICAgICBbYm9va21hcmsuaWRdOiBib29rbWFyayxcbiAgICAgIH07XG4gICAgICBjb25zdCBib29rbWFya0FycmF5ID0gT2JqZWN0LmtleXMoYm9va21hcmtFbnRpdGllcykubWFwKGtleSA9PiBib29rbWFya0VudGl0aWVzW2tleV0pO1xuICAgICAgY29uc3QgYm9va21hcmtQYWdlRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdyb3VwQnlLZXlFbnRpdGllcyhib29rbWFya0FycmF5LCAncGFnZU51bWJlcicpO1xuICAgICAgY29uc3QgZWRpdGFibGVCb29rbWFyayA9IGJvb2ttYXJrLmlkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGJvb2ttYXJrRW50aXRpZXMsXG4gICAgICAgIGVkaXRhYmxlQm9va21hcmssXG4gICAgICAgIGJvb2ttYXJrUGFnZUVudGl0aWVzLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5NT1ZFX0JPT0tNQVJLX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IG1vdmVkQm9va21hcmtzID0gZ2VuZXJhdGVCb29rbWFya0VudGl0aWVzKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmJvb2ttYXJrRW50aXRpZXMsXG4gICAgICAgIC4uLm1vdmVkQm9va21hcmtzXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGJvb2ttYXJrRW50aXRpZXMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQm9va21hcmtzLkRFTEVURV9CT09LTUFSS19TVUNDRVNTOiB7XG4gICAgICBjb25zdCBib29rbWFya0lkczogc3RyaW5nW10gPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IGJvb2ttYXJrRW50aXRpZXMgPSB7IC4uLnN0YXRlLmJvb2ttYXJrRW50aXRpZXMgfTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrUGFnZUVudGl0aWVzID0geyAuLi5zdGF0ZS5ib29rbWFya1BhZ2VFbnRpdGllcyB9O1xuICAgICAgY29uc3QgcmVtb3ZlQm9va21hcmtzQnlQYWdlOiB7W3BhZ2VOdW1iZXI6IG51bWJlcl06IHN0cmluZ1tdfSA9IHt9O1xuICAgICAgYm9va21hcmtJZHMuZm9yRWFjaChib29rbWFya0lkID0+IHtcbiAgICAgICAgaWYgKHJlbW92ZUJvb2ttYXJrc0J5UGFnZVtib29rbWFya0VudGl0aWVzW2Jvb2ttYXJrSWRdLnBhZ2VOdW1iZXJdICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICByZW1vdmVCb29rbWFya3NCeVBhZ2VbYm9va21hcmtFbnRpdGllc1tib29rbWFya0lkXS5wYWdlTnVtYmVyXS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVtb3ZlQm9va21hcmtzQnlQYWdlW2Jvb2ttYXJrRW50aXRpZXNbYm9va21hcmtJZF0ucGFnZU51bWJlcl0ucHVzaChib29rbWFya0lkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW1vdmVCb29rbWFya3NCeVBhZ2VbYm9va21hcmtFbnRpdGllc1tib29rbWFya0lkXS5wYWdlTnVtYmVyXSA9IFtib29rbWFya0lkXTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgYm9va21hcmtFbnRpdGllc1tib29rbWFya0lkXTtcbiAgICAgIH0pO1xuXG4gICAgICBPYmplY3QuZW50cmllcyhyZW1vdmVCb29rbWFya3NCeVBhZ2UpLmZvckVhY2goXG4gICAgICAgIChbcGFnZU51bWJlciwgYm1ya0lkc10pID0+IHtcbiAgICAgICAgICBib29rbWFya1BhZ2VFbnRpdGllc1twYWdlTnVtYmVyXVxuICAgICAgICAgID0gYm9va21hcmtQYWdlRW50aXRpZXNbcGFnZU51bWJlcl0uZmlsdGVyKGJvb2ttYXJrID0+ICFibXJrSWRzLmluY2x1ZGVzKGJvb2ttYXJrLmlkKSk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBib29rbWFya0VudGl0aWVzLFxuICAgICAgICBib29rbWFya1BhZ2VFbnRpdGllcyxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGxvYWRlZDogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Cb29rbWFya3MuVVBEQVRFX0JPT0tNQVJLX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IGJvb2ttYXJrOiBCb29rbWFyayA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgYm9va21hcmtFbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUuYm9va21hcmtFbnRpdGllcyxcbiAgICAgICAgW2Jvb2ttYXJrLmlkXTogeyAuLi5ib29rbWFyayB9XG4gICAgICB9O1xuICAgICAgY29uc3QgYm9va21hcmtBcnJheSA9IE9iamVjdC5rZXlzKGJvb2ttYXJrRW50aXRpZXMpLm1hcChrZXkgPT4gYm9va21hcmtFbnRpdGllc1trZXldKTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrUGFnZUVudGl0aWVzID0gU3RvcmVVdGlscy5ncm91cEJ5S2V5RW50aXRpZXMoYm9va21hcmtBcnJheSwgJ3BhZ2VOdW1iZXInKTtcbiAgICAgIGNvbnN0IGVkaXRhYmxlQm9va21hcmsgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYm9va21hcmtFbnRpdGllcyxcbiAgICAgICAgZWRpdGFibGVCb29rbWFyayxcbiAgICAgICAgYm9va21hcmtQYWdlRW50aXRpZXMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEJvb2ttYXJrcyA9IChzdGF0ZTogQm9va21hcmtzU3RhdGUpID0+IHN0YXRlLmJvb2ttYXJrcztcbmV4cG9ydCBjb25zdCBnZXRCb29rbWFya0VudHMgPSAoc3RhdGU6IEJvb2ttYXJrc1N0YXRlKSA9PiBzdGF0ZS5ib29rbWFya0VudGl0aWVzO1xuZXhwb3J0IGNvbnN0IGdldEJvb2ttYXJrUGFnZUVudCA9IChzdGF0ZTogQm9va21hcmtzU3RhdGUpID0+IHN0YXRlLmJvb2ttYXJrUGFnZUVudGl0aWVzO1xuZXhwb3J0IGNvbnN0IGdldEVkaXRCb29rbWFyayA9IChzdGF0ZTogQm9va21hcmtzU3RhdGUpID0+IHN0YXRlLmVkaXRhYmxlQm9va21hcms7XG4iXX0=
|