survey-creator-angular 3.0.0 → 3.0.2

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.
@@ -3,9 +3,10 @@ import { AngularComponentFactory, BaseAngular, SurveyContentComponent } from "su
3
3
  import { cssVariablesToString } from "survey-creator-core";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "survey-angular-ui";
6
- import * as i2 from "./tabbed-menu/tabbed-menu/tabbed-menu.component";
7
- import * as i3 from "./side-bar/side-bar.component";
8
- import * as i4 from "@angular/common";
6
+ import * as i2 from "./components/component-container.component";
7
+ import * as i3 from "./tabbed-menu/tabbed-menu/tabbed-menu.component";
8
+ import * as i4 from "./side-bar/side-bar.component";
9
+ import * as i5 from "@angular/common";
9
10
  export class CreatorComponent extends BaseAngular {
10
11
  constructor(changeDetectorRef) {
11
12
  super(changeDetectorRef);
@@ -17,6 +18,13 @@ export class CreatorComponent extends BaseAngular {
17
18
  get creator() {
18
19
  return this.model;
19
20
  }
21
+ // The collaboration strip is a ComponentContainerModel contributed by the
22
+ // plugin. `collabBar` is typed as Base in creator-core to keep the creator
23
+ // free of a dependency on the plugin, hence the cast.
24
+ get collabBarContainer() {
25
+ const bar = this.model.collabBar;
26
+ return !!bar ? bar.container : undefined;
27
+ }
20
28
  getShouldReattachChangeDetector() {
21
29
  return false;
22
30
  }
@@ -48,7 +56,7 @@ export class CreatorComponent extends BaseAngular {
48
56
  }
49
57
  }
50
58
  CreatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
51
- CreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorComponent, selector: "survey-creator", inputs: { model: "model" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!creator.isCreatorDisposed\">\n <sv-ng-modal-container></sv-ng-modal-container>\n <div [class]=\"creator.getRootCss()\" [attr.style]=\"themeVariablesString\" #container>\n <div>\n <sv-svg-bundle></sv-svg-bundle>\n </div>\n <div class=\"svc-full-container svc-creator__area svc-flex-column\"\n [class.svc-creator__area--with-banner]=\"!creator.haveCommercialLicense\">\n <div class=\"svc-flex-row svc-full-container\"\n [class.svc-creator__side-bar--left]=\"creator.sidebarLocation == 'left'\">\n <div class=\"svc-flex-column svc-flex-row__element svc-flex-row__element--growing\">\n <div class=\"svc-top-bar\">\n <div class=\"svc-tabbed-menu-wrapper\" [visible]=\"creator.showTabs\">\n <svc-tabbed-menu [model]=\"creator.tabbedMenu\"></svc-tabbed-menu>\n </div>\n <div *ngIf=\"creator.showToolbar\" class=\"svc-toolbar-wrapper\" [visible]=\"creator.showToolbar\">\n <sv-action-bar [model]=\"creator.toolbar\"></sv-action-bar>\n </div>\n </div>\n <div class=\"svc-creator__content-wrapper svc-flex-row\"\n [class.svc-creator__content-wrapper--footer-toolbar]=\"creator.isMobileView\">\n <div class=\"svc-creator__content-holder svc-flex-column\">\n <ng-container *ngIf=\"!!activeTab\">\n <div role=\"tabpanel\" class=\"svc-creator-tab\" [attr.id]=\"'scrollableDiv-' + activeTab.id\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.id\"\n [class.svc-creator__toolbox--right]=\"creator.toolboxLocation == 'right'\">\n <ng-template\n [component]=\"{ name: activeTab.componentContent, data: { data: creator, model: activeTab.data.model } }\"></ng-template>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"creator.isMobileView\" class=\"svc-footer-bar\">\n <div class=\"svc-toolbar-wrapper\" [visible]=\"creator.isMobileView\">\n <sv-action-bar [model]=\"creator.footerToolbar\"></sv-action-bar>\n </div>\n </div>\n </div>\n <svc-side-bar [model]=\"creator.sidebar\" *ngIf=\"creator.isSidebarVisible\"></svc-side-bar>\n </div>\n <div class=\"svc-creator__banner\" *ngIf=\"!creator.haveCommercialLicense\">\n <span class=\"svc-creator__non-commercial-text\" [innerHTML]=\"creator.licenseText | safeHtml\"></span>\n </div>\n <sv-notifier [notifier]=\"creator.notifier\"></sv-notifier>\n </div>\n </div>\n</ng-container>", components: [{ type: i1.ModalComponent, selector: "sv-ng-modal-container" }, { type: i1.SvgBundleComponent, selector: "sv-svg-bundle" }, { type: i2.TabbledMenuComponent, selector: "svc-tabbed-menu", inputs: ["model"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i3.SidebarComponent, selector: "svc-side-bar", inputs: ["model"] }, { type: i1.NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }], pipes: { "safeHtml": i1.SafeHtmlPipe } });
59
+ CreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorComponent, selector: "survey-creator", inputs: { model: "model" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!creator.isCreatorDisposed\">\n <sv-ng-modal-container></sv-ng-modal-container>\n <div [class]=\"creator.getRootCss()\" [attr.style]=\"themeVariablesString\" #container>\n <div>\n <sv-svg-bundle></sv-svg-bundle>\n </div>\n <div class=\"svc-full-container svc-creator__area svc-flex-column\"\n [class.svc-creator__area--with-banner]=\"!creator.haveCommercialLicense\">\n <svc-component-container *ngIf=\"collabBarContainer\" [model]=\"collabBarContainer\"></svc-component-container>\n <div class=\"svc-flex-row svc-full-container\"\n [class.svc-creator__side-bar--left]=\"creator.sidebarLocation == 'left'\">\n <div class=\"svc-flex-column svc-flex-row__element svc-flex-row__element--growing\">\n <div class=\"svc-top-bar\">\n <div class=\"svc-tabbed-menu-wrapper\" [visible]=\"creator.showTabs\">\n <svc-tabbed-menu [model]=\"creator.tabbedMenu\"></svc-tabbed-menu>\n </div>\n <div *ngIf=\"creator.showToolbar\" class=\"svc-toolbar-wrapper\" [visible]=\"creator.showToolbar\">\n <sv-action-bar [model]=\"creator.toolbar\"></sv-action-bar>\n </div>\n </div>\n <div class=\"svc-creator__content-wrapper svc-flex-row\"\n [class.svc-creator__content-wrapper--footer-toolbar]=\"creator.isMobileView\">\n <div class=\"svc-creator__content-holder svc-flex-column\">\n <ng-container *ngIf=\"!!activeTab\">\n <div role=\"tabpanel\" class=\"svc-creator-tab\" [attr.id]=\"'scrollableDiv-' + activeTab.id\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.id\"\n [class.svc-creator__toolbox--right]=\"creator.toolboxLocation == 'right'\">\n <ng-template\n [component]=\"{ name: activeTab.componentContent, data: { data: creator, model: activeTab.data.model } }\"></ng-template>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"creator.isMobileView\" class=\"svc-footer-bar\">\n <div class=\"svc-toolbar-wrapper\" [visible]=\"creator.isMobileView\">\n <sv-action-bar [model]=\"creator.footerToolbar\"></sv-action-bar>\n </div>\n </div>\n </div>\n <svc-side-bar [model]=\"creator.sidebar\" *ngIf=\"creator.isSidebarVisible\"></svc-side-bar>\n </div>\n <div class=\"svc-creator__banner\" *ngIf=\"!creator.haveCommercialLicense\">\n <span class=\"svc-creator__non-commercial-text\" [innerHTML]=\"creator.licenseText | safeHtml\"></span>\n </div>\n <sv-notifier [notifier]=\"creator.notifier\"></sv-notifier>\n </div>\n </div>\n</ng-container>", components: [{ type: i1.ModalComponent, selector: "sv-ng-modal-container" }, { type: i1.SvgBundleComponent, selector: "sv-svg-bundle" }, { type: i2.ComponentContainerComponent, selector: "svc-component-container", inputs: ["model"] }, { type: i3.TabbledMenuComponent, selector: "svc-tabbed-menu", inputs: ["model"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i4.SidebarComponent, selector: "svc-side-bar", inputs: ["model"] }, { type: i1.NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }], pipes: { "safeHtml": i1.SafeHtmlPipe } });
52
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorComponent, decorators: [{
53
61
  type: Component,
54
62
  args: [{
@@ -62,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
62
70
  args: ["container", { read: ElementRef }]
63
71
  }] } });
64
72
  AngularComponentFactory.Instance.registerComponent("survey-widget", SurveyContentComponent);
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakcsT0FBTyxFQUFzQyxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFNL0YsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQStCO0lBSW5FLFlBQVksaUJBQW9DO1FBQzlDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pCLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDUyxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ2tCLCtCQUErQjtRQUNoRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDa0IsY0FBYztRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUM3QztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUNNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNlLFdBQVc7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQVMsRUFBRSxHQUFtQjtRQUN2QyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs4R0ExQ1UsZ0JBQWdCO2tHQUFoQixnQkFBZ0IscUtBRUssVUFBVSxvRENWNUMsd2xGQThDZTs0RkR0Q0YsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSwwQkFBMEI7aUJBQ3hDO3dHQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDd0MsU0FBUztzQkFBdEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztBQTJDOUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSwgQmFzZUFuZ3VsYXIsIFN1cnZleUNvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcbmltcG9ydCB7IFN1cnZleUNyZWF0b3JNb2RlbCwgVGFiYmVkTWVudUl0ZW0sIGNzc1ZhcmlhYmxlc1RvU3RyaW5nIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN1cnZleS1jcmVhdG9yXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY3JlYXRvci5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxTdXJ2ZXlDcmVhdG9yTW9kZWw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG1vZGVsITogU3VydmV5Q3JlYXRvck1vZGVsO1xuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0YWNoKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldE1vZGVsKCk6IFN1cnZleUNyZWF0b3JNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgcHVibGljIGdldCBjcmVhdG9yKCk6IFN1cnZleUNyZWF0b3JNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldFNob3VsZFJlYXR0YWNoQ2hhbmdlRGV0ZWN0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbk1vZGVsQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICBpZiAodGhpcy5wcmV2aW91c01vZGVsKSB7XG4gICAgICB0aGlzLnByZXZpb3VzTW9kZWwudW5zdWJzY3JpYmVSb290RWxlbWVudCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jcmVhdG9yICYmIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY3JlYXRvci5zZXRSb290RWxlbWVudCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0b3Iuc2V0Um9vdEVsZW1lbnQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdG9yLnVuc3Vic2NyaWJlUm9vdEVsZW1lbnQoKTtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiKCk6IFRhYmJlZE1lbnVJdGVtIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdG9yLmFjdGl2ZVRhYk1lbnVJdGVtO1xuICB9XG4gIHRyYWNrVGFiQnkoXzogbnVtYmVyLCB0YWI6IFRhYmJlZE1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIHRhYi5pZDtcbiAgfVxuICBwdWJsaWMgZ2V0IHRoZW1lVmFyaWFibGVzU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNzc1ZhcmlhYmxlc1RvU3RyaW5nKHRoaXMuY3JlYXRvci50aGVtZVZhcmlhYmxlcyk7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdXJ2ZXktd2lkZ2V0XCIsIFN1cnZleUNvbnRlbnRDb21wb25lbnQpO1xuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjcmVhdG9yLmlzQ3JlYXRvckRpc3Bvc2VkXCI+XG4gIDxzdi1uZy1tb2RhbC1jb250YWluZXI+PC9zdi1uZy1tb2RhbC1jb250YWluZXI+XG4gIDxkaXYgW2NsYXNzXT1cImNyZWF0b3IuZ2V0Um9vdENzcygpXCIgW2F0dHIuc3R5bGVdPVwidGhlbWVWYXJpYWJsZXNTdHJpbmdcIiAjY29udGFpbmVyPlxuICAgIDxkaXY+XG4gICAgICA8c3Ytc3ZnLWJ1bmRsZT48L3N2LXN2Zy1idW5kbGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInN2Yy1mdWxsLWNvbnRhaW5lciBzdmMtY3JlYXRvcl9fYXJlYSBzdmMtZmxleC1jb2x1bW5cIlxuICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX19hcmVhLS13aXRoLWJhbm5lcl09XCIhY3JlYXRvci5oYXZlQ29tbWVyY2lhbExpY2Vuc2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtZmxleC1yb3cgc3ZjLWZ1bGwtY29udGFpbmVyXCJcbiAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX19zaWRlLWJhci0tbGVmdF09XCJjcmVhdG9yLnNpZGViYXJMb2NhdGlvbiA9PSAnbGVmdCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LWNvbHVtbiBzdmMtZmxleC1yb3dfX2VsZW1lbnQgc3ZjLWZsZXgtcm93X19lbGVtZW50LS1ncm93aW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy10b3AtYmFyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXRhYmJlZC1tZW51LXdyYXBwZXJcIiBbdmlzaWJsZV09XCJjcmVhdG9yLnNob3dUYWJzXCI+XG4gICAgICAgICAgICAgIDxzdmMtdGFiYmVkLW1lbnUgW21vZGVsXT1cImNyZWF0b3IudGFiYmVkTWVudVwiPjwvc3ZjLXRhYmJlZC1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3JlYXRvci5zaG93VG9vbGJhclwiIGNsYXNzPVwic3ZjLXRvb2xiYXItd3JhcHBlclwiIFt2aXNpYmxlXT1cImNyZWF0b3Iuc2hvd1Rvb2xiYXJcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IudG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC13cmFwcGVyIHN2Yy1mbGV4LXJvd1wiXG4gICAgICAgICAgICBbY2xhc3Muc3ZjLWNyZWF0b3JfX2NvbnRlbnQtd3JhcHBlci0tZm9vdGVyLXRvb2xiYXJdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC1ob2xkZXIgc3ZjLWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWFjdGl2ZVRhYlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cInRhYnBhbmVsXCIgY2xhc3M9XCJzdmMtY3JlYXRvci10YWJcIiBbYXR0ci5pZF09XCInc2Nyb2xsYWJsZURpdi0nICsgYWN0aXZlVGFiLmlkXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyBhY3RpdmVUYWIuaWRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX190b29sYm94LS1yaWdodF09XCJjcmVhdG9yLnRvb2xib3hMb2NhdGlvbiA9PSAncmlnaHQnXCI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGFjdGl2ZVRhYi5jb21wb25lbnRDb250ZW50LCBkYXRhOiB7IGRhdGE6IGNyZWF0b3IsIG1vZGVsOiBhY3RpdmVUYWIuZGF0YS5tb2RlbCB9IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjcmVhdG9yLmlzTW9iaWxlVmlld1wiIGNsYXNzPVwic3ZjLWZvb3Rlci1iYXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtdG9vbGJhci13cmFwcGVyXCIgW3Zpc2libGVdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IuZm9vdGVyVG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHN2Yy1zaWRlLWJhciBbbW9kZWxdPVwiY3JlYXRvci5zaWRlYmFyXCIgKm5nSWY9XCJjcmVhdG9yLmlzU2lkZWJhclZpc2libGVcIj48L3N2Yy1zaWRlLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN2Yy1jcmVhdG9yX19iYW5uZXJcIiAqbmdJZj1cIiFjcmVhdG9yLmhhdmVDb21tZXJjaWFsTGljZW5zZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Yy1jcmVhdG9yX19ub24tY29tbWVyY2lhbC10ZXh0XCIgW2lubmVySFRNTF09XCJjcmVhdG9yLmxpY2Vuc2VUZXh0IHwgc2FmZUh0bWxcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzdi1ub3RpZmllciBbbm90aWZpZXJdPVwiY3JlYXRvci5ub3RpZmllclwiPjwvc3Ytbm90aWZpZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakcsT0FBTyxFQUFzQyxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBTS9GLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUErQjtJQUluRSxZQUFZLGlCQUFvQztRQUM5QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELDBFQUEwRTtJQUMxRSwyRUFBMkU7SUFDM0Usc0RBQXNEO0lBQ3RELElBQVcsa0JBQWtCO1FBQzNCLE1BQU0sR0FBRyxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFDa0IsK0JBQStCO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNrQixjQUFjO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBQ00sZUFBZTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ2UsV0FBVztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDLENBQUM7SUFDRCxVQUFVLENBQUMsQ0FBUyxFQUFFLEdBQW1CO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUM7OzhHQWpEVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixxS0FFSyxVQUFVLG9EQ1Y1Qywrc0ZBK0NlOzRGRHZDRixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDBCQUEwQjtpQkFDeEM7d0dBRVUsS0FBSztzQkFBYixLQUFLO2dCQUN3QyxTQUFTO3NCQUF0RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O0FBa0Q5Qyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciwgU3VydmV5Q29udGVudENvbXBvbmVudCB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvck1vZGVsLCBUYWJiZWRNZW51SXRlbSwgY3NzVmFyaWFibGVzVG9TdHJpbmcgfSBmcm9tIFwic3VydmV5LWNyZWF0b3ItY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3VydmV5LWNyZWF0b3JcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jcmVhdG9yLmNvbXBvbmVudC5odG1sXCJcbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFN1cnZleUNyZWF0b3JNb2RlbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbW9kZWwhOiBTdXJ2ZXlDcmVhdG9yTW9kZWw7XG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICBjaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogU3VydmV5Q3JlYXRvck1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGNyZWF0b3IoKTogU3VydmV5Q3JlYXRvck1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICAvLyBUaGUgY29sbGFib3JhdGlvbiBzdHJpcCBpcyBhIENvbXBvbmVudENvbnRhaW5lck1vZGVsIGNvbnRyaWJ1dGVkIGJ5IHRoZVxuICAvLyBwbHVnaW4uIGBjb2xsYWJCYXJgIGlzIHR5cGVkIGFzIEJhc2UgaW4gY3JlYXRvci1jb3JlIHRvIGtlZXAgdGhlIGNyZWF0b3JcbiAgLy8gZnJlZSBvZiBhIGRlcGVuZGVuY3kgb24gdGhlIHBsdWdpbiwgaGVuY2UgdGhlIGNhc3QuXG4gIHB1YmxpYyBnZXQgY29sbGFiQmFyQ29udGFpbmVyKCk6IGFueSB7XG4gICAgY29uc3QgYmFyOiBhbnkgPSB0aGlzLm1vZGVsLmNvbGxhYkJhcjtcbiAgICByZXR1cm4gISFiYXIgPyBiYXIuY29udGFpbmVyIDogdW5kZWZpbmVkO1xuICB9XG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXRTaG91bGRSZWF0dGFjaENoYW5nZURldGVjdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Nb2RlbENoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgaWYgKHRoaXMucHJldmlvdXNNb2RlbCkge1xuICAgICAgdGhpcy5wcmV2aW91c01vZGVsLnVuc3Vic2NyaWJlUm9vdEVsZW1lbnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3JlYXRvciAmJiB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmNyZWF0b3Iuc2V0Um9vdEVsZW1lbnQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdG9yLnNldFJvb3RFbGVtZW50KHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRvci51bnN1YnNjcmliZVJvb3RFbGVtZW50KCk7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYigpOiBUYWJiZWRNZW51SXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRvci5hY3RpdmVUYWJNZW51SXRlbTtcbiAgfVxuICB0cmFja1RhYkJ5KF86IG51bWJlciwgdGFiOiBUYWJiZWRNZW51SXRlbSkge1xuICAgIHJldHVybiB0YWIuaWQ7XG4gIH1cbiAgcHVibGljIGdldCB0aGVtZVZhcmlhYmxlc1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBjc3NWYXJpYWJsZXNUb1N0cmluZyh0aGlzLmNyZWF0b3IudGhlbWVWYXJpYWJsZXMpO1xuICB9XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3VydmV5LXdpZGdldFwiLCBTdXJ2ZXlDb250ZW50Q29tcG9uZW50KTtcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhY3JlYXRvci5pc0NyZWF0b3JEaXNwb3NlZFwiPlxuICA8c3YtbmctbW9kYWwtY29udGFpbmVyPjwvc3YtbmctbW9kYWwtY29udGFpbmVyPlxuICA8ZGl2IFtjbGFzc109XCJjcmVhdG9yLmdldFJvb3RDc3MoKVwiIFthdHRyLnN0eWxlXT1cInRoZW1lVmFyaWFibGVzU3RyaW5nXCIgI2NvbnRhaW5lcj5cbiAgICA8ZGl2PlxuICAgICAgPHN2LXN2Zy1idW5kbGU+PC9zdi1zdmctYnVuZGxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzdmMtZnVsbC1jb250YWluZXIgc3ZjLWNyZWF0b3JfX2FyZWEgc3ZjLWZsZXgtY29sdW1uXCJcbiAgICAgIFtjbGFzcy5zdmMtY3JlYXRvcl9fYXJlYS0td2l0aC1iYW5uZXJdPVwiIWNyZWF0b3IuaGF2ZUNvbW1lcmNpYWxMaWNlbnNlXCI+XG4gICAgICA8c3ZjLWNvbXBvbmVudC1jb250YWluZXIgKm5nSWY9XCJjb2xsYWJCYXJDb250YWluZXJcIiBbbW9kZWxdPVwiY29sbGFiQmFyQ29udGFpbmVyXCI+PC9zdmMtY29tcG9uZW50LWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtZmxleC1yb3cgc3ZjLWZ1bGwtY29udGFpbmVyXCJcbiAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX19zaWRlLWJhci0tbGVmdF09XCJjcmVhdG9yLnNpZGViYXJMb2NhdGlvbiA9PSAnbGVmdCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LWNvbHVtbiBzdmMtZmxleC1yb3dfX2VsZW1lbnQgc3ZjLWZsZXgtcm93X19lbGVtZW50LS1ncm93aW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy10b3AtYmFyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXRhYmJlZC1tZW51LXdyYXBwZXJcIiBbdmlzaWJsZV09XCJjcmVhdG9yLnNob3dUYWJzXCI+XG4gICAgICAgICAgICAgIDxzdmMtdGFiYmVkLW1lbnUgW21vZGVsXT1cImNyZWF0b3IudGFiYmVkTWVudVwiPjwvc3ZjLXRhYmJlZC1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3JlYXRvci5zaG93VG9vbGJhclwiIGNsYXNzPVwic3ZjLXRvb2xiYXItd3JhcHBlclwiIFt2aXNpYmxlXT1cImNyZWF0b3Iuc2hvd1Rvb2xiYXJcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IudG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC13cmFwcGVyIHN2Yy1mbGV4LXJvd1wiXG4gICAgICAgICAgICBbY2xhc3Muc3ZjLWNyZWF0b3JfX2NvbnRlbnQtd3JhcHBlci0tZm9vdGVyLXRvb2xiYXJdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC1ob2xkZXIgc3ZjLWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWFjdGl2ZVRhYlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cInRhYnBhbmVsXCIgY2xhc3M9XCJzdmMtY3JlYXRvci10YWJcIiBbYXR0ci5pZF09XCInc2Nyb2xsYWJsZURpdi0nICsgYWN0aXZlVGFiLmlkXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyBhY3RpdmVUYWIuaWRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX190b29sYm94LS1yaWdodF09XCJjcmVhdG9yLnRvb2xib3hMb2NhdGlvbiA9PSAncmlnaHQnXCI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGFjdGl2ZVRhYi5jb21wb25lbnRDb250ZW50LCBkYXRhOiB7IGRhdGE6IGNyZWF0b3IsIG1vZGVsOiBhY3RpdmVUYWIuZGF0YS5tb2RlbCB9IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjcmVhdG9yLmlzTW9iaWxlVmlld1wiIGNsYXNzPVwic3ZjLWZvb3Rlci1iYXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtdG9vbGJhci13cmFwcGVyXCIgW3Zpc2libGVdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IuZm9vdGVyVG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHN2Yy1zaWRlLWJhciBbbW9kZWxdPVwiY3JlYXRvci5zaWRlYmFyXCIgKm5nSWY9XCJjcmVhdG9yLmlzU2lkZWJhclZpc2libGVcIj48L3N2Yy1zaWRlLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN2Yy1jcmVhdG9yX19iYW5uZXJcIiAqbmdJZj1cIiFjcmVhdG9yLmhhdmVDb21tZXJjaWFsTGljZW5zZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Yy1jcmVhdG9yX19ub24tY29tbWVyY2lhbC10ZXh0XCIgW2lubmVySFRNTF09XCJjcmVhdG9yLmxpY2Vuc2VUZXh0IHwgc2FmZUh0bWxcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzdi1ub3RpZmllciBbbm90aWZpZXJdPVwiY3JlYXRvci5ub3RpZmllclwiPjwvc3Ytbm90aWZpZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
@@ -0,0 +1,32 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { AngularComponentFactory, BaseAngular } from "survey-angular-ui";
3
+ import { getTranslationLocaleProgress, translationLocaleItemComponentName } from "survey-creator-core";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "survey-angular-ui";
6
+ import * as i2 from "@angular/common";
7
+ // An item of the target language dropdown: the language name and, at the right edge, how much of
8
+ // the survey is already translated into it. The counts are precomputed on the choices themselves
9
+ // (see updateTargetLocaleChoices) - a language with no translations carries none. The angular list
10
+ // item passes the item itself as "model" (react and vue pass it as "item").
11
+ export class TranslationLocaleItemComponent extends BaseAngular {
12
+ getModel() {
13
+ return this.model;
14
+ }
15
+ get progress() {
16
+ return getTranslationLocaleProgress(this.model);
17
+ }
18
+ }
19
+ TranslationLocaleItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationLocaleItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
20
+ TranslationLocaleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationLocaleItemComponent, selector: "svc-translation-locale-item", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-translation-locale-item\">\n <span class=\"svc-translation-locale-item__name\">\n <sv-ng-string [model]=\"model.locTitle\"></sv-ng-string>\n </span>\n <span *ngIf=\"!!progress\" class=\"svc-translation-locale-item__progress\">{{ progress }}</span>\n </div>\n</ng-template>\n", styles: [":host { display: none }"], components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationLocaleItemComponent, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: "svc-translation-locale-item",
25
+ templateUrl: "./translation-locale-item.component.html",
26
+ styles: [":host { display: none }"]
27
+ }]
28
+ }], propDecorators: { model: [{
29
+ type: Input
30
+ }] } });
31
+ AngularComponentFactory.Instance.registerComponent(translationLocaleItemComponentName, TranslationLocaleItemComponent);
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbG9jYWxlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24tbG9jYWxlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24tbG9jYWxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXpFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRXZHLGlHQUFpRztBQUNqRyxpR0FBaUc7QUFDakcsbUdBQW1HO0FBQ25HLDRFQUE0RTtBQU01RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsV0FBc0I7SUFFckQsUUFBUTtRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLDRCQUE0QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs0SEFQVSw4QkFBOEI7Z0hBQTlCLDhCQUE4QixzSENkM0MsK1VBUUE7NEZETWEsOEJBQThCO2tCQUwxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFdBQVcsRUFBRSwwQ0FBMEM7b0JBQ3ZELE1BQU0sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNwQzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7O0FBU1IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGtDQUFrQyxFQUFFLDhCQUE4QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgSXRlbVZhbHVlIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbkxvY2FsZVByb2dyZXNzLCB0cmFuc2xhdGlvbkxvY2FsZUl0ZW1Db21wb25lbnROYW1lIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcblxuLy8gQW4gaXRlbSBvZiB0aGUgdGFyZ2V0IGxhbmd1YWdlIGRyb3Bkb3duOiB0aGUgbGFuZ3VhZ2UgbmFtZSBhbmQsIGF0IHRoZSByaWdodCBlZGdlLCBob3cgbXVjaCBvZlxuLy8gdGhlIHN1cnZleSBpcyBhbHJlYWR5IHRyYW5zbGF0ZWQgaW50byBpdC4gVGhlIGNvdW50cyBhcmUgcHJlY29tcHV0ZWQgb24gdGhlIGNob2ljZXMgdGhlbXNlbHZlc1xuLy8gKHNlZSB1cGRhdGVUYXJnZXRMb2NhbGVDaG9pY2VzKSAtIGEgbGFuZ3VhZ2Ugd2l0aCBubyB0cmFuc2xhdGlvbnMgY2FycmllcyBub25lLiBUaGUgYW5ndWxhciBsaXN0XG4vLyBpdGVtIHBhc3NlcyB0aGUgaXRlbSBpdHNlbGYgYXMgXCJtb2RlbFwiIChyZWFjdCBhbmQgdnVlIHBhc3MgaXQgYXMgXCJpdGVtXCIpLlxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy10cmFuc2xhdGlvbi1sb2NhbGUtaXRlbVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RyYW5zbGF0aW9uLWxvY2FsZS1pdGVtLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBub25lIH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Mb2NhbGVJdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXI8SXRlbVZhbHVlPiB7XG4gIEBJbnB1dCgpIG1vZGVsITogSXRlbVZhbHVlO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0TW9kZWwoKTogSXRlbVZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHByb2dyZXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldFRyYW5zbGF0aW9uTG9jYWxlUHJvZ3Jlc3ModGhpcy5tb2RlbCk7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQodHJhbnNsYXRpb25Mb2NhbGVJdGVtQ29tcG9uZW50TmFtZSwgVHJhbnNsYXRpb25Mb2NhbGVJdGVtQ29tcG9uZW50KTtcbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJzdmMtdHJhbnNsYXRpb24tbG9jYWxlLWl0ZW1cIj5cbiAgICA8c3BhbiBjbGFzcz1cInN2Yy10cmFuc2xhdGlvbi1sb2NhbGUtaXRlbV9fbmFtZVwiPlxuICAgICAgPHN2LW5nLXN0cmluZyBbbW9kZWxdPVwibW9kZWwubG9jVGl0bGVcIj48L3N2LW5nLXN0cmluZz5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCIhIXByb2dyZXNzXCIgY2xhc3M9XCJzdmMtdHJhbnNsYXRpb24tbG9jYWxlLWl0ZW1fX3Byb2dyZXNzXCI+e3sgcHJvZ3Jlc3MgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, Input, ViewChild } from "@angular/core";
2
2
  import { AngularComponentFactory, BaseAngular } from "survey-angular-ui";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../components/surface-placeholder.component";
