@hmcts/media-viewer 4.1.5 → 4.1.6-angular-20
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/LICENCE +9 -0
- package/assets/sass/settings.scss +0 -4
- package/fesm2022/hmcts-media-viewer.mjs +303 -286
- package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
- package/index.d.ts +2304 -4
- package/index.d.ts.map +1 -0
- package/package.json +10 -12
- package/LICENSE +0 -0
- package/esm2022/hmcts-media-viewer.mjs +0 -5
- package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -122
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -120
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +0 -101
- package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
- package/esm2022/lib/annotations/annotation-set/annotation-set.model.mjs +0 -2
- package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
- package/esm2022/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -2
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -2
- package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -119
- package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
- package/esm2022/lib/annotations/annotations.module.mjs +0 -162
- package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +0 -178
- package/esm2022/lib/annotations/comment-set/comment/comment.model.mjs +0 -2
- package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
- package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
- package/esm2022/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +0 -31
- package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +0 -62
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -72
- package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +0 -55
- package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +0 -123
- package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
- package/esm2022/lib/annotations/models/api-persisted.model.mjs +0 -2
- package/esm2022/lib/annotations/models/event-select.model.mjs +0 -2
- package/esm2022/lib/annotations/models/tags.model.mjs +0 -2
- package/esm2022/lib/annotations/models/user.model.mjs +0 -2
- package/esm2022/lib/annotations/pipes/date/date.pipe.mjs +0 -26
- package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
- package/esm2022/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +0 -16
- package/esm2022/lib/annotations/services/annotation-api/annotation-api.service.mjs +0 -58
- package/esm2022/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +0 -45
- package/esm2022/lib/annotations/services/tags/tags.services.mjs +0 -41
- package/esm2022/lib/annotations/tags/tags.component.mjs +0 -53
- package/esm2022/lib/bookmark/components/bookmark-icons.component.mjs +0 -25
- package/esm2022/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +0 -22
- package/esm2022/lib/icp/icp-follower.service.mjs +0 -65
- package/esm2022/lib/icp/icp-presenter.service.mjs +0 -56
- package/esm2022/lib/icp/icp-session-api.service.mjs +0 -28
- package/esm2022/lib/icp/icp-update.service.mjs +0 -66
- package/esm2022/lib/icp/icp.events.mjs +0 -15
- package/esm2022/lib/icp/icp.interfaces.mjs +0 -2
- package/esm2022/lib/icp/icp.service.mjs +0 -98
- package/esm2022/lib/icp/participants-list/participants-list.component.mjs +0 -32
- package/esm2022/lib/icp/socket.service.mjs +0 -119
- package/esm2022/lib/media-viewer.component.mjs +0 -247
- package/esm2022/lib/media-viewer.module.mjs +0 -139
- package/esm2022/lib/print.service.mjs +0 -32
- package/esm2022/lib/redaction/components/redaction.component.mjs +0 -91
- package/esm2022/lib/redaction/services/redaction-api.service.mjs +0 -50
- package/esm2022/lib/redaction/services/redaction.model.mjs +0 -2
- package/esm2022/lib/shared/gov-uk-date/gov-uk-date.component.mjs +0 -28
- package/esm2022/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +0 -34
- package/esm2022/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +0 -63
- package/esm2022/lib/shared/gov-uk-label/gov-uk-label.component.mjs +0 -44
- package/esm2022/lib/shared/shared.module.mjs +0 -53
- package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +0 -29
- package/esm2022/lib/shared/util/services/number.helper.service.mjs +0 -23
- package/esm2022/lib/store/actions/annotation.actions.mjs +0 -119
- package/esm2022/lib/store/actions/bookmark.actions.mjs +0 -112
- package/esm2022/lib/store/actions/document.actions.mjs +0 -91
- package/esm2022/lib/store/actions/icp.actions.mjs +0 -56
- package/esm2022/lib/store/actions/redaction.actions.mjs +0 -132
- package/esm2022/lib/store/actions/tag.actions.mjs +0 -21
- package/esm2022/lib/store/bookmarks-store-utils.mjs +0 -49
- package/esm2022/lib/store/effects/annotation.effects.mjs +0 -51
- package/esm2022/lib/store/effects/bookmarks.effects.mjs +0 -44
- package/esm2022/lib/store/effects/document.effects.mjs +0 -44
- package/esm2022/lib/store/effects/icp.effects.mjs +0 -26
- package/esm2022/lib/store/effects/index.mjs +0 -7
- package/esm2022/lib/store/effects/redaction.effects.mjs +0 -67
- package/esm2022/lib/store/models/bookmarks.interface.mjs +0 -2
- package/esm2022/lib/store/models/filters.interface.mjs +0 -2
- package/esm2022/lib/store/reducers/annotations.reducer.mjs +0 -208
- package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +0 -125
- package/esm2022/lib/store/reducers/document.reducer.mjs +0 -158
- package/esm2022/lib/store/reducers/icp.reducer.mjs +0 -56
- package/esm2022/lib/store/reducers/redaction.reducer.mjs +0 -116
- package/esm2022/lib/store/reducers/reducers.mjs +0 -23
- package/esm2022/lib/store/reducers/tags.reducer.mjs +0 -93
- package/esm2022/lib/store/selectors/annotation.selectors.mjs +0 -81
- package/esm2022/lib/store/selectors/bookmark.selectors.mjs +0 -37
- package/esm2022/lib/store/selectors/document.selectors.mjs +0 -13
- package/esm2022/lib/store/selectors/icp.selectors.mjs +0 -13
- package/esm2022/lib/store/selectors/redaction.selectors.mjs +0 -26
- package/esm2022/lib/store/selectors/tag.selectors.mjs +0 -15
- package/esm2022/lib/store/store-utils.mjs +0 -131
- package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -44
- package/esm2022/lib/toolbar/icp-event.service.mjs +0 -44
- package/esm2022/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +0 -43
- package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -206
- package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -237
- package/esm2022/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -2
- package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -68
- package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
- package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
- package/esm2022/lib/toolbar/toolbar-event.service.mjs +0 -178
- package/esm2022/lib/toolbar/toolbar.module.mjs +0 -72
- package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
- package/esm2022/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +0 -22
- package/esm2022/lib/viewers/grab-n-drag.directive.mjs +0 -57
- package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
- package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
- package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -266
- package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +0 -40
- package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -242
- package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -379
- package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -2
- package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
- package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -2
- package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +0 -99
- package/esm2022/lib/viewers/rotation-persist/rotation-api.service.mjs +0 -27
- package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
- package/esm2022/lib/viewers/rotation-persist/rotation.model.mjs +0 -2
- package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
- package/esm2022/lib/viewers/viewer-event.service.mjs +0 -34
- package/esm2022/lib/viewers/viewer-exception.model.mjs +0 -13
- package/esm2022/lib/viewers/viewer-util.service.mjs +0 -20
- package/esm2022/public_api.mjs +0 -33
- package/hmcts-media-viewer.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +0 -48
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts +0 -32
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +0 -18
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-set.component.d.ts +0 -27
- package/lib/annotations/annotation-set/annotation-set.component.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-set.model.d.ts +0 -7
- package/lib/annotations/annotation-set/annotation-set.model.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +0 -34
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts +0 -16
- package/lib/annotations/annotation-set/annotation-view/annotation.model.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +0 -41
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts +0 -9
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.d.ts.map +0 -1
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +0 -37
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +0 -1
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +0 -37
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +0 -1
- package/lib/annotations/annotations.module.d.ts +0 -36
- package/lib/annotations/annotations.module.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/comment.component.d.ts +0 -69
- package/lib/annotations/comment-set/comment/comment.component.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/comment.model.d.ts +0 -13
- package/lib/annotations/comment-set/comment/comment.model.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/comment.service.d.ts +0 -22
- package/lib/annotations/comment-set/comment/comment.service.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +0 -14
- package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts +0 -12
- package/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +0 -28
- package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts +0 -26
- package/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +0 -21
- package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +0 -36
- package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set-render.service.d.ts +0 -15
- package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +0 -1
- package/lib/annotations/comment-set/comment-set.component.d.ts +0 -56
- package/lib/annotations/comment-set/comment-set.component.d.ts.map +0 -1
- package/lib/annotations/comments-summary/comments-summary.component.d.ts +0 -42
- package/lib/annotations/comments-summary/comments-summary.component.d.ts.map +0 -1
- package/lib/annotations/models/api-persisted.model.d.ts +0 -11
- package/lib/annotations/models/api-persisted.model.d.ts.map +0 -1
- package/lib/annotations/models/event-select.model.d.ts +0 -6
- package/lib/annotations/models/event-select.model.d.ts.map +0 -1
- package/lib/annotations/models/tags.model.d.ts +0 -7
- package/lib/annotations/models/tags.model.d.ts.map +0 -1
- package/lib/annotations/models/user.model.d.ts +0 -6
- package/lib/annotations/models/user.model.d.ts.map +0 -1
- package/lib/annotations/pipes/date/date.pipe.d.ts +0 -16
- package/lib/annotations/pipes/date/date.pipe.d.ts.map +0 -1
- package/lib/annotations/pipes/filter/filter.pipe.d.ts +0 -8
- package/lib/annotations/pipes/filter/filter.pipe.d.ts.map +0 -1
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts +0 -8
- package/lib/annotations/pipes/unsnake/unsnake.pipe.d.ts.map +0 -1
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts +0 -28
- package/lib/annotations/services/annotation-api/annotation-api.service.d.ts.map +0 -1
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts +0 -21
- package/lib/annotations/services/bookmarks-api/bookmarks-api.service.d.ts.map +0 -1
- package/lib/annotations/services/tags/tags.services.d.ts +0 -18
- package/lib/annotations/services/tags/tags.services.d.ts.map +0 -1
- package/lib/annotations/tags/tags.component.d.ts +0 -28
- package/lib/annotations/tags/tags.component.d.ts.map +0 -1
- package/lib/bookmark/components/bookmark-icons.component.d.ts +0 -19
- package/lib/bookmark/components/bookmark-icons.component.d.ts.map +0 -1
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts +0 -11
- package/lib/icp/confirm-exit/confirm-action-dialog.component.d.ts.map +0 -1
- package/lib/icp/icp-follower.service.d.ts +0 -26
- package/lib/icp/icp-follower.service.d.ts.map +0 -1
- package/lib/icp/icp-presenter.service.d.ts +0 -25
- package/lib/icp/icp-presenter.service.d.ts.map +0 -1
- package/lib/icp/icp-session-api.service.d.ts +0 -15
- package/lib/icp/icp-session-api.service.d.ts.map +0 -1
- package/lib/icp/icp-update.service.d.ts +0 -21
- package/lib/icp/icp-update.service.d.ts.map +0 -1
- package/lib/icp/icp.events.d.ts +0 -14
- package/lib/icp/icp.events.d.ts.map +0 -1
- package/lib/icp/icp.interfaces.d.ts +0 -23
- package/lib/icp/icp.interfaces.d.ts.map +0 -1
- package/lib/icp/icp.service.d.ts +0 -40
- package/lib/icp/icp.service.d.ts.map +0 -1
- package/lib/icp/participants-list/participants-list.component.d.ts +0 -23
- package/lib/icp/participants-list/participants-list.component.d.ts.map +0 -1
- package/lib/icp/socket.service.d.ts +0 -28
- package/lib/icp/socket.service.d.ts.map +0 -1
- package/lib/media-viewer.component.d.ts +0 -72
- package/lib/media-viewer.component.d.ts.map +0 -1
- package/lib/media-viewer.module.d.ts +0 -36
- package/lib/media-viewer.module.d.ts.map +0 -1
- package/lib/print.service.d.ts +0 -8
- package/lib/print.service.d.ts.map +0 -1
- package/lib/redaction/components/redaction.component.d.ts +0 -42
- package/lib/redaction/components/redaction.component.d.ts.map +0 -1
- package/lib/redaction/services/redaction-api.service.d.ts +0 -20
- package/lib/redaction/services/redaction-api.service.d.ts.map +0 -1
- package/lib/redaction/services/redaction.model.d.ts +0 -11
- package/lib/redaction/services/redaction.model.d.ts.map +0 -1
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +0 -15
- package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts.map +0 -1
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +0 -11
- package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts.map +0 -1
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +0 -16
- package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts.map +0 -1
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +0 -14
- package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts.map +0 -1
- package/lib/shared/shared.module.d.ts +0 -14
- package/lib/shared/shared.module.d.ts.map +0 -1
- package/lib/shared/util/helpers/html-templates.helper.d.ts +0 -9
- package/lib/shared/util/helpers/html-templates.helper.d.ts.map +0 -1
- package/lib/shared/util/services/number.helper.service.d.ts +0 -11
- package/lib/shared/util/services/number.helper.service.d.ts.map +0 -1
- package/lib/store/actions/annotation.actions.d.ts +0 -126
- package/lib/store/actions/annotation.actions.d.ts.map +0 -1
- package/lib/store/actions/bookmark.actions.d.ts +0 -117
- package/lib/store/actions/bookmark.actions.d.ts.map +0 -1
- package/lib/store/actions/document.actions.d.ts +0 -90
- package/lib/store/actions/document.actions.d.ts.map +0 -1
- package/lib/store/actions/icp.actions.d.ts +0 -75
- package/lib/store/actions/icp.actions.d.ts.map +0 -1
- package/lib/store/actions/redaction.actions.d.ts +0 -127
- package/lib/store/actions/redaction.actions.d.ts.map +0 -1
- package/lib/store/actions/tag.actions.d.ts +0 -30
- package/lib/store/actions/tag.actions.d.ts.map +0 -1
- package/lib/store/bookmarks-store-utils.d.ts +0 -9
- package/lib/store/bookmarks-store-utils.d.ts.map +0 -1
- package/lib/store/effects/annotation.effects.d.ts +0 -16
- package/lib/store/effects/annotation.effects.d.ts.map +0 -1
- package/lib/store/effects/bookmarks.effects.d.ts +0 -21
- package/lib/store/effects/bookmarks.effects.d.ts.map +0 -1
- package/lib/store/effects/document.effects.d.ts +0 -17
- package/lib/store/effects/document.effects.d.ts.map +0 -1
- package/lib/store/effects/icp.effects.d.ts +0 -16
- package/lib/store/effects/icp.effects.d.ts.map +0 -1
- package/lib/store/effects/index.d.ts +0 -2
- package/lib/store/effects/index.d.ts.map +0 -1
- package/lib/store/effects/redaction.effects.d.ts +0 -20
- package/lib/store/effects/redaction.effects.d.ts.map +0 -1
- package/lib/store/models/bookmarks.interface.d.ts +0 -31
- package/lib/store/models/bookmarks.interface.d.ts.map +0 -1
- package/lib/store/models/filters.interface.d.ts +0 -8
- package/lib/store/models/filters.interface.d.ts.map +0 -1
- package/lib/store/reducers/annotations.reducer.d.ts +0 -48
- package/lib/store/reducers/annotations.reducer.d.ts.map +0 -1
- package/lib/store/reducers/bookmarks.reducer.d.ts +0 -27
- package/lib/store/reducers/bookmarks.reducer.d.ts.map +0 -1
- package/lib/store/reducers/document.reducer.d.ts +0 -52
- package/lib/store/reducers/document.reducer.d.ts.map +0 -1
- package/lib/store/reducers/icp.reducer.d.ts +0 -9
- package/lib/store/reducers/icp.reducer.d.ts.map +0 -1
- package/lib/store/reducers/redaction.reducer.d.ts +0 -32
- package/lib/store/reducers/redaction.reducer.d.ts.map +0 -1
- package/lib/store/reducers/reducers.d.ts +0 -24
- package/lib/store/reducers/reducers.d.ts.map +0 -1
- package/lib/store/reducers/tags.reducer.d.ts +0 -32
- package/lib/store/reducers/tags.reducer.d.ts.map +0 -1
- package/lib/store/selectors/annotation.selectors.d.ts +0 -136
- package/lib/store/selectors/annotation.selectors.d.ts.map +0 -1
- package/lib/store/selectors/bookmark.selectors.d.ts +0 -38
- package/lib/store/selectors/bookmark.selectors.d.ts.map +0 -1
- package/lib/store/selectors/document.selectors.d.ts +0 -23
- package/lib/store/selectors/document.selectors.d.ts.map +0 -1
- package/lib/store/selectors/icp.selectors.d.ts +0 -10
- package/lib/store/selectors/icp.selectors.d.ts.map +0 -1
- package/lib/store/selectors/redaction.selectors.d.ts +0 -35
- package/lib/store/selectors/redaction.selectors.d.ts.map +0 -1
- package/lib/store/selectors/tag.selectors.d.ts +0 -28
- package/lib/store/selectors/tag.selectors.d.ts.map +0 -1
- package/lib/store/store-utils.d.ts +0 -25
- package/lib/store/store-utils.d.ts.map +0 -1
- package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts +0 -20
- package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts.map +0 -1
- package/lib/toolbar/icp-event.service.d.ts +0 -21
- package/lib/toolbar/icp-event.service.d.ts.map +0 -1
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts +0 -24
- package/lib/toolbar/icp-toolbar/icp-toolbar.component.d.ts.map +0 -1
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +0 -69
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +0 -1
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +0 -60
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +0 -1
- package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts +0 -12
- package/lib/toolbar/redaction-search-bar/redaction-search.model.d.ts.map +0 -1
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +0 -30
- package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +0 -1
- package/lib/toolbar/search-bar/search-bar.component.d.ts +0 -34
- package/lib/toolbar/search-bar/search-bar.component.d.ts.map +0 -1
- package/lib/toolbar/toolbar-button-visibility.service.d.ts +0 -67
- package/lib/toolbar/toolbar-button-visibility.service.d.ts.map +0 -1
- package/lib/toolbar/toolbar-event.service.d.ts +0 -96
- package/lib/toolbar/toolbar-event.service.d.ts.map +0 -1
- package/lib/toolbar/toolbar.module.d.ts +0 -19
- package/lib/toolbar/toolbar.module.d.ts.map +0 -1
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +0 -31
- package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts.map +0 -1
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts +0 -12
- package/lib/viewers/convertible-content-viewer/document-conversion-api.service.d.ts.map +0 -1
- package/lib/viewers/grab-n-drag.directive.d.ts +0 -19
- package/lib/viewers/grab-n-drag.directive.d.ts.map +0 -1
- package/lib/viewers/image-viewer/image-viewer.component.d.ts +0 -57
- package/lib/viewers/image-viewer/image-viewer.component.d.ts.map +0 -1
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +0 -25
- package/lib/viewers/multimedia-player/multimedia-player.component.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +0 -69
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts +0 -17
- package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +0 -82
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +0 -82
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts +0 -22
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +0 -20
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +0 -14
- package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +0 -1
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +0 -42
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +0 -1
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts +0 -14
- package/lib/viewers/rotation-persist/rotation-api.service.d.ts.map +0 -1
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts +0 -27
- package/lib/viewers/rotation-persist/rotation-persist.directive.d.ts.map +0 -1
- package/lib/viewers/rotation-persist/rotation.model.d.ts +0 -5
- package/lib/viewers/rotation-persist/rotation.model.d.ts.map +0 -1
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +0 -23
- package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts.map +0 -1
- package/lib/viewers/viewer-event.service.d.ts +0 -23
- package/lib/viewers/viewer-event.service.d.ts.map +0 -1
- package/lib/viewers/viewer-exception.model.d.ts +0 -15
- package/lib/viewers/viewer-exception.model.d.ts.map +0 -1
- package/lib/viewers/viewer-util.service.d.ts +0 -10
- package/lib/viewers/viewer-util.service.d.ts.map +0 -1
- package/public_api.d.ts +0 -30
- package/public_api.d.ts.map +0 -1
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import 'pdfjs-dist/build/pdf.mjs';
|
|
2
|
-
import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer.mjs';
|
|
3
|
-
import { Injectable } from '@angular/core';
|
|
4
|
-
import { PdfJsWrapper } from './pdf-js-wrapper';
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../../toolbar/toolbar-event.service";
|
|
8
|
-
export class PdfJsWrapperFactory {
|
|
9
|
-
constructor(toolbarEvents) {
|
|
10
|
-
this.toolbarEvents = toolbarEvents;
|
|
11
|
-
this.linkService = new pdfjsViewer.PDFLinkService();
|
|
12
|
-
this.eventBus = new pdfjsViewer.EventBus();
|
|
13
|
-
}
|
|
14
|
-
create(container) {
|
|
15
|
-
const pdfFindController = new pdfjsViewer.PDFFindController({
|
|
16
|
-
linkService: this.linkService,
|
|
17
|
-
eventBus: this.eventBus
|
|
18
|
-
});
|
|
19
|
-
const pdfViewer = new pdfjsViewer.PDFViewer({
|
|
20
|
-
container: container.nativeElement,
|
|
21
|
-
linkService: this.linkService,
|
|
22
|
-
findController: pdfFindController,
|
|
23
|
-
eventBus: this.eventBus,
|
|
24
|
-
imageResourcesPath: '/assets/images/',
|
|
25
|
-
});
|
|
26
|
-
this.linkService.setViewer(pdfViewer);
|
|
27
|
-
this.pdfJsWrapper = new PdfJsWrapper(pdfViewer, new pdfjsViewer.DownloadManager(), this.toolbarEvents, new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject());
|
|
28
|
-
return this.pdfJsWrapper;
|
|
29
|
-
}
|
|
30
|
-
pdfWrapper() {
|
|
31
|
-
return this.pdfJsWrapper;
|
|
32
|
-
}
|
|
33
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, deps: [{ token: i1.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, providedIn: 'root' }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfJsWrapperFactory, decorators: [{
|
|
37
|
-
type: Injectable,
|
|
38
|
-
args: [{ providedIn: 'root' }]
|
|
39
|
-
}], ctorParameters: () => [{ type: i1.ToolbarEventService }] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWpzLXdyYXBwZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLWpzL3BkZi1qcy13cmFwcGVyLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxLQUFLLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBbUMsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTS9CLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsWUFBNkIsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQXFCO1FBQ2pDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUM7WUFDMUQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDMUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxhQUFhO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixjQUFjLEVBQUUsaUJBQWlCO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixrQkFBa0IsRUFBRSxpQkFBaUI7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FDbEMsU0FBUyxFQUNULElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUNqQyxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLE9BQU8sRUFBVSxFQUNyQixJQUFJLE9BQU8sRUFBd0IsRUFDbkMsSUFBSSxPQUFPLEVBQU8sRUFDbEIsSUFBSSxPQUFPLEVBQWEsRUFDeEIsSUFBSSxPQUFPLEVBQUUsRUFDYixJQUFJLE9BQU8sRUFBZSxFQUMxQixJQUFJLE9BQU8sRUFBNkIsQ0FDekMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO2tJQTdDVSxtQkFBbUI7c0lBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdwZGZqcy1kaXN0L2J1aWxkL3BkZi5tanMnO1xuaW1wb3J0ICogYXMgcGRmanNWaWV3ZXIgZnJvbSAncGRmanMtZGlzdC93ZWIvcGRmX3ZpZXdlci5tanMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRMb2FkUHJvZ3Jlc3MsIFBhZ2VFdmVudCwgUGRmSnNXcmFwcGVyIH0gZnJvbSAnLi9wZGYtanMtd3JhcHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4uL3NpZGUtYmFyL291dGxpbmUtaXRlbS9vdXRsaW5lLm1vZGVsJztcbmltcG9ydCB7IFBkZlBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvZG9jdW1lbnQucmVkdWNlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGRmSnNXcmFwcGVyRmFjdG9yeSB7XG5cbiAgcHJpdmF0ZSBsaW5rU2VydmljZTogcGRmanNWaWV3ZXIuUERGTGlua1NlcnZpY2U7XG4gIHByaXZhdGUgZXZlbnRCdXM6IHBkZmpzVmlld2VyLkV2ZW50QnVzO1xuICBwcml2YXRlIHBkZkpzV3JhcHBlcjogUGRmSnNXcmFwcGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSkge1xuICAgIHRoaXMubGlua1NlcnZpY2UgPSBuZXcgcGRmanNWaWV3ZXIuUERGTGlua1NlcnZpY2UoKTtcbiAgICB0aGlzLmV2ZW50QnVzID0gbmV3IHBkZmpzVmlld2VyLkV2ZW50QnVzKCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlKGNvbnRhaW5lcjogRWxlbWVudFJlZik6IFBkZkpzV3JhcHBlciB7XG4gICAgY29uc3QgcGRmRmluZENvbnRyb2xsZXIgPSBuZXcgcGRmanNWaWV3ZXIuUERGRmluZENvbnRyb2xsZXIoe1xuICAgICAgbGlua1NlcnZpY2U6IHRoaXMubGlua1NlcnZpY2UsXG4gICAgICBldmVudEJ1czogdGhpcy5ldmVudEJ1c1xuICAgIH0pO1xuXG4gICAgY29uc3QgcGRmVmlld2VyID0gbmV3IHBkZmpzVmlld2VyLlBERlZpZXdlcih7XG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgbGlua1NlcnZpY2U6IHRoaXMubGlua1NlcnZpY2UsXG4gICAgICBmaW5kQ29udHJvbGxlcjogcGRmRmluZENvbnRyb2xsZXIsXG4gICAgICBldmVudEJ1czogdGhpcy5ldmVudEJ1cyxcbiAgICAgIGltYWdlUmVzb3VyY2VzUGF0aDogJy9hc3NldHMvaW1hZ2VzLycsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxpbmtTZXJ2aWNlLnNldFZpZXdlcihwZGZWaWV3ZXIpO1xuXG4gICAgdGhpcy5wZGZKc1dyYXBwZXIgPSBuZXcgUGRmSnNXcmFwcGVyKFxuICAgICAgcGRmVmlld2VyLFxuICAgICAgbmV3IHBkZmpzVmlld2VyLkRvd25sb2FkTWFuYWdlcigpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLFxuICAgICAgbmV3IFN1YmplY3Q8c3RyaW5nPigpLFxuICAgICAgbmV3IFN1YmplY3Q8RG9jdW1lbnRMb2FkUHJvZ3Jlc3M+KCksXG4gICAgICBuZXcgU3ViamVjdDxhbnk+KCksXG4gICAgICBuZXcgU3ViamVjdDxPdXRsaW5lW10+KCksXG4gICAgICBuZXcgU3ViamVjdCgpLFxuICAgICAgbmV3IFN1YmplY3Q8UGFnZUV2ZW50W10+KCksXG4gICAgICBuZXcgU3ViamVjdDx7IGxvY2F0aW9uOiBQZGZQb3NpdGlvbiB9PigpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLnBkZkpzV3JhcHBlcjtcbiAgfVxuXG4gIHBkZldyYXBwZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGRmSnNXcmFwcGVyO1xuICB9XG59XG4iXX0=
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { asyncScheduler } from 'rxjs';
|
|
3
|
-
import { filter, tap, throttleTime } from 'rxjs/operators';
|
|
4
|
-
import { select } from '@ngrx/store';
|
|
5
|
-
import { ResponseType, ViewerException } from '../viewer-exception.model';
|
|
6
|
-
import * as fromDocumentActions from '../../store/actions/document.actions';
|
|
7
|
-
import { PdfPositionUpdate } from '../../store/actions/document.actions';
|
|
8
|
-
import * as fromTagActions from '../../store/actions/tag.actions';
|
|
9
|
-
import { SetCaseId } from '../../store/actions/icp.actions';
|
|
10
|
-
import * as fromDocumentsSelector from '../../store/selectors/document.selectors';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@ngrx/store";
|
|
13
|
-
import * as i2 from "./pdf-js/pdf-js-wrapper.provider";
|
|
14
|
-
import * as i3 from "../../print.service";
|
|
15
|
-
import * as i4 from "../../toolbar/toolbar-event.service";
|
|
16
|
-
import * as i5 from "../viewer-event.service";
|
|
17
|
-
import * as i6 from "../../icp/icp.service";
|
|
18
|
-
import * as i7 from "../../toolbar/toolbar-button-visibility.service";
|
|
19
|
-
import * as i8 from "../../toolbar/icp-event.service";
|
|
20
|
-
import * as i9 from "@angular/common";
|
|
21
|
-
import * as i10 from "../../toolbar/redaction-search-bar/redaction-search-bar.component";
|
|
22
|
-
import * as i11 from "../../annotations/comment-set/comment-set.component";
|
|
23
|
-
import * as i12 from "../../annotations/comment-set/comment-set-header/comment-set-header.component";
|
|
24
|
-
import * as i13 from "../../annotations/annotation-set/metadata-layer/metadata-layer.component";
|
|
25
|
-
import * as i14 from "./side-bar/side-bar.component";
|
|
26
|
-
import * as i15 from "../grab-n-drag.directive";
|
|
27
|
-
import * as i16 from "../../annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive";
|
|
28
|
-
import * as i17 from "../../redaction/components/redaction.component";
|
|
29
|
-
import * as i18 from "../../bookmark/components/bookmark-icons.component";
|
|
30
|
-
import * as i19 from "../../icp/participants-list/participants-list.component";
|
|
31
|
-
import * as i20 from "rpx-xui-translation";
|
|
32
|
-
export class PdfViewerComponent {
|
|
33
|
-
constructor(store, icpStore, pdfJsWrapperFactory, printService, toolbarEvents, viewerEvents, icpService, toolbarButtons, icpEventService) {
|
|
34
|
-
this.store = store;
|
|
35
|
-
this.icpStore = icpStore;
|
|
36
|
-
this.pdfJsWrapperFactory = pdfJsWrapperFactory;
|
|
37
|
-
this.printService = printService;
|
|
38
|
-
this.toolbarEvents = toolbarEvents;
|
|
39
|
-
this.viewerEvents = viewerEvents;
|
|
40
|
-
this.icpService = icpService;
|
|
41
|
-
this.toolbarButtons = toolbarButtons;
|
|
42
|
-
this.icpEventService = icpEventService;
|
|
43
|
-
this.mediaLoadStatus = new EventEmitter();
|
|
44
|
-
this.pdfViewerException = new EventEmitter();
|
|
45
|
-
this.documentTitle = new EventEmitter();
|
|
46
|
-
this.pageHeights = [];
|
|
47
|
-
this.rotation = 0;
|
|
48
|
-
this.zoom = 1;
|
|
49
|
-
this.loadingDocument = false;
|
|
50
|
-
this.hasDifferentPageSize = false;
|
|
51
|
-
this.enableGrabNDrag = false;
|
|
52
|
-
this.highlightMode = toolbarEvents.highlightModeSubject.pipe(tap(() => {
|
|
53
|
-
this.store.dispatch(new fromTagActions.ClearFilterTags());
|
|
54
|
-
}));
|
|
55
|
-
this.drawMode = toolbarEvents.drawModeSubject;
|
|
56
|
-
}
|
|
57
|
-
async ngAfterContentInit() {
|
|
58
|
-
this.pdfWrapper.documentLoadProgress.subscribe(v => this.onDocumentLoadProgress(v));
|
|
59
|
-
this.pdfWrapper.documentLoaded.subscribe(() => this.onDocumentLoaded());
|
|
60
|
-
this.pdfWrapper.documentLoadFailed.subscribe((error) => this.onDocumentLoadFailed(error));
|
|
61
|
-
this.pdfWrapper.outlineLoaded.subscribe(outline => this.documentOutline = outline);
|
|
62
|
-
this.pdfWrapper.pageRendered.subscribe((event) => this.updatePages(event));
|
|
63
|
-
this.$subscription = this.toolbarEvents.printSubject
|
|
64
|
-
.subscribe(() => this.printService.printDocumentNatively(this.url));
|
|
65
|
-
this.$subscription.add(this.toolbarEvents.downloadSubject.subscribe(() => this.pdfWrapper.downloadFile(this.downloadUrl || this.url, this.downloadFileName)));
|
|
66
|
-
this.$subscription.add(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument(rotate)));
|
|
67
|
-
this.$subscription.add(this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)));
|
|
68
|
-
this.$subscription.add(this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)));
|
|
69
|
-
this.$subscription.add(this.toolbarEvents.searchSubject.subscribe(search => this.pdfWrapper.search(search)));
|
|
70
|
-
this.$subscription.add(this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.pdfWrapper.setPageNumber(pageNumber)));
|
|
71
|
-
this.$subscription.add(this.toolbarEvents.changePageByDeltaSubject.subscribe(pageNumber => this.pdfWrapper.changePageNumber(pageNumber)));
|
|
72
|
-
this.$subscription.add(this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag));
|
|
73
|
-
this.$subscription.add(this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {
|
|
74
|
-
this.showCommentsPanel = toggle;
|
|
75
|
-
}));
|
|
76
|
-
this.$subscription.add(this.viewerEvents.navigationEvent.subscribe(dest => this.goToDestination(dest)));
|
|
77
|
-
this.$subscription.add(this.viewerEvents.navigationEventICP.subscribe(destination => this.goToDestinationICP(destination)));
|
|
78
|
-
this.$subscription.add(this.icpEventService.participantsListVisible.subscribe(toggle => this.showIcpParticipantsList = toggle));
|
|
79
|
-
this.$subscription.add(this.pdfWrapper.positionUpdated.asObservable()
|
|
80
|
-
.pipe(throttleTime(500, asyncScheduler, { leading: true, trailing: true }))
|
|
81
|
-
.subscribe(event => this.store.dispatch(new PdfPositionUpdate(event.location))));
|
|
82
|
-
}
|
|
83
|
-
async ngOnChanges(changes) {
|
|
84
|
-
if (!this.pdfWrapper) {
|
|
85
|
-
this.pdfWrapper = this.pdfJsWrapperFactory.create(this.viewerContainer);
|
|
86
|
-
}
|
|
87
|
-
if (changes.url && this.pdfWrapper) {
|
|
88
|
-
await this.loadDocument();
|
|
89
|
-
if (this.enableRedactions) {
|
|
90
|
-
this.toolbarEvents.redactionMode.pipe(filter(value => !!value))
|
|
91
|
-
.subscribe(() => this.resetRotation());
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (changes.caseId) {
|
|
95
|
-
this.icpStore.dispatch(new SetCaseId(this.caseId));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
resetRotation() {
|
|
99
|
-
if (this.hasDifferentPageSize) {
|
|
100
|
-
this.pdfWrapper.resetRotation(0);
|
|
101
|
-
this.rotation = 0;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
ngOnDestroy() {
|
|
105
|
-
this.$subscription.unsubscribe();
|
|
106
|
-
}
|
|
107
|
-
async loadDocument() {
|
|
108
|
-
this.initDocumentProgress();
|
|
109
|
-
await this.pdfWrapper.loadDocument(this.url);
|
|
110
|
-
this.documentTitle.emit(this.pdfWrapper.getCurrentPDFTitle());
|
|
111
|
-
this.setPageHeights();
|
|
112
|
-
this.$subscription.add(this.store.pipe(select(fromDocumentsSelector.getPageDifference))
|
|
113
|
-
.subscribe(hasDifferentPageSie => this.hasDifferentPageSize = hasDifferentPageSie));
|
|
114
|
-
}
|
|
115
|
-
onDocumentLoadProgress(progress) {
|
|
116
|
-
if (progress.total) {
|
|
117
|
-
this.loadingDocumentProgress = Math.min(100, Math.ceil(progress.loaded / progress.total * 100));
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
onDocumentLoaded() {
|
|
121
|
-
this.loadingDocument = false;
|
|
122
|
-
this.mediaLoadStatus.emit(ResponseType.SUCCESS);
|
|
123
|
-
}
|
|
124
|
-
onDocumentLoadFailed(error) {
|
|
125
|
-
this.loadingDocument = false;
|
|
126
|
-
this.viewerException = new ViewerException(error.name, { message: error.message });
|
|
127
|
-
this.errorMessage = `Could not load the document "${this.url}"`;
|
|
128
|
-
this.mediaLoadStatus.emit(ResponseType.FAILURE);
|
|
129
|
-
this.pdfViewerException.emit(this.viewerException);
|
|
130
|
-
}
|
|
131
|
-
updatePages(event) {
|
|
132
|
-
if (this.enableAnnotations) {
|
|
133
|
-
this.store.dispatch(new fromDocumentActions.AddPages(event));
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
set searchBarHidden(hidden) {
|
|
137
|
-
if (this.pdfWrapper && hidden) {
|
|
138
|
-
this.pdfWrapper.clearSearch();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
toggleCommentsSummary() {
|
|
142
|
-
this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());
|
|
143
|
-
}
|
|
144
|
-
rotateDocument(rotation) {
|
|
145
|
-
const pageNumber = this.pdfWrapper.getPageNumber();
|
|
146
|
-
this.pdfWrapper.rotate(rotation);
|
|
147
|
-
this.pdfWrapper.setPageNumber(pageNumber);
|
|
148
|
-
this.rotation = (this.rotation + rotation) % 360;
|
|
149
|
-
this.setPageHeights();
|
|
150
|
-
}
|
|
151
|
-
initDocumentProgress() {
|
|
152
|
-
this.loadingDocument = true;
|
|
153
|
-
this.loadingDocumentProgress = null;
|
|
154
|
-
this.errorMessage = null;
|
|
155
|
-
}
|
|
156
|
-
setZoom(zoomFactor) {
|
|
157
|
-
if (!isNaN(zoomFactor)) {
|
|
158
|
-
this.pdfWrapper.setZoom(zoomFactor);
|
|
159
|
-
this.zoom = this.calculateZoomValue(zoomFactor);
|
|
160
|
-
this.setPageHeights();
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
stepZoom(zoomFactor) {
|
|
164
|
-
if (!isNaN(zoomFactor)) {
|
|
165
|
-
this.pdfWrapper.stepZoom(zoomFactor);
|
|
166
|
-
this.zoom = this.calculateZoomValue(this.zoom, zoomFactor);
|
|
167
|
-
this.setPageHeights();
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
setPageHeights() {
|
|
171
|
-
this.pageHeights = [];
|
|
172
|
-
const pdfViewerChildren = this.pdfViewer.nativeElement.children;
|
|
173
|
-
for (let i = 0; i < pdfViewerChildren.length; i++) {
|
|
174
|
-
this.pageHeights.push(pdfViewerChildren[i].clientHeight);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
calculateZoomValue(zoomValue, increment = 0) {
|
|
178
|
-
const newZoomValue = zoomValue + increment;
|
|
179
|
-
if (newZoomValue > 5) {
|
|
180
|
-
return 5;
|
|
181
|
-
}
|
|
182
|
-
if (newZoomValue < 0.1) {
|
|
183
|
-
return 0.1;
|
|
184
|
-
}
|
|
185
|
-
return +newZoomValue.toFixed(2);
|
|
186
|
-
}
|
|
187
|
-
goToDestination(destination) {
|
|
188
|
-
const currentRotation = this.rotation;
|
|
189
|
-
this.rotateDocument(360 - this.rotation);
|
|
190
|
-
this.pdfWrapper.navigateTo(destination);
|
|
191
|
-
setTimeout(() => {
|
|
192
|
-
this.rotateDocument(currentRotation);
|
|
193
|
-
}, 10);
|
|
194
|
-
}
|
|
195
|
-
goToDestinationICP(destination) {
|
|
196
|
-
this.pdfWrapper.nativeNavigate(destination);
|
|
197
|
-
}
|
|
198
|
-
getCurrentPageNumber() {
|
|
199
|
-
return this.pdfWrapper.getPageNumber();
|
|
200
|
-
}
|
|
201
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i1.Store }, { token: i1.Store }, { token: i2.PdfJsWrapperFactory }, { token: i3.PrintService }, { token: i4.ToolbarEventService }, { token: i5.ViewerEventService }, { token: i6.IcpService }, { token: i7.ToolbarButtonVisibilityService }, { token: i8.IcpEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
202
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PdfViewerComponent, selector: "mv-pdf-viewer", inputs: { downloadUrl: "downloadUrl", url: "url", downloadFileName: "downloadFileName", enableAnnotations: "enableAnnotations", enableRedactions: "enableRedactions", enableICP: "enableICP", annotationSet: "annotationSet", enableRedactSearch: "enableRedactSearch", height: "height", caseId: "caseId", searchBarHidden: "searchBarHidden" }, outputs: { mediaLoadStatus: "mediaLoadStatus", pdfViewerException: "pdfViewerException", documentTitle: "documentTitle" }, viewQueries: [{ propertyName: "viewerContainer", first: true, predicate: ["viewerContainer"], descendants: true, static: true }, { propertyName: "pdfViewer", first: true, predicate: ["pdfViewer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mv-side-bar\n *ngIf=\"toolbarEvents.sidebarOpen\"\n id=\"sidebarContainer\"\n [url]=\"url\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [outline]=\"documentOutline\"\n [annotationsEnabled]=\"enableAnnotations\"\n [currentPageNumber]=\"getCurrentPageNumber()\"\n>\n</mv-side-bar>\n<mv-comment-set-header\n *ngIf=\"enableAnnotations\"\n [ngClass]=\"{ 'show-comments-panel': showCommentsPanel }\"\n [isHidden]=\"!showCommentsPanel\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\"\n>\n</mv-comment-set-header>\n<mv-participants-list></mv-participants-list>\n<div\n class=\"pdfContainer\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ pdfContainer: true, hidden: errorMessage }\"\n>\n <mv-redaction-search-bar></mv-redaction-search-bar>\n <div\n #viewerContainer\n mvGrabNDrag\n [dragX]=\"viewerContainer\"\n [dragEnabled]=\"enableGrabNDrag\"\n id=\"viewerContainer\"\n class=\"viewer-container\"\n [class.annotations]=\"enableAnnotations\"\n [class.show-comments-panel]=\"\n (showCommentsPanel || showIcpParticipantsList) &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [class.grabNDrag]=\"enableGrabNDrag\"\n >\n <div\n #pdfViewer\n class=\"pdfViewer\"\n mvCreateTextHighlight\n [ngClass]=\"{\n hidden: false,\n highlightMode: highlightMode | async,\n drawMode: drawMode | async\n }\"\n ></div>\n <mv-redactions\n *ngIf=\"toolbarEvents.redactionMode | async; else annotationTemplate\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n ></mv-redactions>\n <ng-template #annotationTemplate>\n <mv-metadata-layer\n *ngIf=\"enableAnnotations && annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n >\n </mv-metadata-layer>\n <mv-bookmark-icons [zoom]=\"zoom\" [rotate]=\"rotation\"> </mv-bookmark-icons>\n </ng-template>\n </div>\n <mv-comment-set\n [contentScrollTop]=\"viewerContainer.scrollTop\"\n *ngIf=\"\n enableAnnotations &&\n annotationSet &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [annotationSet]=\"annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [height]=\"pdfViewer.offsetHeight\"\n [pageHeights]=\"pageHeights\"\n >\n </mv-comment-set>\n <div class=\"loadingMessage\" *ngIf=\"loadingDocument\">\n <h3 class=\"govuk-heading-m\">\n {{ \"Loading...\" | rpxTranslate}}{{\n loadingDocumentProgress ? loadingDocumentProgress + \"%\" : \"\"\n }}\n </h3>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i10.RedactionSearchBarComponent, selector: "mv-redaction-search-bar" }, { kind: "component", type: i11.CommentSetComponent, selector: "mv-comment-set", inputs: ["annotationSet", "zoom", "rotate", "height", "pageHeights", "contentScrollTop"] }, { kind: "component", type: i12.CommentSetHeaderComponent, selector: "mv-comment-set-header", inputs: ["showCommentSummary", "isHidden"], outputs: ["showCommentSummaryDialog"] }, { kind: "component", type: i13.MetadataLayerComponent, selector: "mv-metadata-layer", inputs: ["zoom", "rotate"] }, { kind: "component", type: i14.SideBarComponent, selector: "mv-side-bar", inputs: ["annotationsEnabled", "outline", "url", "zoom", "rotate", "currentPageNumber"] }, { kind: "directive", type: i15.GrabNDragDirective, selector: "[mvGrabNDrag]", inputs: ["dragEnabled", "dragX"] }, { kind: "directive", type: i16.HighlightCreateDirective, selector: "[mvCreateTextHighlight]" }, { kind: "component", type: i17.RedactionComponent, selector: "mv-redactions", inputs: ["zoom", "rotate"] }, { kind: "component", type: i18.BookmarkIconsComponent, selector: "mv-bookmark-icons", inputs: ["zoom", "rotate"] }, { kind: "component", type: i19.ParticipantsListComponent, selector: "mv-participants-list" }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i20.RpxTranslatePipe, name: "rpxTranslate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
203
|
-
}
|
|
204
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PdfViewerComponent, decorators: [{
|
|
205
|
-
type: Component,
|
|
206
|
-
args: [{ selector: 'mv-pdf-viewer', encapsulation: ViewEncapsulation.None, template: "<mv-side-bar\n *ngIf=\"toolbarEvents.sidebarOpen\"\n id=\"sidebarContainer\"\n [url]=\"url\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [outline]=\"documentOutline\"\n [annotationsEnabled]=\"enableAnnotations\"\n [currentPageNumber]=\"getCurrentPageNumber()\"\n>\n</mv-side-bar>\n<mv-comment-set-header\n *ngIf=\"enableAnnotations\"\n [ngClass]=\"{ 'show-comments-panel': showCommentsPanel }\"\n [isHidden]=\"!showCommentsPanel\"\n [showCommentSummary]=\"toolbarButtons.showCommentSummary\"\n (showCommentSummaryDialog)=\"toggleCommentsSummary()\"\n>\n</mv-comment-set-header>\n<mv-participants-list></mv-participants-list>\n<div\n class=\"pdfContainer\"\n [ngStyle]=\"{ height: height }\"\n [ngClass]=\"{ pdfContainer: true, hidden: errorMessage }\"\n>\n <mv-redaction-search-bar></mv-redaction-search-bar>\n <div\n #viewerContainer\n mvGrabNDrag\n [dragX]=\"viewerContainer\"\n [dragEnabled]=\"enableGrabNDrag\"\n id=\"viewerContainer\"\n class=\"viewer-container\"\n [class.annotations]=\"enableAnnotations\"\n [class.show-comments-panel]=\"\n (showCommentsPanel || showIcpParticipantsList) &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [class.grabNDrag]=\"enableGrabNDrag\"\n >\n <div\n #pdfViewer\n class=\"pdfViewer\"\n mvCreateTextHighlight\n [ngClass]=\"{\n hidden: false,\n highlightMode: highlightMode | async,\n drawMode: drawMode | async\n }\"\n ></div>\n <mv-redactions\n *ngIf=\"toolbarEvents.redactionMode | async; else annotationTemplate\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n ></mv-redactions>\n <ng-template #annotationTemplate>\n <mv-metadata-layer\n *ngIf=\"enableAnnotations && annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n >\n </mv-metadata-layer>\n <mv-bookmark-icons [zoom]=\"zoom\" [rotate]=\"rotation\"> </mv-bookmark-icons>\n </ng-template>\n </div>\n <mv-comment-set\n [contentScrollTop]=\"viewerContainer.scrollTop\"\n *ngIf=\"\n enableAnnotations &&\n annotationSet &&\n (toolbarEvents.redactionMode | async) !== true\n \"\n [annotationSet]=\"annotationSet\"\n [zoom]=\"zoom\"\n [rotate]=\"rotation\"\n [height]=\"pdfViewer.offsetHeight\"\n [pageHeights]=\"pageHeights\"\n >\n </mv-comment-set>\n <div class=\"loadingMessage\" *ngIf=\"loadingDocument\">\n <h3 class=\"govuk-heading-m\">\n {{ \"Loading...\" | rpxTranslate}}{{\n loadingDocumentProgress ? loadingDocumentProgress + \"%\" : \"\"\n }}\n </h3>\n </div>\n</div>\n" }]
|
|
207
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i1.Store }, { type: i2.PdfJsWrapperFactory }, { type: i3.PrintService }, { type: i4.ToolbarEventService }, { type: i5.ViewerEventService }, { type: i6.IcpService }, { type: i7.ToolbarButtonVisibilityService }, { type: i8.IcpEventService }], propDecorators: { mediaLoadStatus: [{
|
|
208
|
-
type: Output
|
|
209
|
-
}], pdfViewerException: [{
|
|
210
|
-
type: Output
|
|
211
|
-
}], documentTitle: [{
|
|
212
|
-
type: Output
|
|
213
|
-
}], downloadUrl: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], url: [{
|
|
216
|
-
type: Input
|
|
217
|
-
}], downloadFileName: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}], enableAnnotations: [{
|
|
220
|
-
type: Input
|
|
221
|
-
}], enableRedactions: [{
|
|
222
|
-
type: Input
|
|
223
|
-
}], enableICP: [{
|
|
224
|
-
type: Input
|
|
225
|
-
}], annotationSet: [{
|
|
226
|
-
type: Input
|
|
227
|
-
}], enableRedactSearch: [{
|
|
228
|
-
type: Input
|
|
229
|
-
}], height: [{
|
|
230
|
-
type: Input
|
|
231
|
-
}], caseId: [{
|
|
232
|
-
type: Input
|
|
233
|
-
}], viewerContainer: [{
|
|
234
|
-
type: ViewChild,
|
|
235
|
-
args: ['viewerContainer', { static: true }]
|
|
236
|
-
}], pdfViewer: [{
|
|
237
|
-
type: ViewChild,
|
|
238
|
-
args: ['pdfViewer', { static: false }]
|
|
239
|
-
}], searchBarHidden: [{
|
|
240
|
-
type: Input
|
|
241
|
-
}] } });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3BkZi12aWV3ZXIvcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBNkMsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFnQixNQUFNLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFPNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUsxRSxPQUFPLEtBQUssbUJBQW1CLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxLQUFLLGNBQWMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxLQUFLLHFCQUFxQixNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV2xGLE1BQU0sT0FBTyxrQkFBa0I7SUEwQzdCLFlBQ1UsS0FBMEMsRUFDMUMsUUFBeUIsRUFDaEIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzNCLGFBQWtDLEVBQ2pD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QUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBVzBDLGVBQWU7c0JBQTlELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNILFNBQVM7c0JBQW5ELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkE4SHJDLGVBQWU7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IERvY3VtZW50TG9hZFByb2dyZXNzLCBQYWdlRXZlbnQsIFBkZkpzV3JhcHBlciB9IGZyb20gJy4vcGRmLWpzL3BkZi1qcy13cmFwcGVyJztcbmltcG9ydCB7IFBkZkpzV3JhcHBlckZhY3RvcnkgfSBmcm9tICcuL3BkZi1qcy9wZGYtanMtd3JhcHBlci5wcm92aWRlcic7XG5pbXBvcnQgeyBBbm5vdGF0aW9uU2V0IH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQubW9kZWwnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2VUeXBlLCBWaWV3ZXJFeGNlcHRpb24gfSBmcm9tICcuLi92aWV3ZXItZXhjZXB0aW9uLm1vZGVsJztcbmltcG9ydCB7IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1lbnRTZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9jb21tZW50LXNldC9jb21tZW50LXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4vc2lkZS1iYXIvb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudEFjdGlvbnMgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcbmltcG9ydCB7IFBkZlBvc2l0aW9uVXBkYXRlIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9kb2N1bWVudC5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21UYWdBY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvdGFnLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2V0Q2FzZUlkIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9pY3AuYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnRzU2VsZWN0b3IgZnJvbSAnLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBJY3BTdGF0ZSB9IGZyb20gJy4uLy4uL2ljcC9pY3AuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJY3BTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaWNwL2ljcC5zZXJ2aWNlJztcbmltcG9ydCB7IEljcEV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3Rvb2xiYXIvaWNwLWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1wZGYtdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBkZlZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBAT3V0cHV0KCkgbWVkaWFMb2FkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxSZXNwb25zZVR5cGU+KCk7XG4gIEBPdXRwdXQoKSBwZGZWaWV3ZXJFeGNlcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdlckV4Y2VwdGlvbj4oKTtcbiAgQE91dHB1dCgpIGRvY3VtZW50VGl0bGUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBASW5wdXQoKSBkb3dubG9hZFVybDogc3RyaW5nO1xuICBASW5wdXQoKSB1cmw6IHN0cmluZztcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGVuYWJsZUFubm90YXRpb25zOiBib29sZWFuO1xuICBASW5wdXQoKSBlbmFibGVSZWRhY3Rpb25zOiBib29sZWFuO1xuICBASW5wdXQoKSBlbmFibGVJQ1A6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFubm90YXRpb25TZXQ6IEFubm90YXRpb25TZXQgfCBudWxsO1xuICBASW5wdXQoKSBlbmFibGVSZWRhY3RTZWFyY2g6IEFubm90YXRpb25TZXQgfCBudWxsO1xuXG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nO1xuICBwYWdlSGVpZ2h0cyA9IFtdO1xuICByb3RhdGlvbiA9IDA7XG4gIHpvb20gPSAxO1xuXG4gIEBJbnB1dCgpIGNhc2VJZDogc3RyaW5nO1xuXG4gIGhpZ2hsaWdodE1vZGU6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGRyYXdNb2RlOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgZG9jdW1lbnRPdXRsaW5lOiBPdXRsaW5lW107XG4gIGxvYWRpbmdEb2N1bWVudCA9IGZhbHNlO1xuICBsb2FkaW5nRG9jdW1lbnRQcm9ncmVzczogbnVtYmVyO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgaGFzRGlmZmVyZW50UGFnZVNpemUgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCd2aWV3ZXJDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSB2aWV3ZXJDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdwZGZWaWV3ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgcGRmVmlld2VyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlIHBkZldyYXBwZXI6IFBkZkpzV3JhcHBlcjtcbiAgcHJpdmF0ZSAkc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdmlld2VyRXhjZXB0aW9uOiBWaWV3ZXJFeGNlcHRpb247XG4gIHNob3dDb21tZW50c1BhbmVsOiBib29sZWFuO1xuICBzaG93SWNwUGFydGljaXBhbnRzTGlzdDogYm9vbGVhbjtcbiAgZW5hYmxlR3JhYk5EcmFnID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLkFubm90YXRpb25TZXRTdGF0ZT4sXG4gICAgcHJpdmF0ZSBpY3BTdG9yZTogU3RvcmU8SWNwU3RhdGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGRmSnNXcmFwcGVyRmFjdG9yeTogUGRmSnNXcmFwcGVyRmFjdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByaW50U2VydmljZTogUHJpbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld2VyRXZlbnRzOiBWaWV3ZXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpY3BTZXJ2aWNlOiBJY3BTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNwRXZlbnRTZXJ2aWNlOiBJY3BFdmVudFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5oaWdobGlnaHRNb2RlID0gdG9vbGJhckV2ZW50cy5oaWdobGlnaHRNb2RlU3ViamVjdC5waXBlKHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tVGFnQWN0aW9ucy5DbGVhckZpbHRlclRhZ3MoKSk7XG4gICAgfSkpO1xuICAgIHRoaXMuZHJhd01vZGUgPSB0b29sYmFyRXZlbnRzLmRyYXdNb2RlU3ViamVjdDtcbiAgfVxuXG4gIGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnBkZldyYXBwZXIuZG9jdW1lbnRMb2FkUHJvZ3Jlc3Muc3Vic2NyaWJlKHYgPT4gdGhpcy5vbkRvY3VtZW50TG9hZFByb2dyZXNzKHYpKTtcbiAgICB0aGlzLnBkZldyYXBwZXIuZG9jdW1lbnRMb2FkZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Eb2N1bWVudExvYWRlZCgpKTtcbiAgICB0aGlzLnBkZldyYXBwZXIuZG9jdW1lbnRMb2FkRmFpbGVkLnN1YnNjcmliZSgoZXJyb3IpID0+IHRoaXMub25Eb2N1bWVudExvYWRGYWlsZWQoZXJyb3IpKTtcbiAgICB0aGlzLnBkZldyYXBwZXIub3V0bGluZUxvYWRlZC5zdWJzY3JpYmUob3V0bGluZSA9PiB0aGlzLmRvY3VtZW50T3V0bGluZSA9IG91dGxpbmUpO1xuICAgIHRoaXMucGRmV3JhcHBlci5wYWdlUmVuZGVyZWQuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy51cGRhdGVQYWdlcyhldmVudCkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbiA9IHRoaXMudG9vbGJhckV2ZW50cy5wcmludFN1YmplY3RcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wcmludFNlcnZpY2UucHJpbnREb2N1bWVudE5hdGl2ZWx5KHRoaXMudXJsKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMuZG93bmxvYWRTdWJqZWN0LnN1YnNjcmliZSgoKSA9PlxuICAgICAgdGhpcy5wZGZXcmFwcGVyLmRvd25sb2FkRmlsZSh0aGlzLmRvd25sb2FkVXJsIHx8IHRoaXMudXJsLCB0aGlzLmRvd25sb2FkRmlsZU5hbWUpXG4gICAgKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMucm90YXRlU3ViamVjdC5zdWJzY3JpYmUocm90YXRlID0+IHRoaXMucm90YXRlRG9jdW1lbnQocm90YXRlKSkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy50b29sYmFyRXZlbnRzLnpvb21TdWJqZWN0LnN1YnNjcmliZSh6b29tID0+IHRoaXMuc2V0Wm9vbSh6b29tKSkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy50b29sYmFyRXZlbnRzLnN0ZXBab29tU3ViamVjdC5zdWJzY3JpYmUoem9vbSA9PiB0aGlzLnN0ZXBab29tKHpvb20pKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoU3ViamVjdC5zdWJzY3JpYmUoc2VhcmNoID0+IHRoaXMucGRmV3JhcHBlci5zZWFyY2goc2VhcmNoKSkpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0Q3VycmVudFBhZ2VTdWJqZWN0LnN1YnNjcmliZShwYWdlTnVtYmVyID0+IHRoaXMucGRmV3JhcHBlci5zZXRQYWdlTnVtYmVyKHBhZ2VOdW1iZXIpKVxuICAgICk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5jaGFuZ2VQYWdlQnlEZWx0YVN1YmplY3Quc3Vic2NyaWJlKHBhZ2VOdW1iZXIgPT4gdGhpcy5wZGZXcmFwcGVyLmNoYW5nZVBhZ2VOdW1iZXIocGFnZU51bWJlcikpXG4gICAgKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMudG9vbGJhckV2ZW50cy5ncmFiTkRyYWcuc3Vic2NyaWJlKGdyYWJORHJhZyA9PiB0aGlzLmVuYWJsZUdyYWJORHJhZyA9IGdyYWJORHJhZykpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy50b29sYmFyRXZlbnRzLmNvbW1lbnRzUGFuZWxWaXNpYmxlLnN1YnNjcmliZSh0b2dnbGUgPT4ge1xuICAgICAgdGhpcy5zaG93Q29tbWVudHNQYW5lbCA9IHRvZ2dsZTtcbiAgICB9KVxuICAgICk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnZpZXdlckV2ZW50cy5uYXZpZ2F0aW9uRXZlbnQuc3Vic2NyaWJlKGRlc3QgPT4gdGhpcy5nb1RvRGVzdGluYXRpb24oZGVzdCkpKTtcbiAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMudmlld2VyRXZlbnRzLm5hdmlnYXRpb25FdmVudElDUC5zdWJzY3JpYmUoZGVzdGluYXRpb24gPT4gdGhpcy5nb1RvRGVzdGluYXRpb25JQ1AoZGVzdGluYXRpb24pKSk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuaWNwRXZlbnRTZXJ2aWNlLnBhcnRpY2lwYW50c0xpc3RWaXNpYmxlLnN1YnNjcmliZSh0b2dnbGUgPT4gdGhpcy5zaG93SWNwUGFydGljaXBhbnRzTGlzdCA9IHRvZ2dsZSlcbiAgICApO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy5wZGZXcmFwcGVyLnBvc2l0aW9uVXBkYXRlZC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUodGhyb3R0bGVUaW1lKDUwMCwgYXN5bmNTY2hlZHVsZXIsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFBkZlBvc2l0aW9uVXBkYXRlKGV2ZW50LmxvY2F0aW9uKSkpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoIXRoaXMucGRmV3JhcHBlcikge1xuICAgICAgdGhpcy5wZGZXcmFwcGVyID0gdGhpcy5wZGZKc1dyYXBwZXJGYWN0b3J5LmNyZWF0ZSh0aGlzLnZpZXdlckNvbnRhaW5lcik7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnVybCAmJiB0aGlzLnBkZldyYXBwZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZERvY3VtZW50KCk7XG4gICAgICBpZiAodGhpcy5lbmFibGVSZWRhY3Rpb25zKSB7XG4gICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yZWRhY3Rpb25Nb2RlLnBpcGUoZmlsdGVyKHZhbHVlID0+ICEhdmFsdWUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldFJvdGF0aW9uKCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5jYXNlSWQpIHtcbiAgICAgIHRoaXMuaWNwU3RvcmUuZGlzcGF0Y2gobmV3IFNldENhc2VJZCh0aGlzLmNhc2VJZCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0Um90YXRpb24oKSB7XG4gICAgaWYgKHRoaXMuaGFzRGlmZmVyZW50UGFnZVNpemUpIHtcbiAgICAgIHRoaXMucGRmV3JhcHBlci5yZXNldFJvdGF0aW9uKDApO1xuICAgICAgdGhpcy5yb3RhdGlvbiA9IDA7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWREb2N1bWVudCgpIHtcbiAgICB0aGlzLmluaXREb2N1bWVudFByb2dyZXNzKCk7XG4gICAgYXdhaXQgdGhpcy5wZGZXcmFwcGVyLmxvYWREb2N1bWVudCh0aGlzLnVybCk7XG4gICAgdGhpcy5kb2N1bWVudFRpdGxlLmVtaXQodGhpcy5wZGZXcmFwcGVyLmdldEN1cnJlbnRQREZUaXRsZSgpKTtcbiAgICB0aGlzLnNldFBhZ2VIZWlnaHRzKCk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2N1bWVudHNTZWxlY3Rvci5nZXRQYWdlRGlmZmVyZW5jZSkpXG4gICAgICAuc3Vic2NyaWJlKGhhc0RpZmZlcmVudFBhZ2VTaWUgPT4gdGhpcy5oYXNEaWZmZXJlbnRQYWdlU2l6ZSA9IGhhc0RpZmZlcmVudFBhZ2VTaWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Eb2N1bWVudExvYWRQcm9ncmVzcyhwcm9ncmVzczogRG9jdW1lbnRMb2FkUHJvZ3Jlc3MpIHtcbiAgICBpZiAocHJvZ3Jlc3MudG90YWwpIHtcbiAgICAgIHRoaXMubG9hZGluZ0RvY3VtZW50UHJvZ3Jlc3MgPSBNYXRoLm1pbigxMDAsIE1hdGguY2VpbChwcm9ncmVzcy5sb2FkZWQgLyBwcm9ncmVzcy50b3RhbCAqIDEwMCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Eb2N1bWVudExvYWRlZCgpIHtcbiAgICB0aGlzLmxvYWRpbmdEb2N1bWVudCA9IGZhbHNlO1xuICAgIHRoaXMubWVkaWFMb2FkU3RhdHVzLmVtaXQoUmVzcG9uc2VUeXBlLlNVQ0NFU1MpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRvY3VtZW50TG9hZEZhaWxlZChlcnJvcjogRXJyb3IpIHtcbiAgICB0aGlzLmxvYWRpbmdEb2N1bWVudCA9IGZhbHNlO1xuICAgIHRoaXMudmlld2VyRXhjZXB0aW9uID0gbmV3IFZpZXdlckV4Y2VwdGlvbihlcnJvci5uYW1lLCB7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBgQ291bGQgbm90IGxvYWQgdGhlIGRvY3VtZW50IFwiJHt0aGlzLnVybH1cImA7XG5cbiAgICB0aGlzLm1lZGlhTG9hZFN0YXR1cy5lbWl0KFJlc3BvbnNlVHlwZS5GQUlMVVJFKTtcbiAgICB0aGlzLnBkZlZpZXdlckV4Y2VwdGlvbi5lbWl0KHRoaXMudmlld2VyRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFnZXMoZXZlbnQ6IFBhZ2VFdmVudFtdKSB7XG4gICAgaWYgKHRoaXMuZW5hYmxlQW5ub3RhdGlvbnMpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21Eb2N1bWVudEFjdGlvbnMuQWRkUGFnZXMoZXZlbnQpKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2VhcmNoQmFySGlkZGVuKGhpZGRlbjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLnBkZldyYXBwZXIgJiYgaGlkZGVuKSB7XG4gICAgICB0aGlzLnBkZldyYXBwZXIuY2xlYXJTZWFyY2goKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVDb21tZW50c1N1bW1hcnkoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUNvbW1lbnRzU3VtbWFyeSghdGhpcy50b29sYmFyRXZlbnRzLnNob3dDb21tZW50U3VtbWFyeS5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcm90YXRlRG9jdW1lbnQocm90YXRpb246IG51bWJlcikge1xuICAgIGNvbnN0IHBhZ2VOdW1iZXIgPSB0aGlzLnBkZldyYXBwZXIuZ2V0UGFnZU51bWJlcigpO1xuICAgIHRoaXMucGRmV3JhcHBlci5yb3RhdGUocm90YXRpb24pO1xuICAgIHRoaXMucGRmV3JhcHBlci5zZXRQYWdlTnVtYmVyKHBhZ2VOdW1iZXIpO1xuICAgIHRoaXMucm90YXRpb24gPSAodGhpcy5yb3RhdGlvbiArIHJvdGF0aW9uKSAlIDM2MDtcbiAgICB0aGlzLnNldFBhZ2VIZWlnaHRzKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXREb2N1bWVudFByb2dyZXNzKCkge1xuICAgIHRoaXMubG9hZGluZ0RvY3VtZW50ID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRpbmdEb2N1bWVudFByb2dyZXNzID0gbnVsbDtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHNldFpvb20oem9vbUZhY3RvcjogbnVtYmVyKSB7XG4gICAgaWYgKCFpc05hTih6b29tRmFjdG9yKSkge1xuICAgICAgdGhpcy5wZGZXcmFwcGVyLnNldFpvb20oem9vbUZhY3Rvcik7XG4gICAgICB0aGlzLnpvb20gPSB0aGlzLmNhbGN1bGF0ZVpvb21WYWx1ZSh6b29tRmFjdG9yKTtcbiAgICAgIHRoaXMuc2V0UGFnZUhlaWdodHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0ZXBab29tKHpvb21GYWN0b3I6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4oem9vbUZhY3RvcikpIHtcbiAgICAgIHRoaXMucGRmV3JhcHBlci5zdGVwWm9vbSh6b29tRmFjdG9yKTtcbiAgICAgIHRoaXMuem9vbSA9IHRoaXMuY2FsY3VsYXRlWm9vbVZhbHVlKHRoaXMuem9vbSwgem9vbUZhY3Rvcik7XG4gICAgICB0aGlzLnNldFBhZ2VIZWlnaHRzKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZUhlaWdodHMoKSB7XG4gICAgdGhpcy5wYWdlSGVpZ2h0cyA9IFtdO1xuICAgIGNvbnN0IHBkZlZpZXdlckNoaWxkcmVuID0gdGhpcy5wZGZWaWV3ZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBkZlZpZXdlckNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnBhZ2VIZWlnaHRzLnB1c2gocGRmVmlld2VyQ2hpbGRyZW5baV0uY2xpZW50SGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVab29tVmFsdWUoem9vbVZhbHVlLCBpbmNyZW1lbnQgPSAwKSB7XG4gICAgY29uc3QgbmV3Wm9vbVZhbHVlID0gem9vbVZhbHVlICsgaW5jcmVtZW50O1xuICAgIGlmIChuZXdab29tVmFsdWUgPiA1KSB7XG4gICAgICByZXR1cm4gNTtcbiAgICB9XG4gICAgaWYgKG5ld1pvb21WYWx1ZSA8IDAuMSkge1xuICAgICAgcmV0dXJuIDAuMTtcbiAgICB9XG4gICAgcmV0dXJuICtuZXdab29tVmFsdWUudG9GaXhlZCgyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ29Ub0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uOiBhbnlbXSkge1xuICAgIGNvbnN0IGN1cnJlbnRSb3RhdGlvbiA9IHRoaXMucm90YXRpb247XG4gICAgdGhpcy5yb3RhdGVEb2N1bWVudCgzNjAgLSB0aGlzLnJvdGF0aW9uKTtcbiAgICB0aGlzLnBkZldyYXBwZXIubmF2aWdhdGVUbyhkZXN0aW5hdGlvbik7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJvdGF0ZURvY3VtZW50KGN1cnJlbnRSb3RhdGlvbik7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgcHJpdmF0ZSBnb1RvRGVzdGluYXRpb25JQ1AoZGVzdGluYXRpb246IGFueVtdKSB7XG4gICAgdGhpcy5wZGZXcmFwcGVyLm5hdGl2ZU5hdmlnYXRlKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRQYWdlTnVtYmVyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGRmV3JhcHBlci5nZXRQYWdlTnVtYmVyKCk7XG4gIH1cbn1cbiIsIjxtdi1zaWRlLWJhclxuICAqbmdJZj1cInRvb2xiYXJFdmVudHMuc2lkZWJhck9wZW5cIlxuICBpZD1cInNpZGViYXJDb250YWluZXJcIlxuICBbdXJsXT1cInVybFwiXG4gIFt6b29tXT1cInpvb21cIlxuICBbcm90YXRlXT1cInJvdGF0aW9uXCJcbiAgW291dGxpbmVdPVwiZG9jdW1lbnRPdXRsaW5lXCJcbiAgW2Fubm90YXRpb25zRW5hYmxlZF09XCJlbmFibGVBbm5vdGF0aW9uc1wiXG4gIFtjdXJyZW50UGFnZU51bWJlcl09XCJnZXRDdXJyZW50UGFnZU51bWJlcigpXCJcbj5cbjwvbXYtc2lkZS1iYXI+XG48bXYtY29tbWVudC1zZXQtaGVhZGVyXG4gICpuZ0lmPVwiZW5hYmxlQW5ub3RhdGlvbnNcIlxuICBbbmdDbGFzc109XCJ7ICdzaG93LWNvbW1lbnRzLXBhbmVsJzogc2hvd0NvbW1lbnRzUGFuZWwgfVwiXG4gIFtpc0hpZGRlbl09XCIhc2hvd0NvbW1lbnRzUGFuZWxcIlxuICBbc2hvd0NvbW1lbnRTdW1tYXJ5XT1cInRvb2xiYXJCdXR0b25zLnNob3dDb21tZW50U3VtbWFyeVwiXG4gIChzaG93Q29tbWVudFN1bW1hcnlEaWFsb2cpPVwidG9nZ2xlQ29tbWVudHNTdW1tYXJ5KClcIlxuPlxuPC9tdi1jb21tZW50LXNldC1oZWFkZXI+XG48bXYtcGFydGljaXBhbnRzLWxpc3Q+PC9tdi1wYXJ0aWNpcGFudHMtbGlzdD5cbjxkaXZcbiAgY2xhc3M9XCJwZGZDb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0IH1cIlxuICBbbmdDbGFzc109XCJ7IHBkZkNvbnRhaW5lcjogdHJ1ZSwgaGlkZGVuOiBlcnJvck1lc3NhZ2UgfVwiXG4+XG4gIDxtdi1yZWRhY3Rpb24tc2VhcmNoLWJhcj48L212LXJlZGFjdGlvbi1zZWFyY2gtYmFyPlxuICA8ZGl2XG4gICAgI3ZpZXdlckNvbnRhaW5lclxuICAgIG12R3JhYk5EcmFnXG4gICAgW2RyYWdYXT1cInZpZXdlckNvbnRhaW5lclwiXG4gICAgW2RyYWdFbmFibGVkXT1cImVuYWJsZUdyYWJORHJhZ1wiXG4gICAgaWQ9XCJ2aWV3ZXJDb250YWluZXJcIlxuICAgIGNsYXNzPVwidmlld2VyLWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLmFubm90YXRpb25zXT1cImVuYWJsZUFubm90YXRpb25zXCJcbiAgICBbY2xhc3Muc2hvdy1jb21tZW50cy1wYW5lbF09XCJcbiAgICAgIChzaG93Q29tbWVudHNQYW5lbCB8fCBzaG93SWNwUGFydGljaXBhbnRzTGlzdCkgJiZcbiAgICAgICh0b29sYmFyRXZlbnRzLnJlZGFjdGlvbk1vZGUgfCBhc3luYykgIT09IHRydWVcbiAgICBcIlxuICAgIFtjbGFzcy5ncmFiTkRyYWddPVwiZW5hYmxlR3JhYk5EcmFnXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICNwZGZWaWV3ZXJcbiAgICAgIGNsYXNzPVwicGRmVmlld2VyXCJcbiAgICAgIG12Q3JlYXRlVGV4dEhpZ2hsaWdodFxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBoaWdobGlnaHRNb2RlOiBoaWdobGlnaHRNb2RlIHwgYXN5bmMsXG4gICAgICAgIGRyYXdNb2RlOiBkcmF3TW9kZSB8IGFzeW5jXG4gICAgICB9XCJcbiAgICA+PC9kaXY+XG4gICAgPG12LXJlZGFjdGlvbnNcbiAgICAgICpuZ0lmPVwidG9vbGJhckV2ZW50cy5yZWRhY3Rpb25Nb2RlIHwgYXN5bmM7IGVsc2UgYW5ub3RhdGlvblRlbXBsYXRlXCJcbiAgICAgIFt6b29tXT1cInpvb21cIlxuICAgICAgW3JvdGF0ZV09XCJyb3RhdGlvblwiXG4gICAgPjwvbXYtcmVkYWN0aW9ucz5cbiAgICA8bmctdGVtcGxhdGUgI2Fubm90YXRpb25UZW1wbGF0ZT5cbiAgICAgIDxtdi1tZXRhZGF0YS1sYXllclxuICAgICAgICAqbmdJZj1cImVuYWJsZUFubm90YXRpb25zICYmIGFubm90YXRpb25TZXRcIlxuICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGlvblwiXG4gICAgICA+XG4gICAgICA8L212LW1ldGFkYXRhLWxheWVyPlxuICAgICAgPG12LWJvb2ttYXJrLWljb25zIFt6b29tXT1cInpvb21cIiBbcm90YXRlXT1cInJvdGF0aW9uXCI+IDwvbXYtYm9va21hcmstaWNvbnM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxtdi1jb21tZW50LXNldFxuICAgIFtjb250ZW50U2Nyb2xsVG9wXT1cInZpZXdlckNvbnRhaW5lci5zY3JvbGxUb3BcIlxuICAgICpuZ0lmPVwiXG4gICAgICBlbmFibGVBbm5vdGF0aW9ucyAmJlxuICAgICAgYW5ub3RhdGlvblNldCAmJlxuICAgICAgKHRvb2xiYXJFdmVudHMucmVkYWN0aW9uTW9kZSB8IGFzeW5jKSAhPT0gdHJ1ZVxuICAgIFwiXG4gICAgW2Fubm90YXRpb25TZXRdPVwiYW5ub3RhdGlvblNldFwiXG4gICAgW3pvb21dPVwiem9vbVwiXG4gICAgW3JvdGF0ZV09XCJyb3RhdGlvblwiXG4gICAgW2hlaWdodF09XCJwZGZWaWV3ZXIub2Zmc2V0SGVpZ2h0XCJcbiAgICBbcGFnZUhlaWdodHNdPVwicGFnZUhlaWdodHNcIlxuICA+XG4gIDwvbXYtY29tbWVudC1zZXQ+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nTWVzc2FnZVwiICpuZ0lmPVwibG9hZGluZ0RvY3VtZW50XCI+XG4gICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+XG4gICAgICB7eyBcIkxvYWRpbmcuLi5cIiB8IHJweFRyYW5zbGF0ZX19e3tcbiAgICAgICAgbG9hZGluZ0RvY3VtZW50UHJvZ3Jlc3MgPyBsb2FkaW5nRG9jdW1lbnRQcm9ncmVzcyArIFwiJVwiIDogXCJcIlxuICAgICAgfX1cbiAgICA8L2gzPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|