@eo-sdk/client 9.0.3 → 9.2.0-rc.1
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/app/eo-client/inbox-state/inbox-state/inbox.types.enum.d.ts +2 -2
- package/app/eo-framework/actions/action-menu/action-menu.component.d.ts +4 -2
- package/app/eo-framework/actions/action.module.d.ts +2 -2
- package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +2 -1
- package/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.d.ts +2 -1
- package/app/eo-framework/actions/actions/delete-action/delete/delete.component.d.ts +4 -2
- package/app/eo-framework/actions/actions/finalize/finalize-action.d.ts +5 -5
- package/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.d.ts +14 -0
- package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +5 -2
- package/app/eo-framework/form-elements/organization/organization.component.d.ts +3 -2
- package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +0 -1
- package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +8 -4
- package/app/eo-framework/util/directive/prevent-double-click.directive.d.ts +1 -0
- package/assets/_default/config/main.json +1 -1
- package/assets/_default/i18n/de.json +18 -18
- package/assets/_default/i18n/en.json +18 -17
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +548 -516
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -3
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +359 -213
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.d.ts +42 -42
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
- package/esm2015/app/eo-client/dashboard/dashboard.component.js +3 -5
- package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +9 -7
- package/esm2015/app/eo-client/inbox-state/inbox-state/inbox.types.enum.js +3 -3
- package/esm2015/app/eo-client/object-state/object-state/object-state.component.js +2 -2
- package/esm2015/app/eo-client/stored-queries-state/stored-queries-state.component.js +2 -2
- package/esm2015/app/eo-framework/actions/action-menu/action-menu.component.js +14 -5
- package/esm2015/app/eo-framework/actions/action.module.js +4 -2
- package/esm2015/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.js +7 -3
- package/esm2015/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.js +8 -4
- package/esm2015/app/eo-framework/actions/actions/delete-action/delete/delete.component.js +11 -4
- package/esm2015/app/eo-framework/actions/actions/finalize/finalize-action.js +12 -11
- package/esm2015/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.js +39 -0
- package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +43 -16
- package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +2 -2
- package/esm2015/app/eo-framework/app-shell/app-shell.module.js +1 -3
- package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +5 -2
- package/esm2015/app/eo-framework/frame/frame.component.js +35 -11
- package/esm2015/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.js +2 -4
- package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +30 -17
- package/esm2015/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.js +2 -2
- package/esm2015/app/eo-framework/grid/filters/codesystem-filter.component.js +2 -2
- package/esm2015/app/eo-framework/grid/filters/dynamic-list-filter.component.js +1 -2
- package/esm2015/app/eo-framework/grid/filters/list-filter.component.js +2 -3
- package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +3 -3
- package/esm2015/app/eo-framework/object-details/object-details.component.js +12 -1
- package/esm2015/app/eo-framework/result-list/result-list.module.js +2 -2
- package/esm2015/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.js +2 -2
- package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +3 -3
- package/esm2015/app/eo-framework/ui/ui.module.js +6 -3
- package/esm2015/app/eo-framework/util/directive/prevent-double-click.directive.js +8 -2
- package/esm2015/eo-sdk-client.js +43 -43
- package/esm2015/projects/eo-sdk/core/lib/model/inbox-item.model.js +2 -2
- package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +35 -9
- package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +10 -11
- package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +12 -2
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +55 -20
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +308 -167
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
- package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts +2 -2
- package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -0
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +3 -2
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +5 -0
- package/projects/eo-sdk/core/package.json +1 -1
|
@@ -309,7 +309,7 @@ export class ObjectStateComponent extends UnsubscribeOnDestroy {
|
|
|
309
309
|
ObjectStateComponent.decorators = [
|
|
310
310
|
{ type: Component, args: [{
|
|
311
311
|
selector: 'eo-object-state',
|
|
312
|
-
template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || ' '}}</div>\n <div class=\"description\">{{context.description || ' '}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>\n\n",
|
|
312
|
+
template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || ' '}}</div>\n <div class=\"description\">{{context.description || ' '}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details eoTrapFocus [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>\n\n",
|
|
313
313
|
providers: [ObjectStateService],
|
|
314
314
|
animations: [panelLoadingAnimations],
|
|
315
315
|
styles: [":host{bottom:var(--app-pane-padding);left:var(--app-pane-padding);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host eo-split-area{box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}:host .eo-body.tree h3{border-top:1px solid var(--list-item-border-color);color:var(--text-color-caption);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) 0 var(--app-pane-padding)}:host .file{display:flex;flex-flow:column;height:100%}:host .file .file-body,:host .file .file-head{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;opacity:0;transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-body,:host .file.ready .file-head{opacity:1}:host .file .empty-state{align-items:center;background:rgba(var(--color-white-rgb),.3);display:flex;flex-flow:column;height:100%;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding)/4);width:100%}:host .file-head eo-icon{box-sizing:content-box;padding:var(--app-pane-padding)}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{background:var(--color-white);display:flex;flex:0 0 auto;flex-flow:row nowrap;max-width:calc(100% - 350px)}:host .file-head .left div.title{cursor:pointer;flex:0 0 auto;padding:var(--app-pane-padding) 0}[dir=ltr] :host .file-head .left div.title{padding-left:0;padding-right:calc(var(--app-pane-padding)*2)}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding)*2);padding-right:0}:host .file-head .left div.title .description,:host .file-head .left div.title .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{display:flex;flex:1 1 auto;flex-flow:column;min-width:350px}:host .file-head .right .fold{background:var(--main-background);color:var(--text-color-caption);display:flex;flex:0 0 auto;justify-content:flex-end;padding-bottom:calc(var(--app-pane-padding)/2);text-align:right}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{align-items:center;background:var(--color-white);display:flex;flex:1 1 auto;justify-content:flex-end;padding:0 var(--app-pane-padding)}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap,:host .file-body .file-body-wrap .frontPage{bottom:0;left:0;position:absolute;right:0;top:0}:host ::ng-deep .tree .tree-panel-error{align-items:center;color:var(--text-color-caption);display:flex;flex-flow:column;height:100%;justify-content:center}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{color:var(--color-white);flex:1 1 auto}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{align-self:flex-end;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;width:61%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}"]
|
|
@@ -334,4 +334,4 @@ ObjectStateComponent.propDecorators = {
|
|
|
334
334
|
eoGrid: [{ type: ViewChild, args: ['eoGrid',] }],
|
|
335
335
|
onTermFilterChange: [{ type: Output }]
|
|
336
336
|
};
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBYSxLQUFLLEVBQTRCLGFBQWEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUcvSSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUVyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDakgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFFckYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDekcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFFeEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOERBQThE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QkFFNUMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQy9CLFVBQVUsRUFBRSxDQUFDLHNCQUFzQixDQUFDOzthQUNyQzs7O1lBekJPLGNBQWM7WUFJZCxnQkFBZ0I7WUFIb0YsYUFBYTtZQUFyRSxVQUFVO1lBWXRELGdCQUFnQjtZQVpoQixnQkFBZ0I7WUFLaEIsa0JBQWtCO1lBRWxCLGFBQWE7WUFFYixlQUFlO1lBRWYscUJBQXFCO1lBWFMsWUFBWTtZQWUxQyxXQUFXO1lBUFgsYUFBYTs7O3FCQW1CbEIsU0FBUyxTQUFDLFFBQVE7aUNBbUJsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgRW5haW9FdmVudCwgRXZlbnRTZXJ2aWNlLCBEbXNTZXJ2aWNlLCBEbXNPYmplY3QsIFV0aWxzLCBTZWFyY2hSZXN1bHQsIE9iamVjdFR5cGUsIFN5c3RlbVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0dyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5cbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi9vYmplY3Qtc3RhdGUtc2VydmljZS9vYmplY3Qtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge3BhbmVsTG9hZGluZ0FuaW1hdGlvbnMsIFBhbmVsTG9hZGluZ30gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL3VpL2FuaW1hdGlvbnMvcGFuZWwtbG9hZGluZy5hbmltYXRpb24nO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0xheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2xheW91dC9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvbG9jYXRpb24vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7VW5zdWJzY3JpYmVPbkRlc3Ryb3l9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0U2VhcmNoUmVzdWx0LCBGcm9udFBhZ2VEYXRhfSBmcm9tICcuLi9vYmplY3Qtc3RhdGUtc2VydmljZS9vYmplY3Qtc3RhdGUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LXN0YXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1zdGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtPYmplY3RTdGF0ZVNlcnZpY2VdLFxuICBhbmltYXRpb25zOiBbcGFuZWxMb2FkaW5nQW5pbWF0aW9uc11cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U3RhdGVDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZCgnZW9HcmlkJykgZW9HcmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIGVycm9yID0gZmFsc2U7XG4gIGNvbnRleHQ6IERtc09iamVjdDtcbiAgc2VsZWN0ZWRJdGVtOiBEbXNPYmplY3Q7XG4gIGZyb250UGFnZTogYm9vbGVhbjtcbiAgZnJvbnRQYWdlRGF0YTogRnJvbnRQYWdlRGF0YTtcbiAgY29udGV4dFRyZWU6IFRyZWVOb2RlW107XG4gIGNvbnRleHRUcmVlVXBkYXRlOiBUcmVlTm9kZVtdO1xuICBjb250ZXh0VHJlZVJlZjogVHJlZU5vZGVbXTtcbiAgY29udGV4dFRyZWVSZWZVcGRhdGU6IFRyZWVOb2RlW107XG4gIHNlbGVjdGVkTm9kZXM6IFRyZWVOb2RlW107XG4gIHNlbGVjdGVkTm9kZTogVHJlZU5vZGU7XG4gIGhpZ2hsaWdodGVkTm9kZXM6IHN0cmluZ1tdO1xuICBpc1JlZmVyZW5jZUFjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIGV4cGFuZGVkTm9kZUlkczogc3RyaW5nW10gPSBbXTtcbiAgdGVybUZpbHRlcjogc3RyaW5nO1xuICBhbGxUeXBlczogc3RyaW5nW10gPSBbXTtcbiAgY29uZmlnVHlwZTogT2JqZWN0VHlwZTtcbiAgQE91dHB1dCgpIG9uVGVybUZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIGdyaWRUaXRsZTogc3RyaW5nO1xuICBlbXB0eUdyaWQgPSB0cnVlO1xuXG4gIHNlYXJjaFJlc3VsdDogU2VhcmNoUmVzdWx0O1xuICB0eXBlTmFtZSA9ICcnO1xuICBjYWNoZUxheW91dCA9ICcnO1xuXG4gIGxvYWRpbmdTdGF0ZSA9IHtcbiAgICB0cmVlOiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gICAgdHJlZVJlZjogbmV3IFBhbmVsTG9hZGluZygpLFxuICAgIGxpc3Q6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgICBkZXRhaWxzOiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBvYmplY3RTdGF0ZTogT2JqZWN0U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogQWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlKSB7XG5cbiAgICBzdXBlcigpO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZShudWxsKTtcbiAgICB0aGlzLmdyaWRPcHRpb25zID0gPEdyaWRPcHRpb25zPnt9O1xuXG4gICAgdGhpcy5vblRlcm1GaWx0ZXJDaGFuZ2VcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcbiAgICAgIC5zdWJzY3JpYmUodiA9PiB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpKTtcblxuICAgIC8vIHN1YnNjcmliZSBmb3IgZGF0YSBmcm9tIHRoZSBjb25uZWN0ZWQgc2VydmljZVxuICAgIHRoaXMub2JqZWN0U3RhdGVcbiAgICAgIC5saXN0JFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IE9iamVjdFNlYXJjaFJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLmZyb250UGFnZSA9ICFyZXM7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAvLyBzZXR1cCB0aGUgZ3JpZCB3aXRoIHRoZSBuZXcgZGF0YVxuICAgICAgICAgIGxldCB7bmFtZSwgcmVzdWx0fSA9IHJlcztcbiAgICAgICAgICB0aGlzLmVtcHR5R3JpZCA9IHJlc3VsdC5jb3VudC52YWx1ZSA9PT0gMDtcbiAgICAgICAgICB0aGlzLmdyaWRUaXRsZSA9IG5hbWU7XG4gICAgICAgICAgdGhpcy5jb25maWdUeXBlID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUocmVzdWx0LnR5cGVOYW1lKSB8fCB7cW5hbWU6IHJlc3VsdC50eXBlTmFtZX0gYXMgT2JqZWN0VHlwZTtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1N0YXRlLmxpc3QucmVhZHkoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWUocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlUmVmJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWVSZWYocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb24uZm9jdXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IERtc09iamVjdCkgPT4ge1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KGl0ZW0uaWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU3RhdGUuZGV0YWlscy5yZWFkeSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9ERUxFVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuaWQgPT09IGV2dC5kYXRhLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmZyb250UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIGV2ZW50LmRhdGEgJiYgdGhpcy5jb250ZXh0LmlkID09PSBldmVudC5kYXRhLmlkKSB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0ID0gZXZlbnQuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mcm9udFBhZ2UpIHtcbiAgICAgICAgICB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGV4dFRyZWUoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfUEFTVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmNsaXBib2FyZC5wYXN0ZS5yZXN1bHRsaXN0LmhlYWRsaW5lJyk7XG4gICAgICAgIHRoaXMub2JqZWN0U3RhdGVcbiAgICAgICAgICAuc2VsZWN0VHJlZU5vZGUoPGFueT57fSwgPGFueT57bmFtZX0sIHtpZDogZXZ0LmRhdGEubWFwKGQgPT4gZC5pZCl9KS5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZXh0VHJlZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBoYXNQZW5kaW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzaygpO1xuICB9XG5cbiAgb25FeHBhbmRlZE5vZGVzQ2hhbmdlZChleHBhbmRlZE5vZGVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuZXhwYW5kZWROb2RlSWRzID0gZXhwYW5kZWROb2RlcztcbiAgfVxuXG4gIC8vIHNlbGVjdCBhbiBlbnRyeSBmcm9tIHRoZSB0cmVlXG4gIG9uVHJlZVNlbGVjdGlvbkNoYW5nZWQobm9kZTogVHJlZU5vZGUpIHtcbiAgICB0aGlzLmxvY2F0aW9uLmxlYXZlKCk7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xuICAgIGlmIChub2RlLmRhdGEudHlwZSkge1xuICAgICAgdGhpcy5sb2NhdGlvbi5lbnRlcih0aGlzLmNvbnRleHQsIHRoaXMuc2VsZWN0ZWROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2NhdGlvbi5lbnRlcih0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS51cGRhdGVDb250ZXh0KG5vZGUuaXNSZWZlcmVuY2UgfHwgdGhpcy5hbGxUeXBlcy5pbmNsdWRlcyhub2RlLmRhdGEudHlwZSkgPyBbbm9kZS5kYXRhLnR5cGVdIDogdGhpcy5hbGxUeXBlcyk7XG4gICAgICB0aGlzLmxvYWRpbmdTdGF0ZS5saXN0XG4gICAgICAgIC5zdWJzY3JpYmUobm9kZS5pc1JlZmVyZW5jZSA/XG4gICAgICAgICAgdGhpcy5vYmplY3RTdGF0ZS5zZWxlY3RUcmVlTm9kZSh0aGlzLmNvbnRleHQsIG5vZGUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9LCAncmVmZXJlbmNldmlldycpIDpcbiAgICAgICAgICB0aGlzLm9iamVjdFN0YXRlLnNlbGVjdFRyZWVOb2RlKHRoaXMuY29udGV4dCwgbm9kZSwge3Rlcm06IHRoaXMudGVybUZpbHRlcn0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29udGV4dE1lbnVDbGlja2VkKGV2dCwgZG9jPykge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2Uuc2hvd0FjdGlvbnMoW2RvYyB8fCB0aGlzLmNvbnRleHRdLCAnRE1TX09CSkVDVCcpO1xuICB9XG5cbiAgcmVmcmVzaExpc3QoKSB7XG4gICAgdGhpcy5vblRyZWVTZWxlY3Rpb25DaGFuZ2VkKHRoaXMuc2VsZWN0ZWROb2RlKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2VzcyhpdGVtOiBEbXNPYmplY3QsIHNlbGVjdGVkSWQ/KSB7XG4gICAgaWYgKGl0ZW0uaXNDb250ZXh0Rm9sZGVyKSB7XG4gICAgICAvLyBpZiB0aGVyZSBhbHJlYWR5IGlzIGEgY29udGV4dCBzZXQsIHdlIG5lZWQgdG8gbGVhdmUgbG9jYXRpb24gZm9yIHRoZSBvbGQgY29udGV4dCBmaXJzdFxuICAgICAgLy8gb3RoZXJ3aXNlIFVwbG9hZFRhcmdldHMgd2lsbCBub3QgYmUgdW5yZWdpc3RlcmVkIGNvcnJlY3RseVxuICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xuICAgICAgICB0aGlzLmxvY2F0aW9uLmxlYXZlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRleHQgPSBpdGVtO1xuICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICdvYmplY3Quc3RhdGUtLScgKyBpdGVtLnR5cGVOYW1lO1xuICAgICAgLy8gYWRkIHRoaXMgbG9jYXRpb24gdG8gdGhlIGxvY2F0aW9uIHNlcnZpY2UsIHdoaWNoIHdpbGwgdHJhY2sgYWN0aXZlIGxvY2F0aW9uc1xuICAgICAgLy8gYW5kIGhhbmRsZSBhIGhpc3Rvcnkgb2YgdmlzaXRlZCBsb2NhdGlvbnMuXG4gICAgICB0aGlzLmxvY2F0aW9uLmVudGVyKHRoaXMuY29udGV4dCwgdGhpcy5zZWxlY3RlZE5vZGUpO1xuXG4gICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2RlZmluaXRpb246IFt7ZmllbGQ6ICd0eXBlJywga2V5OiAnVHlwZXMnLCBzaXplOiAxMDAwfV19KVxuICAgICAgICAuc3Vic2NyaWJlKHR5cGVzID0+ICh0aGlzLmFsbFR5cGVzID0gKHR5cGVzLmZvbGRlclswXS5mb2xkZXIgfHwgW10pLm1hcCh0ID0+IHQudHlwZSkpKTtcblxuICAgICAgdGhpcy5mZXRjaFRyZWVEYXRhKCcnLCBzZWxlY3RlZElkKTtcbiAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UodHJ1ZSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZmV0Y2ggdGhlIGNvbnRleHQgZm9sZGVyXG4gICAgICBpZiAoaXRlbS5jb250ZXh0Rm9sZGVyKSB7XG4gICAgICAgIHRoaXMuY2FjaGVMYXlvdXQgPSAnb2JqZWN0LnN0YXRlLS0nICsgaXRlbS5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lO1xuICAgICAgICB0aGlzLmRtc1NlcnZpY2VcbiAgICAgICAgICAuZ2V0RG1zT2JqZWN0KGl0ZW0uY29udGV4dEZvbGRlci5pZCwgaXRlbS5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lLCBudWxsLCAnREVUQUlMUycpXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBEbXNPYmplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvY2VzcyhyZXMsIGl0ZW0uaWQpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICAvLyBoaWRlIGVtcHR5IHRyZWUgJiBsaXN0XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5oaWRlQXJlYXMoKGEsIGkpID0+IGkgPCAyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnZpc2liaWxpdHlVcGRhdGUoKTtcbiAgfVxuXG4gIHNldHVwRnJvbnRQYWdlKHVwZGF0ZVNlbGVjdGlvbiA9IGZhbHNlLCB1cGRhdGVUcmVlID0gZmFsc2UpIHtcbiAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAuc2VsZWN0RnJvbnRQYWdlKHRoaXMuY29udGV4dClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmZyb250UGFnZURhdGEgPSBkYXRhO1xuICAgICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZm9jdXModGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoIXVwZGF0ZVRyZWUpIHtcbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSh0aGlzLnRlcm1GaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hUcmVlRGF0YSh0ZXJtRmlsdGVyPzogc3RyaW5nLCBzZWxlY3RlZElkPzogYW55KSB7XG4gICAgdGhpcy5oaWdobGlnaHQoc2VsZWN0ZWRJZCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUudHJlZS5zdWJzY3JpYmUodGhpcy5vYmplY3RTdGF0ZS51cGRhdGVUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQsIHt0ZXJtOiB0ZXJtRmlsdGVyfSkpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlLnRyZWVSZWYuc3Vic2NyaWJlKHRoaXMub2JqZWN0U3RhdGUudXBkYXRlVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LCB7dGVybTogdGVybUZpbHRlcn0sICdyZWZlcmVuY2V2aWV3JykpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHQoc2VsZWN0ZWRJZCkge1xuICAgIGlmIChzZWxlY3RlZElkICYmIHRoaXMuY29udGV4dCkge1xuICAgICAgZm9ya0pvaW4oW1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2lkOiBzZWxlY3RlZElkfSksXG4gICAgICAgIHRoaXMub2JqZWN0U3RhdGUubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7aWQ6IHNlbGVjdGVkSWR9LCAncmVmZXJlbmNldmlldycpXG4gICAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTm9kZXMgPSB0aGlzLmhpZ2hsaWdodE5vZGVzKFsuLi5yZXNbMF0uZm9sZGVyLCAuLi5yZXNbMV0uZm9sZGVyXSk7XG4gICAgICAgIHRoaXMuaXNSZWZlcmVuY2VBY3RpdmUgPSAhIShyZXNbMV0udG90YWwudmFsdWUgJiYgIXJlc1swXS50b3RhbC52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZE5vZGVzID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZXh0VHJlZSgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgIC5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdKSkpO1xuICAgICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgICAubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlUmVmVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdLCB0cnVlKSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Tm9kZXMoZm9sZGVyID0gW10sIG5vZGVzID0gW10pIHtcbiAgICBmb2xkZXIuZm9yRWFjaChmID0+IHtcbiAgICAgIGlmIChmLmNvdW50KSB7XG4gICAgICAgIG5vZGVzLnB1c2goZi5rZXkpO1xuICAgICAgfVxuICAgICAgaWYgKGYuZm9sZGVyKSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0Tm9kZXMoZi5mb2xkZXIsIG5vZGVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29udGV4dFRyZWUoZm9sZGVyID0gW10pIHtcbiAgICB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gbnVsbDtcbiAgICB0aGlzLmNvbnRleHRUcmVlID0gZm9sZGVyLm1hcChmID0+IHRoaXMuYWRkVHJlZU5vZGUoZiwgW10pKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb250ZXh0VHJlZVJlZihmb2xkZXIgPSBbXSkge1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWZVcGRhdGUgPSBudWxsO1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWYgPSBmb2xkZXIubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBbXSwgdHJ1ZSkpO1xuXG4gIH1cblxuICBwcml2YXRlIGFkZFRyZWVOb2RlKG5vZGVEYXRhLCBwYXRoOiBzdHJpbmdbXSwgaXNSZWZlcmVuY2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHtrZXksIHRpdGxlLCBmb2xkZXIsIGV4cGFuZGVkLCBjb3VudCwgc3RhdHN9ID0gbm9kZURhdGE7XG4gICAgLy8gaW1wb3J0YW50IHRvIGNyZWF0ZSBjbG9uZSBoZXJlLCBiZWNhdXNlIG90aGVyd2lzZSBwYXRoIHdpbGwgYmUgbWVzc2VkIHVwXG4gICAgY29uc3QgcCA9IHBhdGguY29uY2F0KFt0aXRsZV0pO1xuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgIGlkOiBrZXksXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIHBhdGg6IHAsXG4gICAgICBjaGlsZHJlbjogKGZvbGRlciB8fCBbXSkubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBwLCBpc1JlZmVyZW5jZSkpLFxuICAgICAgZXhwYW5kZWQ6IGV4cGFuZGVkIHx8ICEhfnRoaXMuZXhwYW5kZWROb2RlSWRzLmluZGV4T2Yoa2V5KSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICBpc1JlZmVyZW5jZSxcbiAgICAgIGJhZGdlczogKHN0YXRzIHx8IFtdKS5tYXAoc3RhdCA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgdmFsdWU6IHN0YXQudmFsdWUgKyAnICcgKyBzdGF0LnRpdGxlLFxuICAgICAgICBjc3NDbGFzczogJ3N0YXRzJ1xuICAgICAgfSkpLFxuICAgICAgZGF0YTogbm9kZURhdGFcbiAgICB9O1xuXG4gICAgaWYgKGNvdW50KSB7XG4gICAgICBub2RlLmJhZGdlcy5wdXNoKHt2YWx1ZTogY291bnR9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUudXJsXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuaGlkZUFyZWFzKCgpID0+IGZhbHNlKTtcbiAgICAgICAgY29uc3Qge3BhcmFtcywgcXVlcnlQYXJhbXN9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdDtcbiAgICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICAgIHRoaXMudHlwZU5hbWUgPSBxdWVyeVBhcmFtc1sndHlwZSddIHx8ICcnO1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHtpZDogcGFyYW1zLmlkLCB0eXBlTmFtZTogdGhpcy50eXBlTmFtZX0pO1xuICAgICAgICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgICAgICAgLmdldERtc09iamVjdChwYXJhbXMuaWQsIHRoaXMudHlwZU5hbWUsIG51bGwsICdERVRBSUxTJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzKHJlcyk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHJlcyk7XG4gICAgICAgICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zZXRBcmVhcyhbXSk7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQsIHdlIHRlbGwgdGhlIGxvY2F0aW9uIHNlcnZpY2UgdGhhdCB3ZVxuICAgIC8vIGxlZnQgdGhlIGxvY2F0aW9uXG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxufVxuIl19
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBYSxLQUFLLEVBQTRCLGFBQWEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUcvSSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUVyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDakgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFFckYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDekcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFFeEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOERBQThE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QkFFNUMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQy9CLFVBQVUsRUFBRSxDQUFDLHNCQUFzQixDQUFDOzthQUNyQzs7O1lBekJPLGNBQWM7WUFJZCxnQkFBZ0I7WUFIb0YsYUFBYTtZQUFyRSxVQUFVO1lBWXRELGdCQUFnQjtZQVpoQixnQkFBZ0I7WUFLaEIsa0JBQWtCO1lBRWxCLGFBQWE7WUFFYixlQUFlO1lBRWYscUJBQXFCO1lBWFMsWUFBWTtZQWUxQyxXQUFXO1lBUFgsYUFBYTs7O3FCQW1CbEIsU0FBUyxTQUFDLFFBQVE7aUNBbUJsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgRW5haW9FdmVudCwgRXZlbnRTZXJ2aWNlLCBEbXNTZXJ2aWNlLCBEbXNPYmplY3QsIFV0aWxzLCBTZWFyY2hSZXN1bHQsIE9iamVjdFR5cGUsIFN5c3RlbVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0dyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5cbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi9vYmplY3Qtc3RhdGUtc2VydmljZS9vYmplY3Qtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge3BhbmVsTG9hZGluZ0FuaW1hdGlvbnMsIFBhbmVsTG9hZGluZ30gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL3VpL2FuaW1hdGlvbnMvcGFuZWwtbG9hZGluZy5hbmltYXRpb24nO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0xheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2xheW91dC9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvbG9jYXRpb24vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7VW5zdWJzY3JpYmVPbkRlc3Ryb3l9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0U2VhcmNoUmVzdWx0LCBGcm9udFBhZ2VEYXRhfSBmcm9tICcuLi9vYmplY3Qtc3RhdGUtc2VydmljZS9vYmplY3Qtc3RhdGUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LXN0YXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1zdGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtPYmplY3RTdGF0ZVNlcnZpY2VdLFxuICBhbmltYXRpb25zOiBbcGFuZWxMb2FkaW5nQW5pbWF0aW9uc11cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U3RhdGVDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZCgnZW9HcmlkJykgZW9HcmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIGVycm9yID0gZmFsc2U7XG4gIGNvbnRleHQ6IERtc09iamVjdDtcbiAgc2VsZWN0ZWRJdGVtOiBEbXNPYmplY3Q7XG4gIGZyb250UGFnZTogYm9vbGVhbjtcbiAgZnJvbnRQYWdlRGF0YTogRnJvbnRQYWdlRGF0YTtcbiAgY29udGV4dFRyZWU6IFRyZWVOb2RlW107XG4gIGNvbnRleHRUcmVlVXBkYXRlOiBUcmVlTm9kZVtdO1xuICBjb250ZXh0VHJlZVJlZjogVHJlZU5vZGVbXTtcbiAgY29udGV4dFRyZWVSZWZVcGRhdGU6IFRyZWVOb2RlW107XG4gIHNlbGVjdGVkTm9kZXM6IFRyZWVOb2RlW107XG4gIHNlbGVjdGVkTm9kZTogVHJlZU5vZGU7XG4gIGhpZ2hsaWdodGVkTm9kZXM6IHN0cmluZ1tdO1xuICBpc1JlZmVyZW5jZUFjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIGV4cGFuZGVkTm9kZUlkczogc3RyaW5nW10gPSBbXTtcbiAgdGVybUZpbHRlcjogc3RyaW5nO1xuICBhbGxUeXBlczogc3RyaW5nW10gPSBbXTtcbiAgY29uZmlnVHlwZTogT2JqZWN0VHlwZTtcbiAgQE91dHB1dCgpIG9uVGVybUZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIGdyaWRUaXRsZTogc3RyaW5nO1xuICBlbXB0eUdyaWQgPSB0cnVlO1xuXG4gIHNlYXJjaFJlc3VsdDogU2VhcmNoUmVzdWx0O1xuICB0eXBlTmFtZSA9ICcnO1xuICBjYWNoZUxheW91dCA9ICcnO1xuXG4gIGxvYWRpbmdTdGF0ZSA9IHtcbiAgICB0cmVlOiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gICAgdHJlZVJlZjogbmV3IFBhbmVsTG9hZGluZygpLFxuICAgIGxpc3Q6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgICBkZXRhaWxzOiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBvYmplY3RTdGF0ZTogT2JqZWN0U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogQWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlKSB7XG5cbiAgICBzdXBlcigpO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZShudWxsKTtcbiAgICB0aGlzLmdyaWRPcHRpb25zID0gPEdyaWRPcHRpb25zPnt9O1xuXG4gICAgdGhpcy5vblRlcm1GaWx0ZXJDaGFuZ2VcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcbiAgICAgIC5zdWJzY3JpYmUodiA9PiB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpKTtcblxuICAgIC8vIHN1YnNjcmliZSBmb3IgZGF0YSBmcm9tIHRoZSBjb25uZWN0ZWQgc2VydmljZVxuICAgIHRoaXMub2JqZWN0U3RhdGVcbiAgICAgIC5saXN0JFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IE9iamVjdFNlYXJjaFJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLmZyb250UGFnZSA9ICFyZXM7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAvLyBzZXR1cCB0aGUgZ3JpZCB3aXRoIHRoZSBuZXcgZGF0YVxuICAgICAgICAgIGxldCB7bmFtZSwgcmVzdWx0fSA9IHJlcztcbiAgICAgICAgICB0aGlzLmVtcHR5R3JpZCA9IHJlc3VsdC5jb3VudC52YWx1ZSA9PT0gMDtcbiAgICAgICAgICB0aGlzLmdyaWRUaXRsZSA9IG5hbWU7XG4gICAgICAgICAgdGhpcy5jb25maWdUeXBlID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUocmVzdWx0LnR5cGVOYW1lKSB8fCB7cW5hbWU6IHJlc3VsdC50eXBlTmFtZX0gYXMgT2JqZWN0VHlwZTtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1N0YXRlLmxpc3QucmVhZHkoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWUocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlUmVmJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWVSZWYocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb24uZm9jdXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IERtc09iamVjdCkgPT4ge1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KGl0ZW0uaWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU3RhdGUuZGV0YWlscy5yZWFkeSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9ERUxFVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuaWQgPT09IGV2dC5kYXRhLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmZyb250UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIGV2ZW50LmRhdGEgJiYgdGhpcy5jb250ZXh0LmlkID09PSBldmVudC5kYXRhLmlkKSB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0ID0gZXZlbnQuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mcm9udFBhZ2UpIHtcbiAgICAgICAgICB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGV4dFRyZWUoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfUEFTVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmNsaXBib2FyZC5wYXN0ZS5yZXN1bHRsaXN0LmhlYWRsaW5lJyk7XG4gICAgICAgIHRoaXMub2JqZWN0U3RhdGVcbiAgICAgICAgICAuc2VsZWN0VHJlZU5vZGUoPGFueT57fSwgPGFueT57bmFtZX0sIHtpZDogZXZ0LmRhdGEubWFwKGQgPT4gZC5pZCl9KS5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZXh0VHJlZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBoYXNQZW5kaW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzaygpO1xuICB9XG5cbiAgb25FeHBhbmRlZE5vZGVzQ2hhbmdlZChleHBhbmRlZE5vZGVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuZXhwYW5kZWROb2RlSWRzID0gZXhwYW5kZWROb2RlcztcbiAgfVxuXG4gIC8vIHNlbGVjdCBhbiBlbnRyeSBmcm9tIHRoZSB0cmVlXG4gIG9uVHJlZVNlbGVjdGlvbkNoYW5nZWQobm9kZTogVHJlZU5vZGUpIHtcbiAgICB0aGlzLmxvY2F0aW9uLmxlYXZlKCk7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xuICAgIGlmIChub2RlLmRhdGEudHlwZSkge1xuICAgICAgdGhpcy5sb2NhdGlvbi5lbnRlcih0aGlzLmNvbnRleHQsIHRoaXMuc2VsZWN0ZWROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2NhdGlvbi5lbnRlcih0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS51cGRhdGVDb250ZXh0KG5vZGUuaXNSZWZlcmVuY2UgfHwgdGhpcy5hbGxUeXBlcy5pbmNsdWRlcyhub2RlLmRhdGEudHlwZSkgPyBbbm9kZS5kYXRhLnR5cGVdIDogdGhpcy5hbGxUeXBlcyk7XG4gICAgICB0aGlzLmxvYWRpbmdTdGF0ZS5saXN0XG4gICAgICAgIC5zdWJzY3JpYmUobm9kZS5pc1JlZmVyZW5jZSA/XG4gICAgICAgICAgdGhpcy5vYmplY3RTdGF0ZS5zZWxlY3RUcmVlTm9kZSh0aGlzLmNvbnRleHQsIG5vZGUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9LCAncmVmZXJlbmNldmlldycpIDpcbiAgICAgICAgICB0aGlzLm9iamVjdFN0YXRlLnNlbGVjdFRyZWVOb2RlKHRoaXMuY29udGV4dCwgbm9kZSwge3Rlcm06IHRoaXMudGVybUZpbHRlcn0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29udGV4dE1lbnVDbGlja2VkKGV2dCwgZG9jPykge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2Uuc2hvd0FjdGlvbnMoW2RvYyB8fCB0aGlzLmNvbnRleHRdLCAnRE1TX09CSkVDVCcpO1xuICB9XG5cbiAgcmVmcmVzaExpc3QoKSB7XG4gICAgdGhpcy5vblRyZWVTZWxlY3Rpb25DaGFuZ2VkKHRoaXMuc2VsZWN0ZWROb2RlKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2VzcyhpdGVtOiBEbXNPYmplY3QsIHNlbGVjdGVkSWQ/KSB7XG4gICAgaWYgKGl0ZW0uaXNDb250ZXh0Rm9sZGVyKSB7XG4gICAgICAvLyBpZiB0aGVyZSBhbHJlYWR5IGlzIGEgY29udGV4dCBzZXQsIHdlIG5lZWQgdG8gbGVhdmUgbG9jYXRpb24gZm9yIHRoZSBvbGQgY29udGV4dCBmaXJzdFxuICAgICAgLy8gb3RoZXJ3aXNlIFVwbG9hZFRhcmdldHMgd2lsbCBub3QgYmUgdW5yZWdpc3RlcmVkIGNvcnJlY3RseVxuICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xuICAgICAgICB0aGlzLmxvY2F0aW9uLmxlYXZlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRleHQgPSBpdGVtO1xuICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICdvYmplY3Quc3RhdGUtLScgKyBpdGVtLnR5cGVOYW1lO1xuICAgICAgLy8gYWRkIHRoaXMgbG9jYXRpb24gdG8gdGhlIGxvY2F0aW9uIHNlcnZpY2UsIHdoaWNoIHdpbGwgdHJhY2sgYWN0aXZlIGxvY2F0aW9uc1xuICAgICAgLy8gYW5kIGhhbmRsZSBhIGhpc3Rvcnkgb2YgdmlzaXRlZCBsb2NhdGlvbnMuXG4gICAgICB0aGlzLmxvY2F0aW9uLmVudGVyKHRoaXMuY29udGV4dCwgdGhpcy5zZWxlY3RlZE5vZGUpO1xuXG4gICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2RlZmluaXRpb246IFt7ZmllbGQ6ICd0eXBlJywga2V5OiAnVHlwZXMnLCBzaXplOiAxMDAwfV19KVxuICAgICAgICAuc3Vic2NyaWJlKHR5cGVzID0+ICh0aGlzLmFsbFR5cGVzID0gKHR5cGVzLmZvbGRlclswXS5mb2xkZXIgfHwgW10pLm1hcCh0ID0+IHQudHlwZSkpKTtcblxuICAgICAgdGhpcy5mZXRjaFRyZWVEYXRhKCcnLCBzZWxlY3RlZElkKTtcbiAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UodHJ1ZSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZmV0Y2ggdGhlIGNvbnRleHQgZm9sZGVyXG4gICAgICBpZiAoaXRlbS5jb250ZXh0Rm9sZGVyKSB7XG4gICAgICAgIHRoaXMuY2FjaGVMYXlvdXQgPSAnb2JqZWN0LnN0YXRlLS0nICsgaXRlbS5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lO1xuICAgICAgICB0aGlzLmRtc1NlcnZpY2VcbiAgICAgICAgICAuZ2V0RG1zT2JqZWN0KGl0ZW0uY29udGV4dEZvbGRlci5pZCwgaXRlbS5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lLCBudWxsLCAnREVUQUlMUycpXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBEbXNPYmplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvY2VzcyhyZXMsIGl0ZW0uaWQpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICAvLyBoaWRlIGVtcHR5IHRyZWUgJiBsaXN0XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5oaWRlQXJlYXMoKGEsIGkpID0+IGkgPCAyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnZpc2liaWxpdHlVcGRhdGUoKTtcbiAgfVxuXG4gIHNldHVwRnJvbnRQYWdlKHVwZGF0ZVNlbGVjdGlvbiA9IGZhbHNlLCB1cGRhdGVUcmVlID0gZmFsc2UpIHtcbiAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAuc2VsZWN0RnJvbnRQYWdlKHRoaXMuY29udGV4dClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmZyb250UGFnZURhdGEgPSBkYXRhO1xuICAgICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZm9jdXModGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoIXVwZGF0ZVRyZWUpIHtcbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSh0aGlzLnRlcm1GaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hUcmVlRGF0YSh0ZXJtRmlsdGVyPzogc3RyaW5nLCBzZWxlY3RlZElkPzogYW55KSB7XG4gICAgdGhpcy5oaWdobGlnaHQoc2VsZWN0ZWRJZCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUudHJlZS5zdWJzY3JpYmUodGhpcy5vYmplY3RTdGF0ZS51cGRhdGVUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQsIHt0ZXJtOiB0ZXJtRmlsdGVyfSkpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlLnRyZWVSZWYuc3Vic2NyaWJlKHRoaXMub2JqZWN0U3RhdGUudXBkYXRlVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LCB7dGVybTogdGVybUZpbHRlcn0sICdyZWZlcmVuY2V2aWV3JykpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHQoc2VsZWN0ZWRJZCkge1xuICAgIGlmIChzZWxlY3RlZElkICYmIHRoaXMuY29udGV4dCkge1xuICAgICAgZm9ya0pvaW4oW1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2lkOiBzZWxlY3RlZElkfSksXG4gICAgICAgIHRoaXMub2JqZWN0U3RhdGUubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7aWQ6IHNlbGVjdGVkSWR9LCAncmVmZXJlbmNldmlldycpXG4gICAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTm9kZXMgPSB0aGlzLmhpZ2hsaWdodE5vZGVzKFsuLi5yZXNbMF0uZm9sZGVyLCAuLi5yZXNbMV0uZm9sZGVyXSk7XG4gICAgICAgIHRoaXMuaXNSZWZlcmVuY2VBY3RpdmUgPSAhIShyZXNbMV0udG90YWwudmFsdWUgJiYgIXJlc1swXS50b3RhbC52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZE5vZGVzID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZXh0VHJlZSgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgIC5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdKSkpO1xuICAgICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgICAubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlUmVmVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdLCB0cnVlKSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Tm9kZXMoZm9sZGVyID0gW10sIG5vZGVzID0gW10pIHtcbiAgICBmb2xkZXIuZm9yRWFjaChmID0+IHtcbiAgICAgIGlmIChmLmNvdW50KSB7XG4gICAgICAgIG5vZGVzLnB1c2goZi5rZXkpO1xuICAgICAgfVxuICAgICAgaWYgKGYuZm9sZGVyKSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0Tm9kZXMoZi5mb2xkZXIsIG5vZGVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29udGV4dFRyZWUoZm9sZGVyID0gW10pIHtcbiAgICB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gbnVsbDtcbiAgICB0aGlzLmNvbnRleHRUcmVlID0gZm9sZGVyLm1hcChmID0+IHRoaXMuYWRkVHJlZU5vZGUoZiwgW10pKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb250ZXh0VHJlZVJlZihmb2xkZXIgPSBbXSkge1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWZVcGRhdGUgPSBudWxsO1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWYgPSBmb2xkZXIubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBbXSwgdHJ1ZSkpO1xuXG4gIH1cblxuICBwcml2YXRlIGFkZFRyZWVOb2RlKG5vZGVEYXRhLCBwYXRoOiBzdHJpbmdbXSwgaXNSZWZlcmVuY2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHtrZXksIHRpdGxlLCBmb2xkZXIsIGV4cGFuZGVkLCBjb3VudCwgc3RhdHN9ID0gbm9kZURhdGE7XG4gICAgLy8gaW1wb3J0YW50IHRvIGNyZWF0ZSBjbG9uZSBoZXJlLCBiZWNhdXNlIG90aGVyd2lzZSBwYXRoIHdpbGwgYmUgbWVzc2VkIHVwXG4gICAgY29uc3QgcCA9IHBhdGguY29uY2F0KFt0aXRsZV0pO1xuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgIGlkOiBrZXksXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIHBhdGg6IHAsXG4gICAgICBjaGlsZHJlbjogKGZvbGRlciB8fCBbXSkubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBwLCBpc1JlZmVyZW5jZSkpLFxuICAgICAgZXhwYW5kZWQ6IGV4cGFuZGVkIHx8ICEhfnRoaXMuZXhwYW5kZWROb2RlSWRzLmluZGV4T2Yoa2V5KSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICBpc1JlZmVyZW5jZSxcbiAgICAgIGJhZGdlczogKHN0YXRzIHx8IFtdKS5tYXAoc3RhdCA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgdmFsdWU6IHN0YXQudmFsdWUgKyAnICcgKyBzdGF0LnRpdGxlLFxuICAgICAgICBjc3NDbGFzczogJ3N0YXRzJ1xuICAgICAgfSkpLFxuICAgICAgZGF0YTogbm9kZURhdGFcbiAgICB9O1xuXG4gICAgaWYgKGNvdW50KSB7XG4gICAgICBub2RlLmJhZGdlcy5wdXNoKHt2YWx1ZTogY291bnR9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUudXJsXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuaGlkZUFyZWFzKCgpID0+IGZhbHNlKTtcbiAgICAgICAgY29uc3Qge3BhcmFtcywgcXVlcnlQYXJhbXN9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdDtcbiAgICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICAgIHRoaXMudHlwZU5hbWUgPSBxdWVyeVBhcmFtc1sndHlwZSddIHx8ICcnO1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHtpZDogcGFyYW1zLmlkLCB0eXBlTmFtZTogdGhpcy50eXBlTmFtZX0pO1xuICAgICAgICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgICAgICAgLmdldERtc09iamVjdChwYXJhbXMuaWQsIHRoaXMudHlwZU5hbWUsIG51bGwsICdERVRBSUxTJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzKHJlcyk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHJlcyk7XG4gICAgICAgICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zZXRBcmVhcyhbXSk7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQsIHdlIHRlbGwgdGhlIGxvY2F0aW9uIHNlcnZpY2UgdGhhdCB3ZVxuICAgIC8vIGxlZnQgdGhlIGxvY2F0aW9uXG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxufVxuIl19
|
|
@@ -180,7 +180,7 @@ export class StoredQueriesStateComponent extends UnsubscribeOnDestroy {
|
|
|
180
180
|
StoredQueriesStateComponent.decorators = [
|
|
181
181
|
{ type: Component, args: [{
|
|
182
182
|
selector: 'eo-stored-queries-state',
|
|
183
|
-
template: "<eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'stored.queries.state'\">\n <eo-split-area [size]=\"25\" [minSizePixel]=\"300\">\n\n <ng-template pTemplate=\"content\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.
|
|
183
|
+
template: "<eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"'stored.queries.state'\">\n <eo-split-area [size]=\"25\" [minSizePixel]=\"300\">\n\n <ng-template pTemplate=\"content\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.view.navigation.storedqueries</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\"\n [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter\n (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.folder.filter.title' | translate\" [id]=\"'stored.queries.text'\"\n [matchFields]=\"['name']\"\n [filterParams]=\"textFilterParams\"></eo-text-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'stored.queries.type'\"\n [title]=\"'eo.folder.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\"\n [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconClass]=\"'primary'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'stored.queries.sort'\"\n (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\"\n [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions?.rowData\"\n [fullWidth]=\"true\"\n [showHeader]=\"true\"\n [showFooter]=\"true\"\n [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_search.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.stored.queries.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\" (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n </eo-split-area>\n <eo-split-area [size]=\"75\" [minSizePixel]=\"600\" [cache]=\"false\">\n <ng-template pTemplate=\"content\">\n <eo-stored-query-details (notifyList)=\"notifyList($event)\"></eo-stored-query-details>\n </ng-template>\n </eo-split-area>\n </eo-split>\n</eo-undock-split>\n",
|
|
184
184
|
styles: [":host{bottom:var(--app-pane-padding);left:var(--app-pane-padding);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding)}:host eo-split-area{box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}:host ::ng-deep eo-grid .ag-cell .list-item{align-items:center;display:flex;flex:1;flex-direction:row;height:80px;min-height:0;min-width:0}:host ::ng-deep eo-grid .ag-cell .list-item[unselectable]{-moz-user-select:none;-webkit-user-select:none;user-select:none}:host ::ng-deep eo-grid .ag-cell .list-item .content{display:inline-block;flex:1;max-width:none;overflow:hidden;padding:var(--app-pane-padding);text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep eo-grid .ag-cell .list-item .content .title{font-size:var(--font-body);font-weight:var(--font-weight-medium)}:host ::ng-deep eo-grid .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep eo-grid .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons{font-size:15px}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons img{height:16px;padding:3px;width:16px}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons .object-type-label{display:none}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons.shared-with-me>span{-webkit-border-radius:2px;background-color:var(--text-color-hint);border-radius:2px}"]
|
|
185
185
|
},] }
|
|
186
186
|
];
|
|
@@ -198,4 +198,4 @@ StoredQueriesStateComponent.ctorParameters = () => [
|
|
|
198
198
|
StoredQueriesStateComponent.propDecorators = {
|
|
199
199
|
eoGrid: [{ type: ViewChild, args: ['eoGrid',] }]
|
|
200
200
|
};
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc3RvcmVkLXF1ZXJpZXMtc3RhdGUvc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMvRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNyRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUd0RyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUN6RyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBVSxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3BGLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBT2xGLE1BQU0sT0FBTywyQkFB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O1FBQ2xCLENBQUMsQ0FDQSxDQUFDO1FBQ0osNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBRU4sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLHlFQUF5RTtRQUN6RSx3REFBd0Q7UUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixJQUFJLEtBQUssWUFBWSxhQUFhLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLDZCQUE2QixFQUFFO2dCQUMvRixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBcE5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxxcElBQW9EOzthQUVyRDs7O1lBckJPLGNBQWM7WUFBRSxNQUFNO1lBSXRCLHFCQUFxQjtZQUlyQixnQkFBZ0I7WUFMaEIsZ0JBQWdCO1lBT2hCLG9CQUFvQjtZQUtwQixnQkFBZ0I7WUFMTSxXQUFXO1lBVGpDLGdCQUFnQjs7O3FCQWtDckIsU0FBUyxTQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZpcnN0LCB0YWtlVW50aWwsIGRlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlciwgTmF2aWdhdGlvbkVuZH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtDdXN0b21Tb3J0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2N1c3RvbS1zb3J0L2N1c3RvbS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyaWVzU2VydmljZSwgVXNlclNlcnZpY2UsIEVvVXNlciwgU3RvcmVkUXVlcnl9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0lTZXRGaWx0ZXJ9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvZmlsdGVyL3NldEZpbHRlcnMvc2V0LWZpbHRlcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7VHlwZUZpbHRlcn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnktdHlwZS1maWx0ZXIuZW51bSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc3RvcmVkLXF1ZXJpZXMtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdG9yZWQtcXVlcmllcy1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JlZFF1ZXJpZXNTdGF0ZUNvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25Jbml0LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCwgT25EZXN0cm95IHtcblxuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdID0gW107XG4gIHNlbGVjdGVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICB0eXBlRmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgZ3JpZERhdGE6IFN0b3JlZFF1ZXJ5W107XG4gIHRleHRGaWx0ZXJQYXJhbXM6IGFueSA9IHt9O1xuXG4gIHVzZXI6IEVvVXNlcjtcbiAgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoOiBBcHBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnRpdGxlLnN0b3JlZHF1ZXJpZXMnKSk7XG4gIH1cblxuICBzZWxlY3QocXVlcnk6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9jdXMocXVlcnkpO1xuICAgIGlmICh0aGlzLmVvR3JpZCkge1xuICAgICAgdGhpcy5lb0dyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gICAgICB0aGlzLmVvR3JpZC5hcGkuY2xlYXJGb2N1c2VkQ2VsbCgpO1xuICAgIH1cbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICBnZXRTdG9yZWRRdWVyeXMoKSB7XG4gICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2VcbiAgICAgIC5zdG9yZWRRdWVyaWVzJC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMClcbiAgICAgICkuc3Vic2NyaWJlKHF1ZXJpZXNTdWJzY3JpcHRpb24gPT4ge1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gXy5vcmRlckJ5KHF1ZXJpZXNTdWJzY3JpcHRpb24ucXVlcmllcywgWydmYXZvcml0ZScsICduYW1lJ10sIFsnZGVzYycsICdhc2MnXSk7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhLCBxdWVyaWVzU3Vic2NyaXB0aW9uLnNlbGVjdCAmJiB0aGlzLmdyaWREYXRhID8gcXVlcmllc1N1YnNjcmlwdGlvbi5zZWxlY3QgOiBudWxsKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEdyaWQoKSB7XG4gICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5yZWZyZXNoU3RvcmVkUXVlcmllcygpO1xuICB9XG5cbiAgZ2V0Um93SW5kZXgoaWQpIHtcbiAgICBpZiAodGhpcy5lb0dyaWQpIHtcbiAgICAgIGNvbnN0IHJvd05vZGVJZCA9IHRoaXMuZW9HcmlkLmdyaWRPcHRpb25zLmdldFJvd05vZGVJZChpZCk7XG4gICAgICBjb25zdCByb3dOb2RlID0gdGhpcy5lb0dyaWQuYXBpLmdldFJvd05vZGUocm93Tm9kZUlkKTtcbiAgICAgIHJldHVybiByb3dOb2RlID8gcm93Tm9kZS5yb3dJbmRleCA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbm90aWZ5TGlzdCh2YWwpIHtcbiAgICBpZiAodGhpcy5lb0dyaWQpIHtcbiAgICAgIGNvbnN0IHt1bnNlbGVjdCwgdXBkYXRlLCBwYXlsb2FkfSA9IHZhbDtcbiAgICAgIGlmICghdW5zZWxlY3QgJiYgIXVwZGF0ZSAmJiAhcGF5bG9hZCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZW9HcmlkLnNlbGVjdFJvdygwKSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0eXBlRmlsdGVyKG5vZGUsIGl0ZW06IHN0cmluZykge1xuICAgIHN3aXRjaCAoaXRlbSkge1xuICAgICAgY2FzZSBUeXBlRmlsdGVyLmZhdm9yZWQ6XG4gICAgICBjYXNlIFR5cGVGaWx0ZXIuc2hhcmVkOlxuICAgICAgICByZXR1cm4gIVV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2Uobm9kZS5kYXRhW2l0ZW1dKTtcbiAgICAgIGNhc2UgVHlwZUZpbHRlci5vdGhlcnM6XG4gICAgICAgIHJldHVybiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKG5vZGUuZGF0YVtUeXBlRmlsdGVyLmZhdm9yZWRdKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKG5vZGUuZGF0YVtUeXBlRmlsdGVyLnNoYXJlZF0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgdHlwZUZpbHRlcnMoKSB7XG4gICAgdGhpcy50eXBlRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoVHlwZUZpbHRlcikubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5zdG9yZWRxdWVyeS4ke2l0ZW19LmZpbHRlci50aXRsZWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gdGhpcy50eXBlRmlsdGVyKG5vZGUsIFR5cGVGaWx0ZXJbaXRlbV0pLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBpZDogaXRlbVxuICAgIH0pKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzKCk7XG4gIH1cblxuICB1cGRhdGVHcmlkKGRhdGEsIGlkKSB7XG5cbiAgICBpZiAodGhpcy5lb0dyaWQgJiYgdGhpcy5lb0dyaWQuaXNSZWFkeSkge1xuICAgICAgLy8gdG9kbzogaG90Zml4OiBlbmFibGUgYXV0byBzZWxlY3Rpb24gaW4gY2FzZSBpdCB3YXMgZGlzYWJsZWQgYnkgbmV3IHF1ZXJ5XG4gICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnNlbGVjdEZpcnN0ID0gdHJ1ZSksIDEwMDApO1xuICAgICAgcmV0dXJuIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEoZGF0YSwgaWQpO1xuICAgIH1cblxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICBsZXQgY29sRGVmczogQ29sRGVmW10gPSBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICBmaWVsZDogJ19fY3VzdG9tJyxcbiAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLmNlbGxSZW5kZXJlcixcbiAgICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgfVxuICAgIF07XG5cbiAgICB0aGlzLnRleHRGaWx0ZXJQYXJhbXMgPSB7Y29udGV4dDoge2RlZmF1bHRWYWx1ZTogJyd9fTtcbiAgICB0aGlzLnNvcnRGaWVsZHMgPSBbe2ZpZWxkOiAnbmFtZScsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQudGl0bGUnKSwgc29ydDogJyd9XTtcbiAgICBsZXQgc29ydENvbERlZnMgPSBDdXN0b21Tb3J0Q29tcG9uZW50LnNvcnRDb2xEZWZzKHRoaXMuc29ydEZpZWxkcyk7XG5cbiAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgY29udGV4dDoge2NvdW50OiBkYXRhLmxlbmd0aCwgY3VycmVudFVzZXI6IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKX0sXG4gICAgICByb3dEYXRhOiBkYXRhLFxuICAgICAgY29sdW1uRGVmczogY29sRGVmcy5jb25jYXQoc29ydENvbERlZnMpLFxuICAgICAgcm93QnVmZmVyOiAyMCxcbiAgICAgIHJvd0hlaWdodDogODBcbiAgICB9O1xuICB9XG5cbiAgY2VsbFJlbmRlcmVyKHBhcmFtcykge1xuICAgIGNvbnN0IG93biA9IHBhcmFtcy5jb250ZXh0LmN1cnJlbnRVc2VyLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gcGFyYW1zLmRhdGEudXNlci50b0xvd2VyQ2FzZSgpO1xuXG4gICAgY29uc3QgZmF2SWNvblRpdGxlID0gIW93biA/ICdlby5zdG9yZWRxdWVyeS5mYXZvcmVkZm9yLnRpdGxlJyA6ICdlby5zdG9yZWRxdWVyeS5mYXZvcmVkLnRpdGxlJztcbiAgICBjb25zdCBzaGFyZUljb25UaXRsZSA9ICFvd24gPyAnZW8uc3RvcmVkcXVlcnkuc2hhcmVkZm9yLnRpdGxlJyA6ICdlby5zdG9yZWRxdWVyeS5zaGFyZWQudGl0bGUnO1xuXG4gICAgY29uc3QgZmF2SWNvbiA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2UocGFyYW1zLmRhdGFbVHlwZUZpbHRlci5mYXZvcmVkXSkgPyAnJyA6XG4gICAgICBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2ljb24nLCBwYXJhbXMsIHtcbiAgICAgICAgdmFsdWU6IHtsYWJlbDogcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoZmF2SWNvblRpdGxlKSwgdXJsOiAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19mYXZvcml0ZS5zdmcnfVxuICAgICAgfSk7XG5cbiAgICBjb25zdCBzaGFyZUljb24gPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKHBhcmFtcy5kYXRhW1R5cGVGaWx0ZXIuc2hhcmVkXSkgPyAnJyA6XG4gICAgICBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2ljb24nLCBwYXJhbXMsIHtcbiAgICAgICAgdmFsdWU6IHtsYWJlbDogcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoc2hhcmVJY29uVGl0bGUpLCB1cmw6ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NoYXJlLnN2Zyd9XG4gICAgICB9KTtcblxuXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtXCIgdW5zZWxlY3RhYmxlPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250ZW50Jz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSd0aXRsZSc+JHtwYXJhbXMuZGF0YS5uYW1lIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2ljb25zICR7IW93biA/ICdzaGFyZWQtd2l0aC1tZScgOiAnJ30nPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+JHtmYXZJY29ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7c2hhcmVJY29ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGxldCBmb2N1c2VkID0gdGhpcy5zZWxlY3Rpb24uZ2V0Rm9jdXMoKTtcbiAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5yZW1vdmVTdG9yZWRRdWVyeShmb2N1c2VkLmlkKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXdTdG9yZWRRdWVyeSgpIHtcbiAgICB0aGlzLmFwcFNlYXJjaC5xdWVyeSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShxdWVyeSA9PiB7XG4gICAgICAgIGxldCBzcSA9IG5ldyBTdG9yZWRRdWVyeSgpO1xuICAgICAgICBzcS5zZXRRdWVyeShxdWVyeSk7XG4gICAgICAgIHRoaXMuc2VsZWN0KHNxKTtcbiAgICAgIH1cbiAgICAgICk7XG4gICAgLy8gZ2V0IHJpZCBvZiB0aGUgcXVlcnkgcGFyYW1cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zdG9yZWQtcXVlcmllcyddLCB7cmVwbGFjZVVybDogdHJ1ZX0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5cygpO1xuXG4gICAgLy8gaW4gY2FzZSBvZiBnZXR0aW5nIHRoZSBjcmVhdGUgcGFyYW0sIHdlJ2xsIGZldGNoIHRoZSBsYXRlc3QgcXVlcnkgZnJvbVxuICAgIC8vIGFwcFNlYXJjaFNlcnZpY2UgYW5kIGNyZWF0ZSBhIG5ldyBTdG9yZWRRdWVyeSBmcm9tIGl0XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2NyZWF0ZSddKSB7XG4gICAgICB0aGlzLnNlbGVjdEZpcnN0ID0gZmFsc2U7XG4gICAgICB0aGlzLmNyZWF0ZU5ld1N0b3JlZFF1ZXJ5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzID09PSAnL3N0b3JlZC1xdWVyaWVzP2NyZWF0ZT10cnVlJykge1xuICAgICAgICAgIHRoaXMuY3JlYXRlTmV3U3RvcmVkUXVlcnkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxufVxuIl19
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc3RvcmVkLXF1ZXJpZXMtc3RhdGUvc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMvRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNyRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUd0RyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUN6RyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBVSxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3BGLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBT2xGLE1BQU0sT0FBTywyQkFB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O1FBQ2xCLENBQUMsQ0FDQSxDQUFDO1FBQ0osNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBRU4sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLHlFQUF5RTtRQUN6RSx3REFBd0Q7UUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixJQUFJLEtBQUssWUFBWSxhQUFhLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLDZCQUE2QixFQUFFO2dCQUMvRixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBcE5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxrcElBQW9EOzthQUVyRDs7O1lBckJPLGNBQWM7WUFBRSxNQUFNO1lBSXRCLHFCQUFxQjtZQUlyQixnQkFBZ0I7WUFMaEIsZ0JBQWdCO1lBT2hCLG9CQUFvQjtZQUtwQixnQkFBZ0I7WUFMTSxXQUFXO1lBVGpDLGdCQUFnQjs7O3FCQWtDckIsU0FBUyxTQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZpcnN0LCB0YWtlVW50aWwsIGRlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlciwgTmF2aWdhdGlvbkVuZH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtDdXN0b21Tb3J0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2N1c3RvbS1zb3J0L2N1c3RvbS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyaWVzU2VydmljZSwgVXNlclNlcnZpY2UsIEVvVXNlciwgU3RvcmVkUXVlcnl9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0lTZXRGaWx0ZXJ9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvZmlsdGVyL3NldEZpbHRlcnMvc2V0LWZpbHRlcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7VHlwZUZpbHRlcn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnktdHlwZS1maWx0ZXIuZW51bSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc3RvcmVkLXF1ZXJpZXMtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdG9yZWQtcXVlcmllcy1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JlZFF1ZXJpZXNTdGF0ZUNvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25Jbml0LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCwgT25EZXN0cm95IHtcblxuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdID0gW107XG4gIHNlbGVjdGVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICB0eXBlRmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgZ3JpZERhdGE6IFN0b3JlZFF1ZXJ5W107XG4gIHRleHRGaWx0ZXJQYXJhbXM6IGFueSA9IHt9O1xuXG4gIHVzZXI6IEVvVXNlcjtcbiAgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoOiBBcHBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnRpdGxlLnN0b3JlZHF1ZXJpZXMnKSk7XG4gIH1cblxuICBzZWxlY3QocXVlcnk6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9jdXMocXVlcnkpO1xuICAgIGlmICh0aGlzLmVvR3JpZCkge1xuICAgICAgdGhpcy5lb0dyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gICAgICB0aGlzLmVvR3JpZC5hcGkuY2xlYXJGb2N1c2VkQ2VsbCgpO1xuICAgIH1cbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICBnZXRTdG9yZWRRdWVyeXMoKSB7XG4gICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2VcbiAgICAgIC5zdG9yZWRRdWVyaWVzJC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMClcbiAgICAgICkuc3Vic2NyaWJlKHF1ZXJpZXNTdWJzY3JpcHRpb24gPT4ge1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gXy5vcmRlckJ5KHF1ZXJpZXNTdWJzY3JpcHRpb24ucXVlcmllcywgWydmYXZvcml0ZScsICduYW1lJ10sIFsnZGVzYycsICdhc2MnXSk7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhLCBxdWVyaWVzU3Vic2NyaXB0aW9uLnNlbGVjdCAmJiB0aGlzLmdyaWREYXRhID8gcXVlcmllc1N1YnNjcmlwdGlvbi5zZWxlY3QgOiBudWxsKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEdyaWQoKSB7XG4gICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5yZWZyZXNoU3RvcmVkUXVlcmllcygpO1xuICB9XG5cbiAgZ2V0Um93SW5kZXgoaWQpIHtcbiAgICBpZiAodGhpcy5lb0dyaWQpIHtcbiAgICAgIGNvbnN0IHJvd05vZGVJZCA9IHRoaXMuZW9HcmlkLmdyaWRPcHRpb25zLmdldFJvd05vZGVJZChpZCk7XG4gICAgICBjb25zdCByb3dOb2RlID0gdGhpcy5lb0dyaWQuYXBpLmdldFJvd05vZGUocm93Tm9kZUlkKTtcbiAgICAgIHJldHVybiByb3dOb2RlID8gcm93Tm9kZS5yb3dJbmRleCA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbm90aWZ5TGlzdCh2YWwpIHtcbiAgICBpZiAodGhpcy5lb0dyaWQpIHtcbiAgICAgIGNvbnN0IHt1bnNlbGVjdCwgdXBkYXRlLCBwYXlsb2FkfSA9IHZhbDtcbiAgICAgIGlmICghdW5zZWxlY3QgJiYgIXVwZGF0ZSAmJiAhcGF5bG9hZCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZW9HcmlkLnNlbGVjdFJvdygwKSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0eXBlRmlsdGVyKG5vZGUsIGl0ZW06IHN0cmluZykge1xuICAgIHN3aXRjaCAoaXRlbSkge1xuICAgICAgY2FzZSBUeXBlRmlsdGVyLmZhdm9yZWQ6XG4gICAgICBjYXNlIFR5cGVGaWx0ZXIuc2hhcmVkOlxuICAgICAgICByZXR1cm4gIVV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2Uobm9kZS5kYXRhW2l0ZW1dKTtcbiAgICAgIGNhc2UgVHlwZUZpbHRlci5vdGhlcnM6XG4gICAgICAgIHJldHVybiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKG5vZGUuZGF0YVtUeXBlRmlsdGVyLmZhdm9yZWRdKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKG5vZGUuZGF0YVtUeXBlRmlsdGVyLnNoYXJlZF0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgdHlwZUZpbHRlcnMoKSB7XG4gICAgdGhpcy50eXBlRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoVHlwZUZpbHRlcikubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5zdG9yZWRxdWVyeS4ke2l0ZW19LmZpbHRlci50aXRsZWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gdGhpcy50eXBlRmlsdGVyKG5vZGUsIFR5cGVGaWx0ZXJbaXRlbV0pLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBpZDogaXRlbVxuICAgIH0pKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzKCk7XG4gIH1cblxuICB1cGRhdGVHcmlkKGRhdGEsIGlkKSB7XG5cbiAgICBpZiAodGhpcy5lb0dyaWQgJiYgdGhpcy5lb0dyaWQuaXNSZWFkeSkge1xuICAgICAgLy8gdG9kbzogaG90Zml4OiBlbmFibGUgYXV0byBzZWxlY3Rpb24gaW4gY2FzZSBpdCB3YXMgZGlzYWJsZWQgYnkgbmV3IHF1ZXJ5XG4gICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnNlbGVjdEZpcnN0ID0gdHJ1ZSksIDEwMDApO1xuICAgICAgcmV0dXJuIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEoZGF0YSwgaWQpO1xuICAgIH1cblxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICBsZXQgY29sRGVmczogQ29sRGVmW10gPSBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICBmaWVsZDogJ19fY3VzdG9tJyxcbiAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLmNlbGxSZW5kZXJlcixcbiAgICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgfVxuICAgIF07XG5cbiAgICB0aGlzLnRleHRGaWx0ZXJQYXJhbXMgPSB7Y29udGV4dDoge2RlZmF1bHRWYWx1ZTogJyd9fTtcbiAgICB0aGlzLnNvcnRGaWVsZHMgPSBbe2ZpZWxkOiAnbmFtZScsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQudGl0bGUnKSwgc29ydDogJyd9XTtcbiAgICBsZXQgc29ydENvbERlZnMgPSBDdXN0b21Tb3J0Q29tcG9uZW50LnNvcnRDb2xEZWZzKHRoaXMuc29ydEZpZWxkcyk7XG5cbiAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgY29udGV4dDoge2NvdW50OiBkYXRhLmxlbmd0aCwgY3VycmVudFVzZXI6IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKX0sXG4gICAgICByb3dEYXRhOiBkYXRhLFxuICAgICAgY29sdW1uRGVmczogY29sRGVmcy5jb25jYXQoc29ydENvbERlZnMpLFxuICAgICAgcm93QnVmZmVyOiAyMCxcbiAgICAgIHJvd0hlaWdodDogODBcbiAgICB9O1xuICB9XG5cbiAgY2VsbFJlbmRlcmVyKHBhcmFtcykge1xuICAgIGNvbnN0IG93biA9IHBhcmFtcy5jb250ZXh0LmN1cnJlbnRVc2VyLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gcGFyYW1zLmRhdGEudXNlci50b0xvd2VyQ2FzZSgpO1xuXG4gICAgY29uc3QgZmF2SWNvblRpdGxlID0gIW93biA/ICdlby5zdG9yZWRxdWVyeS5mYXZvcmVkZm9yLnRpdGxlJyA6ICdlby5zdG9yZWRxdWVyeS5mYXZvcmVkLnRpdGxlJztcbiAgICBjb25zdCBzaGFyZUljb25UaXRsZSA9ICFvd24gPyAnZW8uc3RvcmVkcXVlcnkuc2hhcmVkZm9yLnRpdGxlJyA6ICdlby5zdG9yZWRxdWVyeS5zaGFyZWQudGl0bGUnO1xuXG4gICAgY29uc3QgZmF2SWNvbiA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2UocGFyYW1zLmRhdGFbVHlwZUZpbHRlci5mYXZvcmVkXSkgPyAnJyA6XG4gICAgICBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2ljb24nLCBwYXJhbXMsIHtcbiAgICAgICAgdmFsdWU6IHtsYWJlbDogcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoZmF2SWNvblRpdGxlKSwgdXJsOiAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19mYXZvcml0ZS5zdmcnfVxuICAgICAgfSk7XG5cbiAgICBjb25zdCBzaGFyZUljb24gPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKHBhcmFtcy5kYXRhW1R5cGVGaWx0ZXIuc2hhcmVkXSkgPyAnJyA6XG4gICAgICBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2ljb24nLCBwYXJhbXMsIHtcbiAgICAgICAgdmFsdWU6IHtsYWJlbDogcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoc2hhcmVJY29uVGl0bGUpLCB1cmw6ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NoYXJlLnN2Zyd9XG4gICAgICB9KTtcblxuXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtXCIgdW5zZWxlY3RhYmxlPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250ZW50Jz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSd0aXRsZSc+JHtwYXJhbXMuZGF0YS5uYW1lIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2ljb25zICR7IW93biA/ICdzaGFyZWQtd2l0aC1tZScgOiAnJ30nPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+JHtmYXZJY29ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7c2hhcmVJY29ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGxldCBmb2N1c2VkID0gdGhpcy5zZWxlY3Rpb24uZ2V0Rm9jdXMoKTtcbiAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5yZW1vdmVTdG9yZWRRdWVyeShmb2N1c2VkLmlkKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXdTdG9yZWRRdWVyeSgpIHtcbiAgICB0aGlzLmFwcFNlYXJjaC5xdWVyeSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShxdWVyeSA9PiB7XG4gICAgICAgIGxldCBzcSA9IG5ldyBTdG9yZWRRdWVyeSgpO1xuICAgICAgICBzcS5zZXRRdWVyeShxdWVyeSk7XG4gICAgICAgIHRoaXMuc2VsZWN0KHNxKTtcbiAgICAgIH1cbiAgICAgICk7XG4gICAgLy8gZ2V0IHJpZCBvZiB0aGUgcXVlcnkgcGFyYW1cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zdG9yZWQtcXVlcmllcyddLCB7cmVwbGFjZVVybDogdHJ1ZX0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5cygpO1xuXG4gICAgLy8gaW4gY2FzZSBvZiBnZXR0aW5nIHRoZSBjcmVhdGUgcGFyYW0sIHdlJ2xsIGZldGNoIHRoZSBsYXRlc3QgcXVlcnkgZnJvbVxuICAgIC8vIGFwcFNlYXJjaFNlcnZpY2UgYW5kIGNyZWF0ZSBhIG5ldyBTdG9yZWRRdWVyeSBmcm9tIGl0XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2NyZWF0ZSddKSB7XG4gICAgICB0aGlzLnNlbGVjdEZpcnN0ID0gZmFsc2U7XG4gICAgICB0aGlzLmNyZWF0ZU5ld1N0b3JlZFF1ZXJ5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzID09PSAnL3N0b3JlZC1xdWVyaWVzP2NyZWF0ZT10cnVlJykge1xuICAgICAgICAgIHRoaXMuY3JlYXRlTmV3U3RvcmVkUXVlcnkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxufVxuIl19
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { take, takeUntil, filter, tap } from 'rxjs/operators';
|
|
2
|
-
import { Component, ViewEncapsulation, ComponentFactoryResolver, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, ComponentFactoryResolver, ViewChild, ViewContainerRef, ElementRef } from '@angular/core';
|
|
3
3
|
import { Utils } from '@eo-sdk/core';
|
|
4
4
|
import { ActionService } from '../action-service/action.service';
|
|
5
5
|
import { ActionComponentAnchorDirective } from './action-component-anchor/action-component-anchor.directive';
|
|
6
6
|
import { Router, NavigationStart } from '@angular/router';
|
|
7
7
|
import { UnsubscribeOnDestroy } from '../../util/unsubscribe/unsubscribe.component';
|
|
8
8
|
export class ActionMenuComponent extends UnsubscribeOnDestroy {
|
|
9
|
-
constructor(actionService, router, viewContainerRef, componentFactoryResolver) {
|
|
9
|
+
constructor(actionService, router, viewContainerRef, elemRef, componentFactoryResolver) {
|
|
10
10
|
super();
|
|
11
11
|
this.actionService = actionService;
|
|
12
12
|
this.router = router;
|
|
13
13
|
this.viewContainerRef = viewContainerRef;
|
|
14
|
+
this.elemRef = elemRef;
|
|
14
15
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
15
16
|
this.actionLists = {
|
|
16
17
|
common: [], further: []
|
|
@@ -61,12 +62,18 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
|
|
|
61
62
|
event.preventDefault();
|
|
62
63
|
this.actionDescription = i === this.actionDescription ? null : i;
|
|
63
64
|
}
|
|
65
|
+
catchFocus() {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
64
70
|
showActionMenu() {
|
|
65
71
|
this.getActions();
|
|
66
72
|
if (this.target === 'DMS_OBJECT') {
|
|
67
73
|
this.getMoreActions();
|
|
68
74
|
}
|
|
69
75
|
this.showMenu = true;
|
|
76
|
+
this.catchFocus();
|
|
70
77
|
}
|
|
71
78
|
hideActionMenu() {
|
|
72
79
|
this.clear();
|
|
@@ -141,6 +148,7 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
|
|
|
141
148
|
}
|
|
142
149
|
onCancel() {
|
|
143
150
|
this.clear();
|
|
151
|
+
this.catchFocus();
|
|
144
152
|
}
|
|
145
153
|
onFinish() {
|
|
146
154
|
this.hideActionMenu();
|
|
@@ -149,19 +157,20 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
|
|
|
149
157
|
ActionMenuComponent.decorators = [
|
|
150
158
|
{ type: Component, args: [{
|
|
151
159
|
selector: 'eo-action-menu',
|
|
152
|
-
template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div>\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.common; index as i\" (click)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.further; index as i\" eoPreventDoubleClick
|
|
160
|
+
template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div tabindex=\"0\">\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.common; index as i\" (click)=\"onClick(actionListEntry)\" (keydown.enter)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.further; index as i\" eoPreventDoubleClick (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" eoTrapFocus *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.export.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n",
|
|
153
161
|
encapsulation: ViewEncapsulation.None,
|
|
154
|
-
styles: [".action-menu{-webkit-animation:eoFadeInRight var(--app-default-transition-duration);animation:eoFadeInRight var(--app-default-transition-duration);background-color:rgba(var(--color-primary-rgb),.95);bottom:0;box-shadow:0 0 10px 0 rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;min-width:300px;overflow:hidden;position:absolute;right:0;top:0;width:25vw;z-index:100}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{display:inline-block;min-width:200px;padding:var(--app-pane-padding);width:90%}.action-menu .group .group-title{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{color:inherit;display:block;opacity:1;text-decoration:none}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;cursor:pointer;display:flex;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) calc(var(--app-pane-padding)/2) 0;transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding)/2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{color:rgba(var(--color-white-rgb),.3)}.action-menu .action .available-count,.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding)/2)}.action-menu .action eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:rgba(var(--color-white-rgb),.3);margin:0;padding:3px}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-border-radius:2px;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;border-radius:2px;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding)/4) var(--app-pane-padding) calc(var(--app-pane-padding)/2) var(--app-pane-padding);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action:last-child{border:0}.action-menu .action:focus,.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{align-items:center;display:flex;justify-content:center;margin:50% auto;padding:16px}"]
|
|
162
|
+
styles: [".action-menu{-webkit-animation:eoFadeInRight var(--app-default-transition-duration);animation:eoFadeInRight var(--app-default-transition-duration);background-color:rgba(var(--color-primary-rgb),.95);bottom:0;box-shadow:0 0 10px 0 rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;min-width:300px;overflow:hidden;position:absolute;right:0;top:0;width:25vw;z-index:100}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{display:inline-block;min-width:200px;padding:var(--app-pane-padding);width:90%}.action-menu .group .group-title{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action :focus{background:rgba(var(--color-white-rgb),.1)}.action-menu .action a.link{color:inherit;display:block;opacity:1;text-decoration:none}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;cursor:pointer;display:flex;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) calc(var(--app-pane-padding)/2) 0;transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding)/2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{color:rgba(var(--color-white-rgb),.3)}.action-menu .action .available-count,.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding)/2)}.action-menu .action eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:rgba(var(--color-white-rgb),.3);margin:0;padding:3px}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-border-radius:2px;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;border-radius:2px;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding)/4) var(--app-pane-padding) calc(var(--app-pane-padding)/2) var(--app-pane-padding);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action:last-child{border:0}.action-menu .action:focus,.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{align-items:center;display:flex;justify-content:center;margin:50% auto;padding:16px}:host ::ng-deep #default .allActionEntry{focus:red}"]
|
|
155
163
|
},] }
|
|
156
164
|
];
|
|
157
165
|
ActionMenuComponent.ctorParameters = () => [
|
|
158
166
|
{ type: ActionService },
|
|
159
167
|
{ type: Router },
|
|
160
168
|
{ type: ViewContainerRef },
|
|
169
|
+
{ type: ElementRef },
|
|
161
170
|
{ type: ComponentFactoryResolver }
|
|
162
171
|
];
|
|
163
172
|
ActionMenuComponent.propDecorators = {
|
|
164
173
|
eoActionComponentAnchor: [{ type: ViewChild, args: [ActionComponentAnchorDirective,] }],
|
|
165
174
|
externalDialog: [{ type: ViewChild, args: [ActionComponentAnchorDirective,] }]
|
|
166
175
|
};
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbkMsT0FBTyxFQUFDLGFBQWEsRUFBb0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUlsRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUMsTUFBTSxFQUFFLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBV2xGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUFxQjNELFlBQW9CLGFBQTRCLEVBQzVCLE1BQWMsRUFDZixnQkFBa0MsRUFDakMsd0JBQWtEO1FBQ3BFLEtBQUssRUFBRSxDQUFDO1FBSlUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQW5CdEUsZ0JBQVcsR0FHUDtZQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUU7U0FDeEIsQ0FBQztRQUNGLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztR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QUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dGFrZSwgdGFrZVVudGlsLCBmaWx0ZXIsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1V0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlLCBBY3Rpb25TaG93Q29tbWFuZH0gZnJvbSAnLi4vYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtFeHRlcm5hbFByb2Nlc3NDb21wb25lbnRBY3Rpb259IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmV9IGZyb20gJy4vYWN0aW9uLWNvbXBvbmVudC1hbmNob3IvYWN0aW9uLWNvbXBvbmVudC1hbmNob3IuZGlyZWN0aXZlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uU3RhcnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0FjdGlvbkxpc3RFbnRyeX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hY3Rpb24tbGlzdC1lbnRyeSc7XG5pbXBvcnQge0NvbXBvbmVudEFjdGlvbiwgRXh0ZXJuYWxDb21wb25lbnRBY3Rpb24sIExpc3RBY3Rpb24sIFNpbXBsZUFjdGlvbn0gZnJvbSAnLi4vJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1hY3Rpb24tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uTWVudUNvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZSkgZW9BY3Rpb25Db21wb25lbnRBbmNob3I6IEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZTtcbiAgQFZpZXdDaGlsZChBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmUpIGV4dGVybmFsRGlhbG9nOiBBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmU7XG5cbiAgYWN0aW9uTGlzdHM6IHtcbiAgICBjb21tb246IEFjdGlvbkxpc3RFbnRyeVtdLFxuICAgIGZ1cnRoZXI6IEFjdGlvbkxpc3RFbnRyeVtdXG4gIH0gPSB7XG4gICAgY29tbW9uOiBbXSwgZnVydGhlcjogW11cbiAgfTtcbiAgc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSAnJztcbiAgc3ViQWN0aW9uc0xpc3Q6IEFjdGlvbkxpc3RFbnRyeVtdO1xuICBzZWxlY3Rpb246IGFueVtdO1xuICBzdWJTZWxlY3Rpb246IGFueVtdO1xuICB0YXJnZXQ6IHN0cmluZztcbiAgc2hvd0NvbXBvbmVudCA9IGZhbHNlO1xuICBhY3Rpb25EZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzaG93TWVudSA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBzdWJzY3JpYmUgZm9yIHZpc2liaWxpdHkgb2JzZXJ2YWJsZSBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gc2hvdyBvciBoaWRlIHRoZSBhY3Rpb25zXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuYWN0aW9uc1Nob3dpbmckLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNtZDogQWN0aW9uU2hvd0NvbW1hbmQpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dNZW51ICYmIGNtZC5zaG93KSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBjbWQuc2VsZWN0aW9uO1xuICAgICAgICAgIHRoaXMudGFyZ2V0ID0gY21kLnRhcmdldDtcbiAgICAgICAgICB0aGlzLnNob3dBY3Rpb25NZW51KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zaG93TWVudSAmJiAhY21kLnNob3cpIHtcbiAgICAgICAgICB0aGlzLmhpZGVBY3Rpb25NZW51KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcihldnQgPT4gZXZ0IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlKCkpO1xuXG4gIH1cblxuICBwcml2YXRlIGdldEFjdGlvbnMoKSB7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuZ2V0QWN0aW9uc0xpc3QodGhpcy5zZWxlY3Rpb24sIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICAgIC5zdWJzY3JpYmUoYWN0aW9uc0xpc3QgPT4ge1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmNvbW1vbiA9IGFjdGlvbnNMaXN0LmZpbHRlcihhY3Rpb25MaXN0RW50cnkgPT4gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5ncm91cCA9PT0gJ2NvbW1vbicpO1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIgPSBhY3Rpb25zTGlzdC5maWx0ZXIoYWN0aW9uTGlzdEVudHJ5ID0+IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24uZ3JvdXAgPT09ICdmdXJ0aGVyJyk7XG4gICAgICB9KTtcblxuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb3JlQWN0aW9ucygpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYWN0aW9uU2VydmljZVxuICAgICAgLmdldE1vcmVBY3Rpb25zKHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgICAuc3Vic2NyaWJlKGFjdGlvbkxpc3QgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyID0gdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyLmNvbmNhdChhY3Rpb25MaXN0KS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2FjdGlvbi5sYWJlbCcpKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuYWN0aW9uU2VydmljZS5oaWRlQWN0aW9ucygpO1xuICB9XG5cbiAgc2hvd0FjdGlvbkRlc2NyaXB0aW9uKGksIGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID0gaSA9PT0gdGhpcy5hY3Rpb25EZXNjcmlwdGlvbiA/IG51bGwgOiBpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93QWN0aW9uTWVudSgpIHtcbiAgICB0aGlzLmdldEFjdGlvbnMoKTtcbiAgICBpZiAodGhpcy50YXJnZXQgPT09ICdETVNfT0JKRUNUJykge1xuICAgICAgdGhpcy5nZXRNb3JlQWN0aW9ucygpO1xuICAgIH1cbiAgICB0aGlzLnNob3dNZW51ID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZUFjdGlvbk1lbnUoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuc2hvd01lbnUgPSBmYWxzZTtcbiAgICB0aGlzLmFjdGlvbkxpc3RzID0ge2NvbW1vbjogW10sIGZ1cnRoZXI6IFtdfTtcbiAgfVxuXG4gIG9uQ2xpY2soYWN0aW9uTGlzdEVudHJ5OiBBY3Rpb25MaXN0RW50cnkpIHtcbiAgICB0aGlzLnN1YlNlbGVjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hdmFpbGFibGVTZWxlY3Rpb247XG4gICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBhY3Rpb25zIGltcGxlbWVudCBtb3JlIHRoYW4gb25lIGFjdGlvbiBpbnRlcmZhY2VcbiAgICAvLyBzbyB3ZSBzaG91bGQgYmUgYXdhcmUgb2YgcnVubmluZyBhbiBhY3Rpb24gYW5kIHRoZW4gb3BlbiBpdHMgc3ViIGFjdGlvbnNcblxuICAgIGNvbnN0IGlzU2ltcGxlQWN0aW9uID0gISFhY3Rpb25MaXN0RW50cnkuYWN0aW9uWydydW4nXTtcbiAgICBjb25zdCBpc0xpc3RBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmhhc093blByb3BlcnR5KCdzdWJBY3Rpb25Db21wb25lbnRzJyk7XG4gICAgY29uc3QgaXNDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmhhc093blByb3BlcnR5KCdjb21wb25lbnQnKTtcbiAgICBjb25zdCBpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnZXh0Q29tcG9uZW50cycpO1xuICAgIGNvbnN0IGlzV29ya0Zsb3dBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uWydleGVjdXRhYmxlUHJvY2VzcyddICYmIGlzRXh0ZXJuYWxDb21wb25lbnRBY3Rpb247XG4gICAgY29uc3QgaXNTaW1wbGVBY3Rpb25Pbmx5ID0gaXNTaW1wbGVBY3Rpb24gJiYgIWlzTGlzdEFjdGlvbiAmJiAhaXNDb21wb25lbnRBY3Rpb24gJiYgIWlzRXh0ZXJuYWxDb21wb25lbnRBY3Rpb247XG5cbiAgICBpZiAoaXNTaW1wbGVBY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNpbXBsZUFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24gYXMgU2ltcGxlQWN0aW9uO1xuICAgICAgc2ltcGxlQWN0aW9uLnJ1bihhY3Rpb25MaXN0RW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uKTtcblxuICAgICAgLy8gaGlkZSBhY3Rpb24gbWVudSBpZiBub3RoaW5nIGVsc2UgaXMgdG8gYmUgc2hvd24vZG9uZVxuICAgICAgaWYgKGlzU2ltcGxlQWN0aW9uT25seSkge1xuICAgICAgICB0aGlzLmhpZGVBY3Rpb25NZW51KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzTGlzdEFjdGlvbikge1xuICAgICAgY29uc3QgbGlzdEFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24gYXMgTGlzdEFjdGlvbjtcbiAgICAgIHRoaXMuc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSBsaXN0QWN0aW9uLmhlYWRlcjtcbiAgICAgIHRoaXMuYWN0aW9uU2VydmljZVxuICAgICAgICAuZ2V0RXhlY3V0YWJsZUFjdGlvbnNMaXN0RnJvbUdpdmVuQWN0aW9ucyhsaXN0QWN0aW9uLnN1YkFjdGlvbkNvbXBvbmVudHMsIHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbnNMaXN0OiBBY3Rpb25MaXN0RW50cnlbXSkgPT4gdGhpcy5zdWJBY3Rpb25zTGlzdCA9IGFjdGlvbnNMaXN0KTtcbiAgICB9IGVsc2UgaWYgKGlzQ29tcG9uZW50QWN0aW9uKSB7XG4gICAgICBjb25zdCBjb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIENvbXBvbmVudEFjdGlvbjtcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkNvbXBvbmVudChjb21wb25lbnRBY3Rpb24uY29tcG9uZW50LCB0aGlzLmVvQWN0aW9uQ29tcG9uZW50QW5jaG9yLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uICYmICFpc1dvcmtGbG93QWN0aW9uKSB7XG4gICAgICBjb25zdCBleHRDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIEV4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuICAgICAgdGhpcy5zaG93QWN0aW9uQ29tcG9uZW50KGV4dENvbXBvbmVudEFjdGlvbi5leHRDb21wb25lbnRzLCB0aGlzLmV4dGVybmFsRGlhbG9nLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoaXNXb3JrRmxvd0FjdGlvbikge1xuICAgICAgY29uc3QgZXh0Q29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBFeHRlcm5hbFByb2Nlc3NDb21wb25lbnRBY3Rpb247XG4gICAgICB0aGlzLnNob3dBY3Rpb25Db21wb25lbnQoZXh0Q29tcG9uZW50QWN0aW9uLmV4dENvbXBvbmVudHMsIHRoaXMuZXh0ZXJuYWxEaWFsb2csIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBmYWxzZSwge2V4ZWN1dGFibGVQcm9jZXNzOiBleHRDb21wb25lbnRBY3Rpb24uZXhlY3V0YWJsZVByb2Nlc3N9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3dBY3Rpb25Db21wb25lbnQoY29tcG9uZW50OiBUeXBlPGFueT4sIHZpZXdDb250UmVmLCBmYWN0b3J5UmVzb2x2ZXIsIHNob3dDb21wb25lbnQsIGlucHV0cz86IGFueSkge1xuICAgIHRoaXMuc2hvd0NvbXBvbmVudCA9IHNob3dDb21wb25lbnQ7XG4gICAgbGV0IGNvbXBvbmVudEZhY3RvcnkgPSBmYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgICBsZXQgYW5jaG9yVmlld0NvbnRhaW5lclJlZiA9IHZpZXdDb250UmVmLnZpZXdDb250YWluZXJSZWY7XG4gICAgYW5jaG9yVmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGxldCBjb21wb25lbnRSZWYgPSBhbmNob3JWaWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcbiAgICAoPEFjdGlvbkNvbXBvbmVudD5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNlbGVjdGlvbiA9IHRoaXMuc3ViU2VsZWN0aW9uIHx8IHRoaXMuc2VsZWN0aW9uO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuY2FuY2VsZWQucGlwZSh0YWtlKDEpLCB0YXAoKCkgPT4gKHRoaXMuc3ViU2VsZWN0aW9uID0gbnVsbCkpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNhbmNlbCgpKTtcbiAgICAoPEFjdGlvbkNvbXBvbmVudD5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmZpbmlzaGVkLnBpcGUodGFrZSgxKSwgdGFwKCgpID0+ICh0aGlzLnN1YlNlbGVjdGlvbiA9IG51bGwpKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25GaW5pc2goKSk7XG4gICAgaWYgKGlucHV0cykge1xuICAgICAgT2JqZWN0LmtleXMoaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlW2tleV0gPSBpbnB1dHNba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzTGlua0FjdGlvbihhY3Rpb24pIHtcbiAgICAvLyB1c2VkIGZyb20gd2l0aGluIHRlbXBsYXRlXG4gICAgcmV0dXJuICEhKGFjdGlvbiAmJiBhY3Rpb24uZ2V0TGluayAmJiBhY3Rpb24uZ2V0UGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgdGhpcy5zaG93Q29tcG9uZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdWJBY3Rpb25zTGlzdCA9IG51bGw7XG4gICAgdGhpcy5hY3Rpb25EZXNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgaWYgKHRoaXMuZW9BY3Rpb25Db21wb25lbnRBbmNob3IpIHtcbiAgICAgIHRoaXMuZW9BY3Rpb25Db21wb25lbnRBbmNob3Iudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIG9uRmluaXNoKCkge1xuICAgIHRoaXMuaGlkZUFjdGlvbk1lbnUoKTtcbiAgfVxufVxuIl19
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBQyxhQUFhLEVBQW9CLE1BQU0sa0NBQWtDLENBQUM7QUFJbEYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDM0csT0FBTyxFQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQVdsRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsb0JBQW9CO0lBb0IzRCxZQUFvQixhQUE0QixFQUM1QixNQUFjLEVBQ2YsZ0JBQWtDLEVBQ2pDLE9BQW1CLEVBQ25CLHdCQUFrRDtRQUNwRSxLQUFLLEVBQUUsQ0FBQztRQUxVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQXBCdEUsZ0JBQVcsR0FHUDtZQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxF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Q0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7WUExTEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLHNzSUFBMkM7Z0JBRTNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBaEJPLGFBQWE7WUFLYixNQUFNO1lBUDZELGdCQUFnQjtZQUFFLFVBQVU7WUFBakUsd0JBQXdCOzs7c0NBcUIzRCxTQUFTLFNBQUMsOEJBQThCOzZCQUN4QyxTQUFTLFNBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0YWtlLCB0YWtlVW50aWwsIGZpbHRlciwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0FjdGlvblNlcnZpY2UsIEFjdGlvblNob3dDb21tYW5kfSBmcm9tICcuLi9hY3Rpb24tc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0V4dGVybmFsUHJvY2Vzc0NvbXBvbmVudEFjdGlvbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hY3Rpb24tY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZX0gZnJvbSAnLi9hY3Rpb24tY29tcG9uZW50LWFuY2hvci9hY3Rpb24tY29tcG9uZW50LWFuY2hvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtSb3V0ZXIsIE5hdmlnYXRpb25TdGFydH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VW5zdWJzY3JpYmVPbkRlc3Ryb3l9IGZyb20gJy4uLy4uL3V0aWwvdW5zdWJzY3JpYmUvdW5zdWJzY3JpYmUuY29tcG9uZW50JztcbmltcG9ydCB7QWN0aW9uTGlzdEVudHJ5fSBmcm9tICcuLi9pbnRlcmZhY2VzL2FjdGlvbi1saXN0LWVudHJ5JztcbmltcG9ydCB7Q29tcG9uZW50QWN0aW9uLCBFeHRlcm5hbENvbXBvbmVudEFjdGlvbiwgTGlzdEFjdGlvbiwgU2ltcGxlQWN0aW9ufSBmcm9tICcuLi8nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWFjdGlvbi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25NZW51Q29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlKSBlb0FjdGlvbkNvbXBvbmVudEFuY2hvcjogQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZSkgZXh0ZXJuYWxEaWFsb2c6IEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZTtcbiAgYWN0aW9uTGlzdHM6IHtcbiAgICBjb21tb246IEFjdGlvbkxpc3RFbnRyeVtdLFxuICAgIGZ1cnRoZXI6IEFjdGlvbkxpc3RFbnRyeVtdXG4gIH0gPSB7XG4gICAgY29tbW9uOiBbXSwgZnVydGhlcjogW11cbiAgfTtcbiAgc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSAnJztcbiAgc3ViQWN0aW9uc0xpc3Q6IEFjdGlvbkxpc3RFbnRyeVtdO1xuICBzZWxlY3Rpb246IGFueVtdO1xuICBzdWJTZWxlY3Rpb246IGFueVtdO1xuICB0YXJnZXQ6IHN0cmluZztcbiAgc2hvd0NvbXBvbmVudCA9IGZhbHNlO1xuICBhY3Rpb25EZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzaG93TWVudSA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIHN1YnNjcmliZSBmb3IgdmlzaWJpbGl0eSBvYnNlcnZhYmxlIGluZGljYXRpbmcgd2hldGhlciB0byBzaG93IG9yIGhpZGUgdGhlIGFjdGlvbnNcbiAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgIC5hY3Rpb25zU2hvd2luZyQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoY21kOiBBY3Rpb25TaG93Q29tbWFuZCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd01lbnUgJiYgY21kLnNob3cpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IGNtZC5zZWxlY3Rpb247XG4gICAgICAgICAgdGhpcy50YXJnZXQgPSBjbWQudGFyZ2V0O1xuICAgICAgICAgIHRoaXMuc2hvd0FjdGlvbk1lbnUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNob3dNZW51ICYmICFjbWQuc2hvdykge1xuICAgICAgICAgIHRoaXMuaGlkZUFjdGlvbk1lbnUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZmlsdGVyKGV2dCA9PiBldnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhpZGUoKSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aW9ucygpIHtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgIC5nZXRBY3Rpb25zTGlzdCh0aGlzLnNlbGVjdGlvbiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgLnN1YnNjcmliZShhY3Rpb25zTGlzdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uID0gYWN0aW9uc0xpc3QuZmlsdGVyKGFjdGlvbkxpc3RFbnRyeSA9PiBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmdyb3VwID09PSAnY29tbW9uJyk7XG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdHMuZnVydGhlciA9IGFjdGlvbnNMaXN0LmZpbHRlcihhY3Rpb25MaXN0RW50cnkgPT4gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5ncm91cCA9PT0gJ2Z1cnRoZXInKTtcbiAgICAgIH0pO1xuXG4gIH1cblxuICBwcml2YXRlIGdldE1vcmVBY3Rpb25zKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuZ2V0TW9yZUFjdGlvbnModGhpcy5zZWxlY3Rpb24sIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICAgIC5zdWJzY3JpYmUoYWN0aW9uTGlzdCA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIgPSB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIuY29uY2F0KGFjdGlvbkxpc3QpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnYWN0aW9uLmxhYmVsJykpO1xuICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmhpZGVBY3Rpb25zKCk7XG4gIH1cblxuICBzaG93QWN0aW9uRGVzY3JpcHRpb24oaSwgZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWN0aW9uRGVzY3JpcHRpb24gPSBpID09PSB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID8gbnVsbCA6IGk7XG4gIH1cblxuICBjYXRjaEZvY3VzKCkgeyAgICBcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZWxlbVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgIH0sKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBzaG93QWN0aW9uTWVudSgpIHtcbiAgICB0aGlzLmdldEFjdGlvbnMoKTtcbiAgICBpZiAodGhpcy50YXJnZXQgPT09ICdETVNfT0JKRUNUJykge1xuICAgICAgdGhpcy5nZXRNb3JlQWN0aW9ucygpO1xuICAgIH1cbiAgICB0aGlzLnNob3dNZW51ID0gdHJ1ZTtcbiAgICB0aGlzLmNhdGNoRm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZUFjdGlvbk1lbnUoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuc2hvd01lbnUgPSBmYWxzZTtcbiAgICB0aGlzLmFjdGlvbkxpc3RzID0ge2NvbW1vbjogW10sIGZ1cnRoZXI6IFtdfTtcbiAgfVxuXG4gIG9uQ2xpY2soYWN0aW9uTGlzdEVudHJ5OiBBY3Rpb25MaXN0RW50cnkpIHtcbiAgICB0aGlzLnN1YlNlbGVjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hdmFpbGFibGVTZWxlY3Rpb247XG4gICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBhY3Rpb25zIGltcGxlbWVudCBtb3JlIHRoYW4gb25lIGFjdGlvbiBpbnRlcmZhY2VcbiAgICAvLyBzbyB3ZSBzaG91bGQgYmUgYXdhcmUgb2YgcnVubmluZyBhbiBhY3Rpb24gYW5kIHRoZW4gb3BlbiBpdHMgc3ViIGFjdGlvbnNcblxuICAgIGNvbnN0IGlzU2ltcGxlQWN0aW9uID0gISFhY3Rpb25MaXN0RW50cnkuYWN0aW9uWydydW4nXTtcbiAgICBjb25zdCBpc0xpc3RBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmhhc093blByb3BlcnR5KCdzdWJBY3Rpb25Db21wb25lbnRzJyk7XG4gICAgY29uc3QgaXNDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmhhc093blByb3BlcnR5KCdjb21wb25lbnQnKTtcbiAgICBjb25zdCBpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnZXh0Q29tcG9uZW50cycpO1xuICAgIGNvbnN0IGlzV29ya0Zsb3dBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uWydleGVjdXRhYmxlUHJvY2VzcyddICYmIGlzRXh0ZXJuYWxDb21wb25lbnRBY3Rpb247XG4gICAgY29uc3QgaXNTaW1wbGVBY3Rpb25Pbmx5ID0gaXNTaW1wbGVBY3Rpb24gJiYgIWlzTGlzdEFjdGlvbiAmJiAhaXNDb21wb25lbnRBY3Rpb24gJiYgIWlzRXh0ZXJuYWxDb21wb25lbnRBY3Rpb247XG5cbiAgICBpZiAoaXNTaW1wbGVBY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNpbXBsZUFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24gYXMgU2ltcGxlQWN0aW9uO1xuICAgICAgc2ltcGxlQWN0aW9uLnJ1bihhY3Rpb25MaXN0RW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uKTtcblxuICAgICAgLy8gaGlkZSBhY3Rpb24gbWVudSBpZiBub3RoaW5nIGVsc2UgaXMgdG8gYmUgc2hvd24vZG9uZVxuICAgICAgaWYgKGlzU2ltcGxlQWN0aW9uT25seSkge1xuICAgICAgICB0aGlzLmhpZGVBY3Rpb25NZW51KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzTGlzdEFjdGlvbikge1xuICAgICAgY29uc3QgbGlzdEFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24gYXMgTGlzdEFjdGlvbjtcbiAgICAgIHRoaXMuc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSBsaXN0QWN0aW9uLmhlYWRlcjtcbiAgICAgIHRoaXMuYWN0aW9uU2VydmljZVxuICAgICAgICAuZ2V0RXhlY3V0YWJsZUFjdGlvbnNMaXN0RnJvbUdpdmVuQWN0aW9ucyhsaXN0QWN0aW9uLnN1YkFjdGlvbkNvbXBvbmVudHMsIHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbnNMaXN0OiBBY3Rpb25MaXN0RW50cnlbXSkgPT4gdGhpcy5zdWJBY3Rpb25zTGlzdCA9IGFjdGlvbnNMaXN0KTtcbiAgICB9IGVsc2UgaWYgKGlzQ29tcG9uZW50QWN0aW9uKSB7XG4gICAgICBjb25zdCBjb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIENvbXBvbmVudEFjdGlvbjtcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkNvbXBvbmVudChjb21wb25lbnRBY3Rpb24uY29tcG9uZW50LCB0aGlzLmVvQWN0aW9uQ29tcG9uZW50QW5jaG9yLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uICYmICFpc1dvcmtGbG93QWN0aW9uKSB7XG4gICAgICBjb25zdCBleHRDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIEV4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuICAgICAgdGhpcy5zaG93QWN0aW9uQ29tcG9uZW50KGV4dENvbXBvbmVudEFjdGlvbi5leHRDb21wb25lbnRzLCB0aGlzLmV4dGVybmFsRGlhbG9nLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoaXNXb3JrRmxvd0FjdGlvbikge1xuICAgICAgY29uc3QgZXh0Q29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBFeHRlcm5hbFByb2Nlc3NDb21wb25lbnRBY3Rpb247XG4gICAgICB0aGlzLnNob3dBY3Rpb25Db21wb25lbnQoZXh0Q29tcG9uZW50QWN0aW9uLmV4dENvbXBvbmVudHMsIHRoaXMuZXh0ZXJuYWxEaWFsb2csIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBmYWxzZSwge2V4ZWN1dGFibGVQcm9jZXNzOiBleHRDb21wb25lbnRBY3Rpb24uZXhlY3V0YWJsZVByb2Nlc3N9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3dBY3Rpb25Db21wb25lbnQoY29tcG9uZW50OiBUeXBlPGFueT4sIHZpZXdDb250UmVmLCBmYWN0b3J5UmVzb2x2ZXIsIHNob3dDb21wb25lbnQsIGlucHV0cz86IGFueSkge1xuICAgIHRoaXMuc2hvd0NvbXBvbmVudCA9IHNob3dDb21wb25lbnQ7XG4gICAgbGV0IGNvbXBvbmVudEZhY3RvcnkgPSBmYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgICBsZXQgYW5jaG9yVmlld0NvbnRhaW5lclJlZiA9IHZpZXdDb250UmVmLnZpZXdDb250YWluZXJSZWY7XG4gICAgYW5jaG9yVmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGxldCBjb21wb25lbnRSZWYgPSBhbmNob3JWaWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcbiAgICAoPEFjdGlvbkNvbXBvbmVudD5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNlbGVjdGlvbiA9IHRoaXMuc3ViU2VsZWN0aW9uIHx8IHRoaXMuc2VsZWN0aW9uO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuY2FuY2VsZWQucGlwZSh0YWtlKDEpLCB0YXAoKCkgPT4gKHRoaXMuc3ViU2VsZWN0aW9uID0gbnVsbCkpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNhbmNlbCgpKTtcbiAgICAoPEFjdGlvbkNvbXBvbmVudD5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmZpbmlzaGVkLnBpcGUodGFrZSgxKSwgdGFwKCgpID0+ICh0aGlzLnN1YlNlbGVjdGlvbiA9IG51bGwpKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25GaW5pc2goKSk7XG4gICAgaWYgKGlucHV0cykge1xuICAgICAgT2JqZWN0LmtleXMoaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlW2tleV0gPSBpbnB1dHNba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzTGlua0FjdGlvbihhY3Rpb24pIHtcbiAgICAvLyB1c2VkIGZyb20gd2l0aGluIHRlbXBsYXRlXG4gICAgcmV0dXJuICEhKGFjdGlvbiAmJiBhY3Rpb24uZ2V0TGluayAmJiBhY3Rpb24uZ2V0UGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgdGhpcy5zaG93Q29tcG9uZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdWJBY3Rpb25zTGlzdCA9IG51bGw7XG4gICAgdGhpcy5hY3Rpb25EZXNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgaWYgKHRoaXMuZW9BY3Rpb25Db21wb25lbnRBbmNob3IpIHtcbiAgICAgIHRoaXMuZW9BY3Rpb25Db21wb25lbnRBbmNob3Iudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLmNhdGNoRm9jdXMoKTtcbiAgfVxuXG4gIG9uRmluaXNoKCkge1xuICAgIHRoaXMuaGlkZUFjdGlvbk1lbnUoKTtcbiAgfVxufVxuIl19
|