@@ -8,6 +8,22 @@ export class TranslationTabComponent extends BaseAngular {
8
8
  getModel() {
9
9
  return this.model;
10
10
  }
11
+ get sideBySideModel() {
12
+ return this.model.isSideBySideForm ? this.model : undefined;
13
+ }
14
+ // The setters also fire with undefined when *ngIf removes the panes, which detaches the listeners.
15
+ set sourceScrollContainer(ref) {
16
+ var _a;
17
+ (_a = this.sideBySideModel) === null || _a === void 0 ? void 0 : _a.setSourceScrollElement(ref ? ref.nativeElement : undefined);
18
+ }
19
+ set targetScrollContainer(ref) {
20
+ var _a;
21
+ (_a = this.sideBySideModel) === null || _a === void 0 ? void 0 : _a.setTargetScrollElement(ref ? ref.nativeElement : undefined);
22
+ }
23
+ // The strings-grid model: the tab model itself in the default mode and in the side-by-side grid view.
24
+ get stringsModel() {
25
+ return this.sideBySideModel ? undefined : this.model;
26
+ }
11
27
  // The strings survey is fully recreated on reset(). Its elements keep deterministic ids across
12
28
  // instances, so *ngFor's element trackBy would reuse the disposed survey's (lazy-skeleton) rows.
13
29
  // Keying the survey-content by the per-instance elementIdPrefix forces Angular to recreate it.
@@ -16,7 +32,7 @@ export class TranslationTabComponent extends BaseAngular {
16
32
  }
17
33
  }
