@hmcts/media-viewer 4.0.2 → 4.0.4
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/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
- package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +5 -5
- package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
- package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
- package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
- package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +86 -0
- package/{esm2020 → esm2022}/lib/annotations/annotations.module.mjs +61 -61
- package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +177 -0
- package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
- package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
- package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +5 -5
- package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
- package/{esm2020 → esm2022}/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +5 -5
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +54 -0
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
- package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
- package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +123 -0
- package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +120 -0
- package/{esm2020 → esm2022}/lib/annotations/pipes/date/date.pipe.mjs +4 -4
- package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
- package/{esm2020 → esm2022}/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/annotations/services/annotation-api/annotation-api.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/annotations/services/tags/tags.services.mjs +5 -5
- package/esm2022/lib/annotations/tags/tags.component.mjs +53 -0
- package/{esm2020 → esm2022}/lib/bookmark/components/bookmark-icons.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +5 -5
- package/esm2022/lib/icp/icp-follower.service.mjs +60 -0
- package/esm2022/lib/icp/icp-presenter.service.mjs +55 -0
- package/{esm2020 → esm2022}/lib/icp/icp-session-api.service.mjs +5 -5
- package/esm2022/lib/icp/icp-update.service.mjs +65 -0
- package/esm2022/lib/icp/icp.service.mjs +95 -0
- package/{esm2020 → esm2022}/lib/icp/participants-list/participants-list.component.mjs +5 -5
- package/esm2022/lib/icp/socket.service.mjs +118 -0
- package/esm2022/lib/media-viewer.component.mjs +244 -0
- package/{esm2020 → esm2022}/lib/media-viewer.module.mjs +55 -55
- package/{esm2020 → esm2022}/lib/print.service.mjs +4 -4
- package/esm2022/lib/redaction/components/redaction.component.mjs +91 -0
- package/{esm2020 → esm2022}/lib/redaction/services/redaction-api.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/shared/gov-uk-date/gov-uk-date.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/shared/gov-uk-label/gov-uk-label.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/shared/shared.module.mjs +19 -19
- package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +18 -0
- package/{esm2020 → esm2022}/lib/shared/util/services/number.helper.service.mjs +5 -5
- package/esm2022/lib/store/bookmarks-store-utils.mjs +49 -0
- package/esm2022/lib/store/effects/annotation.effects.mjs +51 -0
- package/esm2022/lib/store/effects/bookmarks.effects.mjs +44 -0
- package/{esm2020 → esm2022}/lib/store/effects/document.effects.mjs +5 -5
- package/{esm2020 → esm2022}/lib/store/effects/icp.effects.mjs +5 -5
- package/{esm2020 → esm2022}/lib/store/effects/redaction.effects.mjs +5 -5
- package/esm2022/lib/store/reducers/annotations.reducer.mjs +208 -0
- package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +116 -0
- package/esm2022/lib/store/reducers/document.reducer.mjs +135 -0
- package/esm2022/lib/store/reducers/icp.reducer.mjs +56 -0
- package/esm2022/lib/store/reducers/redaction.reducer.mjs +116 -0
- package/esm2022/lib/store/reducers/tags.reducer.mjs +93 -0
- package/esm2022/lib/store/selectors/annotation.selectors.mjs +81 -0
- package/{esm2020 → esm2022}/lib/store/selectors/bookmark.selectors.mjs +1 -1
- package/{esm2020 → esm2022}/lib/store/selectors/redaction.selectors.mjs +1 -1
- package/esm2022/lib/store/store-utils.mjs +131 -0
- package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +44 -0
- package/{esm2020 → esm2022}/lib/toolbar/icp-event.service.mjs +1 -1
- package/{esm2020 → esm2022}/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +5 -5
- package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +189 -0
- package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +236 -0
- package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +68 -0
- package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
- package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
- package/esm2022/lib/toolbar/toolbar-event.service.mjs +178 -0
- package/{esm2020 → esm2022}/lib/toolbar/toolbar.module.mjs +25 -25
- package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
- package/{esm2020 → esm2022}/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +5 -5
- package/esm2022/lib/viewers/grab-n-drag.directive.mjs +57 -0
- package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
- package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
- package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +210 -0
- package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +5 -5
- package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +236 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +352 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
- package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +78 -0
- package/{esm2020 → esm2022}/lib/viewers/rotation-persist/rotation-api.service.mjs +5 -5
- package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
- package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
- package/{esm2020 → esm2022}/lib/viewers/viewer-event.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/viewers/viewer-util.service.mjs +5 -5
- package/{fesm2020 → fesm2022}/hmcts-media-viewer.mjs +445 -445
- package/fesm2022/hmcts-media-viewer.mjs.map +1 -0
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +1 -1
- package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -1
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +1 -1
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +1 -1
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +1 -1
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -1
- package/lib/annotations/comment-set/comment/comment.component.d.ts +1 -1
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -1
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -1
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -1
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -1
- package/lib/annotations/comment-set/comment-set.component.d.ts +1 -1
- package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
- package/lib/annotations/tags/tags.component.d.ts +1 -1
- package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -1
- package/lib/icp/socket.service.d.ts +6 -6
- package/lib/icp/socket.service.d.ts.map +1 -1
- package/lib/media-viewer.component.d.ts +1 -2
- package/lib/media-viewer.component.d.ts.map +1 -1
- package/lib/redaction/components/redaction.component.d.ts +1 -1
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +1 -1
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +1 -1
- package/lib/store/bookmarks-store-utils.d.ts.map +1 -1
- package/lib/toolbar/icp-event.service.d.ts +4 -4
- package/lib/toolbar/icp-event.service.d.ts.map +1 -1
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -1
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +1 -1
- package/lib/toolbar/toolbar-event.service.d.ts +6 -6
- package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -1
- package/lib/viewers/grab-n-drag.directive.d.ts +1 -1
- package/lib/viewers/image-viewer/image-viewer.component.d.ts +1 -1
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -1
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +1 -1
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +1 -1
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +1 -1
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -1
- package/lib/viewers/viewer-event.service.d.ts +1 -1
- package/lib/viewers/viewer-event.service.d.ts.map +1 -1
- package/package.json +16 -23
- package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -116
- package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -109
- package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
- package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
- package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
- package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -118
- package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
- package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +0 -177
- package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
- package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
- package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
- package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
- package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -68
- package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +0 -54
- package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +0 -123
- package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
- package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
- package/esm2020/lib/annotations/tags/tags.component.mjs +0 -53
- package/esm2020/lib/icp/icp-follower.service.mjs +0 -60
- package/esm2020/lib/icp/icp-presenter.service.mjs +0 -55
- package/esm2020/lib/icp/icp-update.service.mjs +0 -65
- package/esm2020/lib/icp/icp.service.mjs +0 -95
- package/esm2020/lib/icp/socket.service.mjs +0 -118
- package/esm2020/lib/media-viewer.component.mjs +0 -245
- package/esm2020/lib/redaction/components/redaction.component.mjs +0 -91
- package/esm2020/lib/shared/util/helpers/html-templates.helper.mjs +0 -18
- package/esm2020/lib/store/bookmarks-store-utils.mjs +0 -49
- package/esm2020/lib/store/effects/annotation.effects.mjs +0 -51
- package/esm2020/lib/store/effects/bookmarks.effects.mjs +0 -44
- package/esm2020/lib/store/reducers/annotations.reducer.mjs +0 -208
- package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +0 -116
- package/esm2020/lib/store/reducers/document.reducer.mjs +0 -135
- package/esm2020/lib/store/reducers/icp.reducer.mjs +0 -56
- package/esm2020/lib/store/reducers/redaction.reducer.mjs +0 -116
- package/esm2020/lib/store/reducers/tags.reducer.mjs +0 -93
- package/esm2020/lib/store/selectors/annotation.selectors.mjs +0 -81
- package/esm2020/lib/store/store-utils.mjs +0 -131
- package/esm2020/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -44
- package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -189
- package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -236
- package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -68
- package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
- package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
- package/esm2020/lib/toolbar/toolbar-event.service.mjs +0 -178
- package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
- package/esm2020/lib/viewers/grab-n-drag.directive.mjs +0 -57
- package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
- package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
- package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -209
- package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -236
- package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -352
- package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
- package/esm2020/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +0 -78
- package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
- package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
- package/fesm2015/hmcts-media-viewer.mjs +0 -6953
- package/fesm2015/hmcts-media-viewer.mjs.map +0 -1
- package/fesm2020/hmcts-media-viewer.mjs.map +0 -1
- /package/{esm2020 → esm2022}/hmcts-media-viewer.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-set.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/comment-set/comment/comment.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/models/api-persisted.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/models/event-select.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/models/tags.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/annotations/models/user.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/icp/icp.events.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/icp/icp.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/redaction/services/redaction.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/actions/annotation.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/actions/bookmark.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/actions/document.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/actions/icp.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/actions/redaction.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/actions/tag.actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/effects/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/models/bookmarks.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/models/filters.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/reducers/reducers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/selectors/document.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/selectors/icp.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/selectors/tag.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/viewers/rotation-persist/rotation.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/viewers/viewer-exception.model.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { select } from '@ngrx/store';
|
|
3
|
-
import { v4 as uuid } from 'uuid';
|
|
4
|
-
import { filter, take } from 'rxjs/operators';
|
|
5
|
-
import * as fromSelectors from '../../store/selectors/redaction.selectors';
|
|
6
|
-
import * as fromRedaSelectors from '../../store/selectors/redaction.selectors';
|
|
7
|
-
import * as fromDocument from '../../store/selectors/document.selectors';
|
|
8
|
-
import * as fromActions from '../../store/actions/redaction.actions';
|
|
9
|
-
import * as fromRedactionActions from '../../store/actions/redaction.actions';
|
|
10
|
-
import * as fromRedaActions from '../../store/actions/redaction.actions';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@ngrx/store";
|
|
13
|
-
import * as i2 from "../../viewers/viewer-event.service";
|
|
14
|
-
import * as i3 from "../../toolbar/toolbar.module";
|
|
15
|
-
import * as i4 from "@angular/common";
|
|
16
|
-
import * as i5 from "../../annotations/annotation-set/annotation-view/annotation-view.component";
|
|
17
|
-
import * as i6 from "../../annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component";
|
|
18
|
-
export class RedactionComponent {
|
|
19
|
-
constructor(store, viewerEvents, toolbarEvents) {
|
|
20
|
-
this.store = store;
|
|
21
|
-
this.viewerEvents = viewerEvents;
|
|
22
|
-
this.toolbarEvents = toolbarEvents;
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
this.redactionsPerPage$ = this.store.pipe(select(fromSelectors.getRedactionsPerPage));
|
|
26
|
-
this.selectedRedaction$ = this.store.pipe(select(fromSelectors.getSelected));
|
|
27
|
-
this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);
|
|
28
|
-
this.$subscription.add(this.store.pipe(select(fromSelectors.getRedactedDocumentInfo), filter(value => !!value))
|
|
29
|
-
.subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));
|
|
30
|
-
this.$subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));
|
|
31
|
-
this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));
|
|
32
|
-
this.toolbarEvents.applyRedactToDocument.subscribe(() => {
|
|
33
|
-
this.store.pipe(select(fromRedaSelectors.getRedactionArray), take(1)).subscribe(redactions => {
|
|
34
|
-
this.store.dispatch(new fromRedaActions.Redact(redactions));
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
this.toolbarEvents.clearAllRedactMarkers.subscribe(() => {
|
|
38
|
-
this.store.dispatch(new fromRedaActions.UnmarkAll(this.documentId));
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
ngOnDestroy() {
|
|
42
|
-
this.$subscription.unsubscribe();
|
|
43
|
-
}
|
|
44
|
-
markTextRedaction(highlight) {
|
|
45
|
-
const redactionHighlight = highlight.rectangles;
|
|
46
|
-
if (redactionHighlight && redactionHighlight.length) {
|
|
47
|
-
this.saveRedaction(highlight.page, [...redactionHighlight]);
|
|
48
|
-
}
|
|
49
|
-
this.toolbarEvents.highlightModeSubject.next(false);
|
|
50
|
-
}
|
|
51
|
-
markBoxRedaction({ rectangles, page }) {
|
|
52
|
-
this.saveRedaction(page, rectangles);
|
|
53
|
-
this.toolbarEvents.drawModeSubject.next(false);
|
|
54
|
-
}
|
|
55
|
-
saveRedaction(page, rectangles) {
|
|
56
|
-
const redaction = { page, rectangles, redactionId: uuid(), documentId: this.documentId };
|
|
57
|
-
this.store.dispatch(new fromRedactionActions.SaveRedaction(redaction));
|
|
58
|
-
}
|
|
59
|
-
onMarkerDelete(event) {
|
|
60
|
-
this.store.dispatch(new fromActions.DeleteRedaction(event));
|
|
61
|
-
}
|
|
62
|
-
selectRedaction(event) {
|
|
63
|
-
this.store.dispatch(new fromActions.SelectRedaction(event));
|
|
64
|
-
}
|
|
65
|
-
onMarkerUpdate(redaction) {
|
|
66
|
-
this.store.dispatch(new fromActions.SaveRedaction(redaction));
|
|
67
|
-
}
|
|
68
|
-
downloadDocument({ blob, filename }) {
|
|
69
|
-
const url = URL.createObjectURL(blob);
|
|
70
|
-
const a = document.createElement('a');
|
|
71
|
-
document.body.appendChild(a);
|
|
72
|
-
a.setAttribute('style', 'display: none');
|
|
73
|
-
a.href = url;
|
|
74
|
-
a.download = filename;
|
|
75
|
-
a.click();
|
|
76
|
-
a.remove();
|
|
77
|
-
URL.revokeObjectURL(url);
|
|
78
|
-
this.store.dispatch(new fromRedactionActions.ResetRedactedDocument());
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/** @nocollapse */ RedactionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedactionComponent, deps: [{ token: i1.Store }, { token: i2.ViewerEventService }, { token: i3.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
/** @nocollapse */ RedactionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedactionComponent, selector: "mv-redactions", inputs: { zoom: "zoom", rotate: "rotate" }, ngImport: i0, template: "<div class=\"pageContainer\">\n <div *ngFor=\"let redaction of (redactionsPerPage$ | async); index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': redaction.styles.width,\n 'height.px': redaction.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"markBoxRedaction($event)\">\n </mv-box-highlight-create>\n <div class=\"pageContainer__page-item\">\n <ng-container *ngFor=\"let anno of redaction.anno\">\n <!-- TODO rename this to selection -->\n <mv-annotation [annotation]=\"anno\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedRedaction$ | async\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n (update)=\"onMarkerUpdate($event)\"\n (delete)=\"onMarkerDelete($event)\"\n (annotationClick)=\"selectRedaction($event)\">\n </mv-annotation>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.AnnotationViewComponent, selector: "mv-annotation", inputs: ["annotation", "zoom", "rotate", "selectedAnnoId", "pageHeight", "pageWidth"], outputs: ["update", "delete", "annotationClick"] }, { kind: "component", type: i6.BoxHighlightCreateComponent, selector: "mv-box-highlight-create", inputs: ["page", "pageHeight", "pageWidth", "rotate", "zoom", "container"], outputs: ["saveSelection"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedactionComponent, decorators: [{
|
|
84
|
-
type: Component,
|
|
85
|
-
args: [{ selector: 'mv-redactions', template: "<div class=\"pageContainer\">\n <div *ngFor=\"let redaction of (redactionsPerPage$ | async); index as i\"\n class=\"pageContainer__page\"\n [ngStyle]=\"{\n 'width.px': redaction.styles.width,\n 'height.px': redaction.styles.height\n }\"\n [ngClass]=\"{ 'pageContainer__page--draw' : drawMode }\">\n <mv-box-highlight-create\n [page]=\"i + 1\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n [rotate]=\"rotate\"\n [zoom]=\"zoom\"\n (saveSelection)=\"markBoxRedaction($event)\">\n </mv-box-highlight-create>\n <div class=\"pageContainer__page-item\">\n <ng-container *ngFor=\"let anno of redaction.anno\">\n <!-- TODO rename this to selection -->\n <mv-annotation [annotation]=\"anno\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedRedaction$ | async\"\n [pageHeight]=\"redaction.styles.height\"\n [pageWidth]=\"redaction.styles.width\"\n (update)=\"onMarkerUpdate($event)\"\n (delete)=\"onMarkerDelete($event)\"\n (annotationClick)=\"selectRedaction($event)\">\n </mv-annotation>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
86
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ViewerEventService }, { type: i3.ToolbarEventService }]; }, propDecorators: { zoom: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], rotate: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3JlZGFjdGlvbi9jb21wb25lbnRzL3JlZGFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9yZWRhY3Rpb24vY29tcG9uZW50cy9yZWRhY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5QyxPQUFPLEtBQUssYUFBYSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEtBQUssWUFBWSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxLQUFLLG9CQUFvQixNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxlQUFlLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7O0FBVXpFLE1BQU0sT0FBTyxrQkFBa0I7SUFhN0IsWUFBb0IsS0FBNkIsRUFDOUIsWUFBZ0MsRUFDekMsYUFBa0M7UUFGeEIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ3pDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtJQUFJLENBQUM7SUFFakQsUUFBUTtRQUNOLElBQUks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LEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNWLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7bUlBaEZVLGtCQUFrQjt1SEFBbEIsa0JBQWtCLGlHQ3ZCL0IsZzJDQWlDQTs0RkRWYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZUFBZTsrSkFLaEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgKiBhcyBmcm9tU2VsZWN0b3JzIGZyb20gJy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9yZWRhY3Rpb24uc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21SZWRhU2VsZWN0b3JzIGZyb20gJy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9yZWRhY3Rpb24uc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21BY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvcmVkYWN0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbVJlZGFjdGlvbkFjdGlvbnMgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9yZWRhY3Rpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tUmVkYUFjdGlvbnMgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9yZWRhY3Rpb24uYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Bbm5vdGF0aW9uIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbnMvbW9kZWxzL2V2ZW50LXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9vbGJhci90b29sYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi92aWV3ZXJzL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZGFjdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL3JlZGFjdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXJlZGFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVkYWN0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcblxuICByZWRhY3Rpb25zUGVyUGFnZSQ6IE9ic2VydmFibGU8YW55PjsgLy8gdG9kbyBhZGQgdHlwZVxuICBzZWxlY3RlZFJlZGFjdGlvbiQ6IE9ic2VydmFibGU8U2VsZWN0aW9uQW5ub3RhdGlvbiB8IHt9PjtcbiAgcmVjdGFuZ2xlczogUmVjdGFuZ2xlW107XG4gIGRyYXdNb2RlOiBib29sZWFuO1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSAkc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLlN0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWRhY3Rpb25zUGVyUGFnZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0UmVkYWN0aW9uc1BlclBhZ2UpKTtcbiAgICB0aGlzLnNlbGVjdGVkUmVkYWN0aW9uJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbVNlbGVjdG9ycy5nZXRTZWxlY3RlZCkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbiA9IHRoaXMudG9vbGJhckV2ZW50cy5kcmF3TW9kZVN1YmplY3Quc3Vic2NyaWJlKGRyYXdNb2RlID0+IHRoaXMuZHJhd01vZGUgPSBkcmF3TW9kZSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21TZWxlY3RvcnMuZ2V0UmVkYWN0ZWREb2N1bWVudEluZm8pLCBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSkpXG4gICAgICAuc3Vic2NyaWJlKHJlZGFjdGVkRG9jSW5mbyA9PiB0aGlzLmRvd25sb2FkRG9jdW1lbnQocmVkYWN0ZWREb2NJbmZvKSkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jdW1lbnQuZ2V0RG9jdW1lbnRJZCkpLnN1YnNjcmliZShkb2NJZCA9PiB0aGlzLmRvY3VtZW50SWQgPSBkb2NJZCkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy52aWV3ZXJFdmVudHMudGV4dEhpZ2hsaWdodC5zdWJzY3JpYmUoaGlnaGxpZ2h0ID0+IHRoaXMubWFya1RleHRSZWRhY3Rpb24oaGlnaGxpZ2h0KSkpO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5hcHBseVJlZGFjdFRvRG9jdW1lbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbVJlZGFTZWxlY3RvcnMuZ2V0UmVkYWN0aW9uQXJyYXkpLCB0YWtlKDEpKS5zdWJzY3JpYmUocmVkYWN0aW9ucyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhQWN0aW9ucy5SZWRhY3QocmVkYWN0aW9ucykpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLmNsZWFyQWxsUmVkYWN0TWFya2Vycy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbVJlZGFBY3Rpb25zLlVubWFya0FsbCh0aGlzLmRvY3VtZW50SWQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbWFya1RleHRSZWRhY3Rpb24oaGlnaGxpZ2h0KSB7XG4gICAgY29uc3QgcmVkYWN0aW9uSGlnaGxpZ2h0ID0gaGlnaGxpZ2h0LnJlY3RhbmdsZXM7XG4gICAgaWYgKHJlZGFjdGlvbkhpZ2hsaWdodCAmJiByZWRhY3Rpb25IaWdobGlnaHQubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNhdmVSZWRhY3Rpb24oaGlnaGxpZ2h0LnBhZ2UsIFsuLi5yZWRhY3Rpb25IaWdobGlnaHRdKTtcbiAgICB9XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLmhpZ2hsaWdodE1vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0JveFJlZGFjdGlvbih7IHJlY3RhbmdsZXMsIHBhZ2UgfSkge1xuICAgIHRoaXMuc2F2ZVJlZGFjdGlvbihwYWdlLCByZWN0YW5nbGVzKTtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICB9XG5cbiAgc2F2ZVJlZGFjdGlvbihwYWdlOiBudW1iZXIsIHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKSB7XG4gICAgY29uc3QgcmVkYWN0aW9uID0geyBwYWdlLCByZWN0YW5nbGVzLCByZWRhY3Rpb25JZDogdXVpZCgpLCBkb2N1bWVudElkOiB0aGlzLmRvY3VtZW50SWQgfTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tUmVkYWN0aW9uQWN0aW9ucy5TYXZlUmVkYWN0aW9uKHJlZGFjdGlvbikpO1xuICB9XG5cbiAgb25NYXJrZXJEZWxldGUoZXZlbnQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5EZWxldGVSZWRhY3Rpb24oZXZlbnQpKTtcbiAgfVxuXG4gIHNlbGVjdFJlZGFjdGlvbihldmVudCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21BY3Rpb25zLlNlbGVjdFJlZGFjdGlvbihldmVudCkpO1xuICB9XG5cbiAgb25NYXJrZXJVcGRhdGUocmVkYWN0aW9uOiBSZWRhY3Rpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5TYXZlUmVkYWN0aW9uKHJlZGFjdGlvbikpO1xuICB9XG5cbiAgZG93bmxvYWREb2N1bWVudCh7IGJsb2IsIGZpbGVuYW1lIH0pIHtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZScpO1xuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgYS5jbGljaygpO1xuICAgIGEucmVtb3ZlKCk7XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3Rpb25BY3Rpb25zLlJlc2V0UmVkYWN0ZWREb2N1bWVudCgpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBhZ2VDb250YWluZXJcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgcmVkYWN0aW9uIG9mIChyZWRhY3Rpb25zUGVyUGFnZSQgfCBhc3luYyk7ICBpbmRleCBhcyBpXCJcbiAgICAgICBjbGFzcz1cInBhZ2VDb250YWluZXJfX3BhZ2VcIlxuICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAnd2lkdGgucHgnOiByZWRhY3Rpb24uc3R5bGVzLndpZHRoLFxuICAgICAgICdoZWlnaHQucHgnOiByZWRhY3Rpb24uc3R5bGVzLmhlaWdodFxuICAgICAgIH1cIlxuICAgICAgIFtuZ0NsYXNzXT1cInsgJ3BhZ2VDb250YWluZXJfX3BhZ2UtLWRyYXcnIDogZHJhd01vZGUgfVwiPlxuICAgIDxtdi1ib3gtaGlnaGxpZ2h0LWNyZWF0ZVxuICAgICAgW3BhZ2VdPVwiaSArIDFcIlxuICAgICAgW3BhZ2VIZWlnaHRdPVwicmVkYWN0aW9uLnN0eWxlcy5oZWlnaHRcIlxuICAgICAgW3BhZ2VXaWR0aF09XCJyZWRhY3Rpb24uc3R5bGVzLndpZHRoXCJcbiAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgIFt6b29tXT1cInpvb21cIlxuICAgICAgKHNhdmVTZWxlY3Rpb24pPVwibWFya0JveFJlZGFjdGlvbigkZXZlbnQpXCI+XG4gICAgPC9tdi1ib3gtaGlnaGxpZ2h0LWNyZWF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwicGFnZUNvbnRhaW5lcl9fcGFnZS1pdGVtXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbm5vIG9mIHJlZGFjdGlvbi5hbm5vXCI+XG4gICAgICAgIDwhLS0gIFRPRE8gcmVuYW1lIHRoaXMgdG8gc2VsZWN0aW9uIC0tPlxuICAgICAgICA8bXYtYW5ub3RhdGlvbiBbYW5ub3RhdGlvbl09XCJhbm5vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkQW5ub0lkXT1cInNlbGVjdGVkUmVkYWN0aW9uJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VIZWlnaHRdPVwicmVkYWN0aW9uLnN0eWxlcy5oZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbcGFnZVdpZHRoXT1cInJlZGFjdGlvbi5zdHlsZXMud2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAodXBkYXRlKT1cIm9uTWFya2VyVXBkYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlKT1cIm9uTWFya2VyRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAoYW5ub3RhdGlvbkNsaWNrKT1cInNlbGVjdFJlZGFjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgIDwvbXYtYW5ub3RhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helper Class
|
|
3
|
-
* Used for dynamic templates manipulation
|
|
4
|
-
* */
|
|
5
|
-
export class HtmlTemplatesHelper {
|
|
6
|
-
static setDescribedBy(errorMessage, config) {
|
|
7
|
-
if (!errorMessage) {
|
|
8
|
-
return config.hint ? `${config.id}-hint` : null;
|
|
9
|
-
}
|
|
10
|
-
else if (errorMessage && errorMessage.isInvalid) {
|
|
11
|
-
return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return config.hint ? `${config.id}-hint` : null;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC10ZW1wbGF0ZXMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvc2hhcmVkL3V0aWwvaGVscGVycy9odG1sLXRlbXBsYXRlcy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztLQUdLO0FBRUwsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxNQUFNO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2pEO2FBQU0sSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRTtZQUNqRCxPQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsU0FBUyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDO1NBQ3JGO2FBQU07WUFDTCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDakQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhlbHBlciBDbGFzc1xuICogVXNlZCBmb3IgZHluYW1pYyB0ZW1wbGF0ZXMgbWFuaXB1bGF0aW9uXG4gKiAqL1xuXG5leHBvcnQgY2xhc3MgSHRtbFRlbXBsYXRlc0hlbHBlciB7XG5cbiAgc3RhdGljIHNldERlc2NyaWJlZEJ5KGVycm9yTWVzc2FnZSwgY29uZmlnKSB7XG4gICAgaWYgKCFlcnJvck1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiBjb25maWcuaGludCA/IGAke2NvbmZpZy5pZH0taGludGAgOiBudWxsO1xuICAgIH0gZWxzZSBpZiAoZXJyb3JNZXNzYWdlICYmIGVycm9yTWVzc2FnZS5pc0ludmFsaWQpIHtcbiAgICAgIHJldHVybiAgY29uZmlnLmhpbnQgPyBgJHtjb25maWcuaWR9LWhpbnQgJHtjb25maWcuaWR9LWVycm9yYCA6IGAke2NvbmZpZy5pZH0tZXJyb3JgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY29uZmlnLmhpbnQgPyBgJHtjb25maWcuaWR9LWhpbnRgIDogbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export const getBookmarkChildren = (bookmarks) => {
|
|
2
|
-
if (bookmarks) {
|
|
3
|
-
return bookmarks.reduce((childIds, bookmark) => {
|
|
4
|
-
if (bookmark.children && bookmark.children.length > 0) {
|
|
5
|
-
return [...childIds, bookmark.id, ...getBookmarkChildren(bookmark.children)];
|
|
6
|
-
}
|
|
7
|
-
return [...childIds, bookmark.id];
|
|
8
|
-
}, []);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
return [];
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
export const generateBookmarkEntities = (bookmarks) => {
|
|
15
|
-
return bookmarks.reduce((bookmarkEntities, bookmark) => Object.assign(bookmarkEntities, { [bookmark.id]: bookmark }), {});
|
|
16
|
-
};
|
|
17
|
-
const indexEntities = (entities) => {
|
|
18
|
-
const entityIds = Object.keys(entities);
|
|
19
|
-
for (let index = 0; entityIds.length > 0; index++) {
|
|
20
|
-
let keysToRemove = [];
|
|
21
|
-
entityIds.forEach(key => {
|
|
22
|
-
if (!entities[key].previous || !entityIds.includes(entities[key].previous.toString())) {
|
|
23
|
-
entities[key].index = index;
|
|
24
|
-
keysToRemove.push(key);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
keysToRemove.forEach(key => entityIds.splice(entityIds.indexOf(key), 1));
|
|
28
|
-
keysToRemove = [];
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
export const generateBookmarkNodes = (entities) => {
|
|
32
|
-
const bookmarkEntities = JSON.parse(JSON.stringify(entities));
|
|
33
|
-
indexEntities(bookmarkEntities);
|
|
34
|
-
return Object.keys(bookmarkEntities).reduce((nodes, bookmarkId) => {
|
|
35
|
-
const bookmarkEntity = bookmarkEntities[bookmarkId];
|
|
36
|
-
if (bookmarkEntity.parent) {
|
|
37
|
-
const parentEntity = bookmarkEntities[bookmarkEntity.parent];
|
|
38
|
-
if (!parentEntity.children) {
|
|
39
|
-
parentEntity.children = [];
|
|
40
|
-
}
|
|
41
|
-
parentEntity.children[bookmarkEntity.index] = bookmarkEntity;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
nodes[bookmarkEntity.index] = bookmarkEntity;
|
|
45
|
-
}
|
|
46
|
-
return nodes;
|
|
47
|
-
}, []);
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLXN0b3JlLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvc3RvcmUvYm9va21hcmtzLXN0b3JlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBcUIsRUFBRSxFQUFFO0lBQzNELElBQUksU0FBUyxFQUFFO1FBQ2IsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzdDLElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JELE9BQU8sQ0FBQyxHQUFHLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDOUU7WUFDRCxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNSO1NBQU07UUFDTCxPQUFPLEVBQUUsQ0FBQztLQUNYO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxTQUFxQixFQUE0QixFQUFFO0lBQzFGLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FDckIsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFDOUQsRUFBRSxDQUFDLENBQUM7QUFDUixDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQW9DLEVBQUUsRUFBRTtJQUM3RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pELElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JGLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsWUFBWSxHQUFHLEVBQUUsQ0FBQztLQUNuQjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsUUFBb0MsRUFBRSxFQUFFO0lBQzVFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUQsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDaEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtZQUN6QixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBQzFCLFlBQVksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2FBQzVCO1lBQ0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsY0FBYyxDQUFDO1NBQzlEO2FBQU07WUFDTCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLGNBQWMsQ0FBQztTQUM5QztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9va21hcmsgfSBmcm9tICcuLi92aWV3ZXJzL3BkZi12aWV3ZXIvc2lkZS1iYXIvYm9va21hcmtzL2Jvb2ttYXJrcy5pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IGdldEJvb2ttYXJrQ2hpbGRyZW4gPSAoYm9va21hcmtzOiBCb29rbWFya1tdKSA9PiB7XG4gIGlmIChib29rbWFya3MpIHtcbiAgICByZXR1cm4gYm9va21hcmtzLnJlZHVjZSgoY2hpbGRJZHMsIGJvb2ttYXJrKSA9PiB7XG4gICAgICBpZiAoYm9va21hcmsuY2hpbGRyZW4gJiYgYm9va21hcmsuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gWy4uLmNoaWxkSWRzLCBib29rbWFyay5pZCwgLi4uZ2V0Qm9va21hcmtDaGlsZHJlbihib29rbWFyay5jaGlsZHJlbildO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi5jaGlsZElkcywgYm9va21hcmsuaWRdO1xuICAgIH0sIFtdKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUJvb2ttYXJrRW50aXRpZXMgPSAoYm9va21hcmtzOiBCb29rbWFya1tdKToge1tpZDogc3RyaW5nXTogQm9va21hcmt9ID0+IHtcbiAgcmV0dXJuIGJvb2ttYXJrcy5yZWR1Y2UoXG4gICAgKGJvb2ttYXJrRW50aXRpZXMsIGJvb2ttYXJrKSA9PlxuICAgICAgT2JqZWN0LmFzc2lnbihib29rbWFya0VudGl0aWVzLCB7IFtib29rbWFyay5pZF06IGJvb2ttYXJrIH0pLFxuICAgIHt9KTtcbn07XG5cbmNvbnN0IGluZGV4RW50aXRpZXMgPSAoZW50aXRpZXM6IHsgW2lkOiBzdHJpbmddOiBCb29rbWFyayB9KSA9PiB7XG4gIGNvbnN0IGVudGl0eUlkcyA9IE9iamVjdC5rZXlzKGVudGl0aWVzKTtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBlbnRpdHlJZHMubGVuZ3RoID4gMDsgaW5kZXgrKykge1xuICAgIGxldCBrZXlzVG9SZW1vdmUgPSBbXTtcbiAgICBlbnRpdHlJZHMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKCFlbnRpdGllc1trZXldLnByZXZpb3VzIHx8ICFlbnRpdHlJZHMuaW5jbHVkZXMoZW50aXRpZXNba2V5XS5wcmV2aW91cy50b1N0cmluZygpKSkge1xuICAgICAgICBlbnRpdGllc1trZXldLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGtleXNUb1JlbW92ZS5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAga2V5c1RvUmVtb3ZlLmZvckVhY2goa2V5ID0+IGVudGl0eUlkcy5zcGxpY2UoZW50aXR5SWRzLmluZGV4T2Yoa2V5KSwgMSkpO1xuICAgIGtleXNUb1JlbW92ZSA9IFtdO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVCb29rbWFya05vZGVzID0gKGVudGl0aWVzOiB7IFtpZDogc3RyaW5nXTogQm9va21hcmsgfSkgPT4ge1xuICBjb25zdCBib29rbWFya0VudGl0aWVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlbnRpdGllcykpO1xuICBpbmRleEVudGl0aWVzKGJvb2ttYXJrRW50aXRpZXMpO1xuICByZXR1cm4gT2JqZWN0LmtleXMoYm9va21hcmtFbnRpdGllcykucmVkdWNlKChub2RlcywgYm9va21hcmtJZCkgPT4ge1xuICAgIGNvbnN0IGJvb2ttYXJrRW50aXR5ID0gYm9va21hcmtFbnRpdGllc1tib29rbWFya0lkXTtcbiAgICBpZiAoYm9va21hcmtFbnRpdHkucGFyZW50KSB7XG4gICAgICBjb25zdCBwYXJlbnRFbnRpdHkgPSBib29rbWFya0VudGl0aWVzW2Jvb2ttYXJrRW50aXR5LnBhcmVudF07XG4gICAgICBpZiAoIXBhcmVudEVudGl0eS5jaGlsZHJlbikge1xuICAgICAgICBwYXJlbnRFbnRpdHkuY2hpbGRyZW4gPSBbXTtcbiAgICAgIH1cbiAgICAgIHBhcmVudEVudGl0eS5jaGlsZHJlbltib29rbWFya0VudGl0eS5pbmRleF0gPSBib29rbWFya0VudGl0eTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZXNbYm9va21hcmtFbnRpdHkuaW5kZXhdID0gYm9va21hcmtFbnRpdHk7XG4gICAgfVxuICAgIHJldHVybiBub2RlcztcbiAgfSwgW10pO1xufTtcbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { createEffect, ofType } from '@ngrx/effects';
|
|
3
|
-
import { catchError, concatMap, exhaustMap, map, switchMap } from 'rxjs/operators';
|
|
4
|
-
import { of } from 'rxjs';
|
|
5
|
-
import * as annotationsActions from '../actions/annotation.actions';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@ngrx/effects";
|
|
8
|
-
import * as i2 from "../../annotations/services/annotation-api/annotation-api.service";
|
|
9
|
-
export class AnnotationEffects {
|
|
10
|
-
constructor(actions$, annotationApiService) {
|
|
11
|
-
this.actions$ = actions$;
|
|
12
|
-
this.annotationApiService = annotationApiService;
|
|
13
|
-
this.loadAnnotation$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.LOAD_ANNOTATION_SET), map((action) => action.payload), switchMap((documentId) => {
|
|
14
|
-
return this.annotationApiService.getAnnotationSet(documentId).pipe(map(res => {
|
|
15
|
-
if (res.status === 204) {
|
|
16
|
-
return new annotationsActions.LoadAnnotationSetFail(res);
|
|
17
|
-
}
|
|
18
|
-
return new annotationsActions.LoadAnnotationSetSucess(res);
|
|
19
|
-
}), catchError(error => {
|
|
20
|
-
return of(new annotationsActions.LoadAnnotationSetFail(error));
|
|
21
|
-
}));
|
|
22
|
-
})));
|
|
23
|
-
this.postAnnotation$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.SAVE_ANNOTATION), concatMap((action) => {
|
|
24
|
-
return this.annotationApiService.postAnnotation(action.payload).pipe(map(annotations => {
|
|
25
|
-
return new annotationsActions.SaveAnnotationSuccess(annotations);
|
|
26
|
-
}), catchError(error => {
|
|
27
|
-
return of(new annotationsActions.LoadAnnotationSetFail(error));
|
|
28
|
-
}));
|
|
29
|
-
})));
|
|
30
|
-
this.deleteAnnotation$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.DELETE_ANNOTATION), map((action) => action.payload), exhaustMap((annotation) => {
|
|
31
|
-
return this.annotationApiService.deleteAnnotation(annotation).pipe(map(result => {
|
|
32
|
-
return new annotationsActions.DeleteAnnotationSuccess(annotation);
|
|
33
|
-
}), catchError(error => {
|
|
34
|
-
return of(new annotationsActions.DeleteAnnotationFail(error));
|
|
35
|
-
}));
|
|
36
|
-
})));
|
|
37
|
-
this.saveAnnotationSet$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.SAVE_ANNOTATION_SET), map((action) => action.payload), switchMap((annotationSet) => {
|
|
38
|
-
return this.annotationApiService.postAnnotationSet(annotationSet).pipe(map(res => {
|
|
39
|
-
return new annotationsActions.SaveAnnotationSetSuccess(res);
|
|
40
|
-
}), catchError(error => {
|
|
41
|
-
return of(new annotationsActions.SaveAnnotationSetFail(error));
|
|
42
|
-
}));
|
|
43
|
-
})));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/** @nocollapse */ AnnotationEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnotationEffects, deps: [{ token: i1.Actions }, { token: i2.AnnotationApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
-
/** @nocollapse */ AnnotationEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnotationEffects });
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnotationEffects, decorators: [{
|
|
49
|
-
type: Injectable
|
|
50
|
-
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.AnnotationApiService }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9hbm5vdGF0aW9uLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsT0FBTyxLQUFLLGtCQUFrQixNQUFNLCtCQUErQixDQUFDOzs7O0FBR3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDVSxRQUFpQixFQUNqQixvQkFBMEM7UUFEMUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBR3BELG9CQUFlLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLEVBQzlDLEdBQUcsQ0FBQyxDQUFDLE1BQTRDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDckUsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUNoRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDdEIs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QUFDLENBQUMsQ0FDSixDQUFDO0lBOURFLENBQUM7O2tJQUpNLGlCQUFpQjtzSUFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0TWFwLCBleGhhdXN0TWFwLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL3NlcnZpY2VzL2Fubm90YXRpb24tYXBpL2Fubm90YXRpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgYW5ub3RhdGlvbnNBY3Rpb25zIGZyb20gJy4uL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFubm90YXRpb25FZmZlY3RzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIGFubm90YXRpb25BcGlTZXJ2aWNlOiBBbm5vdGF0aW9uQXBpU2VydmljZSxcbiAgKSB7IH1cblxuICBsb2FkQW5ub3RhdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGFubm90YXRpb25zQWN0aW9ucy5MT0FEX0FOTk9UQVRJT05fU0VUKSxcbiAgICBtYXAoKGFjdGlvbjogYW5ub3RhdGlvbnNBY3Rpb25zLkxvYWRBbm5vdGF0aW9uU2V0KSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgc3dpdGNoTWFwKChkb2N1bWVudElkKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5hbm5vdGF0aW9uQXBpU2VydmljZS5nZXRBbm5vdGF0aW9uU2V0KGRvY3VtZW50SWQpLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgYW5ub3RhdGlvbnNBY3Rpb25zLkxvYWRBbm5vdGF0aW9uU2V0RmFpbChyZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IGFubm90YXRpb25zQWN0aW9ucy5Mb2FkQW5ub3RhdGlvblNldFN1Y2VzcyhyZXMpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBhbm5vdGF0aW9uc0FjdGlvbnMuTG9hZEFubm90YXRpb25TZXRGYWlsKGVycm9yKSk7XG4gICAgICAgIH0pKTtcbiAgICB9KSlcbiAgKTtcblxuICBwb3N0QW5ub3RhdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGFubm90YXRpb25zQWN0aW9ucy5TQVZFX0FOTk9UQVRJT04pLFxuICAgIGNvbmNhdE1hcCgoYWN0aW9uOiBhbm5vdGF0aW9uc0FjdGlvbnMuU2F2ZUFubm90YXRpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmFubm90YXRpb25BcGlTZXJ2aWNlLnBvc3RBbm5vdGF0aW9uKGFjdGlvbi5wYXlsb2FkKS5waXBlKFxuICAgICAgICBtYXAoYW5ub3RhdGlvbnMgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgYW5ub3RhdGlvbnNBY3Rpb25zLlNhdmVBbm5vdGF0aW9uU3VjY2Vzcyhhbm5vdGF0aW9ucyk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICByZXR1cm4gb2YobmV3IGFubm90YXRpb25zQWN0aW9ucy5Mb2FkQW5ub3RhdGlvblNldEZhaWwoZXJyb3IpKTtcbiAgICAgICAgfSkpO1xuICAgIH0pKVxuICApO1xuXG4gIGRlbGV0ZUFubm90YXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShhbm5vdGF0aW9uc0FjdGlvbnMuREVMRVRFX0FOTk9UQVRJT04pLFxuICAgIG1hcCgoYWN0aW9uOiBhbm5vdGF0aW9uc0FjdGlvbnMuRGVsZXRlQW5ub3RhdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIGV4aGF1c3RNYXAoKGFubm90YXRpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmFubm90YXRpb25BcGlTZXJ2aWNlLmRlbGV0ZUFubm90YXRpb24oYW5ub3RhdGlvbikucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBhbm5vdGF0aW9uc0FjdGlvbnMuRGVsZXRlQW5ub3RhdGlvblN1Y2Nlc3MoYW5ub3RhdGlvbik7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICByZXR1cm4gb2YobmV3IGFubm90YXRpb25zQWN0aW9ucy5EZWxldGVBbm5vdGF0aW9uRmFpbChlcnJvcikpO1xuICAgICAgICB9KSk7XG4gICAgfSkpXG4gICk7XG5cbiAgc2F2ZUFubm90YXRpb25TZXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShhbm5vdGF0aW9uc0FjdGlvbnMuU0FWRV9BTk5PVEFUSU9OX1NFVCksXG4gICAgbWFwKChhY3Rpb246IGFubm90YXRpb25zQWN0aW9ucy5TYXZlQW5ub3RhdGlvblNldCkgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIHN3aXRjaE1hcCgoYW5ub3RhdGlvblNldCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYW5ub3RhdGlvbkFwaVNlcnZpY2UucG9zdEFubm90YXRpb25TZXQoYW5ub3RhdGlvblNldCkucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBhbm5vdGF0aW9uc0FjdGlvbnMuU2F2ZUFubm90YXRpb25TZXRTdWNjZXNzKHJlcyk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICByZXR1cm4gb2YobmV3IGFubm90YXRpb25zQWN0aW9ucy5TYXZlQW5ub3RhdGlvblNldEZhaWwoZXJyb3IpKTtcbiAgICAgICAgfSkpO1xuICAgIH0pKVxuICApO1xufVxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
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.10", 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.10", ngImport: i0, type: BookmarksEffects });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", 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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QyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUMzRSxDQUNKLENBQUMsQ0FDSCxDQUFDO1FBRUYsb0JBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNsQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxDQUFDLE1BQXVDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDaEUsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7YUFDOUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDN0QsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUMzRSxDQUNKLENBQUMsQ0FDSCxDQUFDO0lBM0U2RCxDQUFDOztpSUFKckQsZ0JBQWdCO3FJQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBleGhhdXN0TWFwLCBtYXAsIHN3aXRjaE1hcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9va21hcmtzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL3NlcnZpY2VzL2Jvb2ttYXJrcy1hcGkvYm9va21hcmtzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGJvb2ttYXJrc0FjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tQm9va21hcmtzIGZyb20gJy4uL3JlZHVjZXJzL2Jvb2ttYXJrcy5yZWR1Y2VyJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCb29rbWFya3NFZmZlY3RzIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgICAgICAgICAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlfGZyb21Cb29rbWFya3MuQm9va21hcmtzU3RhdGU+LFxuICAgICAgICAgICAgICBwcml2YXRlIGJvb2ttYXJrc0FwaVNlcnZpY2U6IEJvb2ttYXJrc0FwaVNlcnZpY2UpIHt9XG5cbiAgbG9hZEJvb2ttYXJrcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGJvb2ttYXJrc0FjdGlvbnMuTE9BRF9CT09LTUFSS1MpLFxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldERvY3VtZW50SWQpKSksXG4gICAgbWFwKChbLCBkb2N1bWVudElkXSkgPT4gZG9jdW1lbnRJZCksXG4gICAgZXhoYXVzdE1hcCgoZG9jdW1lbnRJZCkgPT5cbiAgICAgIHRoaXMuYm9va21hcmtzQXBpU2VydmljZS5nZXRCb29rbWFya3MoZG9jdW1lbnRJZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHJlcyA9PiBuZXcgYm9va21hcmtzQWN0aW9ucy5Mb2FkQm9va21hcmtzU3VjY2VzcyhyZXMpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiBvZihuZXcgYm9va21hcmtzQWN0aW9ucy5Mb2FkQm9va21hcmtzRmFpbHVyZShlcnIpKSlcbiAgICAgICAgKVxuICAgICkpXG4gICk7XG5cbiAgY3JlYXRlQm9va21hcmskID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShib29rbWFya3NBY3Rpb25zLkNSRUFURV9CT09LTUFSSyksXG4gICAgbWFwKChhY3Rpb246IGJvb2ttYXJrc0FjdGlvbnMuQ3JlYXRlQm9va21hcmspID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICBleGhhdXN0TWFwKChib29rbWFyaykgPT5cbiAgICAgIHRoaXMuYm9va21hcmtzQXBpU2VydmljZS5jcmVhdGVCb29rbWFyayhib29rbWFyaylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKGJtcmsgPT4gbmV3IGJvb2ttYXJrc0FjdGlvbnMuQ3JlYXRlQm9va21hcmtTdWNjZXNzKGJtcmspKSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKG5ldyBib29rbWFya3NBY3Rpb25zLkNyZWF0ZUJvb2ttYXJrRmFpbHVyZShlcnJvcikpKVxuICAgICAgICApXG4gICAgKSlcbiAgKTtcblxuICBtb3ZlQm9va21hcmskID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShib29rbWFya3NBY3Rpb25zLk1PVkVfQk9PS01BUkspLFxuICAgIG1hcCgoYWN0aW9uOiBib29rbWFya3NBY3Rpb25zLk1vdmVCb29rbWFyaykgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIGV4aGF1c3RNYXAoKGJvb2ttYXJrcykgPT5cbiAgICAgIHRoaXMuYm9va21hcmtzQXBpU2VydmljZS51cGRhdGVNdWx0aXBsZUJvb2ttYXJrcyhib29rbWFya3MpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChibXJrcyA9PiBuZXcgYm9va21hcmtzQWN0aW9ucy5Nb3ZlQm9va21hcmtTdWNjZXNzKGJtcmtzKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihuZXcgYm9va21hcmtzQWN0aW9ucy5Nb3ZlQm9va21hcmtGYWlsdXJlKGVycm9yKSkpXG4gICAgICAgIClcbiAgICApKVxuICApO1xuXG4gIGRlbGV0ZUJvb2ttYXJrJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoYm9va21hcmtzQWN0aW9ucy5ERUxFVEVfQk9PS01BUkspLFxuICAgIG1hcCgoYWN0aW9uOiBib29rbWFya3NBY3Rpb25zLkRlbGV0ZUJvb2ttYXJrKSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgZXhoYXVzdE1hcCgoeyBkZWxldGVkLCB1cGRhdGVkIH0pID0+XG4gICAgICB0aGlzLmJvb2ttYXJrc0FwaVNlcnZpY2UuZGVsZXRlTXVsdGlwbGVCb29rbWFya3MoeyBkZWxldGVkLCB1cGRhdGVkIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodXBkYXRlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIG5ldyBib29rbWFya3NBY3Rpb25zLkRlbGV0ZUJvb2ttYXJrU3VjY2VzcyhkZWxldGVkKSxcbiAgICAgICAgICAgICAgICBuZXcgYm9va21hcmtzQWN0aW9ucy5VcGRhdGVCb29rbWFya1N1Y2Nlc3ModXBkYXRlZClcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBbbmV3IGJvb2ttYXJrc0FjdGlvbnMuRGVsZXRlQm9va21hcmtTdWNjZXNzKGRlbGV0ZWQpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKG5ldyBib29rbWFya3NBY3Rpb25zLkRlbGV0ZUJvb2ttYXJrRmFpbHVyZShlcnJvcikpKVxuICAgICAgICApXG4gICAgKSlcbiAgKTtcblxuICB1cGRhdGVCb29rbWFyayQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGJvb2ttYXJrc0FjdGlvbnMuVVBEQVRFX0JPT0tNQVJLKSxcbiAgICBtYXAoKGFjdGlvbjogYm9va21hcmtzQWN0aW9ucy5VcGRhdGVCb29rbWFyaykgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIHN3aXRjaE1hcCgoYm9va21hcmspID0+XG4gICAgICB0aGlzLmJvb2ttYXJrc0FwaVNlcnZpY2UudXBkYXRlQm9va21hcmsoYm9va21hcmspXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChibXJrID0+IG5ldyBib29rbWFya3NBY3Rpb25zLlVwZGF0ZUJvb2ttYXJrU3VjY2VzcyhibXJrKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihuZXcgYm9va21hcmtzQWN0aW9ucy5VcGRhdGVCb29rbWFya0ZhaWx1cmUoZXJyb3IpKSlcbiAgICAgICAgKVxuICAgICkpXG4gICk7XG59XG4iXX0=
|
|
@@ -1,208 +0,0 @@
|
|
|
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_SET_SUCCESS: {
|
|
50
|
-
const anno = action.payload.annotations;
|
|
51
|
-
const annEntities = {
|
|
52
|
-
...state.annotationEntities,
|
|
53
|
-
...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
|
-
...anno,
|
|
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.SAVE_ANNOTATION_SUCCESS: {
|
|
75
|
-
const anno = action.payload;
|
|
76
|
-
const annEntities = {
|
|
77
|
-
...state.annotationEntities,
|
|
78
|
-
[anno.id]: anno
|
|
79
|
-
};
|
|
80
|
-
const annotArray = Object.keys(annEntities).map(key => annEntities[key]);
|
|
81
|
-
const annotationEntities = StoreUtils.generateAnnotationEntities(annotArray);
|
|
82
|
-
const annotationPageEntities = StoreUtils.groupByKeyEntities(annotArray, 'page');
|
|
83
|
-
const commentEntities = StoreUtils.generateCommentsEntities(annotArray);
|
|
84
|
-
const selectedAnnotation = {
|
|
85
|
-
...state.selectedAnnotation,
|
|
86
|
-
annotationId: anno.id,
|
|
87
|
-
editable: false
|
|
88
|
-
};
|
|
89
|
-
return {
|
|
90
|
-
...state,
|
|
91
|
-
annotationEntities,
|
|
92
|
-
annotationPageEntities,
|
|
93
|
-
commentEntities,
|
|
94
|
-
selectedAnnotation,
|
|
95
|
-
loading: false,
|
|
96
|
-
loaded: true
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {
|
|
100
|
-
const id = action.payload;
|
|
101
|
-
const page = state.annotationEntities[id].page;
|
|
102
|
-
const annotationEntities = {
|
|
103
|
-
...state.annotationEntities
|
|
104
|
-
};
|
|
105
|
-
delete annotationEntities[id];
|
|
106
|
-
const pageAnnotationsRemoved = [
|
|
107
|
-
...state.annotationPageEntities[page].filter(anno => anno.id !== id)
|
|
108
|
-
];
|
|
109
|
-
const annotationPageEntities = {
|
|
110
|
-
...state.annotationPageEntities,
|
|
111
|
-
[page]: pageAnnotationsRemoved
|
|
112
|
-
};
|
|
113
|
-
const commentEntities = {
|
|
114
|
-
...state.commentEntities
|
|
115
|
-
};
|
|
116
|
-
if (state.commentEntities[id]) {
|
|
117
|
-
delete commentEntities[id];
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
...state,
|
|
121
|
-
annotationEntities,
|
|
122
|
-
annotationPageEntities,
|
|
123
|
-
commentEntities
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
case fromAnnotations.ADD_OR_EDIT_COMMENT: {
|
|
127
|
-
const comment = {
|
|
128
|
-
[action.payload.annotationId]: action.payload
|
|
129
|
-
};
|
|
130
|
-
const comments = {
|
|
131
|
-
...state.commentEntities,
|
|
132
|
-
...comment
|
|
133
|
-
};
|
|
134
|
-
return {
|
|
135
|
-
...state,
|
|
136
|
-
commentEntities: comments
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
case fromAnnotations.SELECT_ANNOTATION: {
|
|
140
|
-
const payload = action.payload;
|
|
141
|
-
const commentEntity = {
|
|
142
|
-
...state.commentEntities[payload.annotationId],
|
|
143
|
-
editable: payload.editable,
|
|
144
|
-
selected: payload.selected
|
|
145
|
-
};
|
|
146
|
-
const resetCommentEntSelect = StoreUtils.resetCommentEntSelect({ ...state.commentEntities });
|
|
147
|
-
const commentEntities = payload.annotationId && state.commentEntities[payload.annotationId] ? {
|
|
148
|
-
...resetCommentEntSelect,
|
|
149
|
-
[payload.annotationId]: commentEntity
|
|
150
|
-
} : { ...resetCommentEntSelect };
|
|
151
|
-
return {
|
|
152
|
-
...state,
|
|
153
|
-
commentEntities,
|
|
154
|
-
selectedAnnotation: action.payload
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
case fromAnnotations.SEARCH_COMMENT: {
|
|
158
|
-
const commentSearchQueries = {
|
|
159
|
-
...state.commentSearchQueries,
|
|
160
|
-
commentSearch: action.payload
|
|
161
|
-
};
|
|
162
|
-
const commentEntities = StoreUtils.resetCommentEntSelect({ ...state.commentEntities });
|
|
163
|
-
return {
|
|
164
|
-
...state,
|
|
165
|
-
commentEntities,
|
|
166
|
-
commentSearchQueries
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
case fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER: {
|
|
170
|
-
const payload = action.payload;
|
|
171
|
-
const hasTagFilter = () => {
|
|
172
|
-
let isFiltered = false;
|
|
173
|
-
if (payload.tagFilters) {
|
|
174
|
-
Object.keys(payload.tagFilters).map(filter => {
|
|
175
|
-
if (payload.tagFilters[filter] && !isFiltered) {
|
|
176
|
-
isFiltered = true;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
return isFiltered;
|
|
181
|
-
};
|
|
182
|
-
const hasFilter = (hasTagFilter() || !!payload.dateRangeFrom || !!payload.dateRangeTo);
|
|
183
|
-
const commentSummaryFilters = {
|
|
184
|
-
hasFilter,
|
|
185
|
-
filters: payload
|
|
186
|
-
};
|
|
187
|
-
return {
|
|
188
|
-
...state,
|
|
189
|
-
commentSummaryFilters: commentSummaryFilters
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
case fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER: {
|
|
193
|
-
return {
|
|
194
|
-
...state,
|
|
195
|
-
commentSummaryFilters: { ...initialState.commentSummaryFilters }
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return state;
|
|
200
|
-
}
|
|
201
|
-
export const getAnnoSet = (state) => state.annotationSet;
|
|
202
|
-
export const getCommentEnts = (state) => state.commentEntities;
|
|
203
|
-
export const getAnnoPageEnt = (state) => state.annotationPageEntities;
|
|
204
|
-
export const getAnnoEnt = (state) => state.annotationEntities;
|
|
205
|
-
export const getSelectedAnno = (state) => state.selectedAnnotation;
|
|
206
|
-
export const commentSearchQ = (state) => state.commentSearchQueries;
|
|
207
|
-
export const getSummaryFilters = (state) => state.commentSummaryFilters;
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2Fubm90YXRpb25zLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxlQUFlLE1BQU0sK0JBQStCLENBQUM7QUFHakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZ0I1QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXVCO0lBQzlDLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLGtCQUFrQixFQUFFLEVBQUU7SUFDdEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsc0JBQXNCLEVBQUUsRUFBRTtJQUMxQixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLG9CQUFvQixFQUFFLEVBQUMsYUFBYSxFQUFFLEVBQUUsRUFBQztJQUN6QyxxQkFBcUIsRUFBRSxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBQztJQUN0RCxPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLE1BQU0sVUFBVSxPQUFPLENBQ3JCLEtBQUssR0FBRyxZQUFZLEVBQ3BCLE1BQTBDO0lBRTFDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUVuQixLQUFLLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sYUFBYSxHQUFHO2dCQUNwQixHQUFHLEtBQUssQ0FBQyxhQUFhO2dCQUN0QixVQUFVLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDM0IsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsR0FBRyxZQUFZO2dCQUNmLGFBQWE7Z0JBQ2IsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1NBQ0g7UUFDRCxLQUFLLGVBQWUsQ0FB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R0FBRyxLQUFLO2dCQUNSLHFCQUFxQixFQUFFLHFCQUFxQjthQUM3QyxDQUFDO1NBQ0g7UUFFRCxLQUFLLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBRWpELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLHFCQUFxQixFQUFHLEVBQUMsR0FBRyxZQUFZLENBQUMscUJBQXFCLEVBQUM7YUFDaEUsQ0FBQztTQUNIO0tBQ0Y7SUFHRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQXlCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7QUFDbkYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQXlCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztBQUNsRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7QUFDdkYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHV1aWQgZnJvbSAndXVpZC92NCc7XG5pbXBvcnQgKiBhcyBmcm9tQW5ub3RhdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbiB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9hbm5vdGF0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbW1lbnQgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50L2NvbW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgU3RvcmVVdGlscyB9IGZyb20gJy4uL3N0b3JlLXV0aWxzJztcbmltcG9ydCB7IFNlbGVjdGlvbkFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9tb2RlbHMvZXZlbnQtc2VsZWN0Lm1vZGVsJztcbmltcG9ydCB7IEZpbHRlcnMgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVycy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFubm90YXRpb25TZXRTdGF0ZSB7XG4gIGFubm90YXRpb25TZXQ6IGFueTtcbiAgYW5ub3RhdGlvbkVudGl0aWVzOiB7W2lkOiBzdHJpbmddOiBhbnl9O1xuICBhbm5vdGF0aW9uUGFnZUVudGl0aWVzOiB7W2lkOiBzdHJpbmddOiBBbm5vdGF0aW9uW119O1xuICBjb21tZW50RW50aXRpZXM6IHtbaWQ6IHN0cmluZ106IENvbW1lbnR9O1xuICBzZWxlY3RlZEFubm90YXRpb246IFNlbGVjdGlvbkFubm90YXRpb247XG4gIGNvbW1lbnRTZWFyY2hRdWVyaWVzOiB7IGNvbW1lbnRTZWFyY2g6IHN0cmluZyB9O1xuICBjb21tZW50U3VtbWFyeUZpbHRlcnM6IHtoYXNGaWx0ZXI6IGJvb2xlYW47IGZpbHRlcnM6IEZpbHRlcnN9O1xuICBsb2FkZWQ6IGJvb2xlYW47XG4gIGxvYWRpbmc6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSA9IHtcbiAgYW5ub3RhdGlvblNldDoge30sXG4gIGFubm90YXRpb25FbnRpdGllczoge30sXG4gIGNvbW1lbnRFbnRpdGllczoge30sXG4gIGFubm90YXRpb25QYWdlRW50aXRpZXM6IHt9LFxuICBzZWxlY3RlZEFubm90YXRpb246IG51bGwsXG4gIGNvbW1lbnRTZWFyY2hRdWVyaWVzOiB7Y29tbWVudFNlYXJjaDogJyd9LFxuICBjb21tZW50U3VtbWFyeUZpbHRlcnM6IHtoYXNGaWx0ZXI6IGZhbHNlLCBmaWx0ZXJzOiB7fX0sXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBsb2FkZWQ6IGZhbHNlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZXIgKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgYWN0aW9uOiBmcm9tQW5ub3RhdGlvbnMuQW5ub3RhdGlvbnNBY3Rpb25zXG4pOiBBbm5vdGF0aW9uU2V0U3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5MT0FEX0FOTk9UQVRJT05fU0VUOiB7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uU2V0ID0ge1xuICAgICAgICAuLi5zdGF0ZS5hbm5vdGF0aW9uU2V0LFxuICAgICAgICBkb2N1bWVudElkOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICAgICAgYW5ub3RhdGlvblNldCxcbiAgICAgICAgbG9hZGluZzogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuTE9BRF9BTk5PVEFUSU9OX1NFVF9TVUNDRVNTOlxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLkxPQURfQU5OT1RBVElPTl9TRVRfRkFJTDoge1xuICAgICAgY29uc3QgYW5ub3RhdGlvblNldCA9IGFjdGlvbi5wYXlsb2FkLnN0YXR1cyA9PT0gMjAwID8gYWN0aW9uLnBheWxvYWQuYm9keSA6XG4gICAgICAgIHtcbiAgICAgICAgICAuLi5zdGF0ZS5hbm5vdGF0aW9uU2V0LFxuICAgICAgICAgIGFubm90YXRpb25zOiBbXSxcbiAgICAgICAgICBpZDogdXVpZCgpXG4gICAgICAgIH07XG4gICAgICBjb25zdCBhbm5vdGF0aW9uRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQW5ub3RhdGlvbkVudGl0aWVzKGFubm90YXRpb25TZXQuYW5ub3RhdGlvbnMpO1xuICAgICAgY29uc3QgYW5ub3RhdGlvblBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKGFubm90YXRpb25TZXQuYW5ub3RhdGlvbnMsICdwYWdlJyk7XG4gICAgICBjb25zdCBjb21tZW50RW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQ29tbWVudHNFbnRpdGllcyhhbm5vdGF0aW9uU2V0LmFubm90YXRpb25zKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBhbm5vdGF0aW9uU2V0LFxuICAgICAgICBhbm5vdGF0aW9uRW50aXRpZXMsXG4gICAgICAgIGFubm90YXRpb25QYWdlRW50aXRpZXMsXG4gICAgICAgIGNvbW1lbnRFbnRpdGllcyxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGxvYWRlZDogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5TQVZFX0FOTk9UQVRJT05fU0VUX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IGFubm8gPSBhY3Rpb24ucGF5bG9hZC5hbm5vdGF0aW9ucztcbiAgICAgIGNvbnN0IGFubkVudGl0aWVzID0ge1xuICAgICAgICAuLi5zdGF0ZS5hbm5vdGF0aW9uRW50aXRpZXMsXG4gICAgICAgIC4uLmFubm9cbiAgICAgIH07XG4gICAgICBjb25zdCBhbm5vdEFycmF5ID0gT2JqZWN0LmtleXMoYW5uRW50aXRpZXMpLm1hcChrZXkgPT4gYW5uRW50aXRpZXNba2V5XSk7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQW5ub3RhdGlvbkVudGl0aWVzKGFubm90QXJyYXkpO1xuICAgICAgY29uc3QgYW5ub3RhdGlvblBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKGFubm90QXJyYXksICdwYWdlJyk7XG4gICAgICBjb25zdCBjb21tZW50RW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQ29tbWVudHNFbnRpdGllcyhhbm5vdEFycmF5KTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkQW5ub3RhdGlvbiA9IHtcbiAgICAgICAgLi4uc3RhdGUuc2VsZWN0ZWRBbm5vdGF0aW9uLFxuICAgICAgICAuLi5hbm5vLFxuICAgICAgICBlZGl0YWJsZTogZmFsc2VcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYW5ub3RhdGlvbkVudGl0aWVzLFxuICAgICAgICBhbm5vdGF0aW9uUGFnZUVudGl0aWVzLFxuICAgICAgICBjb21tZW50RW50aXRpZXMsXG4gICAgICAgIHNlbGVjdGVkQW5ub3RhdGlvbixcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGxvYWRlZDogdHJ1ZVxuICAgICAgfTtcblxuICAgIH1cblxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLlNBVkVfQU5OT1RBVElPTl9TVUNDRVNTOiB7XG4gICAgICBjb25zdCBhbm5vID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBhbm5FbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUuYW5ub3RhdGlvbkVudGl0aWVzLFxuICAgICAgICBbYW5uby5pZF06IGFubm9cbiAgICAgIH07XG4gICAgICBjb25zdCBhbm5vdEFycmF5ID0gT2JqZWN0LmtleXMoYW5uRW50aXRpZXMpLm1hcChrZXkgPT4gYW5uRW50aXRpZXNba2V5XSk7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQW5ub3RhdGlvbkVudGl0aWVzKGFubm90QXJyYXkpO1xuICAgICAgY29uc3QgYW5ub3RhdGlvblBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKGFubm90QXJyYXksICdwYWdlJyk7XG4gICAgICBjb25zdCBjb21tZW50RW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlQ29tbWVudHNFbnRpdGllcyhhbm5vdEFycmF5KTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkQW5ub3RhdGlvbiA9IHtcbiAgICAgICAgLi4uc3RhdGUuc2VsZWN0ZWRBbm5vdGF0aW9uLFxuICAgICAgICBhbm5vdGF0aW9uSWQgOiBhbm5vLmlkLFxuICAgICAgICBlZGl0YWJsZTogZmFsc2VcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYW5ub3RhdGlvbkVudGl0aWVzLFxuICAgICAgICBhbm5vdGF0aW9uUGFnZUVudGl0aWVzLFxuICAgICAgICBjb21tZW50RW50aXRpZXMsXG4gICAgICAgIHNlbGVjdGVkQW5ub3RhdGlvbixcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGxvYWRlZDogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5ERUxFVEVfQU5OT1RBVElPTl9TVUNDRVNTOiB7XG4gICAgICBjb25zdCBpZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgcGFnZSA9IHN0YXRlLmFubm90YXRpb25FbnRpdGllc1tpZF0ucGFnZTtcbiAgICAgIGNvbnN0IGFubm90YXRpb25FbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUuYW5ub3RhdGlvbkVudGl0aWVzXG4gICAgICB9O1xuICAgICAgZGVsZXRlIGFubm90YXRpb25FbnRpdGllc1tpZF07XG4gICAgICBjb25zdCBwYWdlQW5ub3RhdGlvbnNSZW1vdmVkID0gW1xuICAgICAgICAuLi5zdGF0ZS5hbm5vdGF0aW9uUGFnZUVudGl0aWVzW3BhZ2VdLmZpbHRlcihhbm5vID0+IGFubm8uaWQgIT09IGlkKVxuICAgICAgXTtcbiAgICAgIGNvbnN0IGFubm90YXRpb25QYWdlRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmFubm90YXRpb25QYWdlRW50aXRpZXMsXG4gICAgICAgIFtwYWdlXTogcGFnZUFubm90YXRpb25zUmVtb3ZlZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNvbW1lbnRFbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUuY29tbWVudEVudGl0aWVzXG4gICAgICB9O1xuICAgICAgaWYgKHN0YXRlLmNvbW1lbnRFbnRpdGllc1tpZF0pIHtcbiAgICAgICAgZGVsZXRlIGNvbW1lbnRFbnRpdGllc1tpZF07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYW5ub3RhdGlvbkVudGl0aWVzLFxuICAgICAgICBhbm5vdGF0aW9uUGFnZUVudGl0aWVzLFxuICAgICAgICBjb21tZW50RW50aXRpZXNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuQUREX09SX0VESVRfQ09NTUVOVDoge1xuICAgICAgY29uc3QgY29tbWVudCA9IHtcbiAgICAgICAgW2FjdGlvbi5wYXlsb2FkLmFubm90YXRpb25JZF06IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuICAgICAgY29uc3QgY29tbWVudHMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmNvbW1lbnRFbnRpdGllcyxcbiAgICAgICAgLi4uY29tbWVudFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb21tZW50RW50aXRpZXM6IGNvbW1lbnRzXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLlNFTEVDVF9BTk5PVEFUSU9OOiB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBjb21tZW50RW50aXR5ID0ge1xuICAgICAgICAuLi5zdGF0ZS5jb21tZW50RW50aXRpZXNbcGF5bG9hZC5hbm5vdGF0aW9uSWRdLFxuICAgICAgICBlZGl0YWJsZTogcGF5bG9hZC5lZGl0YWJsZSxcbiAgICAgICAgc2VsZWN0ZWQ6IHBheWxvYWQuc2VsZWN0ZWRcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc2V0Q29tbWVudEVudFNlbGVjdCA9IFN0b3JlVXRpbHMucmVzZXRDb21tZW50RW50U2VsZWN0KHsuLi5zdGF0ZS5jb21tZW50RW50aXRpZXN9KTtcblxuICAgICAgY29uc3QgY29tbWVudEVudGl0aWVzID0gcGF5bG9hZC5hbm5vdGF0aW9uSWQgJiYgc3RhdGUuY29tbWVudEVudGl0aWVzW3BheWxvYWQuYW5ub3RhdGlvbklkXSA/IHtcbiAgICAgICAgLi4ucmVzZXRDb21tZW50RW50U2VsZWN0LFxuICAgICAgW3BheWxvYWQuYW5ub3RhdGlvbklkXTogY29tbWVudEVudGl0eVxuICAgICAgfSA6IHsuLi5yZXNldENvbW1lbnRFbnRTZWxlY3R9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29tbWVudEVudGl0aWVzLFxuICAgICAgICBzZWxlY3RlZEFubm90YXRpb246IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLlNFQVJDSF9DT01NRU5UOiB7XG4gICAgICBjb25zdCBjb21tZW50U2VhcmNoUXVlcmllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUuY29tbWVudFNlYXJjaFF1ZXJpZXMsXG4gICAgICAgIGNvbW1lbnRTZWFyY2g6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb21tZW50RW50aXRpZXMgPSBTdG9yZVV0aWxzLnJlc2V0Q29tbWVudEVudFNlbGVjdCh7Li4uc3RhdGUuY29tbWVudEVudGl0aWVzfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29tbWVudEVudGl0aWVzLFxuICAgICAgICBjb21tZW50U2VhcmNoUXVlcmllc1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5BUFBMWV9DT01NRU5UX1NVTU1BUllfRklMVEVSOiB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBoYXNUYWdGaWx0ZXIgPSAoKSA9PiB7XG4gICAgICAgIGxldCBpc0ZpbHRlcmVkID0gZmFsc2U7XG4gICAgICAgIGlmIChwYXlsb2FkLnRhZ0ZpbHRlcnMpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhwYXlsb2FkLnRhZ0ZpbHRlcnMpLm1hcChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgaWYgKHBheWxvYWQudGFnRmlsdGVyc1tmaWx0ZXJdICYmICFpc0ZpbHRlcmVkKSB7XG4gICAgICAgICAgICAgIGlzRmlsdGVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0ZpbHRlcmVkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhc0ZpbHRlciA9IChoYXNUYWdGaWx0ZXIoKSB8fCAhIXBheWxvYWQuZGF0ZVJhbmdlRnJvbSB8fCAhIXBheWxvYWQuZGF0ZVJhbmdlVG8pO1xuICAgICAgY29uc3QgY29tbWVudFN1bW1hcnlGaWx0ZXJzID0ge1xuICAgICAgICBoYXNGaWx0ZXIsXG4gICAgICAgIGZpbHRlcnM6IHBheWxvYWRcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29tbWVudFN1bW1hcnlGaWx0ZXJzOiBjb21tZW50U3VtbWFyeUZpbHRlcnNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuQ0xFQVJfQ09NTUVOVF9TVU1NQVJZX0ZJTFRFUjoge1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29tbWVudFN1bW1hcnlGaWx0ZXJzIDogey4uLmluaXRpYWxTdGF0ZS5jb21tZW50U3VtbWFyeUZpbHRlcnN9XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0QW5ub1NldCA9IChzdGF0ZTogQW5ub3RhdGlvblNldFN0YXRlKSA9PiBzdGF0ZS5hbm5vdGF0aW9uU2V0O1xuZXhwb3J0IGNvbnN0IGdldENvbW1lbnRFbnRzID0gKHN0YXRlOiBBbm5vdGF0aW9uU2V0U3RhdGUpID0+IHN0YXRlLmNvbW1lbnRFbnRpdGllcztcbmV4cG9ydCBjb25zdCBnZXRBbm5vUGFnZUVudCA9IChzdGF0ZTogQW5ub3RhdGlvblNldFN0YXRlKSA9PiBzdGF0ZS5hbm5vdGF0aW9uUGFnZUVudGl0aWVzO1xuZXhwb3J0IGNvbnN0IGdldEFubm9FbnQgPSAoc3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSkgPT4gc3RhdGUuYW5ub3RhdGlvbkVudGl0aWVzO1xuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkQW5ubyA9IChzdGF0ZTogQW5ub3RhdGlvblNldFN0YXRlKSA9PiBzdGF0ZS5zZWxlY3RlZEFubm90YXRpb247XG5leHBvcnQgY29uc3QgY29tbWVudFNlYXJjaFEgPSAoc3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSkgPT4gc3RhdGUuY29tbWVudFNlYXJjaFF1ZXJpZXM7XG5leHBvcnQgY29uc3QgZ2V0U3VtbWFyeUZpbHRlcnMgPSAoc3RhdGU6IEFubm90YXRpb25TZXRTdGF0ZSkgPT4gc3RhdGUuY29tbWVudFN1bW1hcnlGaWx0ZXJzO1xuIl19
|