@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,120 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
3
|
-
import { combineLatest } from 'rxjs';
|
|
4
|
-
import { select } from '@ngrx/store';
|
|
5
|
-
import * as fromSelectors from '../../store/selectors/annotation.selectors';
|
|
6
|
-
import * as fromAnnoActions from '../../store/actions/annotation.actions';
|
|
7
|
-
import * as fromTagSelectors from '../../store/selectors/tag.selectors';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@ngrx/store";
|
|
10
|
-
import * as i2 from "../../print.service";
|
|
11
|
-
import * as i3 from "../../toolbar/toolbar-event.service";
|
|
12
|
-
import * as i4 from "@angular/forms";
|
|
13
|
-
import * as i5 from "@angular/cdk/a11y";
|
|
14
|
-
import * as i6 from "@angular/common";
|
|
15
|
-
import * as i7 from "@angular/router";
|
|
16
|
-
import * as i8 from "@swimlane/ngx-datatable";
|
|
17
|
-
import * as i9 from "../../shared/gov-uk-date/gov-uk-date.component";
|
|
18
|
-
import * as i10 from "../../shared/gov-uk-fieldset/gov-uk-fieldset.component";
|
|
19
|
-
import * as i11 from "rpx-xui-translation";
|
|
20
|
-
import * as i12 from "../pipes/unsnake/unsnake.pipe";
|
|
21
|
-
export class CommentsSummaryComponent {
|
|
22
|
-
constructor(store, printService, toolbarEvents, fb) {
|
|
23
|
-
this.store = store;
|
|
24
|
-
this.printService = printService;
|
|
25
|
-
this.toolbarEvents = toolbarEvents;
|
|
26
|
-
this.fb = fb;
|
|
27
|
-
this.showFilters = false;
|
|
28
|
-
this.hasFilter = false;
|
|
29
|
-
this.fromFilterValid = true;
|
|
30
|
-
this.toFilterValid = true;
|
|
31
|
-
}
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
this.filtersFg = this.fb.group({
|
|
34
|
-
dateRangeFrom: new FormGroup({
|
|
35
|
-
day: new FormControl('', [Validators.required]),
|
|
36
|
-
month: new FormControl('', [Validators.required]),
|
|
37
|
-
year: new FormControl('', [Validators.required])
|
|
38
|
-
}),
|
|
39
|
-
dateRangeTo: new FormGroup({
|
|
40
|
-
day: new FormControl('', [Validators.required]),
|
|
41
|
-
month: new FormControl('', [Validators.required]),
|
|
42
|
-
year: new FormControl('', [Validators.required])
|
|
43
|
-
}),
|
|
44
|
-
tagFilters: this.fb.group({}),
|
|
45
|
-
});
|
|
46
|
-
this.comments$ = this.store.pipe(select(fromSelectors.getCommentSummary));
|
|
47
|
-
this.buildCheckBoxForm();
|
|
48
|
-
this.container.nativeElement.focus();
|
|
49
|
-
}
|
|
50
|
-
buildCheckBoxForm() {
|
|
51
|
-
this.filtersFg.reset();
|
|
52
|
-
const checkboxes = this.filtersFg.get('tagFilters');
|
|
53
|
-
const filters$ = this.store.pipe(select(fromSelectors.getCommentSummaryFilters));
|
|
54
|
-
this.allTags$ = this.store.pipe(select(fromTagSelectors.getAllTagsArr));
|
|
55
|
-
this.$subscriptions = combineLatest([this.allTags$, filters$]).subscribe(([tags, filters]) => {
|
|
56
|
-
this.hasFilter = filters.hasFilter;
|
|
57
|
-
tags.forEach((val) => {
|
|
58
|
-
const checkBoxValue = (filters.filters.tagFilters &&
|
|
59
|
-
filters.filters.tagFilters.hasOwnProperty(val.key)) ?
|
|
60
|
-
filters.filters.tagFilters[val.key] : false;
|
|
61
|
-
checkboxes.addControl(val.key, new FormControl(checkBoxValue));
|
|
62
|
-
});
|
|
63
|
-
this.filtersFg.updateValueAndValidity();
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
onClearFilters() {
|
|
67
|
-
this.store.dispatch(new fromAnnoActions.ClearCommentSummaryFilters());
|
|
68
|
-
this.buildCheckBoxForm();
|
|
69
|
-
}
|
|
70
|
-
onFilter() {
|
|
71
|
-
const { value } = this.filtersFg;
|
|
72
|
-
const hasDateFrom = (value.dateRangeFrom.year && value.dateRangeFrom.month && value.dateRangeFrom.day);
|
|
73
|
-
const hasDateTo = (value.dateRangeTo.year && value.dateRangeTo.month && value.dateRangeTo.day);
|
|
74
|
-
const dateRangeFrom = hasDateFrom ?
|
|
75
|
-
new Date(value.dateRangeFrom.year, value.dateRangeFrom.month - 1, value.dateRangeFrom.day).getTime() : null;
|
|
76
|
-
const dateRangeTo = hasDateTo ?
|
|
77
|
-
new Date(value.dateRangeTo.year, value.dateRangeTo.month - 1, value.dateRangeTo.day).getTime() : null;
|
|
78
|
-
this.fromFilterValid = hasDateFrom ? true : false;
|
|
79
|
-
this.toFilterValid = hasDateTo ? true : false;
|
|
80
|
-
if (this.filtersFg.valid) {
|
|
81
|
-
this.store.dispatch(new fromAnnoActions.ApplyCommentSymmaryFilter({ ...value, dateRangeFrom, dateRangeTo }));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
onFiltersToggle() {
|
|
85
|
-
this.showFilters = !this.showFilters;
|
|
86
|
-
}
|
|
87
|
-
onClose() {
|
|
88
|
-
this.toolbarEvents.toggleCommentsSummary(false);
|
|
89
|
-
}
|
|
90
|
-
onPrint() {
|
|
91
|
-
this.printService.printElementNatively(this.commentsTable.nativeElement, 1000, 900);
|
|
92
|
-
}
|
|
93
|
-
navigateToPage(pageNumber) {
|
|
94
|
-
if (this.contentType === 'pdf') {
|
|
95
|
-
this.toolbarEvents.setPage(pageNumber);
|
|
96
|
-
}
|
|
97
|
-
this.toolbarEvents.toggleCommentsSummary(false);
|
|
98
|
-
this.toolbarEvents.toggleCommentsPanel(true);
|
|
99
|
-
}
|
|
100
|
-
ngOnDestroy() {
|
|
101
|
-
this.$subscriptions.unsubscribe();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/** @nocollapse */ CommentsSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentsSummaryComponent, deps: [{ token: i1.Store }, { token: i2.PrintService }, { token: i3.ToolbarEventService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
-
/** @nocollapse */ CommentsSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentsSummaryComponent, selector: "mv-comments-summary", inputs: { title: "title", contentType: "contentType" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["outerContainer"], descendants: true, static: true }, { propertyName: "commentsTable", first: true, predicate: ["commentContainer"], descendants: true }], ngImport: i0, template: "<div id=\"modal-background\" class=\"modal\" (click)=\"onClose()\">\n <div\n #outerContainer\n id=\"modal\"\n class=\"modal-content govuk-width-container clearfix\"\n (click)=\"$event.stopPropagation()\"\n cdkTrapFocus\n tabindex=\"0\"\n >\n <div id=\"comment-container\" class=\"comment-container\" #commentContainer>\n <h2 class=\"govuk-heading-m\">{{ title }}</h2>\n <ng-container *ngIf=\"comments$ | async as comments\">\n <ng-container *ngIf=\"comments.length\">\n <button\n type=\"submit\"\n class=\"govuk-button govuk-!-margin-right-1\"\n (click)=\"onFiltersToggle()\"\n >\n {{\n !showFilters\n ? (\"Show Filters\" | rpxTranslate)\n : (\"Hide Filters\" | rpxTranslate)\n }}\n </button>\n <button\n type=\"submit\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"onClearFilters()\"\n *ngIf=\"hasFilter\"\n >\n {{ \"Clear Filters\" | rpxTranslate }}\n </button>\n <ng-container *ngIf=\"showFilters\">\n <form [formGroup]=\"filtersFg\" (ngSubmit)=\"onFilter()\">\n <div class=\"dates\">\n <div class=\"dates__from\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeFrom', legend: 'From' }\"\n [formGroup]=\"filtersFg.controls['dateRangeFrom']\"\n [errorMessage]=\"{\n isInvalid: !fromFilterValid,\n messages: ['From date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__to\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeTo', legend: 'To' }\"\n [formGroup]=\"filtersFg.controls['dateRangeTo']\"\n [errorMessage]=\"{\n isInvalid: !toFilterValid,\n messages: ['To date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__tags\">\n <mv-gov-uk-fieldset\n [config]=\"{\n legend: 'Tags',\n classes: 'govuk-label--m',\n id: 'filters'\n }\"\n [isHeading]=\"false\"\n >\n <div\n class=\"govuk-checkboxes--scroll\"\n [formGroup]=\"filtersFg.controls['tagFilters']\"\n >\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"let item of allTags$ | async\"\n >\n <input\n [formControlName]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n type=\"checkbox\"\n />\n <label class=\"govuk-label govuk-checkboxes__label\">\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </mv-gov-uk-fieldset>\n </div>\n <div class=\"dates__cta\">\n <button type=\"submit\" class=\"govuk-button\">\n {{ \"Filter comments\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </form>\n </ng-container>\n <ng-container *ngIf=\"comments[0]\">\n <ngx-datatable\n [rows]=\"comments\"\n rowHeight=\"auto\"\n headerHeight=\"auto\"\n [columnMode]=\"'flex'\"\n [sorts]=\"[{ prop: 'date', dir: 'desc' }]\"\n >\n <ngx-datatable-column\n name=\"{{ 'User' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Page' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <a\n [routerLink]=\"[]\"\n class=\"comment-summary_pages\"\n (click)=\"navigateToPage(value)\"\n >{{ value }}</a\n >\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Date' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Comment' | rpxTranslate }}\"\n [flexGrow]=\"3\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Tags' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <span class=\"hmcts-badge\" *ngFor=\"let tag of value\">{{\n tag.label\n }}</span>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!comments[0]\">\n <h3 class=\"govuk-heading-s\">\n {{\n \"No comments available. Select text to add a highlight or comment.\"\n | rpxTranslate\n }}\n </h3>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"button-container\">\n <button (click)=\"onPrint()\" class=\"govuk-button govuk-button--secondary\">\n {{ \"Print\" | rpxTranslate }}\n </button>\n <button id=\"modal-close-button\" (click)=\"onClose()\" class=\"govuk-button\">\n {{ \"Close\" | rpxTranslate }}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i9.GovUkDateComponent, selector: "mv-gov-uk-date", inputs: ["config", "errorMessage", "formGroup"] }, { kind: "component", type: i10.GovUkFieldsetComponent, selector: "mv-gov-uk-fieldset", inputs: ["config", "isHeading", "errorMessage"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.RpxTranslatePipe, name: "rpxTranslate" }, { kind: "pipe", type: i12.UnsnakePipe, name: "unsnake" }] });
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentsSummaryComponent, decorators: [{
|
|
107
|
-
type: Component,
|
|
108
|
-
args: [{ selector: 'mv-comments-summary', template: "<div id=\"modal-background\" class=\"modal\" (click)=\"onClose()\">\n <div\n #outerContainer\n id=\"modal\"\n class=\"modal-content govuk-width-container clearfix\"\n (click)=\"$event.stopPropagation()\"\n cdkTrapFocus\n tabindex=\"0\"\n >\n <div id=\"comment-container\" class=\"comment-container\" #commentContainer>\n <h2 class=\"govuk-heading-m\">{{ title }}</h2>\n <ng-container *ngIf=\"comments$ | async as comments\">\n <ng-container *ngIf=\"comments.length\">\n <button\n type=\"submit\"\n class=\"govuk-button govuk-!-margin-right-1\"\n (click)=\"onFiltersToggle()\"\n >\n {{\n !showFilters\n ? (\"Show Filters\" | rpxTranslate)\n : (\"Hide Filters\" | rpxTranslate)\n }}\n </button>\n <button\n type=\"submit\"\n class=\"govuk-button govuk-button--secondary\"\n (click)=\"onClearFilters()\"\n *ngIf=\"hasFilter\"\n >\n {{ \"Clear Filters\" | rpxTranslate }}\n </button>\n <ng-container *ngIf=\"showFilters\">\n <form [formGroup]=\"filtersFg\" (ngSubmit)=\"onFilter()\">\n <div class=\"dates\">\n <div class=\"dates__from\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeFrom', legend: 'From' }\"\n [formGroup]=\"filtersFg.controls['dateRangeFrom']\"\n [errorMessage]=\"{\n isInvalid: !fromFilterValid,\n messages: ['From date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__to\">\n <mv-gov-uk-date\n [config]=\"{ id: 'dateRangeTo', legend: 'To' }\"\n [formGroup]=\"filtersFg.controls['dateRangeTo']\"\n [errorMessage]=\"{\n isInvalid: !toFilterValid,\n messages: ['To date is required']\n }\"\n ></mv-gov-uk-date>\n </div>\n <div class=\"dates__tags\">\n <mv-gov-uk-fieldset\n [config]=\"{\n legend: 'Tags',\n classes: 'govuk-label--m',\n id: 'filters'\n }\"\n [isHeading]=\"false\"\n >\n <div\n class=\"govuk-checkboxes--scroll\"\n [formGroup]=\"filtersFg.controls['tagFilters']\"\n >\n <div class=\"govuk-checkboxes govuk-checkboxes--small\">\n <div\n class=\"govuk-checkboxes__item\"\n *ngFor=\"let item of allTags$ | async\"\n >\n <input\n [formControlName]=\"item.key\"\n class=\"govuk-checkboxes__input\"\n [value]=\"false\"\n type=\"checkbox\"\n />\n <label class=\"govuk-label govuk-checkboxes__label\">\n {{ item.key | unsnake }} ({{ item.length }})\n </label>\n </div>\n </div>\n </div>\n </mv-gov-uk-fieldset>\n </div>\n <div class=\"dates__cta\">\n <button type=\"submit\" class=\"govuk-button\">\n {{ \"Filter comments\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </form>\n </ng-container>\n <ng-container *ngIf=\"comments[0]\">\n <ngx-datatable\n [rows]=\"comments\"\n rowHeight=\"auto\"\n headerHeight=\"auto\"\n [columnMode]=\"'flex'\"\n [sorts]=\"[{ prop: 'date', dir: 'desc' }]\"\n >\n <ngx-datatable-column\n name=\"{{ 'User' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Page' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <a\n [routerLink]=\"[]\"\n class=\"comment-summary_pages\"\n (click)=\"navigateToPage(value)\"\n >{{ value }}</a\n >\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Date' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Comment' | rpxTranslate }}\"\n [flexGrow]=\"3\"\n [sortable]=\"false\"\n ></ngx-datatable-column>\n <ngx-datatable-column\n name=\"{{ 'Tags' | rpxTranslate }}\"\n [flexGrow]=\"1\"\n [sortable]=\"false\"\n >\n <ng-template ngx-datatable-cell-template let-value=\"value\">\n <span class=\"hmcts-badge\" *ngFor=\"let tag of value\">{{\n tag.label\n }}</span>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!comments[0]\">\n <h3 class=\"govuk-heading-s\">\n {{\n \"No comments available. Select text to add a highlight or comment.\"\n | rpxTranslate\n }}\n </h3>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"button-container\">\n <button (click)=\"onPrint()\" class=\"govuk-button govuk-button--secondary\">\n {{ \"Print\" | rpxTranslate }}\n </button>\n <button id=\"modal-close-button\" (click)=\"onClose()\" class=\"govuk-button\">\n {{ \"Close\" | rpxTranslate }}\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
109
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.PrintService }, { type: i3.ToolbarEventService }, { type: i4.FormBuilder }]; }, propDecorators: { title: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], contentType: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], container: [{
|
|
114
|
-
type: ViewChild,
|
|
115
|
-
args: ['outerContainer', { static: true }]
|
|
116
|
-
}], commentsTable: [{
|
|
117
|
-
type: ViewChild,
|
|
118
|
-
args: ['commentContainer', { static: false }]
|
|
119
|
-
}] } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMtc3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9jb21tZW50cy1zdW1tYXJ5L2NvbW1lbnRzLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudHMtc3VtbWFyeS9jb21tZW50cy1zdW1tYXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFlLFdBQVcsRUFBRSxTQUFTLEVBQXNCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFJNUMsT0FBTyxLQUFLLGFBQWEsTUFBTSw0Q0FBNEMsQ0FBQztBQUU1RSxPQUFPLEtBQUssZUFBZSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFNeEUsTUFBTSxPQUFPLHdCQUF3QjtJQWVuQyxZQUNVLEtBQTBDLEVBQ2pDLFlBQTBCLEVBQzFCLGFBQWtDLEVBQzNDLEVBQWU7UUFIZixVQUFLLEdBQUwsS0FBSyxDQUFxQztRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDM0MsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQVR6QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xC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K0JBQ0UscUJBQXFCO21MQUt0QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDeUMsU0FBUztzQkFBdkQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0ssYUFBYTtzQkFBOUQsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5pbXBvcnQgeyBQcmludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcmludC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBmcm9tU2VsZWN0b3JzIGZyb20gJy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9hbm5vdGF0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFubm9BY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21UYWdTZWxlY3RvcnMgZnJvbSAnLi4vLi4vc3RvcmUvc2VsZWN0b3JzL3RhZy5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1jb21tZW50cy1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnRzLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50c1N1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgY29udGVudFR5cGU6IHN0cmluZztcbiAgQFZpZXdDaGlsZCgnb3V0ZXJDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbW1lbnRDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29tbWVudHNUYWJsZTogRWxlbWVudFJlZjtcbiAgcHVibGljIGNvbW1lbnRzJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdWJsaWMgZmlsdGVyc0ZnOiBGb3JtR3JvdXA7XG4gIHByaXZhdGUgJHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbjtcbiAgYWxsVGFncyQ6IE9ic2VydmFibGU8eyBrZXk6IHN0cmluZzsgbGVuZ3RoOiBudW1iZXIgfVtdPjtcbiAgc2hvd0ZpbHRlcnMgPSBmYWxzZTtcbiAgaGFzRmlsdGVyID0gZmFsc2U7XG4gIGZyb21GaWx0ZXJWYWxpZDogYm9vbGVhbiA9IHRydWU7XG4gIHRvRmlsdGVyVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRTZXJ2aWNlOiBQcmludFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzRmcgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRhdGVSYW5nZUZyb206IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBkYXk6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgbW9udGg6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgeWVhcjogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICB9KSxcbiAgICAgIGRhdGVSYW5nZVRvOiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZGF5OiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIG1vbnRoOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIHllYXI6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgICAgfSksXG4gICAgICB0YWdGaWx0ZXJzOiB0aGlzLmZiLmdyb3VwKHt9KSxcbiAgICB9KTtcbiAgICB0aGlzLmNvbW1lbnRzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbVNlbGVjdG9ycy5nZXRDb21tZW50U3VtbWFyeSkpO1xuICAgIHRoaXMuYnVpbGRDaGVja0JveEZvcm0oKTtcbiAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBidWlsZENoZWNrQm94Rm9ybSgpIHtcbiAgICB0aGlzLmZpbHRlcnNGZy5yZXNldCgpO1xuICAgIGNvbnN0IGNoZWNrYm94ZXMgPSA8Rm9ybUdyb3VwPnRoaXMuZmlsdGVyc0ZnLmdldCgndGFnRmlsdGVycycpO1xuICAgIGNvbnN0IGZpbHRlcnMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldENvbW1lbnRTdW1tYXJ5RmlsdGVycykpO1xuICAgIHRoaXMuYWxsVGFncyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21UYWdTZWxlY3RvcnMuZ2V0QWxsVGFnc0FycikpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbnMgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmFsbFRhZ3MkLCBmaWx0ZXJzJF0pLnN1YnNjcmliZSgoW3RhZ3MsIGZpbHRlcnNdKSA9PiB7XG4gICAgICB0aGlzLmhhc0ZpbHRlciA9IGZpbHRlcnMuaGFzRmlsdGVyO1xuICAgICAgdGFncy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2tCb3hWYWx1ZSA9IChmaWx0ZXJzLmZpbHRlcnMudGFnRmlsdGVycyAmJlxuICAgICAgICAgIGZpbHRlcnMuZmlsdGVycy50YWdGaWx0ZXJzLmhhc093blByb3BlcnR5KHZhbC5rZXkpKSA/XG4gICAgICAgICAgZmlsdGVycy5maWx0ZXJzLnRhZ0ZpbHRlcnNbdmFsLmtleV0gOiBmYWxzZTtcbiAgICAgICAgY2hlY2tib3hlcy5hZGRDb250cm9sKHZhbC5rZXksIG5ldyBGb3JtQ29udHJvbChjaGVja0JveFZhbHVlKSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmlsdGVyc0ZnLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21Bbm5vQWN0aW9ucy5DbGVhckNvbW1lbnRTdW1tYXJ5RmlsdGVycygpKTtcbiAgICB0aGlzLmJ1aWxkQ2hlY2tCb3hGb3JtKCk7XG4gIH1cblxuICBvbkZpbHRlcigpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLmZpbHRlcnNGZztcblxuXG4gICAgY29uc3QgaGFzRGF0ZUZyb20gPSAodmFsdWUuZGF0ZVJhbmdlRnJvbS55ZWFyICYmIHZhbHVlLmRhdGVSYW5nZUZyb20ubW9udGggJiYgdmFsdWUuZGF0ZVJhbmdlRnJvbS5kYXkpO1xuICAgIGNvbnN0IGhhc0RhdGVUbyA9ICh2YWx1ZS5kYXRlUmFuZ2VUby55ZWFyICYmIHZhbHVlLmRhdGVSYW5nZVRvLm1vbnRoICYmIHZhbHVlLmRhdGVSYW5nZVRvLmRheSk7XG4gICAgY29uc3QgZGF0ZVJhbmdlRnJvbSA9IGhhc0RhdGVGcm9tID9cbiAgICAgIG5ldyBEYXRlKHZhbHVlLmRhdGVSYW5nZUZyb20ueWVhciwgdmFsdWUuZGF0ZVJhbmdlRnJvbS5tb250aCAtIDEsIHZhbHVlLmRhdGVSYW5nZUZyb20uZGF5KS5nZXRUaW1lKCkgOiBudWxsO1xuICAgIGNvbnN0IGRhdGVSYW5nZVRvID0gaGFzRGF0ZVRvID9cbiAgICAgIG5ldyBEYXRlKHZhbHVlLmRhdGVSYW5nZVRvLnllYXIsIHZhbHVlLmRhdGVSYW5nZVRvLm1vbnRoIC0gMSwgdmFsdWUuZGF0ZVJhbmdlVG8uZGF5KS5nZXRUaW1lKCkgOiBudWxsO1xuXG4gICAgdGhpcy5mcm9tRmlsdGVyVmFsaWQgPSBoYXNEYXRlRnJvbSA/IHRydWUgOiBmYWxzZTtcbiAgICB0aGlzLnRvRmlsdGVyVmFsaWQgPSBoYXNEYXRlVG8gPyB0cnVlIDogZmFsc2U7XG5cbiAgICBpZiAodGhpcy5maWx0ZXJzRmcudmFsaWQpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21Bbm5vQWN0aW9ucy5BcHBseUNvbW1lbnRTeW1tYXJ5RmlsdGVyKHsgLi4udmFsdWUsIGRhdGVSYW5nZUZyb20sIGRhdGVSYW5nZVRvIH0pKTtcbiAgICB9XG4gIH1cblxuICBvbkZpbHRlcnNUb2dnbGUoKSB7XG4gICAgdGhpcy5zaG93RmlsdGVycyA9ICF0aGlzLnNob3dGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUNvbW1lbnRzU3VtbWFyeShmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgb25QcmludCgpOiB2b2lkIHtcbiAgICB0aGlzLnByaW50U2VydmljZS5wcmludEVsZW1lbnROYXRpdmVseSh0aGlzLmNvbW1lbnRzVGFibGUubmF0aXZlRWxlbWVudCwgMTAwMCwgOTAwKTtcbiAgfVxuXG4gIG5hdmlnYXRlVG9QYWdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmNvbnRlbnRUeXBlID09PSAncGRmJykge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNldFBhZ2UocGFnZU51bWJlcik7XG4gICAgfVxuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVDb21tZW50c1N1bW1hcnkoZmFsc2UpO1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVDb21tZW50c1BhbmVsKHRydWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwibW9kYWwtYmFja2dyb3VuZFwiIGNsYXNzPVwibW9kYWxcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gIDxkaXZcbiAgICAjb3V0ZXJDb250YWluZXJcbiAgICBpZD1cIm1vZGFsXCJcbiAgICBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgZ292dWstd2lkdGgtY29udGFpbmVyIGNsZWFyZml4XCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICBjZGtUcmFwRm9jdXNcbiAgICB0YWJpbmRleD1cIjBcIlxuICA+XG4gICAgPGRpdiBpZD1cImNvbW1lbnQtY29udGFpbmVyXCIgY2xhc3M9XCJjb21tZW50LWNvbnRhaW5lclwiICNjb21tZW50Q29udGFpbmVyPlxuICAgICAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+e3sgdGl0bGUgfX08L2gyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbW1lbnRzJCB8IGFzeW5jIGFzIGNvbW1lbnRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21tZW50cy5sZW5ndGhcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTFcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyc1RvZ2dsZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAhc2hvd0ZpbHRlcnNcbiAgICAgICAgICAgICAgICA/IChcIlNob3cgRmlsdGVyc1wiIHwgcnB4VHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgIDogKFwiSGlkZSBGaWx0ZXJzXCIgfCBycHhUcmFuc2xhdGUpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJGaWx0ZXJzKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNGaWx0ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IFwiQ2xlYXIgRmlsdGVyc1wiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWx0ZXJzXCI+XG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlcnNGZ1wiIChuZ1N1Ym1pdCk9XCJvbkZpbHRlcigpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlc19fZnJvbVwiPlxuICAgICAgICAgICAgICAgICAgPG12LWdvdi11ay1kYXRlXG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwieyBpZDogJ2RhdGVSYW5nZUZyb20nLCBsZWdlbmQ6ICdGcm9tJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRmcuY29udHJvbHNbJ2RhdGVSYW5nZUZyb20nXVwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwie1xuICAgICAgICAgICAgICAgICAgICAgIGlzSW52YWxpZDogIWZyb21GaWx0ZXJWYWxpZCxcbiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlczogWydGcm9tIGRhdGUgaXMgcmVxdWlyZWQnXVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgID48L212LWdvdi11ay1kYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlc19fdG9cIj5cbiAgICAgICAgICAgICAgICAgIDxtdi1nb3YtdWstZGF0ZVxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cInsgaWQ6ICdkYXRlUmFuZ2VUbycsIGxlZ2VuZDogJ1RvJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRmcuY29udHJvbHNbJ2RhdGVSYW5nZVRvJ11cIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JNZXNzYWdlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICBpc0ludmFsaWQ6ICF0b0ZpbHRlclZhbGlkLFxuICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzOiBbJ1RvIGRhdGUgaXMgcmVxdWlyZWQnXVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgID48L212LWdvdi11ay1kYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlc19fdGFnc1wiPlxuICAgICAgICAgICAgICAgICAgPG12LWdvdi11ay1maWVsZHNldFxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICBsZWdlbmQ6ICdUYWdzJyxcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzOiAnZ292dWstbGFiZWwtLW0nLFxuICAgICAgICAgICAgICAgICAgICAgIGlkOiAnZmlsdGVycydcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0hlYWRpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzLS1zY3JvbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZmlsdGVyc0ZnLmNvbnRyb2xzWyd0YWdGaWx0ZXJzJ11cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXMgZ292dWstY2hlY2tib3hlcy0tc21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWxsVGFncyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmtleSB8IHVuc25ha2UgfX0gKHt7IGl0ZW0ubGVuZ3RoIH19KVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9tdi1nb3YtdWstZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVzX19jdGFcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiZ292dWstYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IFwiRmlsdGVyIGNvbW1lbnRzXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tbWVudHNbMF1cIj5cbiAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlXG4gICAgICAgICAgICAgIFtyb3dzXT1cImNvbW1lbnRzXCJcbiAgICAgICAgICAgICAgcm93SGVpZ2h0PVwiYXV0b1wiXG4gICAgICAgICAgICAgIGhlYWRlckhlaWdodD1cImF1dG9cIlxuICAgICAgICAgICAgICBbY29sdW1uTW9kZV09XCInZmxleCdcIlxuICAgICAgICAgICAgICBbc29ydHNdPVwiW3sgcHJvcDogJ2RhdGUnLCBkaXI6ICdkZXNjJyB9XVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxuICAgICAgICAgICAgICAgIG5hbWU9XCJ7eyAnVXNlcicgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIFtmbGV4R3Jvd109XCIxXCJcbiAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+PC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXG4gICAgICAgICAgICAgICAgbmFtZT1cInt7ICdQYWdlJyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgW2ZsZXhHcm93XT1cIjFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbW1lbnQtc3VtbWFyeV9wYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGFnZSh2YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICA+e3sgdmFsdWUgfX08L2FcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cbiAgICAgICAgICAgICAgICBuYW1lPVwie3sgJ0RhdGUnIHwgcnB4VHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBbZmxleEdyb3ddPVwiMVwiXG4gICAgICAgICAgICAgID48L25neC1kYXRhdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cbiAgICAgICAgICAgICAgICBuYW1lPVwie3sgJ0NvbW1lbnQnIHwgcnB4VHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBbZmxleEdyb3ddPVwiM1wiXG4gICAgICAgICAgICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgPjwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxuICAgICAgICAgICAgICAgIG5hbWU9XCJ7eyAnVGFncycgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIFtmbGV4R3Jvd109XCIxXCJcbiAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJobWN0cy1iYWRnZVwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdmFsdWVcIj57e1xuICAgICAgICAgICAgICAgICAgICB0YWcubGFiZWxcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbW1lbnRzWzBdXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBcIk5vIGNvbW1lbnRzIGF2YWlsYWJsZS4gU2VsZWN0IHRleHQgdG8gYWRkIGEgaGlnaGxpZ2h0IG9yIGNvbW1lbnQuXCJcbiAgICAgICAgICAgICAgICB8IHJweFRyYW5zbGF0ZVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2gzPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uUHJpbnQoKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCI+XG4gICAgICAgIHt7IFwiUHJpbnRcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGlkPVwibW9kYWwtY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uXCI+XG4gICAgICAgIHt7IFwiQ2xvc2VcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FilterPipe {
|
|
4
|
-
transform(items, searchText, fieldName) {
|
|
5
|
-
if (!items) {
|
|
6
|
-
return [];
|
|
7
|
-
}
|
|
8
|
-
if (!searchText) {
|
|
9
|
-
return items;
|
|
10
|
-
}
|
|
11
|
-
return items.filter(item => {
|
|
12
|
-
if (item) {
|
|
13
|
-
if (item[fieldName]) {
|
|
14
|
-
return item[fieldName].toLowerCase().includes(searchText.toLowerCase());
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return item.toLowerCase().includes(searchText.toLowerCase());
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return false;
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/** @nocollapse */ FilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
25
|
-
/** @nocollapse */ FilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FilterPipe, name: "filter" });
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterPipe, decorators: [{
|
|
27
|
-
type: Pipe,
|
|
28
|
-
args: [{
|
|
29
|
-
name: 'filter'
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy9waXBlcy9maWx0ZXIvZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxVQUFVO0lBRXJCLFNBQVMsQ0FBQyxLQUFZLEVBQUUsVUFBa0IsRUFBRSxTQUFpQjtRQUUzRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7aUJBQ3pFO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztpQkFDOUQ7YUFDRjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsySEF0QlUsVUFBVTt5SEFBVixVQUFVOzRGQUFWLFVBQVU7a0JBSHRCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2ZpbHRlcidcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShpdGVtczogYW55W10sIHNlYXJjaFRleHQ6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcpOiBhbnlbXSB7XG5cbiAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKCFzZWFyY2hUZXh0KSB7XG4gICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIGlmIChpdGVtW2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gaXRlbVtmaWVsZE5hbWVdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gaXRlbS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../services/tags/tags.services";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
import * as i3 from "@angular/forms";
|
|
6
|
-
import * as i4 from "ngx-chips";
|
|
7
|
-
export class TagsComponent {
|
|
8
|
-
constructor(tagsServices) {
|
|
9
|
-
this.tagsServices = tagsServices;
|
|
10
|
-
this.validators = [this.minLength, this.maxLength20];
|
|
11
|
-
this.errorMessages = {
|
|
12
|
-
'minLength': 'Minimum of 2 characters',
|
|
13
|
-
'maxLength20': 'Maximum of 20 characters'
|
|
14
|
-
};
|
|
15
|
-
this.requestAutocompleteItems = (text) => {
|
|
16
|
-
return this.tagsServices.getAllTags(this.userId);
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
onUpdateTags(value) {
|
|
20
|
-
this.tagsServices.updateTagItems(value, this.annoId);
|
|
21
|
-
}
|
|
22
|
-
minLength(control) {
|
|
23
|
-
if (control.value.length < 2) {
|
|
24
|
-
return {
|
|
25
|
-
'minLength': true
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
maxLength20(control) {
|
|
31
|
-
if (control.value.length >= 20) {
|
|
32
|
-
return {
|
|
33
|
-
'maxLength20': true
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/** @nocollapse */ TagsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TagsComponent, deps: [{ token: i1.TagsServices }], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
/** @nocollapse */ TagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagsComponent, selector: "mv-tags", inputs: { tagItems: "tagItems", userId: "userId", editable: "editable", annoId: "annoId" }, ngImport: i0, template: "<div class=\"tags\">\n <tag-input\n *ngIf=\"editable\" class=\"tags__edit\"\n [maxItems]=\"10\"\n [(ngModel)]=\"tagItems\"\n (ngModelChange)=\"onUpdateTags($event)\"\n [ngModelOptions]=\"{standalone:true}\"\n [placeholder]=\"'Add tag'\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [onTextChangeDebounce]=\"250\"\n [secondaryPlaceholder]=\"'Search or add tags'\"\n [validators]=\"validators\"\n [errorMessages]=\"errorMessages\"\n [onlyFromAutocomplete]=\"false\">\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [zIndex]=\"10000\"\n [minimumTextLength]=\"2\">\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.label }}\n </ng-template>\n </tag-input-dropdown>\n </tag-input>\n\n <div class=\"tags__renderer\" *ngIf=\"!editable && (tagItems && tagItems.length)\">\n <span *ngFor=\"let tag of tagItems\" class=\"tags__item hmcts-badge\">\n {{tag.label}}\n </span>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TagInputComponent, selector: "tag-input", inputs: ["separatorKeys", "separatorKeyCodes", "placeholder", "secondaryPlaceholder", "maxItems", "validators", "asyncValidators", "onlyFromAutocomplete", "errorMessages", "theme", "onTextChangeDebounce", "inputId", "inputClass", "clearOnBlur", "hideForm", "addOnBlur", "addOnPaste", "pasteSplitPattern", "blinkIfDupe", "removable", "editable", "allowDupes", "modelAsStrings", "trimTags", "ripple", "tabindex", "disable", "dragZone", "onRemoving", "onAdding", "animationDuration", "inputText"], outputs: ["onAdd", "onRemove", "onSelect", "onFocus", "onBlur", "onTextChange", "onPaste", "onValidationError", "onTagEdited", "inputTextChange"] }, { kind: "component", type: i4.TagInputDropdown, selector: "tag-input-dropdown", inputs: ["offset", "focusFirstElement", "showDropdownIfEmpty", "minimumTextLength", "limitItemsTo", "displayBy", "identifyBy", "matchingFn", "appendToBody", "keepOpen", "dynamicUpdate", "zIndex", "autocompleteItems", "autocompleteObservable"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TagsComponent, decorators: [{
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{ selector: 'mv-tags', encapsulation: ViewEncapsulation.None, template: "<div class=\"tags\">\n <tag-input\n *ngIf=\"editable\" class=\"tags__edit\"\n [maxItems]=\"10\"\n [(ngModel)]=\"tagItems\"\n (ngModelChange)=\"onUpdateTags($event)\"\n [ngModelOptions]=\"{standalone:true}\"\n [placeholder]=\"'Add tag'\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [onTextChangeDebounce]=\"250\"\n [secondaryPlaceholder]=\"'Search or add tags'\"\n [validators]=\"validators\"\n [errorMessages]=\"errorMessages\"\n [onlyFromAutocomplete]=\"false\">\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [displayBy]=\"'label'\"\n [identifyBy]=\"'name'\"\n [zIndex]=\"10000\"\n [minimumTextLength]=\"2\">\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.label }}\n </ng-template>\n </tag-input-dropdown>\n </tag-input>\n\n <div class=\"tags__renderer\" *ngIf=\"!editable && (tagItems && tagItems.length)\">\n <span *ngFor=\"let tag of tagItems\" class=\"tags__item hmcts-badge\">\n {{tag.label}}\n </span>\n </div>\n</div>\n\n" }]
|
|
44
|
-
}], ctorParameters: function () { return [{ type: i1.TagsServices }]; }, propDecorators: { tagItems: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}], userId: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}], editable: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], annoId: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9hbm5vdGF0aW9ucy90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXbEUsTUFBTSxPQUFPLGFBQWE7SUFZeEIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFOdkMsZUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsa0JBQWEsR0FBMkI7WUFDN0MsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxhQUFhLEVBQUUsMEJBQTBCO1NBQzFDLENBQUM7UUFRSyw2QkFBd0IsR0FBRyxDQUFDLElBQVksRUFBcUIsRUFBRTtZQUNwRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUE7SUFSZ0QsQ0FBQztJQUVsRCxZQUFZLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFNTyxTQUFTLENBQUMsT0FBMkI7UUFDM0MsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDNUIsT0FBTztnQkFDTCxXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxXQUFXLENBQUMsT0FBMkI7UUFDN0MsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7WUFDOUIsT0FBTztnQkFDTCxhQUFhLEVBQUUsSUFBSTthQUNwQixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OzhIQXRDVSxhQUFhO2tIQUFiLGFBQWEsMklDWDFCLHNrQ0FrQ0E7NEZEdkJhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUyxpQkFFSixpQkFBaUIsQ0FBQyxJQUFJO21HQUc1QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUYWdzTW9kZWx9IGZyb20gJy4uL21vZGVscy90YWdzLm1vZGVsJztcbmltcG9ydCB7VGFnc1NlcnZpY2VzfSBmcm9tICcuLi9zZXJ2aWNlcy90YWdzL3RhZ3Muc2VydmljZXMnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXRhZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFncy5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVGFnc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRhZ0l0ZW1zOiBUYWdzTW9kZWxbXTtcbiAgQElucHV0KCkgdXNlcklkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBhbm5vSWQ6IHN0cmluZztcblxuICBwdWJsaWMgdmFsaWRhdG9ycyA9IFt0aGlzLm1pbkxlbmd0aCwgdGhpcy5tYXhMZW5ndGgyMF07XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiB7W2lkOiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgICdtaW5MZW5ndGgnOiAnTWluaW11bSBvZiAyIGNoYXJhY3RlcnMnLFxuICAgICdtYXhMZW5ndGgyMCc6ICdNYXhpbXVtIG9mIDIwIGNoYXJhY3RlcnMnXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0YWdzU2VydmljZXM6IFRhZ3NTZXJ2aWNlcykge31cblxuICBvblVwZGF0ZVRhZ3ModmFsdWUpIHtcbiAgICB0aGlzLnRhZ3NTZXJ2aWNlcy51cGRhdGVUYWdJdGVtcyh2YWx1ZSwgdGhpcy5hbm5vSWQpO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RBdXRvY29tcGxldGVJdGVtcyA9ICh0ZXh0OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMudGFnc1NlcnZpY2VzLmdldEFsbFRhZ3ModGhpcy51c2VySWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBtaW5MZW5ndGgoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ21pbkxlbmd0aCc6IHRydWVcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXhMZW5ndGgyMChjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICBpZiAoY29udHJvbC52YWx1ZS5sZW5ndGggPj0gMjApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdtYXhMZW5ndGgyMCc6IHRydWVcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFnc1wiPlxuICA8dGFnLWlucHV0XG4gICAgKm5nSWY9XCJlZGl0YWJsZVwiIGNsYXNzPVwidGFnc19fZWRpdFwiXG4gICAgW21heEl0ZW1zXT1cIjEwXCJcbiAgICBbKG5nTW9kZWwpXT1cInRhZ0l0ZW1zXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblVwZGF0ZVRhZ3MoJGV2ZW50KVwiXG4gICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOnRydWV9XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ0FkZCB0YWcnXCJcbiAgICBbZGlzcGxheUJ5XT1cIidsYWJlbCdcIlxuICAgIFtpZGVudGlmeUJ5XT1cIiduYW1lJ1wiXG4gICAgW29uVGV4dENoYW5nZURlYm91bmNlXT1cIjI1MFwiXG4gICAgW3NlY29uZGFyeVBsYWNlaG9sZGVyXT1cIidTZWFyY2ggb3IgYWRkIHRhZ3MnXCJcbiAgICBbdmFsaWRhdG9yc109XCJ2YWxpZGF0b3JzXCJcbiAgICBbZXJyb3JNZXNzYWdlc109XCJlcnJvck1lc3NhZ2VzXCJcbiAgICBbb25seUZyb21BdXRvY29tcGxldGVdPVwiZmFsc2VcIj5cbiAgICA8dGFnLWlucHV0LWRyb3Bkb3duXG4gICAgICBbYXV0b2NvbXBsZXRlT2JzZXJ2YWJsZV09XCJyZXF1ZXN0QXV0b2NvbXBsZXRlSXRlbXNcIlxuICAgICAgW2Rpc3BsYXlCeV09XCInbGFiZWwnXCJcbiAgICAgIFtpZGVudGlmeUJ5XT1cIiduYW1lJ1wiXG4gICAgICBbekluZGV4XT1cIjEwMDAwXCJcbiAgICAgIFttaW5pbXVtVGV4dExlbmd0aF09XCIyXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3RhZy1pbnB1dC1kcm9wZG93bj5cbiAgPC90YWctaW5wdXQ+XG5cbiAgPGRpdiBjbGFzcz1cInRhZ3NfX3JlbmRlcmVyXCIgKm5nSWY9XCIhZWRpdGFibGUgJiYgKHRhZ0l0ZW1zICYmIHRhZ0l0ZW1zLmxlbmd0aClcIj5cbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ0l0ZW1zXCIgY2xhc3M9XCJ0YWdzX19pdGVtIGhtY3RzLWJhZGdlXCI+XG4gICAgICB7e3RhZy5sYWJlbH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { select } from '@ngrx/store';
|
|
3
|
-
import { take } from 'rxjs/operators';
|
|
4
|
-
import * as fromDocSelectors from '../store/selectors/document.selectors';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../toolbar/toolbar-event.service";
|
|
7
|
-
import * as i2 from "../viewers/viewer-event.service";
|
|
8
|
-
import * as i3 from "./icp-update.service";
|
|
9
|
-
import * as i4 from "@ngrx/store";
|
|
10
|
-
export class IcpFollowerService {
|
|
11
|
-
constructor(toolbarEvents, viewerEvents, socketService, store) {
|
|
12
|
-
this.toolbarEvents = toolbarEvents;
|
|
13
|
-
this.viewerEvents = viewerEvents;
|
|
14
|
-
this.socketService = socketService;
|
|
15
|
-
this.store = store;
|
|
16
|
-
}
|
|
17
|
-
update(isFollower) {
|
|
18
|
-
if (isFollower) {
|
|
19
|
-
this.subscribe();
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this.unsubscribe();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
subscribe() {
|
|
26
|
-
if (!this.$subscription) {
|
|
27
|
-
this.$subscription = this.socketService.screenUpdated()
|
|
28
|
-
.subscribe(screen => this.followScreenUpdate(screen));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
unsubscribe() {
|
|
32
|
-
if (this.$subscription) {
|
|
33
|
-
this.$subscription.unsubscribe();
|
|
34
|
-
this.$subscription = undefined;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
followScreenUpdate({ pdfPosition }) {
|
|
38
|
-
if (pdfPosition) {
|
|
39
|
-
this.viewerEvents.goToDestination([
|
|
40
|
-
pdfPosition.pageNumber - 1,
|
|
41
|
-
{ 'name': 'XYZ' },
|
|
42
|
-
pdfPosition.left,
|
|
43
|
-
pdfPosition.top
|
|
44
|
-
]);
|
|
45
|
-
}
|
|
46
|
-
this.store.pipe(select(fromDocSelectors.getPdfPosition), take(1))
|
|
47
|
-
.subscribe(position => {
|
|
48
|
-
const rotationDelta = (pdfPosition.rotation - position.rotation) % 360;
|
|
49
|
-
if (rotationDelta !== 0) {
|
|
50
|
-
this.toolbarEvents.rotate(rotationDelta);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/** @nocollapse */ IcpFollowerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpFollowerService, deps: [{ token: i1.ToolbarEventService }, { token: i2.ViewerEventService }, { token: i3.IcpUpdateService }, { token: i4.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
56
|
-
/** @nocollapse */ IcpFollowerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpFollowerService });
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpFollowerService, decorators: [{
|
|
58
|
-
type: Injectable
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.ToolbarEventService }, { type: i2.ViewerEventService }, { type: i3.IcpUpdateService }, { type: i4.Store }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLWZvbGxvd2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9pY3AvaWNwLWZvbGxvd2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBSTVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQUcxRSxNQUFNLE9BQU8sa0JBQWtCO0lBTTdCLFlBQTZCLGFBQWtDLEVBQ2xDLFlBQWdDLEVBQ2hDLGFBQStCLEVBQ3hDLEtBQXNCO1FBSGIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDeEMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7SUFBRyxDQUFDO0lBRzlDLE1BQU0sQ0FBQyxVQUFtQjtRQUN4QixJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFO2lCQUNwRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBRSxXQUFXLEVBQUU7UUFDaEMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztnQkFDaEMsV0FBVyxDQUFDLFVBQVUsR0FBRyxDQUFDO2dCQUMxQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ2pCLFdBQVcsQ0FBQyxJQUFJO2dCQUNoQixXQUFXLENBQUMsR0FBRzthQUNoQixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sYUFBYSxHQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ3hFLElBQUksYUFBYSxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDMUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O21JQWxEVSxrQkFBa0I7dUlBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljcFVwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2ljcC11cGRhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi92aWV3ZXJzL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJY3BTdGF0ZSwgSWNwU2Vzc2lvbiB9IGZyb20gJy4vaWNwLmludGVyZmFjZXMnO1xuaW1wb3J0ICogYXMgZnJvbURvY1NlbGVjdG9ycyBmcm9tICcuLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljcEZvbGxvd2VyU2VydmljZSB7XG5cbiAgc2Vzc2lvbjogSWNwU2Vzc2lvbjtcblxuICAkc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNvY2tldFNlcnZpY2U6IEljcFVwZGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEljcFN0YXRlPikge31cblxuXG4gIHVwZGF0ZShpc0ZvbGxvd2VyOiBib29sZWFuKSB7XG4gICAgaWYgKGlzRm9sbG93ZXIpIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzdWJzY3JpYmUoKSB7XG4gICAgaWYgKCF0aGlzLiRzdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuJHN1YnNjcmlwdGlvbiA9IHRoaXMuc29ja2V0U2VydmljZS5zY3JlZW5VcGRhdGVkKClcbiAgICAgICAgLnN1YnNjcmliZShzY3JlZW4gPT4gdGhpcy5mb2xsb3dTY3JlZW5VcGRhdGUoc2NyZWVuKSk7XG4gICAgfVxuICB9XG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKHRoaXMuJHN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy4kc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLiRzdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZm9sbG93U2NyZWVuVXBkYXRlKHsgcGRmUG9zaXRpb24gfSkge1xuICAgIGlmIChwZGZQb3NpdGlvbikge1xuICAgICAgdGhpcy52aWV3ZXJFdmVudHMuZ29Ub0Rlc3RpbmF0aW9uKFtcbiAgICAgICAgcGRmUG9zaXRpb24ucGFnZU51bWJlciAtIDEsXG4gICAgICAgIHsgJ25hbWUnOiAnWFlaJyB9LFxuICAgICAgICBwZGZQb3NpdGlvbi5sZWZ0LFxuICAgICAgICBwZGZQb3NpdGlvbi50b3BcbiAgICAgIF0pO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2NTZWxlY3RvcnMuZ2V0UGRmUG9zaXRpb24pLCB0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShwb3NpdGlvbiA9PiB7XG4gICAgICAgIGNvbnN0IHJvdGF0aW9uRGVsdGEgPSAgKHBkZlBvc2l0aW9uLnJvdGF0aW9uIC0gcG9zaXRpb24ucm90YXRpb24pICUgMzYwO1xuICAgICAgICBpZiAocm90YXRpb25EZWx0YSAhPT0gMCkge1xuICAgICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yb3RhdGUocm90YXRpb25EZWx0YSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { select } from '@ngrx/store';
|
|
3
|
-
import * as fromDocSelectors from '../store/selectors/document.selectors';
|
|
4
|
-
import * as fromIcpSelectors from '../store/selectors/icp.selectors';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../toolbar/toolbar-event.service";
|
|
7
|
-
import * as i2 from "./icp-update.service";
|
|
8
|
-
import * as i3 from "@ngrx/store";
|
|
9
|
-
export class IcpPresenterService {
|
|
10
|
-
constructor(toolbarEvents, socketService, store) {
|
|
11
|
-
this.toolbarEvents = toolbarEvents;
|
|
12
|
-
this.socketService = socketService;
|
|
13
|
-
this.store = store;
|
|
14
|
-
}
|
|
15
|
-
update(isPresenter) {
|
|
16
|
-
if (isPresenter) {
|
|
17
|
-
this.subscribe();
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.unsubscribe();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
subscribe() {
|
|
24
|
-
if (!this.$subscription) {
|
|
25
|
-
this.$subscription = this.store.pipe(select(fromDocSelectors.getPdfPosition)).subscribe(pdfPosition => {
|
|
26
|
-
this.pdfPosition = pdfPosition;
|
|
27
|
-
this.onPositionUpdate(pdfPosition);
|
|
28
|
-
});
|
|
29
|
-
this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => {
|
|
30
|
-
this.presenter = presenter;
|
|
31
|
-
}));
|
|
32
|
-
this.$subscription.add(this.socketService.newParticipantJoined().subscribe(() => this.onNewParticipantJoined()));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
unsubscribe() {
|
|
36
|
-
if (this.$subscription) {
|
|
37
|
-
this.$subscription.unsubscribe();
|
|
38
|
-
this.$subscription = undefined;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
onPositionUpdate(pdfPosition) {
|
|
42
|
-
const screen = { pdfPosition, document: undefined };
|
|
43
|
-
this.socketService.updateScreen(screen);
|
|
44
|
-
}
|
|
45
|
-
onNewParticipantJoined() {
|
|
46
|
-
this.onPositionUpdate(this.pdfPosition);
|
|
47
|
-
this.socketService.updatePresenter(this.presenter);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/** @nocollapse */ IcpPresenterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpPresenterService, deps: [{ token: i1.ToolbarEventService }, { token: i2.IcpUpdateService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
|
-
/** @nocollapse */ IcpPresenterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpPresenterService });
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpPresenterService, decorators: [{
|
|
53
|
-
type: Injectable
|
|
54
|
-
}], ctorParameters: function () { return [{ type: i1.ToolbarEventService }, { type: i2.IcpUpdateService }, { type: i3.Store }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLXByZXNlbnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvaWNwL2ljcC1wcmVzZW50ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLHVDQUF1QyxDQUFDO0FBSTFFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFJckUsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixZQUE2QixhQUFrQyxFQUNsQyxhQUErQixFQUN4QyxLQUFzQjtRQUZiLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDeEMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7SUFBRyxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxXQUFvQjtRQUN6QixJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDbEcsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2xIO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztTQUNoQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUN2QyxNQUFNLE1BQU0sR0FBb0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7b0lBaERVLG1CQUFtQjt3SUFBbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21Eb2NTZWxlY3RvcnMgZnJvbSAnLi4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljcFVwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2ljcC11cGRhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBJY3BTdGF0ZSwgSWNwU2NyZWVuVXBkYXRlLCBJY3BTZXNzaW9uLCBJY3BQYXJ0aWNpcGFudCB9IGZyb20gJy4vaWNwLmludGVyZmFjZXMnO1xuaW1wb3J0ICogYXMgZnJvbUljcFNlbGVjdG9ycyBmcm9tICcuLi9zdG9yZS9zZWxlY3RvcnMvaWNwLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBQZGZQb3NpdGlvbiB9IGZyb20gJy4uL3N0b3JlL3JlZHVjZXJzL2RvY3VtZW50LnJlZHVjZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWNwUHJlc2VudGVyU2VydmljZSB7XG5cbiAgc2Vzc2lvbjogSWNwU2Vzc2lvbjtcbiAgcHJlc2VudGVyOiBJY3BQYXJ0aWNpcGFudDtcbiAgcGRmUG9zaXRpb246IFBkZlBvc2l0aW9uO1xuXG4gICRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc29ja2V0U2VydmljZTogSWNwVXBkYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8SWNwU3RhdGU+KSB7fVxuXG4gIHVwZGF0ZShpc1ByZXNlbnRlcjogYm9vbGVhbikge1xuICAgIGlmIChpc1ByZXNlbnRlcikge1xuICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZSgpIHtcbiAgICBpZiAoIXRoaXMuJHN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jU2VsZWN0b3JzLmdldFBkZlBvc2l0aW9uKSkuc3Vic2NyaWJlKHBkZlBvc2l0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLnBkZlBvc2l0aW9uID0gcGRmUG9zaXRpb247XG4gICAgICAgICAgdGhpcy5vblBvc2l0aW9uVXBkYXRlKHBkZlBvc2l0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUljcFNlbGVjdG9ycy5nZXRQcmVzZW50ZXIpKS5zdWJzY3JpYmUocHJlc2VudGVyID0+IHtcbiAgICAgICAgdGhpcy5wcmVzZW50ZXIgPSBwcmVzZW50ZXI7XG4gICAgICB9KSk7XG4gICAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMuc29ja2V0U2VydmljZS5uZXdQYXJ0aWNpcGFudEpvaW5lZCgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uTmV3UGFydGljaXBhbnRKb2luZWQoKSkpO1xuICAgIH1cbiAgfVxuXG4gIHVuc3Vic2NyaWJlKCkge1xuICAgIGlmICh0aGlzLiRzdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuJHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIG9uUG9zaXRpb25VcGRhdGUocGRmUG9zaXRpb246IFBkZlBvc2l0aW9uKSB7XG4gICAgY29uc3Qgc2NyZWVuOiBJY3BTY3JlZW5VcGRhdGUgPSB7IHBkZlBvc2l0aW9uLCBkb2N1bWVudDogdW5kZWZpbmVkIH07XG4gICAgdGhpcy5zb2NrZXRTZXJ2aWNlLnVwZGF0ZVNjcmVlbihzY3JlZW4pO1xuICB9XG5cbiAgb25OZXdQYXJ0aWNpcGFudEpvaW5lZCgpIHtcbiAgICB0aGlzLm9uUG9zaXRpb25VcGRhdGUodGhpcy5wZGZQb3NpdGlvbik7XG4gICAgdGhpcy5zb2NrZXRTZXJ2aWNlLnVwZGF0ZVByZXNlbnRlcih0aGlzLnByZXNlbnRlcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { IcpEvents } from './icp.events';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./socket.service";
|
|
5
|
-
export class IcpUpdateService {
|
|
6
|
-
constructor(socket) {
|
|
7
|
-
this.socket = socket;
|
|
8
|
-
}
|
|
9
|
-
joinSession(username, session) {
|
|
10
|
-
this.session = session;
|
|
11
|
-
this.socket.connect(session.connectionUrl);
|
|
12
|
-
this.socket.connected().subscribe(isConnected => {
|
|
13
|
-
if (isConnected) {
|
|
14
|
-
this.socket.join({ ...this.session, username });
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
return this.socket.listen(IcpEvents.SESSION_JOINED);
|
|
18
|
-
}
|
|
19
|
-
leaveSession() {
|
|
20
|
-
this.socket.leave(this.session);
|
|
21
|
-
}
|
|
22
|
-
newParticipantJoined() {
|
|
23
|
-
return this.socket.listen(IcpEvents.NEW_PARTICIPANT_JOINED);
|
|
24
|
-
}
|
|
25
|
-
clientDisconnected() {
|
|
26
|
-
return this.socket.listen(IcpEvents.CLIENT_DISCONNECTED);
|
|
27
|
-
}
|
|
28
|
-
removeParticipant(participantId) {
|
|
29
|
-
this.socket.emit(IcpEvents.REMOVE_PARTICIPANT, {
|
|
30
|
-
participantId: participantId,
|
|
31
|
-
caseId: this.session.caseId,
|
|
32
|
-
documentId: this.session.documentId
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
participantListUpdated() {
|
|
36
|
-
return this.socket.listen(IcpEvents.PARTICIPANTS_UPDATED);
|
|
37
|
-
}
|
|
38
|
-
updatePresenter(presenter) {
|
|
39
|
-
this.socket.emit(IcpEvents.UPDATE_PRESENTER, {
|
|
40
|
-
...this.session,
|
|
41
|
-
presenterId: presenter.id,
|
|
42
|
-
presenterName: presenter.username
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
presenterUpdated() {
|
|
46
|
-
return this.socket.listen(IcpEvents.PRESENTER_UPDATED);
|
|
47
|
-
}
|
|
48
|
-
updateScreen(screen) {
|
|
49
|
-
const update = {
|
|
50
|
-
body: screen,
|
|
51
|
-
caseId: this.session.caseId,
|
|
52
|
-
documentId: this.session.documentId
|
|
53
|
-
};
|
|
54
|
-
this.socket.emit(IcpEvents.UPDATE_SCREEN, update);
|
|
55
|
-
}
|
|
56
|
-
screenUpdated() {
|
|
57
|
-
return this.socket.listen(IcpEvents.SCREEN_UPDATED);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/** @nocollapse */ IcpUpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpUpdateService, deps: [{ token: i1.SocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
61
|
-
/** @nocollapse */ IcpUpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpUpdateService });
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpUpdateService, decorators: [{
|
|
63
|
-
type: Injectable
|
|
64
|
-
}], ctorParameters: function () { return [{ type: i1.SocketService }]; } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLXVwZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvaWNwL2ljcC11cGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUd6QyxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBSSxDQUFDO0lBRTlDLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQW1CO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM5QyxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ2pEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxhQUFhO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRTtZQUM3QyxhQUFhLEVBQUUsYUFBYTtZQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBeUI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO1lBQzNDLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDekIsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBdUI7UUFDbEMsTUFBTSxNQUFNLEdBQUc7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtTQUNwQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O2lJQWhFVSxnQkFBZ0I7cUlBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0U2VydmljZSB9IGZyb20gJy4vc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwUGFydGljaXBhbnQsIEljcFNjcmVlblVwZGF0ZSwgSWNwU2Vzc2lvbiB9IGZyb20gJy4vaWNwLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWNwRXZlbnRzIH0gZnJvbSAnLi9pY3AuZXZlbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljcFVwZGF0ZVNlcnZpY2Uge1xuXG4gIHNlc3Npb246IEljcFNlc3Npb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzb2NrZXQ6IFNvY2tldFNlcnZpY2UpIHsgfVxuXG4gIGpvaW5TZXNzaW9uKHVzZXJuYW1lOiBzdHJpbmcsIHNlc3Npb246IEljcFNlc3Npb24pIHtcbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uO1xuICAgIHRoaXMuc29ja2V0LmNvbm5lY3Qoc2Vzc2lvbi5jb25uZWN0aW9uVXJsKTtcbiAgICB0aGlzLnNvY2tldC5jb25uZWN0ZWQoKS5zdWJzY3JpYmUoaXNDb25uZWN0ZWQgPT4ge1xuICAgICAgaWYgKGlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuc29ja2V0LmpvaW4oeyAuLi50aGlzLnNlc3Npb24sIHVzZXJuYW1lIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5saXN0ZW4oSWNwRXZlbnRzLlNFU1NJT05fSk9JTkVEKTtcbiAgfVxuXG4gIGxlYXZlU2Vzc2lvbigpIHtcbiAgICB0aGlzLnNvY2tldC5sZWF2ZSh0aGlzLnNlc3Npb24pO1xuICB9XG5cbiAgbmV3UGFydGljaXBhbnRKb2luZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0Lmxpc3RlbihJY3BFdmVudHMuTkVXX1BBUlRJQ0lQQU5UX0pPSU5FRCk7XG4gIH1cblxuICBjbGllbnREaXNjb25uZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0Lmxpc3RlbihJY3BFdmVudHMuQ0xJRU5UX0RJU0NPTk5FQ1RFRCk7XG4gIH1cblxuICByZW1vdmVQYXJ0aWNpcGFudChwYXJ0aWNpcGFudElkKSB7XG4gICAgdGhpcy5zb2NrZXQuZW1pdChJY3BFdmVudHMuUkVNT1ZFX1BBUlRJQ0lQQU5ULCB7XG4gICAgICBwYXJ0aWNpcGFudElkOiBwYXJ0aWNpcGFudElkLFxuICAgICAgY2FzZUlkOiB0aGlzLnNlc3Npb24uY2FzZUlkLFxuICAgICAgZG9jdW1lbnRJZDogdGhpcy5zZXNzaW9uLmRvY3VtZW50SWRcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnRpY2lwYW50TGlzdFVwZGF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0Lmxpc3RlbihJY3BFdmVudHMuUEFSVElDSVBBTlRTX1VQREFURUQpO1xuICB9XG5cbiAgdXBkYXRlUHJlc2VudGVyKHByZXNlbnRlcjogSWNwUGFydGljaXBhbnQpIHtcbiAgICB0aGlzLnNvY2tldC5lbWl0KEljcEV2ZW50cy5VUERBVEVfUFJFU0VOVEVSLCB7XG4gICAgICAuLi50aGlzLnNlc3Npb24sXG4gICAgICBwcmVzZW50ZXJJZDogcHJlc2VudGVyLmlkLFxuICAgICAgcHJlc2VudGVyTmFtZTogcHJlc2VudGVyLnVzZXJuYW1lXG4gICAgfSk7XG4gIH1cblxuICBwcmVzZW50ZXJVcGRhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5saXN0ZW4oSWNwRXZlbnRzLlBSRVNFTlRFUl9VUERBVEVEKTtcbiAgfVxuXG4gIHVwZGF0ZVNjcmVlbihzY3JlZW46IEljcFNjcmVlblVwZGF0ZSkge1xuICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgIGJvZHk6IHNjcmVlbixcbiAgICAgIGNhc2VJZDogdGhpcy5zZXNzaW9uLmNhc2VJZCxcbiAgICAgIGRvY3VtZW50SWQ6IHRoaXMuc2Vzc2lvbi5kb2N1bWVudElkXG4gICAgfTtcbiAgICB0aGlzLnNvY2tldC5lbWl0KEljcEV2ZW50cy5VUERBVEVfU0NSRUVOLCB1cGRhdGUpO1xuICB9XG5cbiAgc2NyZWVuVXBkYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQubGlzdGVuKEljcEV2ZW50cy5TQ1JFRU5fVVBEQVRFRCk7XG4gIH1cbn1cbiJdfQ==
|