18
34
  TranslationTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
- TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <div *ngIf=\"!model.isEmpty\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [model.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [model.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i2.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
35
+ TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, viewQueries: [{ propertyName: "sourceScrollContainer", first: true, predicate: ["sourceScrollContainer"], descendants: true }, { propertyName: "targetScrollContainer", first: true, predicate: ["targetScrollContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <ng-container *ngIf=\"!model.isEmpty\">\n <div *ngIf=\"stringsModel\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"sideBySideModel\" [class]=\"sideBySideModel.sideBySideRootCss\">\n <div class=\"st-side-by-side__source\" #sourceScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.sourceSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div *ngIf=\"sideBySideModel.targetSurvey\" class=\"st-side-by-side__target\" #targetScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.targetSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i2.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
20
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, decorators: [{
21
37
  type: Component,
22
38
  args: [{
@@ -26,6 +42,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
26
42
  }]
27
43
  }], propDecorators: { model: [{
28
44
  type: Input
45
+ }], sourceScrollContainer: [{
46
+ type: ViewChild,
47
+ args: ["sourceScrollContainer"]
48
+ }], targetScrollContainer: [{
49
+ type: ViewChild,
50
+ args: ["targetScrollContainer"]
29
51
  }] } });
30
52
  AngularComponentFactory.Instance.registerComponent("svc-tab-translation", TranslationTabComponent);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQVF6RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBd0I7SUFHekQsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELCtGQUErRjtJQUMvRixpR0FBaUc7SUFDakcsK0ZBQStGO0lBQ3hGLG9CQUFvQixDQUFDLENBQVMsRUFBRSxNQUFXO1FBQ2hELE9BQU8sQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsZUFBZSxLQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDOztxSEFYVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qiw4R0NUcEMsaWxDQXFCYzs0RkRaRCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSzs7QUFZUix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnksIEJhc2VBbmd1bGFyIH0gZnJvbSBcInN1cnZleS1hbmd1bGFyLXVpXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbiB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdmMtdGFiLXRyYW5zbGF0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25UYWJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxUcmFuc2xhdGlvbj4ge1xuICBASW5wdXQoKSBtb2RlbCE6IFRyYW5zbGF0aW9uO1xuXG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBUcmFuc2xhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgLy8gVGhlIHN0cmluZ3Mgc3VydmV5IGlzIGZ1bGx5IHJlY3JlYXRlZCBvbiByZXNldCgpLiBJdHMgZWxlbWVudHMga2VlcCBkZXRlcm1pbmlzdGljIGlkcyBhY3Jvc3NcbiAgLy8gaW5zdGFuY2VzLCBzbyAqbmdGb3IncyBlbGVtZW50IHRyYWNrQnkgd291bGQgcmV1c2UgdGhlIGRpc3Bvc2VkIHN1cnZleSdzIChsYXp5LXNrZWxldG9uKSByb3dzLlxuICAvLyBLZXlpbmcgdGhlIHN1cnZleS1jb250ZW50IGJ5IHRoZSBwZXItaW5zdGFuY2UgZWxlbWVudElkUHJlZml4IGZvcmNlcyBBbmd1bGFyIHRvIHJlY3JlYXRlIGl0LlxuICBwdWJsaWMgdHJhY2tTdHJpbmdzU3VydmV5QnkoXzogbnVtYmVyLCBzdXJ2ZXk6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleT8uZWxlbWVudElkUHJlZml4IHx8IFwiXCI7XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLXRhYi10cmFuc2xhdGlvblwiLCBUcmFuc2xhdGlvblRhYkNvbXBvbmVudCk7XG5cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvci10YWJfX2NvbnRlbnQgc3ZjLXRyYW5zbGF0aW9uLXRhYlwiIFtjbGFzc109XCJtb2RlbC5pc0VtcHR5ID8gJ3N2Yy10cmFuc2xhdGlvbi10YWItLWVtcHR5JyA6ICcnXCI+XG4gICAgPHN2Yy1zdXJmYWNlLXBsYWNlaG9sZGVyICpuZ0lmPVwibW9kZWwuaXNFbXB0eVwiIFtuYW1lXT1cIid0cmFuc2xhdGlvbidcIlxuICAgICAgW3BsYWNlaG9sZGVyVGl0bGVUZXh0XT1cIm1vZGVsLnBsYWNlaG9sZGVyVGl0bGVUZXh0XCJcbiAgICAgIFtwbGFjZWhvbGRlckRlc2NyaXB0aW9uVGV4dF09XCJtb2RlbC5wbGFjZWhvbGRlckRlc2NyaXB0aW9uVGV4dFwiPlxuICAgIDwvc3ZjLXN1cmZhY2UtcGxhY2Vob2xkZXI+XG4gICAgPGRpdiAqbmdJZj1cIiFtb2RlbC5pc0VtcHR5XCIgY2xhc3M9XCJzdC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtY29sdW1uIHN0LXN0cmluZ3Mtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtcm93IHN0LXN0cmluZ3MtaGVhZGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbbW9kZWwuc3RyaW5nc0hlYWRlclN1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cInNcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LXJvdyBzdmMtcGx1Z2luLXRhYl9fY29udGVudCBzdC1zdHJpbmdzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbbW9kZWwuc3RyaW5nc1N1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cInNcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFRekUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQTRCO0lBRzdELFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxtR0FBbUc7SUFDbkcsSUFBd0MscUJBQXFCLENBQUMsR0FBd0M7O1FBQ3BHLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFnQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELElBQXdDLHFCQUFxQixDQUFDLEdBQXdDOztRQUNwRyxNQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBZ0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxzR0FBc0c7SUFDdEcsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3ZELENBQUM7SUFDRCwrRkFBK0Y7SUFDL0YsaUdBQWlHO0lBQ2pHLCtGQUErRjtJQUN4RixvQkFBb0IsQ0FBQyxDQUFTLEVBQUUsTUFBVztRQUNoRCxPQUFPLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGVBQWUsS0FBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7cUhBekJVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLCtWQ1RwQyw2M0RBbUNjOzRGRDFCRCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFTa0MscUJBQXFCO3NCQUE1RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFHTSxxQkFBcUI7c0JBQTVELFNBQVM7dUJBQUMsdUJBQXVCOztBQWNwQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSwgQmFzZUFuZ3VsYXIgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uQmFzZSwgVHJhbnNsYXRpb25TaWRlQnlTaWRlIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy10YWItdHJhbnNsYXRpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZTsgfVwiXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblRhYkNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFRyYW5zbGF0aW9uQmFzZT4ge1xuICBASW5wdXQoKSBtb2RlbCE6IFRyYW5zbGF0aW9uQmFzZTtcblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogVHJhbnNsYXRpb25CYXNlIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHNpZGVCeVNpZGVNb2RlbCgpOiBUcmFuc2xhdGlvblNpZGVCeVNpZGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmlzU2lkZUJ5U2lkZUZvcm0gPyA8VHJhbnNsYXRpb25TaWRlQnlTaWRlPnRoaXMubW9kZWwgOiB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGhlIHNldHRlcnMgYWxzbyBmaXJlIHdpdGggdW5kZWZpbmVkIHdoZW4gKm5nSWYgcmVtb3ZlcyB0aGUgcGFuZXMsIHdoaWNoIGRldGFjaGVzIHRoZSBsaXN0ZW5lcnMuXG4gIEBWaWV3Q2hpbGQoXCJzb3VyY2VTY3JvbGxDb250YWluZXJcIikgc2V0IHNvdXJjZVNjcm9sbENvbnRhaW5lcihyZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zaWRlQnlTaWRlTW9kZWw/LnNldFNvdXJjZVNjcm9sbEVsZW1lbnQocmVmID8gcmVmLm5hdGl2ZUVsZW1lbnQgOiB1bmRlZmluZWQgYXMgYW55KTtcbiAgfVxuICBAVmlld0NoaWxkKFwidGFyZ2V0U2Nyb2xsQ29udGFpbmVyXCIpIHNldCB0YXJnZXRTY3JvbGxDb250YWluZXIocmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2lkZUJ5U2lkZU1vZGVsPy5zZXRUYXJnZXRTY3JvbGxFbGVtZW50KHJlZiA/IHJlZi5uYXRpdmVFbGVtZW50IDogdW5kZWZpbmVkIGFzIGFueSk7XG4gIH1cbiAgLy8gVGhlIHN0cmluZ3MtZ3JpZCBtb2RlbDogdGhlIHRhYiBtb2RlbCBpdHNlbGYgaW4gdGhlIGRlZmF1bHQgbW9kZSBhbmQgaW4gdGhlIHNpZGUtYnktc2lkZSBncmlkIHZpZXcuXG4gIHB1YmxpYyBnZXQgc3RyaW5nc01vZGVsKCk6IFRyYW5zbGF0aW9uQmFzZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2lkZUJ5U2lkZU1vZGVsID8gdW5kZWZpbmVkIDogdGhpcy5tb2RlbDtcbiAgfVxuICAvLyBUaGUgc3RyaW5ncyBzdXJ2ZXkgaXMgZnVsbHkgcmVjcmVhdGVkIG9uIHJlc2V0KCkuIEl0cyBlbGVtZW50cyBrZWVwIGRldGVybWluaXN0aWMgaWRzIGFjcm9zc1xuICAvLyBpbnN0YW5jZXMsIHNvICpuZ0ZvcidzIGVsZW1lbnQgdHJhY2tCeSB3b3VsZCByZXVzZSB0aGUgZGlzcG9zZWQgc3VydmV5J3MgKGxhenktc2tlbGV0b24pIHJvd3MuXG4gIC8vIEtleWluZyB0aGUgc3VydmV5LWNvbnRlbnQgYnkgdGhlIHBlci1pbnN0YW5jZSBlbGVtZW50SWRQcmVmaXggZm9yY2VzIEFuZ3VsYXIgdG8gcmVjcmVhdGUgaXQuXG4gIHB1YmxpYyB0cmFja1N0cmluZ3NTdXJ2ZXlCeShfOiBudW1iZXIsIHN1cnZleTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VydmV5Py5lbGVtZW50SWRQcmVmaXggfHwgXCJcIjtcbiAgfVxufVxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdmMtdGFiLXRyYW5zbGF0aW9uXCIsIFRyYW5zbGF0aW9uVGFiQ29tcG9uZW50KTtcblxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInN2Yy1jcmVhdG9yLXRhYl9fY29udGVudCBzdmMtdHJhbnNsYXRpb24tdGFiXCIgW2NsYXNzXT1cIm1vZGVsLmlzRW1wdHkgPyAnc3ZjLXRyYW5zbGF0aW9uLXRhYi0tZW1wdHknIDogJydcIj5cbiAgICA8c3ZjLXN1cmZhY2UtcGxhY2Vob2xkZXIgKm5nSWY9XCJtb2RlbC5pc0VtcHR5XCIgW25hbWVdPVwiJ3RyYW5zbGF0aW9uJ1wiXG4gICAgICBbcGxhY2Vob2xkZXJUaXRsZVRleHRdPVwibW9kZWwucGxhY2Vob2xkZXJUaXRsZVRleHRcIlxuICAgICAgW3BsYWNlaG9sZGVyRGVzY3JpcHRpb25UZXh0XT1cIm1vZGVsLnBsYWNlaG9sZGVyRGVzY3JpcHRpb25UZXh0XCI+XG4gICAgPC9zdmMtc3VyZmFjZS1wbGFjZWhvbGRlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vZGVsLmlzRW1wdHlcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdHJpbmdzTW9kZWxcIiBjbGFzcz1cInN0LWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LWNvbHVtbiBzdC1zdHJpbmdzLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtcm93IHN0LXN0cmluZ3MtaGVhZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzdHJpbmdzTW9kZWwuc3RyaW5nc0hlYWRlclN1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICAgIDxzdXJ2ZXktY29udGVudCBbbW9kZWxdPVwic1wiPjwvc3VydmV5LWNvbnRlbnQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtcm93IHN2Yy1wbHVnaW4tdGFiX19jb250ZW50IHN0LXN0cmluZ3NcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgW3N0cmluZ3NNb2RlbC5zdHJpbmdzU3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgICAgPHN1cnZleS1jb250ZW50IFttb2RlbF09XCJzXCI+PC9zdXJ2ZXktY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNpZGVCeVNpZGVNb2RlbFwiIFtjbGFzc109XCJzaWRlQnlTaWRlTW9kZWwuc2lkZUJ5U2lkZVJvb3RDc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0LXNpZGUtYnktc2lkZV9fc291cmNlXCIgI3NvdXJjZVNjcm9sbENvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzaWRlQnlTaWRlTW9kZWwuc291cmNlU3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgIDxzdXJ2ZXktY29udGVudCBbbW9kZWxdPVwic1wiPjwvc3VydmV5LWNvbnRlbnQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2lkZUJ5U2lkZU1vZGVsLnRhcmdldFN1cnZleVwiIGNsYXNzPVwic3Qtc2lkZS1ieS1zaWRlX190YXJnZXRcIiAjdGFyZ2V0U2Nyb2xsQ29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgW3NpZGVCeVNpZGVNb2RlbC50YXJnZXRTdXJ2ZXldOyB0cmFja0J5OiB0cmFja1N0cmluZ3NTdXJ2ZXlCeVwiPlxuICAgICAgICAgICAgPHN1cnZleS1jb250ZW50IFttb2RlbF09XCJzXCI+PC9zdXJ2ZXktY29udGVudD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==