@hmcts/media-viewer 4.0.8 → 4.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/build/pdf.min.mjs +2 -2
- package/assets/build/pdf.mjs +6430 -5325
- package/assets/build/pdf.mjs.map +1 -1
- package/assets/build/pdf.sandbox.min.mjs +2 -2
- package/assets/build/pdf.sandbox.mjs +10 -7
- package/assets/build/pdf.sandbox.mjs.map +1 -1
- package/assets/build/pdf.worker.min.mjs +2 -2
- package/assets/build/pdf.worker.mjs +1432 -690
- package/assets/build/pdf.worker.mjs.map +1 -1
- package/assets/pdfjs/images/altText_add.svg +3 -0
- package/assets/pdfjs/images/altText_add.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/altText_disclaimer.svg +3 -0
- package/assets/pdfjs/images/altText_disclaimer.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/altText_done.svg +3 -0
- package/assets/pdfjs/images/altText_done.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/altText_spinner.svg +30 -0
- package/assets/pdfjs/images/altText_spinner.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/altText_warning.svg +3 -0
- package/assets/pdfjs/images/altText_warning.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-check.svg +11 -11
- package/assets/pdfjs/images/annotation-check.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-comment.svg +16 -16
- package/assets/pdfjs/images/annotation-comment.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-help.svg +26 -26
- package/assets/pdfjs/images/annotation-help.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-insert.svg +10 -10
- package/assets/pdfjs/images/annotation-insert.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-key.svg +11 -11
- package/assets/pdfjs/images/annotation-key.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-newparagraph.svg +11 -11
- package/assets/pdfjs/images/annotation-newparagraph.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-noicon.svg +7 -7
- package/assets/pdfjs/images/annotation-noicon.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-note.svg +42 -42
- package/assets/pdfjs/images/annotation-note.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-paperclip.svg +6 -0
- package/assets/pdfjs/images/annotation-paperclip.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-paragraph.svg +16 -16
- package/assets/pdfjs/images/annotation-paragraph.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/annotation-pushpin.svg +7 -0
- package/assets/pdfjs/images/annotation-pushpin.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/cursor-editorFreeHighlight.svg +6 -0
- package/assets/pdfjs/images/cursor-editorFreeHighlight.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/cursor-editorFreeText.svg +3 -0
- package/assets/pdfjs/images/cursor-editorFreeText.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/cursor-editorInk.svg +4 -0
- package/assets/pdfjs/images/cursor-editorInk.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/cursor-editorTextHighlight.svg +8 -0
- package/assets/pdfjs/images/cursor-editorTextHighlight.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/editor-toolbar-delete.svg +5 -0
- package/assets/pdfjs/images/editor-toolbar-delete.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/loading-icon.gif:Zone.Identifier +0 -0
- package/assets/pdfjs/images/messageBar_closingButton.svg +3 -0
- package/assets/pdfjs/images/messageBar_closingButton.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/messageBar_warning.svg +3 -0
- package/assets/pdfjs/images/messageBar_warning.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/toolbarButton-editorHighlight.svg +6 -0
- package/assets/pdfjs/images/toolbarButton-editorHighlight.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/images/toolbarButton-menuArrow.svg +3 -0
- package/assets/pdfjs/images/toolbarButton-menuArrow.svg:Zone.Identifier +0 -0
- package/assets/pdfjs/pdf_viewer.css +2982 -272
- package/assets/pdfjs/pdf_viewer.css:Zone.Identifier +0 -0
- package/assets/sass/pdf-viewer.scss +5 -38
- package/assets/sass/toolbar/main.scss +4 -2
- package/assets/sass/toolbar/side-bar.scss +1 -0
- package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +3 -3
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +3 -3
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +3 -3
- package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +3 -3
- package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +3 -3
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +3 -3
- package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +3 -3
- package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +3 -3
- package/esm2022/lib/annotations/annotations.module.mjs +4 -4
- package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +3 -3
- package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +3 -3
- package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +3 -3
- package/esm2022/lib/annotations/pipes/date/date.pipe.mjs +3 -3
- package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +3 -3
- package/esm2022/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +3 -3
- package/esm2022/lib/annotations/services/annotation-api/annotation-api.service.mjs +3 -3
- package/esm2022/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +3 -3
- package/esm2022/lib/annotations/services/tags/tags.services.mjs +3 -3
- package/esm2022/lib/annotations/tags/tags.component.mjs +3 -3
- package/esm2022/lib/bookmark/components/bookmark-icons.component.mjs +3 -3
- package/esm2022/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +3 -3
- package/esm2022/lib/icp/icp-follower.service.mjs +3 -3
- package/esm2022/lib/icp/icp-presenter.service.mjs +3 -3
- package/esm2022/lib/icp/icp-session-api.service.mjs +3 -3
- package/esm2022/lib/icp/icp-update.service.mjs +3 -3
- package/esm2022/lib/icp/icp.service.mjs +3 -3
- package/esm2022/lib/icp/participants-list/participants-list.component.mjs +3 -3
- package/esm2022/lib/icp/socket.service.mjs +3 -3
- package/esm2022/lib/media-viewer.component.mjs +3 -3
- package/esm2022/lib/media-viewer.module.mjs +4 -4
- package/esm2022/lib/print.service.mjs +3 -3
- package/esm2022/lib/redaction/components/redaction.component.mjs +3 -3
- package/esm2022/lib/redaction/services/redaction-api.service.mjs +3 -3
- package/esm2022/lib/shared/gov-uk-date/gov-uk-date.component.mjs +3 -3
- package/esm2022/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +3 -3
- package/esm2022/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +3 -3
- package/esm2022/lib/shared/gov-uk-label/gov-uk-label.component.mjs +3 -3
- package/esm2022/lib/shared/shared.module.mjs +4 -4
- package/esm2022/lib/shared/util/services/number.helper.service.mjs +3 -3
- package/esm2022/lib/store/effects/annotation.effects.mjs +3 -3
- package/esm2022/lib/store/effects/bookmarks.effects.mjs +3 -3
- package/esm2022/lib/store/effects/document.effects.mjs +3 -3
- package/esm2022/lib/store/effects/icp.effects.mjs +3 -3
- package/esm2022/lib/store/effects/redaction.effects.mjs +3 -3
- package/esm2022/lib/store/reducers/annotations.reducer.mjs +2 -2
- package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +3 -3
- package/esm2022/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +3 -3
- package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +3 -3
- package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +5 -5
- package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +3 -3
- package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +3 -3
- package/esm2022/lib/toolbar/toolbar-event.service.mjs +3 -3
- package/esm2022/lib/toolbar/toolbar.module.mjs +4 -4
- package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +3 -3
- package/esm2022/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +3 -3
- package/esm2022/lib/viewers/grab-n-drag.directive.mjs +3 -3
- package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +3 -3
- package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +3 -3
- package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +2 -2
- package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +3 -3
- package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +3 -3
- package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +6 -6
- package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +3 -3
- package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +9 -8
- package/esm2022/lib/viewers/rotation-persist/rotation-api.service.mjs +3 -3
- package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +3 -3
- package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +3 -3
- package/esm2022/lib/viewers/viewer-event.service.mjs +3 -3
- package/esm2022/lib/viewers/viewer-util.service.mjs +3 -3
- package/fesm2022/hmcts-media-viewer.mjs +242 -242
- package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
- package/lib/store/reducers/annotations.reducer.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -5,7 +5,7 @@ import * as bookmarksSelectors from '../../../../store/selectors/bookmark.select
|
|
|
5
5
|
import * as fromDocument from '../../../../store/selectors/document.selectors';
|
|
6
6
|
import { getBookmarkChildren } from '../../../../store/bookmarks-store-utils';
|
|
7
7
|
import { take } from 'rxjs/operators';
|
|
8
|
-
import uuid from 'uuid';
|
|
8
|
+
import { v4 as uuid } from 'uuid';
|
|
9
9
|
import { ArrayDataSource, SelectionModel } from '@angular/cdk/collections';
|
|
10
10
|
import { NestedTreeControl } from '@angular/cdk/tree';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
@@ -357,12 +357,12 @@ export class BookmarksComponent {
|
|
|
357
357
|
const result = this.getNode(fromNodeChildren, toNode.id);
|
|
358
358
|
return result ? true : false;
|
|
359
359
|
}
|
|
360
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
361
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
360
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BookmarksComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
361
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BookmarksComponent, selector: "mv-bookmarks", inputs: { bookmarkNodes: "bookmarkNodes", zoom: "zoom", rotate: "rotate", parentScrollTop: "parentScrollTop" }, outputs: { goToDestination: "goToDestination", treeHasChanged: "treeHasChanged" }, usesOnChanges: true, ngImport: i0, template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n [cdkDropListDisabled]=\"!isDraggingOn\"\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node nest-tree-node-padding\"\n cdkDrag\n cdkDragBoundary=\".bookmarks-tree\"\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkNestedTreeNode, selector: "cdk-nested-tree-node", exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i3.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i3.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] }); }
|
|
362
362
|
}
|
|
363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BookmarksComponent, decorators: [{
|
|
364
364
|
type: Component,
|
|
365
|
-
args: [{ selector: 'mv-bookmarks', template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n [cdkDropListDisabled]=\"!isDraggingOn\"\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node nest-tree-node-padding\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n" }]
|
|
365
|
+
args: [{ selector: 'mv-bookmarks', template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n [cdkDropListDisabled]=\"!isDraggingOn\"\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node nest-tree-node-padding\"\n cdkDrag\n cdkDragBoundary=\".bookmarks-tree\"\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <!-- <div class=\"node-drop-slot\"></div> -->\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n" }]
|
|
366
366
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { bookmarkNodes: [{
|
|
367
367
|
type: Input
|
|
368
368
|
}], zoom: [{
|
|
@@ -376,4 +376,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
376
376
|
}], treeHasChanged: [{
|
|
377
377
|
type: Output
|
|
378
378
|
}] } });
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuSixPQUFPLEtBQUssa0JBQWtCLE1BQU0sZ0RBQWdELENBQUM7QUFHckYsT0FBTyxLQUFLLFlBQVksTUFBTSxnREFBZ0QsQ0FBQztBQUUvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0UsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7QUFRdkUsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixJQUNJLGFBQWEsQ0FBQyxLQUFpQjtRQUNqQyxJQUFJLENBQUMsa0JB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QkFDRSxjQUFjOzBFQU9wQixhQUFhO3NCQURoQixLQUFLO2dCQVlHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29rbWFyayB9IGZyb20gJy4vLi4vLi4vLi4vLi4vc3RvcmUvbW9kZWxzL2Jvb2ttYXJrcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ3JlYXRlQm9va21hcmssIERlbGV0ZUJvb2ttYXJrLCBNb3ZlQm9va21hcmssIFVwZGF0ZUJvb2ttYXJrLCBVcGRhdGVCb29rbWFya1Njcm9sbFRvcCB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMvYm9va21hcmsuYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBib29rbWFya3NTZWxlY3RvcnMgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Jvb2ttYXJrLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uU2V0U3RhdGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9hbm5vdGF0aW9ucy5yZWR1Y2VyJztcbmltcG9ydCB7IERvY3VtZW50UGFnZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9kb2N1bWVudC5yZWR1Y2VyJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Cb29rbWFya3MgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvYm9va21hcmtzLnJlZHVjZXInO1xuaW1wb3J0IHsgZ2V0Qm9va21hcmtDaGlsZHJlbiB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2Jvb2ttYXJrcy1zdG9yZS11dGlscyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBBcnJheURhdGFTb3VyY2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCwgTmVzdGVkVHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1ib29rbWFya3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYm9va21hcmtzLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIEJvb2ttYXJrc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpXG4gIHNldCBib29rbWFya05vZGVzKHZhbHVlOiBCb29rbWFya1tdKSB7XG4gICAgdGhpcy5yZWJ1aWxkVHJlZUZvckRhdGEodmFsdWUpO1xuICAgIGlmICh0aGlzLl9ib29rbWFya05vZGVzICYmIHRoaXMuc29ydE1vZGUgIT09IHRoaXMuY3VzdG9tU29ydCkge1xuICAgICAgdGhpcy5zb3J0Qm9va21hcmtzKCk7XG4gICAgfVxuICB9O1xuXG4gIGdldCBib29rbWFya05vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9ib29rbWFya05vZGVzO1xuICB9O1xuXG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhcmVudFNjcm9sbFRvcDogbnVtYmVyO1xuICBAT3V0cHV0KCkgZ29Ub0Rlc3RpbmF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIHRyZWVIYXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgcHJpdmF0ZSBfYm9va21hcmtOb2RlczogQm9va21hcmtbXSA9IFtdO1xuICBkYXRhc291cmNlOiBBcnJheURhdGFTb3VyY2U8Qm9va21hcms+O1xuICB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPEJvb2ttYXJrPjtcbiAgaG92ZXJlZE5vZGU6IEJvb2ttYXJrO1xuICBob3Zlckh0bWxFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgLy8gZXhwYW5zaW9uIG1vZGVsIHRyYWNrcyBleHBhbnNpb24gc3RhdGVcbiAgZXhwYW5zaW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8Qm9va21hcms+KHRydWUpO1xuICBpc0RyYWdnaW5nT24gPSBmYWxzZTtcbiAgaXNVc2VyZHJhZ2dpbmcgPSBmYWxzZTtcbiAgZXhwYW5kVGltZW91dDogYW55O1xuICBleHBhbmREZWxheSA9IDEwMDA7XG4gIGRyYWdOb2RlSW5zZXJ0VG9QYXJlbnQ6IGJvb2xlYW47XG5cbiAgcGFnZUxvb2t1cDogeyBbcGFnZUlkOiBudW1iZXJdOiBEb2N1bWVudFBhZ2VzIH0gPSB7fTtcbiAgZWRpdGFibGVCb29rbWFyazogc3RyaW5nO1xuICBCT09LTUFSS19DSEFSX0xJTUlUID0gMzA7XG5cbiAgZHJhZ05vZGU6IGFueTtcbiAgZHJhZ05vZGVFeHBhbmRPdmVyV2FpdFRpbWVNcyA9IDMwMDtcbiAgZHJhZ05vZGVFeHBhbmRPdmVyTm9kZTogYW55O1xuICBkcmFnTm9kZUV4cGFuZE92ZXJUaW1lOiBudW1iZXI7XG4gIGRyYWdOb2RlRXhwYW5kT3ZlckFyZWE6IG51bWJlcjtcblxuXG4gIG9wdGlvbnMgPSB7XG4gICAgYWxsb3dEcmFnOiB0cnVlLFxuICAgIGFsbG93RHJvcDogdHJ1ZVxuICB9O1xuXG4gICRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNvcnRNb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tU29ydCA9ICdDVVNUT00nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wb3NpdGlvblNvcnQgPSAnUE9TSVRJT04nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21Cb29rbWFya3MuQm9va21hcmtzU3RhdGUgfCBBbm5vdGF0aW9uU2V0U3RhdGU+KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRNb2RlID0gdGhpcy5jdXN0b21Tb3J0O1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEVkaXRhYmxlQm9va21hcmspKVxuICAgICAgLnN1YnNjcmliZShlZGl0YWJsZUlkID0+IHRoaXMuZWRpdGFibGVCb29rbWFyayA9IGVkaXRhYmxlSWQpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5zZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKVxuICAgICAgLnN1YnNjcmliZShwYWdlcyA9PiB7XG5cbiAgICAgICAgT2JqZWN0LmtleXMocGFnZXMpLm1hcChrZXkgPT4ge1xuICAgICAgICAgIHRoaXMucGFnZUxvb2t1cFtrZXldID0gcGFnZXNba2V5XTtcbiAgICAgICAgfSk7XG5cbiAgICAgIH0pKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcz8uYm9va21hcmtOb2Rlcykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZUJvb2ttYXJrU2Nyb2xsVG9wKHRoaXMucGFyZW50U2Nyb2xsVG9wKSk7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZWRpdEJvb2ttYXJrKGlkKSB7XG4gICAgdGhpcy5lZGl0YWJsZUJvb2ttYXJrID0gaWQ7XG4gIH1cblxuICBvbkFkZEJvb2ttYXJrQ2xpY2soKSB7XG4gICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChib29rbWFya3NTZWxlY3RvcnMuZ2V0Qm9va21hcmtJbmZvKSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGJvb2ttYXJrSW5mbykgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBDcmVhdGVCb29rbWFyayh7XG4gICAgICAgICAgLi4uYm9va21hcmtJbmZvLCBuYW1lOiAnJywgaWQ6IHV1aWQoKVxuICAgICAgICB9IGFzIGFueSkpO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGVCb29rbWFyazIobm9kZTogQm9va21hcmspIHtcbiAgICB0aGlzLmN1c3RvbVNvcnRCb29rbWFya3MoKTtcbiAgICBsZXQgbmV4dDogQm9va21hcms7XG5cbiAgICBjb25zdCBjaGFuZ2VkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ib29rbWFya05vZGVzKSk7XG4gICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLmZpbmROb2RlU2libGluZ3MoY2hhbmdlZERhdGEsIG5vZGUuaWQpO1xuICAgIGlmIChzaWJsaW5ncyAmJiBzaWJsaW5ncy5sZW5ndGggPiBub2RlLmluZGV4ICsgMSkge1xuICAgICAgbmV4dCA9IHNpYmxpbmdzW25vZGUuaW5kZXggKyAxXTtcbiAgICAgIG5leHQucHJldmlvdXMgPSBub2RlLnByZXZpb3VzO1xuICAgIH1cbiAgICBjb25zdCB0b0RlbGV0ZSA9IFtub2RlLmlkLCAuLi5nZXRCb29rbWFya0NoaWxkcmVuKG5vZGUuY2hpbGRyZW4pXTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBEZWxldGVCb29rbWFyayh7XG4gICAgICBkZWxldGVkOiB0b0RlbGV0ZSwgdXBkYXRlZDogbmV4dFxuICAgIH0pKTtcbiAgfVxuXG4gIHVwZGF0ZUJvb2ttYXJrKGJvb2ttYXJrOiBCb29rbWFyaywgbmFtZSkge1xuICAgIGNvbnN0IGVkaXRlZEJvb2ttYXJrID0ge1xuICAgICAgLi4uYm9va21hcmssXG4gICAgICBuYW1lXG4gICAgfTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQm9va21hcmsoZWRpdGVkQm9va21hcmspKTtcbiAgICAgIHRoaXMuZWRpdGFibGVCb29rbWFyayA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBnb1RvQm9va21hcmsoYm9va21hcms6IEJvb2ttYXJrKSB7XG4gICAgY29uc3QgdGhpc1BhZ2UgPSB0aGlzLnBhZ2VMb29rdXBbYm9va21hcmsucGFnZU51bWJlciArIDFdO1xuICAgIGNvbnN0IGRlZmF1bHRIZWlnaHQgPSB0aGlzUGFnZS5zdHlsZXMuaGVpZ2h0O1xuICAgIGNvbnN0IGRlZmF1bHRTY2FsZVkgPSB0aGlzLnNjYWxlZFkoYm9va21hcmsueUNvb3JkaW5hdGUsIGRlZmF1bHRIZWlnaHQsIHRoaXNQYWdlKTtcblxuICAgIGxldCB0b3AgPSAwLCBsZWZ0ID0gMDtcbiAgICBzd2l0Y2ggKHRoaXMucm90YXRlKSB7XG4gICAgICBjYXNlIDkwOlxuICAgICAgICBsZWZ0ID0gLSBkZWZhdWx0U2NhbGVZO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOlxuICAgICAgICB0b3AgPSB0aGlzLnNjYWxlZFkoYm9va21hcmsueUNvb3JkaW5hdGUsIChkZWZhdWx0SGVpZ2h0IC0gKDI0ICogdGhpcy56b29tKSksIHRoaXNQYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI3MDpcbiAgICAgICAgbGVmdCA9IGRlZmF1bHRTY2FsZVk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdG9wID0gZGVmYXVsdFNjYWxlWTtcbiAgICB9XG5cbiAgICB0aGlzLmdvVG9EZXN0aW5hdGlvbi5lbWl0KFtcbiAgICAgIGJvb2ttYXJrLnBhZ2VOdW1iZXIsXG4gICAgICB7ICduYW1lJzogJ1hZWicgfSxcbiAgICAgIGxlZnQsXG4gICAgICB0b3BcbiAgICBdKTtcbiAgfVxuXG4gIGdldCBjdXN0b21Tb3J0KCkge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21Tb3J0O1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uU29ydCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25Tb3J0O1xuICB9XG5cbiAgc29ydChtb2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRNb2RlID0gbW9kZTtcbiAgICB0aGlzLnNvcnRCb29rbWFya3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydEJvb2ttYXJrcygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuc29ydE1vZGUpIHtcbiAgICAgIGNhc2UgdGhpcy5jdXN0b21Tb3J0OiB7XG4gICAgICAgIHRoaXMuY3VzdG9tU29ydEJvb2ttYXJrcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgdGhpcy5wb3NpdGlvblNvcnQ6IHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblNvcnRCb29rbWFya3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMuY3VzdG9tU29ydEJvb2ttYXJrcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uU29ydEJvb2ttYXJrcygpIHtcbiAgICB0aGlzLmJvb2ttYXJrTm9kZXMuc29ydCgoYSwgYikgPT4gYS5wYWdlTnVtYmVyID09PSBiLnBhZ2VOdW1iZXIgPyBhLnlDb29yZGluYXRlIC0gYi55Q29vcmRpbmF0ZSA6IGEucGFnZU51bWJlciAtIGIucGFnZU51bWJlcik7XG4gICAgdGhpcy5pc0RyYWdnaW5nT24gPSBmYWxzZTtcbiAgICB0aGlzLnJlYnVpbGRUcmVlRm9yRGF0YSh0aGlzLmJvb2ttYXJrTm9kZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXN0b21Tb3J0Qm9va21hcmtzKCkge1xuICAgIGlmICh0aGlzLmJvb2ttYXJrTm9kZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5ib29rbWFya05vZGVzLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KTtcbiAgICB9XG4gICAgdGhpcy5pc0RyYWdnaW5nT24gPSB0cnVlO1xuICAgIHRoaXMucmVidWlsZFRyZWVGb3JEYXRhKHRoaXMuYm9va21hcmtOb2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIHNjYWxlZFkoeUNvb3JkaW5hdGU6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHBhZ2U6IERvY3VtZW50UGFnZXMpOiBudW1iZXIge1xuICAgIGNvbnN0IHZpZXdwb3J0U2NhbGUgPSBwYWdlLnZpZXdwb3J0U2NhbGUgLyB0aGlzLnpvb207XG4gICAgcmV0dXJuICgoaGVpZ2h0IC8gdGhpcy56b29tKSAtIHlDb29yZGluYXRlKSAvIHZpZXdwb3J0U2NhbGU7XG4gIH1cblxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEJvb2ttYXJrKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0Tm9kZShib29rbWFya3MsIHBhcmVudElkKSB7XG4gICAgaWYgKHR5cGVvZiBib29rbWFya3MgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJvb2ttYXJrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYm9va21hcmtzW2ldLmlkID09PSBwYXJlbnRJZCkge1xuICAgICAgICAgIHJldHVybiBbYm9va21hcmtzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhID0gdGhpcy5nZXROb2RlKGJvb2ttYXJrc1tpXS5jaGlsZHJlbiwgcGFyZW50SWQpO1xuICAgICAgICBpZiAoYSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8Qm9va21hcms+KSB7XG5cbiAgICBpZiAoIWV2ZW50LmlzUG9pbnRlck92ZXJDb250YWluZXIgfHwgKGV2ZW50LnByZXZpb3VzSW5kZXggPT09IGV2ZW50LmN1cnJlbnRJbmRleCkpIHJldHVybjtcblxuICAgIGNvbnN0IGhhc01vdmVkVXBUaGVUcmVlID0gZXZlbnQucHJldmlvdXNJbmRleCA+IGV2ZW50LmN1cnJlbnRJbmRleDtcbiAgICBjb25zdCBib29rbWFya05vZGVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5fYm9va21hcmtOb2Rlcyk7XG4gICAgY29uc3QgY2hhbmdlZERhdGEgPSBKU09OLnBhcnNlKGJvb2ttYXJrTm9kZXNTdHJpbmcpO1xuICAgIGNvbnN0IHZpc2libGVOb2RlcyA9IHRoaXMudmlzaWJsZU5vZGVzKHRoaXMuX2Jvb2ttYXJrTm9kZXMpO1xuICAgIGNvbnN0IHRvTm9kZSA9IHZpc2libGVOb2Rlc1tldmVudC5jdXJyZW50SW5kZXhdIGFzIEJvb2ttYXJrO1xuICAgIGNvbnN0IHRvTm9kZVNpYmxpbmdzID0gdGhpcy5maW5kTm9kZVNpYmxpbmdzKGNoYW5nZWREYXRhLCB0b05vZGUuaWQpO1xuXG4gICAgY29uc3QgdG9Ob2RlUGFyZW50ID0gdG9Ob2RlU2libGluZ3NbMF0ucGFyZW50O1xuICAgIGNvbnN0IHRvSW5kZXggPSB0b05vZGVTaWJsaW5ncy5maW5kSW5kZXgocyA9PiBzLmlkID09PSB0b05vZGUuaWQpO1xuXG4gICAgY29uc3QgZnJvbU5vZGUgPSBldmVudC5pdGVtLmRhdGEgYXMgQm9va21hcms7XG4gICAgY29uc3QgZnJvbU5vZGVTaWJsaW5ncyA9IHRoaXMuZmluZE5vZGVTaWJsaW5ncyhjaGFuZ2VkRGF0YSwgZnJvbU5vZGUuaWQpO1xuICAgIGNvbnN0IGZyb21JbmRleCA9IGZyb21Ob2RlU2libGluZ3MuZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gZnJvbU5vZGUuaWQpO1xuXG4gICAgaWYgKHRoaXMuaXNUb05vZGVDaGlsZE9mRnJvbU5vZGUoZnJvbU5vZGU/LmNoaWxkcmVuLCB0b05vZGUpKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50KSB7XG5cbiAgICAgIGNvbnN0IGluZGV4T2ZQYXJlbnQgPSB0b05vZGVTaWJsaW5ncy5maW5kSW5kZXgoZWxlbWVudCA9PiBlbGVtZW50LmlkID09PSB0b05vZGUuaWQpO1xuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHRvTm9kZVNpYmxpbmdzW2luZGV4T2ZQYXJlbnRdO1xuICAgICAgY29uc3QgZmlyc3RDaGlsZCA9IHBhcmVudE5vZGU/LmNoaWxkcmVuICYmIHBhcmVudE5vZGU/LmNoaWxkcmVuLmxlbmd0aCA+IDAgPyBwYXJlbnROb2RlLmNoaWxkcmVuWzBdIDogbnVsbDtcbiAgICAgIGxldCBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbeyAuLi5mcm9tTm9kZSwgcGFyZW50OiBwYXJlbnROb2RlLmlkLCBwcmV2aW91czogbnVsbCB9XTtcblxuICAgICAgaWYgKGZpcnN0Q2hpbGQpIHtcbiAgICAgICAgbW92ZWRCb29rbWFya3NXaXRoUGFyZW50ID0gWy4uLm1vdmVkQm9va21hcmtzV2l0aFBhcmVudCwgeyAuLi5maXJzdENoaWxkLCBwcmV2aW91czogZnJvbU5vZGUuaWQgfV07XG4gICAgICB9XG5cbiAgICAgIGxldCBmcm9tTm9kZVNpYmxpbmcgPSB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKGZyb21Ob2RlU2libGluZ3MsIGZyb21JbmRleCArIDEpO1xuICAgICAgY29uc3QgbmV4dEZyb21pbmRleGZvclBhcmVudCA9IGZyb21JbmRleCArIDE7XG4gICAgICBmcm9tTm9kZVNpYmxpbmcgPSBmcm9tTm9kZVNpYmxpbmcgJiYgZnJvbU5vZGVTaWJsaW5nLmlkID09PSBmcm9tTm9kZS5wcmV2aW91cyA/IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3MoZnJvbU5vZGVTaWJsaW5ncywgbmV4dEZyb21pbmRleGZvclBhcmVudCArIDEpIDogZnJvbU5vZGVTaWJsaW5nO1xuXG4gICAgICBpZiAoZnJvbU5vZGVTaWJsaW5nICYmIGZyb21Ob2RlU2libGluZy5pZCAhPT0gcGFyZW50Tm9kZS5pZCkge1xuICAgICAgICBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbLi4ubW92ZWRCb29rbWFya3NXaXRoUGFyZW50LCB7IC4uLmZyb21Ob2RlU2libGluZywgcHJldmlvdXM6IGZyb21Ob2RlLnByZXZpb3VzIH1dO1xuICAgICAgfVxuXG4gICAgICBsZXQgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggPSB0b0luZGV4IC0gMTtcbiAgICAgIGxldCBwYXJlbnROb2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3ModG9Ob2RlU2libGluZ3MsIHByZXZpb3VzU2libGluZ0ZvclBhcmVudEluZGV4KTtcblxuICAgICAgaWYgKHBhcmVudE5vZGVTaWJsaW5nICYmIHBhcmVudE5vZGVTaWJsaW5nLmlkID09IGZyb21Ob2RlLmlkKSB7XG4gICAgICAgIHByZXZpb3VzU2libGluZ0ZvclBhcmVudEluZGV4ID0gcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggLSAxO1xuICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggPj0gMCkge1xuICAgICAgICAgIHBhcmVudE5vZGVTaWJsaW5nID0gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyh0b05vZGVTaWJsaW5ncywgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHBhcmVudE5vZGVTaWJsaW5nID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbLi4ubW92ZWRCb29rbWFya3NXaXRoUGFyZW50LCB7IC4uLnBhcmVudE5vZGUsIHByZXZpb3VzOiBwYXJlbnROb2RlU2libGluZz8uaWQgfV07XG5cbiAgICAgIGNvbnN0IGhhc1BhcmVudER1cHMgPSAobW92ZWRCb29rbWFya3NXaXRoUGFyZW50IGFzIEJvb2ttYXJrW10pLm1hcCh4ID0+IHguaWQpLnNvbWUoZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLnNvbWUgd2lsbCBicmVhayBhcyBzb29uIGFzIGR1cGxpY2F0ZSBmb3VuZCAobm8gbmVlZCB0byBpdHRlcmF0ZSBvdmVyIGFsbCBhcnJheSlcbiAgICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YodmFsdWUpICE9PSBhcnJheS5sYXN0SW5kZXhPZih2YWx1ZSk7ICAgLy8gY29tcGFyaW5nIGZpcnN0IGFuZCBsYXN0IGluZGV4ZXMgb2YgdGhlIHNhbWUgdmFsdWVcbiAgICAgIH0pXG4gICAgICBpZiAoaGFzUGFyZW50RHVwcyB8fCBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgJiYgbW92ZWRCb29rbWFya3NXaXRoUGFyZW50Lmxlbmd0aCA8PSAxKSByZXR1cm47XG5cbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE1vdmVCb29rbWFyayhtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRvTm9kZVNpYmxpbmdzKSByZXR1cm47XG5cbiAgICBjb25zdCBmcm9tTm9kZVByZXZpb3VzID0gaGFzTW92ZWRVcFRoZVRyZWUgPyB0b05vZGUucHJldmlvdXMgOiB0b05vZGUuaWQ7XG4gICAgbGV0IG1vdmVkQm9va21hcmtzID0gW3tcbiAgICAgIC4uLmZyb21Ob2RlLFxuICAgICAgcHJldmlvdXM6IHRvTm9kZS5pbmRleCA+IDAgPyBmcm9tTm9kZVByZXZpb3VzIDogdW5kZWZpbmVkLFxuICAgICAgcGFyZW50OiB0b05vZGVQYXJlbnRcbiAgICB9XTtcblxuICAgIGxldCBmcm9tTm9kZVNpYmxpbmcgPSB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKGZyb21Ob2RlU2libGluZ3MsIGZyb21JbmRleCArIDEpO1xuICAgIGNvbnN0IG5leHRGcm9taW5kZXggPSBmcm9tSW5kZXggKyAxO1xuICAgIGZyb21Ob2RlU2libGluZyA9IGZyb21Ob2RlU2libGluZyAmJiBmcm9tTm9kZVNpYmxpbmcuaWQgPT09IGZyb21Ob2RlLnByZXZpb3VzID8gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyhmcm9tTm9kZVNpYmxpbmdzLCBuZXh0RnJvbWluZGV4ICsgMSkgOiBmcm9tTm9kZVNpYmxpbmc7XG5cbiAgICBpZiAoZnJvbU5vZGVTaWJsaW5nKSB7XG4gICAgICBtb3ZlZEJvb2ttYXJrcyA9IFsuLi5tb3ZlZEJvb2ttYXJrcywgeyAuLi5mcm9tTm9kZVNpYmxpbmcsIHByZXZpb3VzOiBmcm9tTm9kZS5wcmV2aW91cyB9XTtcbiAgICB9XG5cblxuICAgIGxldCB0b05vZGVTaWJsaW5nSW5kZXggPSBoYXNNb3ZlZFVwVGhlVHJlZSA/IHRvSW5kZXggOiB0b0luZGV4ICsgMTtcbiAgICBsZXQgdG9Ob2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3ModG9Ob2RlU2libGluZ3MsIHRvTm9kZVNpYmxpbmdJbmRleCk7XG5cbiAgICBpZiAodG9Ob2RlU2libGluZykge1xuICAgICAgbW92ZWRCb29rbWFya3MgPSBbLi4ubW92ZWRCb29rbWFya3MsIHsgLi4udG9Ob2RlU2libGluZywgcHJldmlvdXM6IGZyb21Ob2RlLmlkIH1dO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0R1cHMgPSAobW92ZWRCb29rbWFya3MgYXMgQm9va21hcmtbXSkubWFwKHggPT4geC5pZCkuc29tZShmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBhcnJheSkge1xuICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YodmFsdWUpICE9PSBhcnJheS5sYXN0SW5kZXhPZih2YWx1ZSk7ICAgLy8gY29tcGFyaW5nIGZpcnN0IGFuZCBsYXN0IGluZGV4ZXMgb2YgdGhlIHNhbWUgdmFsdWVcbiAgICB9KVxuICAgIGlmIChoYXNEdXBzIHx8IG1vdmVkQm9va21hcmtzICYmIG1vdmVkQm9va21hcmtzLmxlbmd0aCA8PSAxKSByZXR1cm47XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBNb3ZlQm9va21hcmsobW92ZWRCb29rbWFya3MpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3Moc2libGluZzogQm9va21hcmtbXSwgaW5kZXgpIHtcbiAgICByZXR1cm4gc2libGluZy5sZW5ndGggPiBpbmRleCA/IHNpYmxpbmdbaW5kZXhdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZHJhZ1N0YXJ0KCkge1xuICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IGZhbHNlO1xuICAgIHRoaXMuaG92ZXJlZE5vZGUgPSBudWxsO1xuICAgIHRoaXMuaXNVc2VyZHJhZ2dpbmcgPSB0cnVlO1xuICB9XG5cbiAgZHJhZ0VuZCgpIHtcbiAgICB0aGlzLmlzVXNlcmRyYWdnaW5nID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuaG92ZXJIdG1sRWxlbWVudD8uc3R5bGUpIHtcbiAgICAgIHRoaXMuaG92ZXJIdG1sRWxlbWVudC5zdHlsZS5ib3JkZXJSaWdodCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGRyYWdIb3ZlcihldmVudDogYW55LCBub2RlOiBCb29rbWFyaykge1xuICAgIGlmICh0aGlzLmlzVXNlcmRyYWdnaW5nKSB7XG4gICAgICBjb25zdCBuZXdFdmVudDogYW55ID0gZXZlbnQ7XG4gICAgICBjb25zdCBwZXJjZW50YWdlWCA9IG5ld0V2ZW50Lm9mZnNldFggLyBuZXdFdmVudC50YXJnZXQuY2xpZW50V2lkdGg7XG4gICAgICBpZiAocGVyY2VudGFnZVggPiAuNTUpIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG5vZGU7XG4gICAgICAgIGlmICh0aGlzLmhvdmVySHRtbEVsZW1lbnQ/LnN0eWxlKSB7XG4gICAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50LnN0eWxlLmJvcmRlclJpZ2h0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50ID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50LnN0eWxlLmJvcmRlclJpZ2h0ID0gJzVweCBzb2xpZCAjMDA3YmZmJztcbiAgICAgICAgdGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaG92ZXJlZE5vZGUgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5ob3Zlckh0bWxFbGVtZW50Py5zdHlsZSkge1xuICAgICAgICAgIHRoaXMuaG92ZXJIdG1sRWxlbWVudC5zdHlsZS5ib3JkZXJSaWdodCA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRyYWdIb3ZlckVuZChldmVudDogYW55LCBub2RlOiBCb29rbWFyaykge1xuICAgIGlmICh0aGlzLmlzVXNlcmRyYWdnaW5nKSB7XG4gICAgICBpZiAoIW5vZGUgfHwgdGhpcy5ob3ZlcmVkTm9kZT8uaWQgIT09IG5vZGUuaWQpIHtcbiAgICAgICAgdGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmhvdmVySHRtbEVsZW1lbnQ/LnN0eWxlKSB7XG4gICAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50LnN0eWxlLmJvcmRlclJpZ2h0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Ob2RlRXhwYW5kKG5vZGU6IEJvb2ttYXJrKSB7XG4gICAgY29uc3QgaXNFeHBhbmRlZCA9IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKTtcbiAgICByZXR1cm4gaXNFeHBhbmRlZCA/IFwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItZXhwYW5kZWRcIiA6IFwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItY29sbGFwc2VkXCI7XG4gIH1cblxuICB2aXNpYmxlTm9kZXMoYm9va21hcmtzOiBCb29rbWFya1tdKTogQm9va21hcmtbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICBmdW5jdGlvbiBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGU6IEJvb2ttYXJrLCBleHBhbmRlZDogQm9va21hcmtbXSkge1xuICAgICAgcmVzdWx0LnB1c2gobm9kZSk7XG4gICAgICBpZiAoZXhwYW5kZWQuc29tZShib29rbWFyayA9PiBib29rbWFyayAmJiBib29rbWFyay5pZCA9PT0gbm9kZS5pZCkgJiYgbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBub2RlLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGFkZEV4cGFuZGVkQ2hpbGRyZW4oY2hpbGQsIGV4cGFuZGVkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGJvb2ttYXJrcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGUsIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5zaW9uTW9kZWwuc2VsZWN0ZWQpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kTm9kZVNpYmxpbmdzKGFycjogQXJyYXk8YW55PiwgaWQ6IHN0cmluZyk6IEFycmF5PGFueT4ge1xuICAgIGxldCByZXN1bHQsIHN1YlJlc3VsdDtcbiAgICBhcnIuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uaWQgPT09IGlkKSB7XG4gICAgICAgIHJlc3VsdCA9IGFycjtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbT8uY2hpbGRyZW4pIHtcbiAgICAgICAgc3ViUmVzdWx0ID0gdGhpcy5maW5kTm9kZVNpYmxpbmdzKGl0ZW0uY2hpbGRyZW4sIGlkKTtcbiAgICAgICAgaWYgKHN1YlJlc3VsdCkgcmVzdWx0ID0gc3ViUmVzdWx0O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWJ1aWxkVHJlZUZvckRhdGEoZGF0YTogYW55KSB7XG4gICAgdGhpcy5fYm9va21hcmtOb2RlcyA9IGRhdGEgPz8gW107XG4gICAgdGhpcy5kYXRhc291cmNlID0gbmV3IEFycmF5RGF0YVNvdXJjZSh0aGlzLl9ib29rbWFya05vZGVzKTtcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IE5lc3RlZFRyZWVDb250cm9sPEJvb2ttYXJrPihub2RlID0+IG5vZGUuY2hpbGRyZW4pO1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzID0gdGhpcy5fYm9va21hcmtOb2RlcztcbiAgICB0aGlzLmV4cGFuc2lvbk1vZGVsLnNlbGVjdGVkLmZvckVhY2goKGJvb2ttYXJrKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZCgobikgPT4gbi5pZCA9PT0gYm9va21hcmsuaWQpO1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQobm9kZSk7XG4gICAgfSk7XG4gICAgdGhpcy50cmVlSGFzQ2hhbmdlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgaXNUb05vZGVDaGlsZE9mRnJvbU5vZGUoZnJvbU5vZGVDaGlsZHJlbjogQm9va21hcmtbXSwgdG9Ob2RlOiBCb29rbWFyaykge1xuXG4gICAgaWYgKCFmcm9tTm9kZUNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXROb2RlKGZyb21Ob2RlQ2hpbGRyZW4sIHRvTm9kZS5pZCk7XG4gICAgcmV0dXJuIHJlc3VsdCA/IHRydWUgOiBmYWxzZTtcbiAgfVxufVxuIiwiPGEgKm5nSWY9XCJib29rbWFya05vZGVzPy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImhpZ2hsaWdodGVkT3V0bGluZUl0ZW1cIlxuICA+Tm8gYm9va21hcmtzIGNyZWF0ZWQgeWV0PC9hXG4+XG48Y2RrLXRyZWVcbiAgY2RrRHJvcExpc3RcbiAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWlzRHJhZ2dpbmdPblwiXG4gIGNsYXNzPVwiYm9va21hcmtzLXRyZWVcIlxuICAqbmdJZj1cImRhdGFzb3VyY2VcIlxuICBbZGF0YVNvdXJjZV09XCJkYXRhc291cmNlXCJcbiAgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuPlxuICA8IS0tIFRoaXMgaXMgdGhlIHRyZWUgbm9kZSB0ZW1wbGF0ZSBmb3IgbGVhZiBub2RlcyAtLT5cbiAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlIGNsYXNzPVwibm9kZS13cmFwcGVyXCIgKmNka1RyZWVOb2RlRGVmPVwibGV0IG5vZGVcIj5cbiAgICA8ZGl2ICpuZ0lmPVwibm9kZS5pZCAhPT0gZWRpdGFibGVCb29rbWFyazsgZWxzZSBpbnB1dEJvb2ttYXJrXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibm9kZS1jb250ZW50LXdyYXBwZXIgbmVzdGVkLXRyZWUtbm9kZSBuZXN0LXRyZWUtbm9kZS1wYWRkaW5nXCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cImRyYWdIb3ZlcigkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwiZHJhZ0hvdmVyRW5kKCRldmVudCwgbm9kZSlcIlxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0KClcIlxuICAgICAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cImRyYWdFbmQoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdXRsaW5lSXRlbVwiPlxuICAgICAgICAgIDxhIChjbGljayk9XCJnb1RvQm9va21hcmsobm9kZSlcIj5cbiAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19yZW5hbWVcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0Qm9va21hcmsobm9kZS5pZClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19kZWxldGVcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVCb29rbWFyazIobm9kZSlcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm5vZGUtZHJvcC1zbG90XCI+PC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRCb29rbWFyaz5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBleHBhbmRhYmxlIG5vZGVzIC0tPlxuICA8Y2RrLW5lc3RlZC10cmVlLW5vZGVcbiAgICBjbGFzcz1cIm5vZGUtd3JhcHBlclwiXG4gICAgKmNka1RyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJub2RlLmlkICE9PSBlZGl0YWJsZUJvb2ttYXJrOyBlbHNlIGlucHV0Qm9va21hcmsyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibm9kZS1jb250ZW50LXdyYXBwZXIgbmVzdGVkLXRyZWUtbm9kZVwiXG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdEYXRhXT1cIm5vZGVcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJkcmFnSG92ZXIoJGV2ZW50LCBub2RlKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImRyYWdIb3ZlckVuZCgkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydCgpXCJcbiAgICAgICAgKGNka0RyYWdSZWxlYXNlZCk9XCJkcmFnRW5kKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3V0bGluZUl0ZW1cIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2RrVHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib25Ob2RlRXhwYW5kKG5vZGUpXCJcbiAgICAgICAgICAgID48c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlblwiPjwvc3BhblxuICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgPGEgKGNsaWNrKT1cImdvVG9Cb29rbWFyayhub2RlKVwiPlxuICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX3JlbmFtZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRCb29rbWFyayhub2RlLmlkKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2RlbGV0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUJvb2ttYXJrMihub2RlKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibm9kZS1kcm9wLXNsb3RcIj48L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNpbnB1dEJvb2ttYXJrMj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm5lc3RlZC10cmVlLW5vZGUtY2hpbGRyZW5cIiAqbmdJZj1cInRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgY2RrVHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG48L2Nkay10cmVlPlxuIl19
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuSixPQUFPLEtBQUssa0JBQWtCLE1BQU0sZ0RBQWdELENBQUM7QUFHckYsT0FBTyxLQUFLLFlBQVksTUFBTSxnREFBZ0QsQ0FBQztBQUUvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLElBQ0ksYUFBYSxDQUFDLEtBQWlC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a0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGNBQWM7MEVBT3BCLGFBQWE7c0JBRGhCLEtBQUs7Z0JBWUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2ttYXJrIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9zdG9yZS9tb2RlbHMvYm9va21hcmtzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDcmVhdGVCb29rbWFyaywgRGVsZXRlQm9va21hcmssIE1vdmVCb29rbWFyaywgVXBkYXRlQm9va21hcmssIFVwZGF0ZUJvb2ttYXJrU2Nyb2xsVG9wIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGJvb2ttYXJrc1NlbGVjdG9ycyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvYm9va21hcmsuc2VsZWN0b3JzJztcbmltcG9ydCB7IEFubm90YXRpb25TZXRTdGF0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL2Fubm90YXRpb25zLnJlZHVjZXInO1xuaW1wb3J0IHsgRG9jdW1lbnRQYWdlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL2RvY3VtZW50LnJlZHVjZXInO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0ICogYXMgZnJvbUJvb2ttYXJrcyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9ib29rbWFya3MucmVkdWNlcic7XG5pbXBvcnQgeyBnZXRCb29rbWFya0NoaWxkcmVuIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYm9va21hcmtzLXN0b3JlLXV0aWxzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBBcnJheURhdGFTb3VyY2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCwgTmVzdGVkVHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1ib29rbWFya3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYm9va21hcmtzLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIEJvb2ttYXJrc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpXG4gIHNldCBib29rbWFya05vZGVzKHZhbHVlOiBCb29rbWFya1tdKSB7XG4gICAgdGhpcy5yZWJ1aWxkVHJlZUZvckRhdGEodmFsdWUpO1xuICAgIGlmICh0aGlzLl9ib29rbWFya05vZGVzICYmIHRoaXMuc29ydE1vZGUgIT09IHRoaXMuY3VzdG9tU29ydCkge1xuICAgICAgdGhpcy5zb3J0Qm9va21hcmtzKCk7XG4gICAgfVxuICB9O1xuXG4gIGdldCBib29rbWFya05vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9ib29rbWFya05vZGVzO1xuICB9O1xuXG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhcmVudFNjcm9sbFRvcDogbnVtYmVyO1xuICBAT3V0cHV0KCkgZ29Ub0Rlc3RpbmF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIHRyZWVIYXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgcHJpdmF0ZSBfYm9va21hcmtOb2RlczogQm9va21hcmtbXSA9IFtdO1xuICBkYXRhc291cmNlOiBBcnJheURhdGFTb3VyY2U8Qm9va21hcms+O1xuICB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPEJvb2ttYXJrPjtcbiAgaG92ZXJlZE5vZGU6IEJvb2ttYXJrO1xuICBob3Zlckh0bWxFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgLy8gZXhwYW5zaW9uIG1vZGVsIHRyYWNrcyBleHBhbnNpb24gc3RhdGVcbiAgZXhwYW5zaW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8Qm9va21hcms+KHRydWUpO1xuICBpc0RyYWdnaW5nT24gPSBmYWxzZTtcbiAgaXNVc2VyZHJhZ2dpbmcgPSBmYWxzZTtcbiAgZXhwYW5kVGltZW91dDogYW55O1xuICBleHBhbmREZWxheSA9IDEwMDA7XG4gIGRyYWdOb2RlSW5zZXJ0VG9QYXJlbnQ6IGJvb2xlYW47XG5cbiAgcGFnZUxvb2t1cDogeyBbcGFnZUlkOiBudW1iZXJdOiBEb2N1bWVudFBhZ2VzIH0gPSB7fTtcbiAgZWRpdGFibGVCb29rbWFyazogc3RyaW5nO1xuICBCT09LTUFSS19DSEFSX0xJTUlUID0gMzA7XG5cbiAgZHJhZ05vZGU6IGFueTtcbiAgZHJhZ05vZGVFeHBhbmRPdmVyV2FpdFRpbWVNcyA9IDMwMDtcbiAgZHJhZ05vZGVFeHBhbmRPdmVyTm9kZTogYW55O1xuICBkcmFnTm9kZUV4cGFuZE92ZXJUaW1lOiBudW1iZXI7XG4gIGRyYWdOb2RlRXhwYW5kT3ZlckFyZWE6IG51bWJlcjtcblxuXG4gIG9wdGlvbnMgPSB7XG4gICAgYWxsb3dEcmFnOiB0cnVlLFxuICAgIGFsbG93RHJvcDogdHJ1ZVxuICB9O1xuXG4gICRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNvcnRNb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tU29ydCA9ICdDVVNUT00nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wb3NpdGlvblNvcnQgPSAnUE9TSVRJT04nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21Cb29rbWFya3MuQm9va21hcmtzU3RhdGUgfCBBbm5vdGF0aW9uU2V0U3RhdGU+KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRNb2RlID0gdGhpcy5jdXN0b21Tb3J0O1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEVkaXRhYmxlQm9va21hcmspKVxuICAgICAgLnN1YnNjcmliZShlZGl0YWJsZUlkID0+IHRoaXMuZWRpdGFibGVCb29rbWFyayA9IGVkaXRhYmxlSWQpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5zZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKVxuICAgICAgLnN1YnNjcmliZShwYWdlcyA9PiB7XG5cbiAgICAgICAgT2JqZWN0LmtleXMocGFnZXMpLm1hcChrZXkgPT4ge1xuICAgICAgICAgIHRoaXMucGFnZUxvb2t1cFtrZXldID0gcGFnZXNba2V5XTtcbiAgICAgICAgfSk7XG5cbiAgICAgIH0pKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcz8uYm9va21hcmtOb2Rlcykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZUJvb2ttYXJrU2Nyb2xsVG9wKHRoaXMucGFyZW50U2Nyb2xsVG9wKSk7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZWRpdEJvb2ttYXJrKGlkKSB7XG4gICAgdGhpcy5lZGl0YWJsZUJvb2ttYXJrID0gaWQ7XG4gIH1cblxuICBvbkFkZEJvb2ttYXJrQ2xpY2soKSB7XG4gICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChib29rbWFya3NTZWxlY3RvcnMuZ2V0Qm9va21hcmtJbmZvKSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGJvb2ttYXJrSW5mbykgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBDcmVhdGVCb29rbWFyayh7XG4gICAgICAgICAgLi4uYm9va21hcmtJbmZvLCBuYW1lOiAnJywgaWQ6IHV1aWQoKVxuICAgICAgICB9IGFzIGFueSkpO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGVCb29rbWFyazIobm9kZTogQm9va21hcmspIHtcbiAgICB0aGlzLmN1c3RvbVNvcnRCb29rbWFya3MoKTtcbiAgICBsZXQgbmV4dDogQm9va21hcms7XG5cbiAgICBjb25zdCBjaGFuZ2VkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ib29rbWFya05vZGVzKSk7XG4gICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLmZpbmROb2RlU2libGluZ3MoY2hhbmdlZERhdGEsIG5vZGUuaWQpO1xuICAgIGlmIChzaWJsaW5ncyAmJiBzaWJsaW5ncy5sZW5ndGggPiBub2RlLmluZGV4ICsgMSkge1xuICAgICAgbmV4dCA9IHNpYmxpbmdzW25vZGUuaW5kZXggKyAxXTtcbiAgICAgIG5leHQucHJldmlvdXMgPSBub2RlLnByZXZpb3VzO1xuICAgIH1cbiAgICBjb25zdCB0b0RlbGV0ZSA9IFtub2RlLmlkLCAuLi5nZXRCb29rbWFya0NoaWxkcmVuKG5vZGUuY2hpbGRyZW4pXTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBEZWxldGVCb29rbWFyayh7XG4gICAgICBkZWxldGVkOiB0b0RlbGV0ZSwgdXBkYXRlZDogbmV4dFxuICAgIH0pKTtcbiAgfVxuXG4gIHVwZGF0ZUJvb2ttYXJrKGJvb2ttYXJrOiBCb29rbWFyaywgbmFtZSkge1xuICAgIGNvbnN0IGVkaXRlZEJvb2ttYXJrID0ge1xuICAgICAgLi4uYm9va21hcmssXG4gICAgICBuYW1lXG4gICAgfTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQm9va21hcmsoZWRpdGVkQm9va21hcmspKTtcbiAgICAgIHRoaXMuZWRpdGFibGVCb29rbWFyayA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBnb1RvQm9va21hcmsoYm9va21hcms6IEJvb2ttYXJrKSB7XG4gICAgY29uc3QgdGhpc1BhZ2UgPSB0aGlzLnBhZ2VMb29rdXBbYm9va21hcmsucGFnZU51bWJlciArIDFdO1xuICAgIGNvbnN0IGRlZmF1bHRIZWlnaHQgPSB0aGlzUGFnZS5zdHlsZXMuaGVpZ2h0O1xuICAgIGNvbnN0IGRlZmF1bHRTY2FsZVkgPSB0aGlzLnNjYWxlZFkoYm9va21hcmsueUNvb3JkaW5hdGUsIGRlZmF1bHRIZWlnaHQsIHRoaXNQYWdlKTtcblxuICAgIGxldCB0b3AgPSAwLCBsZWZ0ID0gMDtcbiAgICBzd2l0Y2ggKHRoaXMucm90YXRlKSB7XG4gICAgICBjYXNlIDkwOlxuICAgICAgICBsZWZ0ID0gLSBkZWZhdWx0U2NhbGVZO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOlxuICAgICAgICB0b3AgPSB0aGlzLnNjYWxlZFkoYm9va21hcmsueUNvb3JkaW5hdGUsIChkZWZhdWx0SGVpZ2h0IC0gKDI0ICogdGhpcy56b29tKSksIHRoaXNQYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI3MDpcbiAgICAgICAgbGVmdCA9IGRlZmF1bHRTY2FsZVk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdG9wID0gZGVmYXVsdFNjYWxlWTtcbiAgICB9XG5cbiAgICB0aGlzLmdvVG9EZXN0aW5hdGlvbi5lbWl0KFtcbiAgICAgIGJvb2ttYXJrLnBhZ2VOdW1iZXIsXG4gICAgICB7ICduYW1lJzogJ1hZWicgfSxcbiAgICAgIGxlZnQsXG4gICAgICB0b3BcbiAgICBdKTtcbiAgfVxuXG4gIGdldCBjdXN0b21Tb3J0KCkge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21Tb3J0O1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uU29ydCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25Tb3J0O1xuICB9XG5cbiAgc29ydChtb2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRNb2RlID0gbW9kZTtcbiAgICB0aGlzLnNvcnRCb29rbWFya3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydEJvb2ttYXJrcygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuc29ydE1vZGUpIHtcbiAgICAgIGNhc2UgdGhpcy5jdXN0b21Tb3J0OiB7XG4gICAgICAgIHRoaXMuY3VzdG9tU29ydEJvb2ttYXJrcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgdGhpcy5wb3NpdGlvblNvcnQ6IHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblNvcnRCb29rbWFya3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMuY3VzdG9tU29ydEJvb2ttYXJrcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uU29ydEJvb2ttYXJrcygpIHtcbiAgICB0aGlzLmJvb2ttYXJrTm9kZXMuc29ydCgoYSwgYikgPT4gYS5wYWdlTnVtYmVyID09PSBiLnBhZ2VOdW1iZXIgPyBhLnlDb29yZGluYXRlIC0gYi55Q29vcmRpbmF0ZSA6IGEucGFnZU51bWJlciAtIGIucGFnZU51bWJlcik7XG4gICAgdGhpcy5pc0RyYWdnaW5nT24gPSBmYWxzZTtcbiAgICB0aGlzLnJlYnVpbGRUcmVlRm9yRGF0YSh0aGlzLmJvb2ttYXJrTm9kZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXN0b21Tb3J0Qm9va21hcmtzKCkge1xuICAgIGlmICh0aGlzLmJvb2ttYXJrTm9kZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5ib29rbWFya05vZGVzLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KTtcbiAgICB9XG4gICAgdGhpcy5pc0RyYWdnaW5nT24gPSB0cnVlO1xuICAgIHRoaXMucmVidWlsZFRyZWVGb3JEYXRhKHRoaXMuYm9va21hcmtOb2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIHNjYWxlZFkoeUNvb3JkaW5hdGU6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHBhZ2U6IERvY3VtZW50UGFnZXMpOiBudW1iZXIge1xuICAgIGNvbnN0IHZpZXdwb3J0U2NhbGUgPSBwYWdlLnZpZXdwb3J0U2NhbGUgLyB0aGlzLnpvb207XG4gICAgcmV0dXJuICgoaGVpZ2h0IC8gdGhpcy56b29tKSAtIHlDb29yZGluYXRlKSAvIHZpZXdwb3J0U2NhbGU7XG4gIH1cblxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEJvb2ttYXJrKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0Tm9kZShib29rbWFya3MsIHBhcmVudElkKSB7XG4gICAgaWYgKHR5cGVvZiBib29rbWFya3MgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJvb2ttYXJrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYm9va21hcmtzW2ldLmlkID09PSBwYXJlbnRJZCkge1xuICAgICAgICAgIHJldHVybiBbYm9va21hcmtzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhID0gdGhpcy5nZXROb2RlKGJvb2ttYXJrc1tpXS5jaGlsZHJlbiwgcGFyZW50SWQpO1xuICAgICAgICBpZiAoYSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8Qm9va21hcms+KSB7XG5cbiAgICBpZiAoIWV2ZW50LmlzUG9pbnRlck92ZXJDb250YWluZXIgfHwgKGV2ZW50LnByZXZpb3VzSW5kZXggPT09IGV2ZW50LmN1cnJlbnRJbmRleCkpIHJldHVybjtcblxuICAgIGNvbnN0IGhhc01vdmVkVXBUaGVUcmVlID0gZXZlbnQucHJldmlvdXNJbmRleCA+IGV2ZW50LmN1cnJlbnRJbmRleDtcbiAgICBjb25zdCBib29rbWFya05vZGVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5fYm9va21hcmtOb2Rlcyk7XG4gICAgY29uc3QgY2hhbmdlZERhdGEgPSBKU09OLnBhcnNlKGJvb2ttYXJrTm9kZXNTdHJpbmcpO1xuICAgIGNvbnN0IHZpc2libGVOb2RlcyA9IHRoaXMudmlzaWJsZU5vZGVzKHRoaXMuX2Jvb2ttYXJrTm9kZXMpO1xuICAgIGNvbnN0IHRvTm9kZSA9IHZpc2libGVOb2Rlc1tldmVudC5jdXJyZW50SW5kZXhdIGFzIEJvb2ttYXJrO1xuICAgIGNvbnN0IHRvTm9kZVNpYmxpbmdzID0gdGhpcy5maW5kTm9kZVNpYmxpbmdzKGNoYW5nZWREYXRhLCB0b05vZGUuaWQpO1xuXG4gICAgY29uc3QgdG9Ob2RlUGFyZW50ID0gdG9Ob2RlU2libGluZ3NbMF0ucGFyZW50O1xuICAgIGNvbnN0IHRvSW5kZXggPSB0b05vZGVTaWJsaW5ncy5maW5kSW5kZXgocyA9PiBzLmlkID09PSB0b05vZGUuaWQpO1xuXG4gICAgY29uc3QgZnJvbU5vZGUgPSBldmVudC5pdGVtLmRhdGEgYXMgQm9va21hcms7XG4gICAgY29uc3QgZnJvbU5vZGVTaWJsaW5ncyA9IHRoaXMuZmluZE5vZGVTaWJsaW5ncyhjaGFuZ2VkRGF0YSwgZnJvbU5vZGUuaWQpO1xuICAgIGNvbnN0IGZyb21JbmRleCA9IGZyb21Ob2RlU2libGluZ3MuZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gZnJvbU5vZGUuaWQpO1xuXG4gICAgaWYgKHRoaXMuaXNUb05vZGVDaGlsZE9mRnJvbU5vZGUoZnJvbU5vZGU/LmNoaWxkcmVuLCB0b05vZGUpKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50KSB7XG5cbiAgICAgIGNvbnN0IGluZGV4T2ZQYXJlbnQgPSB0b05vZGVTaWJsaW5ncy5maW5kSW5kZXgoZWxlbWVudCA9PiBlbGVtZW50LmlkID09PSB0b05vZGUuaWQpO1xuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHRvTm9kZVNpYmxpbmdzW2luZGV4T2ZQYXJlbnRdO1xuICAgICAgY29uc3QgZmlyc3RDaGlsZCA9IHBhcmVudE5vZGU/LmNoaWxkcmVuICYmIHBhcmVudE5vZGU/LmNoaWxkcmVuLmxlbmd0aCA+IDAgPyBwYXJlbnROb2RlLmNoaWxkcmVuWzBdIDogbnVsbDtcbiAgICAgIGxldCBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbeyAuLi5mcm9tTm9kZSwgcGFyZW50OiBwYXJlbnROb2RlLmlkLCBwcmV2aW91czogbnVsbCB9XTtcblxuICAgICAgaWYgKGZpcnN0Q2hpbGQpIHtcbiAgICAgICAgbW92ZWRCb29rbWFya3NXaXRoUGFyZW50ID0gWy4uLm1vdmVkQm9va21hcmtzV2l0aFBhcmVudCwgeyAuLi5maXJzdENoaWxkLCBwcmV2aW91czogZnJvbU5vZGUuaWQgfV07XG4gICAgICB9XG5cbiAgICAgIGxldCBmcm9tTm9kZVNpYmxpbmcgPSB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKGZyb21Ob2RlU2libGluZ3MsIGZyb21JbmRleCArIDEpO1xuICAgICAgY29uc3QgbmV4dEZyb21pbmRleGZvclBhcmVudCA9IGZyb21JbmRleCArIDE7XG4gICAgICBmcm9tTm9kZVNpYmxpbmcgPSBmcm9tTm9kZVNpYmxpbmcgJiYgZnJvbU5vZGVTaWJsaW5nLmlkID09PSBmcm9tTm9kZS5wcmV2aW91cyA/IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3MoZnJvbU5vZGVTaWJsaW5ncywgbmV4dEZyb21pbmRleGZvclBhcmVudCArIDEpIDogZnJvbU5vZGVTaWJsaW5nO1xuXG4gICAgICBpZiAoZnJvbU5vZGVTaWJsaW5nICYmIGZyb21Ob2RlU2libGluZy5pZCAhPT0gcGFyZW50Tm9kZS5pZCkge1xuICAgICAgICBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbLi4ubW92ZWRCb29rbWFya3NXaXRoUGFyZW50LCB7IC4uLmZyb21Ob2RlU2libGluZywgcHJldmlvdXM6IGZyb21Ob2RlLnByZXZpb3VzIH1dO1xuICAgICAgfVxuXG4gICAgICBsZXQgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggPSB0b0luZGV4IC0gMTtcbiAgICAgIGxldCBwYXJlbnROb2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3ModG9Ob2RlU2libGluZ3MsIHByZXZpb3VzU2libGluZ0ZvclBhcmVudEluZGV4KTtcblxuICAgICAgaWYgKHBhcmVudE5vZGVTaWJsaW5nICYmIHBhcmVudE5vZGVTaWJsaW5nLmlkID09IGZyb21Ob2RlLmlkKSB7XG4gICAgICAgIHByZXZpb3VzU2libGluZ0ZvclBhcmVudEluZGV4ID0gcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggLSAxO1xuICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggPj0gMCkge1xuICAgICAgICAgIHBhcmVudE5vZGVTaWJsaW5nID0gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyh0b05vZGVTaWJsaW5ncywgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHBhcmVudE5vZGVTaWJsaW5nID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbLi4ubW92ZWRCb29rbWFya3NXaXRoUGFyZW50LCB7IC4uLnBhcmVudE5vZGUsIHByZXZpb3VzOiBwYXJlbnROb2RlU2libGluZz8uaWQgfV07XG5cbiAgICAgIGNvbnN0IGhhc1BhcmVudER1cHMgPSAobW92ZWRCb29rbWFya3NXaXRoUGFyZW50IGFzIEJvb2ttYXJrW10pLm1hcCh4ID0+IHguaWQpLnNvbWUoZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLnNvbWUgd2lsbCBicmVhayBhcyBzb29uIGFzIGR1cGxpY2F0ZSBmb3VuZCAobm8gbmVlZCB0byBpdHRlcmF0ZSBvdmVyIGFsbCBhcnJheSlcbiAgICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YodmFsdWUpICE9PSBhcnJheS5sYXN0SW5kZXhPZih2YWx1ZSk7ICAgLy8gY29tcGFyaW5nIGZpcnN0IGFuZCBsYXN0IGluZGV4ZXMgb2YgdGhlIHNhbWUgdmFsdWVcbiAgICAgIH0pXG4gICAgICBpZiAoaGFzUGFyZW50RHVwcyB8fCBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgJiYgbW92ZWRCb29rbWFya3NXaXRoUGFyZW50Lmxlbmd0aCA8PSAxKSByZXR1cm47XG5cbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE1vdmVCb29rbWFyayhtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRvTm9kZVNpYmxpbmdzKSByZXR1cm47XG5cbiAgICBjb25zdCBmcm9tTm9kZVByZXZpb3VzID0gaGFzTW92ZWRVcFRoZVRyZWUgPyB0b05vZGUucHJldmlvdXMgOiB0b05vZGUuaWQ7XG4gICAgbGV0IG1vdmVkQm9va21hcmtzID0gW3tcbiAgICAgIC4uLmZyb21Ob2RlLFxuICAgICAgcHJldmlvdXM6IHRvTm9kZS5pbmRleCA+IDAgPyBmcm9tTm9kZVByZXZpb3VzIDogdW5kZWZpbmVkLFxuICAgICAgcGFyZW50OiB0b05vZGVQYXJlbnRcbiAgICB9XTtcblxuICAgIGxldCBmcm9tTm9kZVNpYmxpbmcgPSB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKGZyb21Ob2RlU2libGluZ3MsIGZyb21JbmRleCArIDEpO1xuICAgIGNvbnN0IG5leHRGcm9taW5kZXggPSBmcm9tSW5kZXggKyAxO1xuICAgIGZyb21Ob2RlU2libGluZyA9IGZyb21Ob2RlU2libGluZyAmJiBmcm9tTm9kZVNpYmxpbmcuaWQgPT09IGZyb21Ob2RlLnByZXZpb3VzID8gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyhmcm9tTm9kZVNpYmxpbmdzLCBuZXh0RnJvbWluZGV4ICsgMSkgOiBmcm9tTm9kZVNpYmxpbmc7XG5cbiAgICBpZiAoZnJvbU5vZGVTaWJsaW5nKSB7XG4gICAgICBtb3ZlZEJvb2ttYXJrcyA9IFsuLi5tb3ZlZEJvb2ttYXJrcywgeyAuLi5mcm9tTm9kZVNpYmxpbmcsIHByZXZpb3VzOiBmcm9tTm9kZS5wcmV2aW91cyB9XTtcbiAgICB9XG5cblxuICAgIGxldCB0b05vZGVTaWJsaW5nSW5kZXggPSBoYXNNb3ZlZFVwVGhlVHJlZSA/IHRvSW5kZXggOiB0b0luZGV4ICsgMTtcbiAgICBsZXQgdG9Ob2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3ModG9Ob2RlU2libGluZ3MsIHRvTm9kZVNpYmxpbmdJbmRleCk7XG5cbiAgICBpZiAodG9Ob2RlU2libGluZykge1xuICAgICAgbW92ZWRCb29rbWFya3MgPSBbLi4ubW92ZWRCb29rbWFya3MsIHsgLi4udG9Ob2RlU2libGluZywgcHJldmlvdXM6IGZyb21Ob2RlLmlkIH1dO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0R1cHMgPSAobW92ZWRCb29rbWFya3MgYXMgQm9va21hcmtbXSkubWFwKHggPT4geC5pZCkuc29tZShmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBhcnJheSkge1xuICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YodmFsdWUpICE9PSBhcnJheS5sYXN0SW5kZXhPZih2YWx1ZSk7ICAgLy8gY29tcGFyaW5nIGZpcnN0IGFuZCBsYXN0IGluZGV4ZXMgb2YgdGhlIHNhbWUgdmFsdWVcbiAgICB9KVxuICAgIGlmIChoYXNEdXBzIHx8IG1vdmVkQm9va21hcmtzICYmIG1vdmVkQm9va21hcmtzLmxlbmd0aCA8PSAxKSByZXR1cm47XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBNb3ZlQm9va21hcmsobW92ZWRCb29rbWFya3MpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3Moc2libGluZzogQm9va21hcmtbXSwgaW5kZXgpIHtcbiAgICByZXR1cm4gc2libGluZy5sZW5ndGggPiBpbmRleCA/IHNpYmxpbmdbaW5kZXhdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZHJhZ1N0YXJ0KCkge1xuICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IGZhbHNlO1xuICAgIHRoaXMuaG92ZXJlZE5vZGUgPSBudWxsO1xuICAgIHRoaXMuaXNVc2VyZHJhZ2dpbmcgPSB0cnVlO1xuICB9XG5cbiAgZHJhZ0VuZCgpIHtcbiAgICB0aGlzLmlzVXNlcmRyYWdnaW5nID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuaG92ZXJIdG1sRWxlbWVudD8uc3R5bGUpIHtcbiAgICAgIHRoaXMuaG92ZXJIdG1sRWxlbWVudC5zdHlsZS5ib3JkZXJSaWdodCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGRyYWdIb3ZlcihldmVudDogYW55LCBub2RlOiBCb29rbWFyaykge1xuICAgIGlmICh0aGlzLmlzVXNlcmRyYWdnaW5nKSB7XG4gICAgICBjb25zdCBuZXdFdmVudDogYW55ID0gZXZlbnQ7XG4gICAgICBjb25zdCBwZXJjZW50YWdlWCA9IG5ld0V2ZW50Lm9mZnNldFggLyBuZXdFdmVudC50YXJnZXQuY2xpZW50V2lkdGg7XG4gICAgICBpZiAocGVyY2VudGFnZVggPiAuNTUpIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG5vZGU7XG4gICAgICAgIGlmICh0aGlzLmhvdmVySHRtbEVsZW1lbnQ/LnN0eWxlKSB7XG4gICAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50LnN0eWxlLmJvcmRlclJpZ2h0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50ID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50LnN0eWxlLmJvcmRlclJpZ2h0ID0gJzVweCBzb2xpZCAjMDA3YmZmJztcbiAgICAgICAgdGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaG92ZXJlZE5vZGUgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5ob3Zlckh0bWxFbGVtZW50Py5zdHlsZSkge1xuICAgICAgICAgIHRoaXMuaG92ZXJIdG1sRWxlbWVudC5zdHlsZS5ib3JkZXJSaWdodCA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRyYWdIb3ZlckVuZChldmVudDogYW55LCBub2RlOiBCb29rbWFyaykge1xuICAgIGlmICh0aGlzLmlzVXNlcmRyYWdnaW5nKSB7XG4gICAgICBpZiAoIW5vZGUgfHwgdGhpcy5ob3ZlcmVkTm9kZT8uaWQgIT09IG5vZGUuaWQpIHtcbiAgICAgICAgdGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmhvdmVySHRtbEVsZW1lbnQ/LnN0eWxlKSB7XG4gICAgICAgICAgdGhpcy5ob3Zlckh0bWxFbGVtZW50LnN0eWxlLmJvcmRlclJpZ2h0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Ob2RlRXhwYW5kKG5vZGU6IEJvb2ttYXJrKSB7XG4gICAgY29uc3QgaXNFeHBhbmRlZCA9IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKTtcbiAgICByZXR1cm4gaXNFeHBhbmRlZCA/IFwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItZXhwYW5kZWRcIiA6IFwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItY29sbGFwc2VkXCI7XG4gIH1cblxuICB2aXNpYmxlTm9kZXMoYm9va21hcmtzOiBCb29rbWFya1tdKTogQm9va21hcmtbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICBmdW5jdGlvbiBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGU6IEJvb2ttYXJrLCBleHBhbmRlZDogQm9va21hcmtbXSkge1xuICAgICAgcmVzdWx0LnB1c2gobm9kZSk7XG4gICAgICBpZiAoZXhwYW5kZWQuc29tZShib29rbWFyayA9PiBib29rbWFyayAmJiBib29rbWFyay5pZCA9PT0gbm9kZS5pZCkgJiYgbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBub2RlLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGFkZEV4cGFuZGVkQ2hpbGRyZW4oY2hpbGQsIGV4cGFuZGVkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGJvb2ttYXJrcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGUsIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5zaW9uTW9kZWwuc2VsZWN0ZWQpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kTm9kZVNpYmxpbmdzKGFycjogQXJyYXk8YW55PiwgaWQ6IHN0cmluZyk6IEFycmF5PGFueT4ge1xuICAgIGxldCByZXN1bHQsIHN1YlJlc3VsdDtcbiAgICBhcnIuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uaWQgPT09IGlkKSB7XG4gICAgICAgIHJlc3VsdCA9IGFycjtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbT8uY2hpbGRyZW4pIHtcbiAgICAgICAgc3ViUmVzdWx0ID0gdGhpcy5maW5kTm9kZVNpYmxpbmdzKGl0ZW0uY2hpbGRyZW4sIGlkKTtcbiAgICAgICAgaWYgKHN1YlJlc3VsdCkgcmVzdWx0ID0gc3ViUmVzdWx0O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWJ1aWxkVHJlZUZvckRhdGEoZGF0YTogYW55KSB7XG4gICAgdGhpcy5fYm9va21hcmtOb2RlcyA9IGRhdGEgPz8gW107XG4gICAgdGhpcy5kYXRhc291cmNlID0gbmV3IEFycmF5RGF0YVNvdXJjZSh0aGlzLl9ib29rbWFya05vZGVzKTtcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IE5lc3RlZFRyZWVDb250cm9sPEJvb2ttYXJrPihub2RlID0+IG5vZGUuY2hpbGRyZW4pO1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzID0gdGhpcy5fYm9va21hcmtOb2RlcztcbiAgICB0aGlzLmV4cGFuc2lvbk1vZGVsLnNlbGVjdGVkLmZvckVhY2goKGJvb2ttYXJrKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZCgobikgPT4gbi5pZCA9PT0gYm9va21hcmsuaWQpO1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQobm9kZSk7XG4gICAgfSk7XG4gICAgdGhpcy50cmVlSGFzQ2hhbmdlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgaXNUb05vZGVDaGlsZE9mRnJvbU5vZGUoZnJvbU5vZGVDaGlsZHJlbjogQm9va21hcmtbXSwgdG9Ob2RlOiBCb29rbWFyaykge1xuXG4gICAgaWYgKCFmcm9tTm9kZUNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXROb2RlKGZyb21Ob2RlQ2hpbGRyZW4sIHRvTm9kZS5pZCk7XG4gICAgcmV0dXJuIHJlc3VsdCA/IHRydWUgOiBmYWxzZTtcbiAgfVxufVxuIiwiPGEgKm5nSWY9XCJib29rbWFya05vZGVzPy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImhpZ2hsaWdodGVkT3V0bGluZUl0ZW1cIlxuICA+Tm8gYm9va21hcmtzIGNyZWF0ZWQgeWV0PC9hXG4+XG48Y2RrLXRyZWVcbiAgY2RrRHJvcExpc3RcbiAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIWlzRHJhZ2dpbmdPblwiXG4gIGNsYXNzPVwiYm9va21hcmtzLXRyZWVcIlxuICAqbmdJZj1cImRhdGFzb3VyY2VcIlxuICBbZGF0YVNvdXJjZV09XCJkYXRhc291cmNlXCJcbiAgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuPlxuICA8IS0tIFRoaXMgaXMgdGhlIHRyZWUgbm9kZSB0ZW1wbGF0ZSBmb3IgbGVhZiBub2RlcyAtLT5cbiAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlIGNsYXNzPVwibm9kZS13cmFwcGVyXCIgKmNka1RyZWVOb2RlRGVmPVwibGV0IG5vZGVcIj5cbiAgICA8ZGl2ICpuZ0lmPVwibm9kZS5pZCAhPT0gZWRpdGFibGVCb29rbWFyazsgZWxzZSBpbnB1dEJvb2ttYXJrXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibm9kZS1jb250ZW50LXdyYXBwZXIgbmVzdGVkLXRyZWUtbm9kZSBuZXN0LXRyZWUtbm9kZS1wYWRkaW5nXCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIuYm9va21hcmtzLXRyZWVcIlxuICAgICAgICBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cImRyYWdIb3ZlcigkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwiZHJhZ0hvdmVyRW5kKCRldmVudCwgbm9kZSlcIlxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0KClcIlxuICAgICAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cImRyYWdFbmQoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdXRsaW5lSXRlbVwiPlxuICAgICAgICAgIDxhIChjbGljayk9XCJnb1RvQm9va21hcmsobm9kZSlcIj5cbiAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19yZW5hbWVcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0Qm9va21hcmsobm9kZS5pZClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19kZWxldGVcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVCb29rbWFyazIobm9kZSlcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm5vZGUtZHJvcC1zbG90XCI+PC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRCb29rbWFyaz5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBleHBhbmRhYmxlIG5vZGVzIC0tPlxuICA8Y2RrLW5lc3RlZC10cmVlLW5vZGVcbiAgICBjbGFzcz1cIm5vZGUtd3JhcHBlclwiXG4gICAgKmNka1RyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJub2RlLmlkICE9PSBlZGl0YWJsZUJvb2ttYXJrOyBlbHNlIGlucHV0Qm9va21hcmsyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibm9kZS1jb250ZW50LXdyYXBwZXIgbmVzdGVkLXRyZWUtbm9kZVwiXG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdEYXRhXT1cIm5vZGVcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJkcmFnSG92ZXIoJGV2ZW50LCBub2RlKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImRyYWdIb3ZlckVuZCgkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydCgpXCJcbiAgICAgICAgKGNka0RyYWdSZWxlYXNlZCk9XCJkcmFnRW5kKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3V0bGluZUl0ZW1cIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2RrVHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib25Ob2RlRXhwYW5kKG5vZGUpXCJcbiAgICAgICAgICAgID48c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlblwiPjwvc3BhblxuICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgPGEgKGNsaWNrKT1cImdvVG9Cb29rbWFyayhub2RlKVwiPlxuICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX3JlbmFtZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRCb29rbWFyayhub2RlLmlkKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2RlbGV0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUJvb2ttYXJrMihub2RlKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibm9kZS1kcm9wLXNsb3RcIj48L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNpbnB1dEJvb2ttYXJrMj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm5lc3RlZC10cmVlLW5vZGUtY2hpbGRyZW5cIiAqbmdJZj1cInRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgY2RrVHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG48L2Nkay10cmVlPlxuIl19
|
|
@@ -29,10 +29,10 @@ export class OutlineItemComponent {
|
|
|
29
29
|
showHighlightOutlineCss() {
|
|
30
30
|
return this.isCurrentSection ? 'highlightedOutlineItem' : 'outlineItem';
|
|
31
31
|
}
|
|
32
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
33
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
32
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OutlineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OutlineItemComponent, selector: "mv-outline-item", inputs: { outline: "outline", currentPageNumber: "currentPageNumber", isCurrentSection: "isCurrentSection", endPage: "endPage" }, outputs: { navigationEvent: "navigationEvent" }, ngImport: i0, template: "<div class=\"outlineItem\">\n <div *ngIf=\"outline.items.length > 0\"\n [ngClass]=\"{ 'outlineItemToggler': true, 'outlineItemsHidden': !showOutlineItems }\"\n (click)=\"toggleOutline()\"\n (keyup.enter)=\"toggleOutline()\" tabindex=\"0\"></div>\n <a (click)=\"goToDestination(outline?.dest)\"\n (keyup.enter)=\"goToDestination(outline?.dest)\"\n [style.font-weight]=\"outline.bold ? 'bold' : ''\"\n [style.font-style]=\"outline.italic ? 'italic' : ''\"\n [ngClass]=\"showHighlightOutlineCss()\"\n tabindex=\"0\">\n <div style=\"text-align:left;\" [ngClass]=\"showHighlightOutlineCss()\">\n {{ outline.title }}\n <span style=\"float:right;\">\n {{ outline.pageNumber }}\n </span>\n </div>\n </a>\n \n <div *ngIf=\"outline.items.length > 0\" class=\"outlineItems\">\n <div *ngFor=\"let outlineItem of outline.items; index as i\">\n <mv-outline-item\n [outline]=\"outlineItem\" \n [currentPageNumber]= \"currentPageNumber\" \n [isCurrentSection]= \"isViewedItem(outlineItem, outline.items[i+1])\"\n [endPage]=\"findEndPage(outline.items[i+1])\"\n (navigationEvent)=\"goToDestination($event)\">\n </mv-outline-item>\n </div>\n </div>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OutlineItemComponent, selector: "mv-outline-item", inputs: ["outline", "currentPageNumber", "isCurrentSection", "endPage"], outputs: ["navigationEvent"] }] }); }
|
|
34
34
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OutlineItemComponent, decorators: [{
|
|
36
36
|
type: Component,
|
|
37
37
|
args: [{ selector: 'mv-outline-item', template: "<div class=\"outlineItem\">\n <div *ngIf=\"outline.items.length > 0\"\n [ngClass]=\"{ 'outlineItemToggler': true, 'outlineItemsHidden': !showOutlineItems }\"\n (click)=\"toggleOutline()\"\n (keyup.enter)=\"toggleOutline()\" tabindex=\"0\"></div>\n <a (click)=\"goToDestination(outline?.dest)\"\n (keyup.enter)=\"goToDestination(outline?.dest)\"\n [style.font-weight]=\"outline.bold ? 'bold' : ''\"\n [style.font-style]=\"outline.italic ? 'italic' : ''\"\n [ngClass]=\"showHighlightOutlineCss()\"\n tabindex=\"0\">\n <div style=\"text-align:left;\" [ngClass]=\"showHighlightOutlineCss()\">\n {{ outline.title }}\n <span style=\"float:right;\">\n {{ outline.pageNumber }}\n </span>\n </div>\n </a>\n \n <div *ngIf=\"outline.items.length > 0\" class=\"outlineItems\">\n <div *ngFor=\"let outlineItem of outline.items; index as i\">\n <mv-outline-item\n [outline]=\"outlineItem\" \n [currentPageNumber]= \"currentPageNumber\" \n [isCurrentSection]= \"isViewedItem(outlineItem, outline.items[i+1])\"\n [endPage]=\"findEndPage(outline.items[i+1])\"\n (navigationEvent)=\"goToDestination($event)\">\n </mv-outline-item>\n </div>\n </div>\n</div>\n\n" }]
|
|
38
38
|
}], propDecorators: { outline: [{
|
|
@@ -8,9 +8,10 @@ import * as i1 from "../../viewer-event.service";
|
|
|
8
8
|
import * as i2 from "@ngrx/store";
|
|
9
9
|
import * as i3 from "../../../toolbar/toolbar-event.service";
|
|
10
10
|
import * as i4 from "@angular/common";
|
|
11
|
-
import * as i5 from "
|
|
12
|
-
import * as i6 from "./
|
|
13
|
-
import * as i7 from "
|
|
11
|
+
import * as i5 from "@angular/cdk/scrolling";
|
|
12
|
+
import * as i6 from "./bookmarks/bookmarks.component";
|
|
13
|
+
import * as i7 from "./outline-item/outline-item.component";
|
|
14
|
+
import * as i8 from "rpx-xui-translation";
|
|
14
15
|
export class SideBarComponent {
|
|
15
16
|
constructor(viewerEvents, store, toolbarEvents) {
|
|
16
17
|
this.viewerEvents = viewerEvents;
|
|
@@ -66,12 +67,12 @@ export class SideBarComponent {
|
|
|
66
67
|
findEndPage(next) {
|
|
67
68
|
return next === undefined ? Number.MAX_SAFE_INTEGER : next.pageNumber;
|
|
68
69
|
}
|
|
69
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
70
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
70
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SideBarComponent, deps: [{ token: i1.ViewerEventService }, { token: i2.Store }, { token: i3.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SideBarComponent, selector: "mv-side-bar", inputs: { annotationsEnabled: "annotationsEnabled", outline: "outline", url: "url", zoom: "zoom", rotate: "rotate", currentPageNumber: "currentPageNumber" }, viewQueries: [{ propertyName: "bookmarks", first: true, predicate: BookmarksComponent, descendants: true }, { propertyName: "sidebarDiv", first: true, predicate: ["sidebar"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"toolbarSidebar\">\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton toggled\"\n >\n <button\n id=\"sortBookmarkPosition\"\n class=\"splitToolbarButton left bookmark__sort__position\"\n (click)=\"bookmarks.sort(bookmarks.positionSort)\"\n title=\"Order by place in document\"\n ></button>\n <button\n id=\"sortBookmarkCustom\"\n class=\"splitToolbarButton left bookmark__sort__custom\"\n (click)=\"bookmarks.sort(bookmarks.customSort)\"\n title=\"Order manually\"\n ></button>\n </div>\n <div class=\"splitToolbarButtonSeparator\"></div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton right\"\n >\n <button\n id=\"addBookmark\"\n class=\"toolbarButton addBookmark\"\n (click)=\"bookmarks.onAddBookmarkClick()\"\n title=\"Add bookmark\"\n tabindex=\"3\"\n data-l10n-id=\"addBookmark\"\n >\n <span data-l10n-id=\"addBookmark_label\">{{\n \"Add bookmark\" | rpxTranslate\n }}</span>\n </button>\n </div>\n</div>\n<div #sidebar id=\"sidebarContent\" cdkScrollable (scroll)=\"onScroll($event)\">\n <div id=\"outlineView\" class=\"outlineWithDeepNesting\">\n <div class=\"outlineItem\" *ngIf=\"selectedView === 'outline'\">\n <mv-outline-item\n *ngFor=\"let outlineItem of outline; index as i\"\n [outline]=\"outlineItem\"\n [currentPageNumber]=\"currentPageNumber\"\n [isCurrentSection]=\"isViewedItem(outlineItem, outline[i + 1])\"\n [endPage]=\"findEndPage(outline[i + 1])\"\n (navigationEvent)=\"goToDestination($event)\"\n ></mv-outline-item>\n </div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n id=\"bookmarkContainer\"\n >\n <mv-bookmarks\n [bookmarkNodes]=\"bookmarkNodes$ | async\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [parentScrollTop]=\"scrollTop\"\n (goToDestination)=\"goToDestination($event)\"\n (treeHasChanged)=\"hasTreeChanged($event)\"\n ></mv-bookmarks>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i6.BookmarksComponent, selector: "mv-bookmarks", inputs: ["bookmarkNodes", "zoom", "rotate", "parentScrollTop"], outputs: ["goToDestination", "treeHasChanged"] }, { kind: "component", type: i7.OutlineItemComponent, selector: "mv-outline-item", inputs: ["outline", "currentPageNumber", "isCurrentSection", "endPage"], outputs: ["navigationEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.RpxTranslatePipe, name: "rpxTranslate" }] }); }
|
|
71
72
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SideBarComponent, decorators: [{
|
|
73
74
|
type: Component,
|
|
74
|
-
args: [{ selector: 'mv-side-bar', template: "<div id=\"toolbarSidebar\">\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton toggled\"\n >\n <button\n id=\"sortBookmarkPosition\"\n class=\"splitToolbarButton left bookmark__sort__position\"\n (click)=\"bookmarks.sort(bookmarks.positionSort)\"\n title=\"Order by place in document\"\n ></button>\n <button\n id=\"sortBookmarkCustom\"\n class=\"splitToolbarButton left bookmark__sort__custom\"\n (click)=\"bookmarks.sort(bookmarks.customSort)\"\n title=\"Order manually\"\n ></button>\n </div>\n <div class=\"splitToolbarButtonSeparator\"></div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton right\"\n >\n <button\n id=\"addBookmark\"\n class=\"toolbarButton addBookmark\"\n (click)=\"bookmarks.onAddBookmarkClick()\"\n title=\"Add bookmark\"\n tabindex=\"3\"\n data-l10n-id=\"addBookmark\"\n >\n <span data-l10n-id=\"addBookmark_label\">{{\n \"Add bookmark\" | rpxTranslate\n }}</span>\n </button>\n </div>\n</div>\n<div #sidebar id=\"sidebarContent\" (scroll)=\"onScroll($event)\">\n <div id=\"outlineView\" class=\"outlineWithDeepNesting\">\n <div class=\"outlineItem\" *ngIf=\"selectedView === 'outline'\">\n <mv-outline-item\n *ngFor=\"let outlineItem of outline; index as i\"\n [outline]=\"outlineItem\"\n [currentPageNumber]=\"currentPageNumber\"\n [isCurrentSection]=\"isViewedItem(outlineItem, outline[i + 1])\"\n [endPage]=\"findEndPage(outline[i + 1])\"\n (navigationEvent)=\"goToDestination($event)\"\n ></mv-outline-item>\n </div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n id=\"bookmarkContainer\"\n >\n <mv-bookmarks\n [bookmarkNodes]=\"bookmarkNodes$ | async\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [parentScrollTop]=\"scrollTop\"\n (goToDestination)=\"goToDestination($event)\"\n (treeHasChanged)=\"hasTreeChanged($event)\"\n ></mv-bookmarks>\n </div>\n </div>\n</div>\n" }]
|
|
75
|
+
args: [{ selector: 'mv-side-bar', template: "<div id=\"toolbarSidebar\">\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton toggled\"\n >\n <button\n id=\"sortBookmarkPosition\"\n class=\"splitToolbarButton left bookmark__sort__position\"\n (click)=\"bookmarks.sort(bookmarks.positionSort)\"\n title=\"Order by place in document\"\n ></button>\n <button\n id=\"sortBookmarkCustom\"\n class=\"splitToolbarButton left bookmark__sort__custom\"\n (click)=\"bookmarks.sort(bookmarks.customSort)\"\n title=\"Order manually\"\n ></button>\n </div>\n <div class=\"splitToolbarButtonSeparator\"></div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n class=\"splitToolbarButton right\"\n >\n <button\n id=\"addBookmark\"\n class=\"toolbarButton addBookmark\"\n (click)=\"bookmarks.onAddBookmarkClick()\"\n title=\"Add bookmark\"\n tabindex=\"3\"\n data-l10n-id=\"addBookmark\"\n >\n <span data-l10n-id=\"addBookmark_label\">{{\n \"Add bookmark\" | rpxTranslate\n }}</span>\n </button>\n </div>\n</div>\n<div #sidebar id=\"sidebarContent\" cdkScrollable (scroll)=\"onScroll($event)\">\n <div id=\"outlineView\" class=\"outlineWithDeepNesting\">\n <div class=\"outlineItem\" *ngIf=\"selectedView === 'outline'\">\n <mv-outline-item\n *ngFor=\"let outlineItem of outline; index as i\"\n [outline]=\"outlineItem\"\n [currentPageNumber]=\"currentPageNumber\"\n [isCurrentSection]=\"isViewedItem(outlineItem, outline[i + 1])\"\n [endPage]=\"findEndPage(outline[i + 1])\"\n (navigationEvent)=\"goToDestination($event)\"\n ></mv-outline-item>\n </div>\n <div\n *ngIf=\"annotationsEnabled && selectedView === 'bookmarks'\"\n id=\"bookmarkContainer\"\n >\n <mv-bookmarks\n [bookmarkNodes]=\"bookmarkNodes$ | async\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [parentScrollTop]=\"scrollTop\"\n (goToDestination)=\"goToDestination($event)\"\n (treeHasChanged)=\"hasTreeChanged($event)\"\n ></mv-bookmarks>\n </div>\n </div>\n</div>\n" }]
|
|
75
76
|
}], ctorParameters: () => [{ type: i1.ViewerEventService }, { type: i2.Store }, { type: i3.ToolbarEventService }], propDecorators: { annotationsEnabled: [{
|
|
76
77
|
type: Input
|
|
77
78
|
}], outline: [{
|
|
@@ -91,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
91
92
|
type: ViewChild,
|
|
92
93
|
args: ['sidebar']
|
|
93
94
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBNEIsS0FBSyxFQUErQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEosT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU14RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBTXJFLE1BQU0sT0FBTyxnQkFBZ0I7SUFvQjNCLFlBQW9CLFlBQWdDLEVBQzFDLEtBQTRCLEVBQ25CLGFBQWtDO1FBRmpDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUMxQyxVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFYckQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFN0IsaUJBQVksR0FBRyxTQUFTLENBQUM7UUFJakIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBTXZDLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ25G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QztJQUN4RSxDQUFDO2tJQWhGVSxnQkFBZ0I7c0hBQWhCLGdCQUFnQiw0UEFTaEIsa0JBQWtCLDZKQzNCL0IsdW9FQWdFQTs7NEZEOUNhLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxhQUFhOzZJQUtkLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBU1AsVUFBVTtzQkFBL0IsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE91dGxpbmUgfSBmcm9tICcuL291dGxpbmUtaXRlbS9vdXRsaW5lLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGJvb2ttYXJrc1NlbGVjdG9ycyBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvYm9va21hcmsuc2VsZWN0b3JzJztcbmltcG9ydCB7IEJvb2ttYXJrTm9kZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL21vZGVscy9ib29rbWFya3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IENyZWF0ZUJvb2ttYXJrLCBMb2FkQm9va21hcmtzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi92aWV3ZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBCb29rbWFya3NTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL2Jvb2ttYXJrcy5yZWR1Y2VyJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBCb29rbWFya3NDb21wb25lbnQgfSBmcm9tICcuL2Jvb2ttYXJrcy9ib29rbWFya3MuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtc2lkZS1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1iYXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNpZGVCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBhbm5vdGF0aW9uc0VuYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG91dGxpbmU6IE91dGxpbmU7XG4gIEBJbnB1dCgpIHVybDogc3RyaW5nO1xuICBASW5wdXQoKSB6b29tOiBudW1iZXI7XG4gIEBJbnB1dCgpIHJvdGF0ZTogbnVtYmVyO1xuICBASW5wdXQoKSBjdXJyZW50UGFnZU51bWJlcjogbnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoQm9va21hcmtzQ29tcG9uZW50KVxuICBib29rbWFya3M6IEJvb2ttYXJrc0NvbXBvbmVudDtcbiAgdHJlZUNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZWxlY3RlZFZpZXcgPSAnb3V0bGluZSc7XG4gIGJvb2ttYXJrTm9kZXMkOiBPYnNlcnZhYmxlPEJvb2ttYXJrTm9kZVtdPjtcbiAgc2Nyb2xsVG9wOiBhbnk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzaWRlYmFyJykgc2lkZWJhckRpdjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEJvb2ttYXJrc1N0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ib29rbWFya05vZGVzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEJvb2ttYXJrTm9kZXMpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRFZGl0YWJsZUJvb2ttYXJrKSlcbiAgICAgIC5zdWJzY3JpYmUoZWRpdGFibGUgPT4gdGhpcy5zZWxlY3RlZFZpZXcgPSBlZGl0YWJsZSA/ICdib29rbWFya3MnIDogdGhpcy5zZWxlY3RlZFZpZXcpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3V0bGluZVZpZXcuc3Vic2NyaWJlKHRvZ2dsZSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gdG9nZ2xlID8gJ291dGxpbmUnIDogJ2Jvb2ttYXJrcyc7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5zdG9yZS5waXBlKHNlbGVjdChib29rbWFya3NTZWxlY3RvcnMuZ2V0U2Nyb2xsVG9wKSkuc3Vic2NyaWJlKHNjcm9sbFRvcFZhbHVlID0+IHtcbiAgICAgIHRoaXMuc2lkZWJhckRpdi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IHNjcm9sbFRvcFZhbHVlO1xuICAgIH0pKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy51cmwgJiYgdGhpcy51cmwpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IExvYWRCb29rbWFya3MoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyZWVDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnNjcm9sbFRvcCA9IGV2ZW50LnNyY0VsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIH1cbiAgICB0aGlzLnRyZWVDaGFuZ2VkID0gZmFsc2U7XG4gIH1cblxuICBnb1RvRGVzdGluYXRpb24oZGVzdGluYXRpb246IGFueVtdKSB7XG4gICAgdGhpcy52aWV3ZXJFdmVudHMuZ29Ub0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIGhhc1RyZWVDaGFuZ2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50cmVlQ2hhbmdlZCA9IHZhbHVlO1xuICB9XG5cbiAgdG9nZ2xlU2lkZWJhclZpZXcoc2lkZWJhclZpZXc6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gc2lkZWJhclZpZXc7XG4gIH1cblxuICBpc1ZpZXdlZEl0ZW0oY3VycmVudDogT3V0bGluZSwgbmV4dDogT3V0bGluZSk6IGJvb2xlYW4ge1xuICAgIGlmIChjdXJyZW50LnBhZ2VOdW1iZXIgPT09IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCA9PT0gdW5kZWZpbmVkID8gY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgOlxuICAgICAgY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgJiYgKG5leHQucGFnZU51bWJlciA+IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpO1xuICB9XG5cbiAgZmluZEVuZFBhZ2UobmV4dDogT3V0bGluZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5leHQgPT09IHVuZGVmaW5lZCA/IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIDogbmV4dC5wYWdlTnVtYmVyO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwidG9vbGJhclNpZGViYXJcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIHRvZ2dsZWRcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgaWQ9XCJzb3J0Qm9va21hcmtQb3NpdGlvblwiXG4gICAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiBsZWZ0IGJvb2ttYXJrX19zb3J0X19wb3NpdGlvblwiXG4gICAgICAoY2xpY2spPVwiYm9va21hcmtzLnNvcnQoYm9va21hcmtzLnBvc2l0aW9uU29ydClcIlxuICAgICAgdGl0bGU9XCJPcmRlciBieSBwbGFjZSBpbiBkb2N1bWVudFwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGlkPVwic29ydEJvb2ttYXJrQ3VzdG9tXCJcbiAgICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIGxlZnQgYm9va21hcmtfX3NvcnRfX2N1c3RvbVwiXG4gICAgICAoY2xpY2spPVwiYm9va21hcmtzLnNvcnQoYm9va21hcmtzLmN1c3RvbVNvcnQpXCJcbiAgICAgIHRpdGxlPVwiT3JkZXIgbWFudWFsbHlcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b25TZXBhcmF0b3JcIj48L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIHJpZ2h0XCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGlkPVwiYWRkQm9va21hcmtcIlxuICAgICAgY2xhc3M9XCJ0b29sYmFyQnV0dG9uIGFkZEJvb2ttYXJrXCJcbiAgICAgIChjbGljayk9XCJib29rbWFya3Mub25BZGRCb29rbWFya0NsaWNrKClcIlxuICAgICAgdGl0bGU9XCJBZGQgYm9va21hcmtcIlxuICAgICAgdGFiaW5kZXg9XCIzXCJcbiAgICAgIGRhdGEtbDEwbi1pZD1cImFkZEJvb2ttYXJrXCJcbiAgICA+XG4gICAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJhZGRCb29rbWFya19sYWJlbFwiPnt7XG4gICAgICAgIFwiQWRkIGJvb2ttYXJrXCIgfCBycHhUcmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAjc2lkZWJhciBpZD1cInNpZGViYXJDb250ZW50XCIgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCI+XG4gIDxkaXYgaWQ9XCJvdXRsaW5lVmlld1wiIGNsYXNzPVwib3V0bGluZVdpdGhEZWVwTmVzdGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvdXRsaW5lSXRlbVwiICpuZ0lmPVwic2VsZWN0ZWRWaWV3ID09PSAnb3V0bGluZSdcIj5cbiAgICAgIDxtdi1vdXRsaW5lLWl0ZW1cbiAgICAgICAgKm5nRm9yPVwibGV0IG91dGxpbmVJdGVtIG9mIG91dGxpbmU7IGluZGV4IGFzIGlcIlxuICAgICAgICBbb3V0bGluZV09XCJvdXRsaW5lSXRlbVwiXG4gICAgICAgIFtjdXJyZW50UGFnZU51bWJlcl09XCJjdXJyZW50UGFnZU51bWJlclwiXG4gICAgICAgIFtpc0N1cnJlbnRTZWN0aW9uXT1cImlzVmlld2VkSXRlbShvdXRsaW5lSXRlbSwgb3V0bGluZVtpICsgMV0pXCJcbiAgICAgICAgW2VuZFBhZ2VdPVwiZmluZEVuZFBhZ2Uob3V0bGluZVtpICsgMV0pXCJcbiAgICAgICAgKG5hdmlnYXRpb25FdmVudCk9XCJnb1RvRGVzdGluYXRpb24oJGV2ZW50KVwiXG4gICAgICA+PC9tdi1vdXRsaW5lLWl0ZW0+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJhbm5vdGF0aW9uc0VuYWJsZWQgJiYgc2VsZWN0ZWRWaWV3ID09PSAnYm9va21hcmtzJ1wiXG4gICAgICBpZD1cImJvb2ttYXJrQ29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8bXYtYm9va21hcmtzXG4gICAgICAgIFtib29rbWFya05vZGVzXT1cImJvb2ttYXJrTm9kZXMkIHwgYXN5bmNcIlxuICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICBbcGFyZW50U2Nyb2xsVG9wXT1cInNjcm9sbFRvcFwiXG4gICAgICAgIChnb1RvRGVzdGluYXRpb24pPVwiZ29Ub0Rlc3RpbmF0aW9uKCRldmVudClcIlxuICAgICAgICAodHJlZUhhc0NoYW5nZWQpPVwiaGFzVHJlZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICA+PC9tdi1ib29rbWFya3M+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBNEIsS0FBSyxFQUErQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEosT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU14RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8sZ0JBQWdCO0lBb0IzQixZQUFvQixZQUFnQyxFQUMxQyxLQUE0QixFQUNuQixhQUFrQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBWHJELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGlCQUFZLEdBQUcsU0FBUyxDQUFDO1FBSWpCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQU12QyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUNwRixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDMUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlLENBQUMsV0FBa0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWdCLEVBQUUsSUFBYTtRQUMxQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWE7UUFDdkIsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEUsQ0FBQztrSUFoRlUsZ0JBQWdCO3NIQUFoQixnQkFBZ0IsNFBBU2hCLGtCQUFrQiw2SkMzQi9CLHFwRUFnRUE7OzRGRDlDYSxnQkFBZ0I7a0JBSjVCLFNBQVM7K0JBQ0UsYUFBYTs2SUFLZCxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHTixTQUFTO3NCQURSLFNBQVM7dUJBQUMsa0JBQWtCO2dCQVNQLFVBQVU7c0JBQS9CLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdXRsaW5lIH0gZnJvbSAnLi9vdXRsaW5lLWl0ZW0vb3V0bGluZS5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBib29rbWFya3NTZWxlY3RvcnMgZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Jvb2ttYXJrLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBCb29rbWFya05vZGUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9tb2RlbHMvYm9va21hcmtzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDcmVhdGVCb29rbWFyaywgTG9hZEJvb2ttYXJrcyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMvYm9va21hcmsuYWN0aW9ucyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgVmlld2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdmlld2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQm9va21hcmtzU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9ib29rbWFya3MucmVkdWNlcic7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQm9va21hcmtzQ29tcG9uZW50IH0gZnJvbSAnLi9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXNpZGUtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaWRlQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgYW5ub3RhdGlvbnNFbmFibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBvdXRsaW5lOiBPdXRsaW5lO1xuICBASW5wdXQoKSB1cmw6IHN0cmluZztcbiAgQElucHV0KCkgem9vbTogbnVtYmVyO1xuICBASW5wdXQoKSByb3RhdGU6IG51bWJlcjtcbiAgQElucHV0KCkgY3VycmVudFBhZ2VOdW1iZXI6IG51bWJlcjtcblxuICBAVmlld0NoaWxkKEJvb2ttYXJrc0NvbXBvbmVudClcbiAgYm9va21hcmtzOiBCb29rbWFya3NDb21wb25lbnQ7XG4gIHRyZWVDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2VsZWN0ZWRWaWV3ID0gJ291dGxpbmUnO1xuICBib29rbWFya05vZGVzJDogT2JzZXJ2YWJsZTxCb29rbWFya05vZGVbXT47XG4gIHNjcm9sbFRvcDogYW55O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgQFZpZXdDaGlsZCgnc2lkZWJhcicpIHNpZGViYXJEaXY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxCb29rbWFya3NTdGF0ZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYm9va21hcmtOb2RlcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRCb29rbWFya05vZGVzKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5zdG9yZS5waXBlKHNlbGVjdChib29rbWFya3NTZWxlY3RvcnMuZ2V0RWRpdGFibGVCb29rbWFyaykpXG4gICAgICAuc3Vic2NyaWJlKGVkaXRhYmxlID0+IHRoaXMuc2VsZWN0ZWRWaWV3ID0gZWRpdGFibGUgPyAnYm9va21hcmtzJyA6IHRoaXMuc2VsZWN0ZWRWaWV3KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2lkZWJhck91dGxpbmVWaWV3LnN1YnNjcmliZSh0b2dnbGUgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmlldyA9IHRvZ2dsZSA/ICdvdXRsaW5lJyA6ICdib29rbWFya3MnO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldFNjcm9sbFRvcCkpLnN1YnNjcmliZShzY3JvbGxUb3BWYWx1ZSA9PiB7XG4gICAgICB0aGlzLnNpZGViYXJEaXYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSBzY3JvbGxUb3BWYWx1ZTtcbiAgICB9KSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMudXJsICYmIHRoaXMudXJsKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQm9va21hcmtzKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TY3JvbGwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy50cmVlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5zY3JvbGxUb3AgPSBldmVudC5zcmNFbGVtZW50LnNjcm9sbFRvcDtcbiAgICB9XG4gICAgdGhpcy50cmVlQ2hhbmdlZCA9IGZhbHNlO1xuICB9XG5cbiAgZ29Ub0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uOiBhbnlbXSkge1xuICAgIHRoaXMudmlld2VyRXZlbnRzLmdvVG9EZXN0aW5hdGlvbihkZXN0aW5hdGlvbik7XG4gIH1cblxuICBoYXNUcmVlQ2hhbmdlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudHJlZUNoYW5nZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGViYXJWaWV3KHNpZGViYXJWaWV3OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmlldyA9IHNpZGViYXJWaWV3O1xuICB9XG5cbiAgaXNWaWV3ZWRJdGVtKGN1cnJlbnQ6IE91dGxpbmUsIG5leHQ6IE91dGxpbmUpOiBib29sZWFuIHtcbiAgICBpZiAoY3VycmVudC5wYWdlTnVtYmVyID09PSB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQgPT09IHVuZGVmaW5lZCA/IGN1cnJlbnQucGFnZU51bWJlciA8PSB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyIDpcbiAgICAgIGN1cnJlbnQucGFnZU51bWJlciA8PSB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyICYmIChuZXh0LnBhZ2VOdW1iZXIgPiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyKTtcbiAgfVxuXG4gIGZpbmRFbmRQYWdlKG5leHQ6IE91dGxpbmUpOiBudW1iZXIge1xuICAgIHJldHVybiBuZXh0ID09PSB1bmRlZmluZWQgPyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiA6IG5leHQucGFnZU51bWJlcjtcbiAgfVxufVxuIiwiPGRpdiBpZD1cInRvb2xiYXJTaWRlYmFyXCI+XG4gIDxkaXZcbiAgICAqbmdJZj1cImFubm90YXRpb25zRW5hYmxlZCAmJiBzZWxlY3RlZFZpZXcgPT09ICdib29rbWFya3MnXCJcbiAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiB0b2dnbGVkXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGlkPVwic29ydEJvb2ttYXJrUG9zaXRpb25cIlxuICAgICAgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b24gbGVmdCBib29rbWFya19fc29ydF9fcG9zaXRpb25cIlxuICAgICAgKGNsaWNrKT1cImJvb2ttYXJrcy5zb3J0KGJvb2ttYXJrcy5wb3NpdGlvblNvcnQpXCJcbiAgICAgIHRpdGxlPVwiT3JkZXIgYnkgcGxhY2UgaW4gZG9jdW1lbnRcIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cInNvcnRCb29rbWFya0N1c3RvbVwiXG4gICAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiBsZWZ0IGJvb2ttYXJrX19zb3J0X19jdXN0b21cIlxuICAgICAgKGNsaWNrKT1cImJvb2ttYXJrcy5zb3J0KGJvb2ttYXJrcy5jdXN0b21Tb3J0KVwiXG4gICAgICB0aXRsZT1cIk9yZGVyIG1hbnVhbGx5XCJcbiAgICA+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uU2VwYXJhdG9yXCI+PC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImFubm90YXRpb25zRW5hYmxlZCAmJiBzZWxlY3RlZFZpZXcgPT09ICdib29rbWFya3MnXCJcbiAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiByaWdodFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cImFkZEJvb2ttYXJrXCJcbiAgICAgIGNsYXNzPVwidG9vbGJhckJ1dHRvbiBhZGRCb29rbWFya1wiXG4gICAgICAoY2xpY2spPVwiYm9va21hcmtzLm9uQWRkQm9va21hcmtDbGljaygpXCJcbiAgICAgIHRpdGxlPVwiQWRkIGJvb2ttYXJrXCJcbiAgICAgIHRhYmluZGV4PVwiM1wiXG4gICAgICBkYXRhLWwxMG4taWQ9XCJhZGRCb29rbWFya1wiXG4gICAgPlxuICAgICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiYWRkQm9va21hcmtfbGFiZWxcIj57e1xuICAgICAgICBcIkFkZCBib29rbWFya1wiIHwgcnB4VHJhbnNsYXRlXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3NpZGViYXIgaWQ9XCJzaWRlYmFyQ29udGVudFwiIGNka1Njcm9sbGFibGUgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCI+XG4gIDxkaXYgaWQ9XCJvdXRsaW5lVmlld1wiIGNsYXNzPVwib3V0bGluZVdpdGhEZWVwTmVzdGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvdXRsaW5lSXRlbVwiICpuZ0lmPVwic2VsZWN0ZWRWaWV3ID09PSAnb3V0bGluZSdcIj5cbiAgICAgIDxtdi1vdXRsaW5lLWl0ZW1cbiAgICAgICAgKm5nRm9yPVwibGV0IG91dGxpbmVJdGVtIG9mIG91dGxpbmU7IGluZGV4IGFzIGlcIlxuICAgICAgICBbb3V0bGluZV09XCJvdXRsaW5lSXRlbVwiXG4gICAgICAgIFtjdXJyZW50UGFnZU51bWJlcl09XCJjdXJyZW50UGFnZU51bWJlclwiXG4gICAgICAgIFtpc0N1cnJlbnRTZWN0aW9uXT1cImlzVmlld2VkSXRlbShvdXRsaW5lSXRlbSwgb3V0bGluZVtpICsgMV0pXCJcbiAgICAgICAgW2VuZFBhZ2VdPVwiZmluZEVuZFBhZ2Uob3V0bGluZVtpICsgMV0pXCJcbiAgICAgICAgKG5hdmlnYXRpb25FdmVudCk9XCJnb1RvRGVzdGluYXRpb24oJGV2ZW50KVwiXG4gICAgICA+PC9tdi1vdXRsaW5lLWl0ZW0+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJhbm5vdGF0aW9uc0VuYWJsZWQgJiYgc2VsZWN0ZWRWaWV3ID09PSAnYm9va21hcmtzJ1wiXG4gICAgICBpZD1cImJvb2ttYXJrQ29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8bXYtYm9va21hcmtzXG4gICAgICAgIFtib29rbWFya05vZGVzXT1cImJvb2ttYXJrTm9kZXMkIHwgYXN5bmNcIlxuICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICBbcGFyZW50U2Nyb2xsVG9wXT1cInNjcm9sbFRvcFwiXG4gICAgICAgIChnb1RvRGVzdGluYXRpb24pPVwiZ29Ub0Rlc3RpbmF0aW9uKCRldmVudClcIlxuICAgICAgICAodHJlZUhhc0NoYW5nZWQpPVwiaGFzVHJlZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICA+PC9tdi1ib29rbWFya3M+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -18,10 +18,10 @@ export class RotationApiService {
|
|
|
18
18
|
.post(fixedUrl, payload, { observe: 'response', withCredentials: true })
|
|
19
19
|
.pipe(map(response => response), catchError(() => []));
|
|
20
20
|
}
|
|
21
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
22
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
21
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RotationApiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RotationApiService }); }
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RotationApiService, decorators: [{
|
|
25
25
|
type: Injectable
|
|
26
26
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
27
27
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRpb24tYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi92aWV3ZXJzL3JvdGF0aW9uLXBlcnNpc3Qvcm90YXRpb24tYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJakQsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUNtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSGxDLG1CQUFjLEdBQUcsbUJBQW1CLENBQUM7SUFJekMsQ0FBQztJQUVHLFdBQVcsQ0FBQyxVQUFrQjtRQUNuQyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksVUFBVSxFQUFFLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixHQUFHLENBQVcsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRyxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sWUFBWSxDQUFDLE9BQWlCO1FBQ25DLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsSUFBSSxDQUFNLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFHLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUM3RSxJQUFJLENBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDckIsQ0FBQztJQUNOLENBQUM7a0lBdEJVLGtCQUFrQjtzSUFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUm90YXRpb24gfSBmcm9tICcuL3JvdGF0aW9uLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJvdGF0aW9uQXBpU2VydmljZSB7XG5cbiAgcHVibGljIHJvdGF0aW9uQXBpVXJsID0gJy9lbS1hbm5vL21ldGFkYXRhJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXRSb3RhdGlvbihkb2N1bWVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxSb3RhdGlvbj4+IHtcbiAgICBjb25zdCBmaXhlZFVybCA9IGAke3RoaXMucm90YXRpb25BcGlVcmx9LyR7ZG9jdW1lbnRJZH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQ8Um90YXRpb24+KGZpeGVkVXJsLCB7IG9ic2VydmU6ICdyZXNwb25zZScgLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZVJvdGF0aW9uKHBheWxvYWQ6IFJvdGF0aW9uKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Um90YXRpb24+PiB7XG4gICAgY29uc3QgZml4ZWRVcmwgPSBgJHt0aGlzLnJvdGF0aW9uQXBpVXJsfS9gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0PGFueT4oZml4ZWRVcmwsIHBheWxvYWQsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyAsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gW10pXG4gICAgICApO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -46,10 +46,10 @@ export class RotationPersistDirective {
|
|
|
46
46
|
};
|
|
47
47
|
this.store.dispatch(new fromDocumentActions.SaveRotation(payload));
|
|
48
48
|
}
|
|
49
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
50
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.
|
|
49
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RotationPersistDirective, deps: [{ token: i0.ElementRef }, { token: i1.Store }, { token: i2.ToolbarButtonVisibilityService }, { token: i3.ToolbarEventService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
50
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: RotationPersistDirective, selector: "[mvRotationPersist]", host: { listeners: { "mediaLoadStatus": "onMediaLoad($event)" } }, ngImport: i0 }); }
|
|
51
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RotationPersistDirective, decorators: [{
|
|
53
53
|
type: Directive,
|
|
54
54
|
args: [{
|
|
55
55
|
selector: '[mvRotationPersist]'
|
|
@@ -26,10 +26,10 @@ export class UnsupportedViewerComponent {
|
|
|
26
26
|
subscription.unsubscribe();
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
30
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
29
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnsupportedViewerComponent, deps: [{ token: i1.ToolbarEventService }, { token: i2.ViewerUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: UnsupportedViewerComponent, selector: "mv-unsupported-viewer", inputs: { url: "url", downloadFileName: "downloadFileName", typeException: "typeException" }, outputs: { loadStatus: "loadStatus", unsupportedViewerException: "unsupportedViewerException" }, viewQueries: [{ propertyName: "downloadLink", first: true, predicate: ["downloadLink"], descendants: true }], ngImport: i0, template: "<div class=\"govuk-width-container\">\n <div class=\"govuk-notification-banner__content\">\n <p>\n <span *ngIf=\"typeException, else unsupported\">The document could not be displayed, or the file type is unsupported.</span>\n Please <a #downloadLink [href]=\"url\" [download]=\"downloadFileName\">click here to download</a>.\n </p>\n <ng-template #unsupported>\n <span>This file type is not supported by this viewer.</span>\n </ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnsupportedViewerComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'mv-unsupported-viewer', template: "<div class=\"govuk-width-container\">\n <div class=\"govuk-notification-banner__content\">\n <p>\n <span *ngIf=\"typeException, else unsupported\">The document could not be displayed, or the file type is unsupported.</span>\n Please <a #downloadLink [href]=\"url\" [download]=\"downloadFileName\">click here to download</a>.\n </p>\n <ng-template #unsupported>\n <span>This file type is not supported by this viewer.</span>\n </ng-template>\n </div>\n</div>\n" }]
|
|
35
35
|
}], ctorParameters: () => [{ type: i1.ToolbarEventService }, { type: i2.ViewerUtilService }], propDecorators: { url: [{
|
|
@@ -24,10 +24,10 @@ export class ViewerEventService {
|
|
|
24
24
|
goToDestinationICP(destination) {
|
|
25
25
|
this.navigationEventICP.next(destination);
|
|
26
26
|
}
|
|
27
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
28
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
27
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewerEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewerEventService, providedIn: 'root' }); }
|
|
29
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewerEventService, decorators: [{
|
|
31
31
|
type: Injectable,
|
|
32
32
|
args: [{ providedIn: 'root' }]
|
|
33
33
|
}], ctorParameters: () => [] });
|
|
@@ -8,10 +8,10 @@ export class ViewerUtilService {
|
|
|
8
8
|
validateFile(url) {
|
|
9
9
|
return this.http.head(url);
|
|
10
10
|
}
|
|
11
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
12
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
11
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewerUtilService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewerUtilService, providedIn: 'root' }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewerUtilService, decorators: [{
|
|
15
15
|
type: Injectable,
|
|
16
16
|
args: [{
|
|
17
17
|
providedIn: 'root'
|