survey-creator-angular 3.0.0-beta.9 → 3.0.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/README.md +228 -30
- package/adorners/question-dropdown.component.d.ts +2 -1
- package/adorners/translation-dropdown-question.component.d.ts +18 -0
- package/angular-ui.d.ts +4 -0
- package/angular-ui.module.d.ts +60 -56
- package/bundles/survey-creator-angular.umd.js +245 -37
- package/bundles/survey-creator-angular.umd.js.map +1 -1
- package/components/collab-row.component.d.ts +8 -0
- package/components/floating-panel.component.d.ts +12 -0
- package/creator.component.d.ts +1 -0
- package/esm2015/adorners/question-dropdown.component.js +2 -2
- package/esm2015/adorners/translation-dropdown-question.component.js +53 -0
- package/esm2015/angular-ui.js +5 -1
- package/esm2015/angular-ui.module.js +17 -13
- package/esm2015/components/collab-row.component.js +25 -0
- package/esm2015/components/floating-panel.component.js +40 -0
- package/esm2015/creator.component.js +13 -5
- package/esm2015/custom-questions/file-editor-button.component.js +2 -2
- package/esm2015/tabs/translation/translation-locale-item.component.js +32 -0
- package/esm2015/tabs/translation/translation.component.js +25 -3
- package/fesm2015/survey-creator-angular.js +191 -35
- package/fesm2015/survey-creator-angular.js.map +1 -1
- package/package.json +25 -18
- package/tabs/translation/translation-locale-item.component.d.ts +10 -0
- package/tabs/translation/translation.component.d.ts +9 -4
|
@@ -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 "./
|
|
7
|
-
import * as i3 from "./
|
|
8
|
-
import * as i4 from "
|
|
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:
|
|
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,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakcsT0FBTyxFQUFzQyxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBTS9GLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUErQjtJQUluRSxZQUFZLGlCQUFvQztRQUM5QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELDBFQUEwRTtJQUMxRSwyRUFBMkU7SUFDM0Usc0RBQXNEO0lBQ3RELElBQVcsa0JBQWtCO1FBQzNCLE1BQU0sR0FBRyxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFDa0IsK0JBQStCO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNrQixjQUFjO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBQ00sZUFBZTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ2UsV0FBVztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDLENBQUM7SUFDRCxVQUFVLENBQUMsQ0FBUyxFQUFFLEdBQW1CO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUM7OzhHQWpEVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixxS0FFSyxVQUFVLG9EQ1Y1Qywrc0ZBK0NlOzRGRHZDRixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDBCQUEwQjtpQkFDeEM7d0dBRVUsS0FBSztzQkFBYixLQUFLO2dCQUN3QyxTQUFTO3NCQUF0RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O0FBa0Q5Qyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciwgU3VydmV5Q29udGVudENvbXBvbmVudCB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvck1vZGVsLCBUYWJiZWRNZW51SXRlbSwgY3NzVmFyaWFibGVzVG9TdHJpbmcgfSBmcm9tIFwic3VydmV5LWNyZWF0b3ItY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3VydmV5LWNyZWF0b3JcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jcmVhdG9yLmNvbXBvbmVudC5odG1sXCJcbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFN1cnZleUNyZWF0b3JNb2RlbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbW9kZWwhOiBTdXJ2ZXlDcmVhdG9yTW9kZWw7XG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICBjaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogU3VydmV5Q3JlYXRvck1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGNyZWF0b3IoKTogU3VydmV5Q3JlYXRvck1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICAvLyBUaGUgY29sbGFib3JhdGlvbiBzdHJpcCBpcyBhIENvbXBvbmVudENvbnRhaW5lck1vZGVsIGNvbnRyaWJ1dGVkIGJ5IHRoZVxuICAvLyBwbHVnaW4uIGBjb2xsYWJCYXJgIGlzIHR5cGVkIGFzIEJhc2UgaW4gY3JlYXRvci1jb3JlIHRvIGtlZXAgdGhlIGNyZWF0b3JcbiAgLy8gZnJlZSBvZiBhIGRlcGVuZGVuY3kgb24gdGhlIHBsdWdpbiwgaGVuY2UgdGhlIGNhc3QuXG4gIHB1YmxpYyBnZXQgY29sbGFiQmFyQ29udGFpbmVyKCk6IGFueSB7XG4gICAgY29uc3QgYmFyOiBhbnkgPSB0aGlzLm1vZGVsLmNvbGxhYkJhcjtcbiAgICByZXR1cm4gISFiYXIgPyBiYXIuY29udGFpbmVyIDogdW5kZWZpbmVkO1xuICB9XG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXRTaG91bGRSZWF0dGFjaENoYW5nZURldGVjdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Nb2RlbENoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgaWYgKHRoaXMucHJldmlvdXNNb2RlbCkge1xuICAgICAgdGhpcy5wcmV2aW91c01vZGVsLnVuc3Vic2NyaWJlUm9vdEVsZW1lbnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3JlYXRvciAmJiB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmNyZWF0b3Iuc2V0Um9vdEVsZW1lbnQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdG9yLnNldFJvb3RFbGVtZW50KHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRvci51bnN1YnNjcmliZVJvb3RFbGVtZW50KCk7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYigpOiBUYWJiZWRNZW51SXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRvci5hY3RpdmVUYWJNZW51SXRlbTtcbiAgfVxuICB0cmFja1RhYkJ5KF86IG51bWJlciwgdGFiOiBUYWJiZWRNZW51SXRlbSkge1xuICAgIHJldHVybiB0YWIuaWQ7XG4gIH1cbiAgcHVibGljIGdldCB0aGVtZVZhcmlhYmxlc1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBjc3NWYXJpYWJsZXNUb1N0cmluZyh0aGlzLmNyZWF0b3IudGhlbWVWYXJpYWJsZXMpO1xuICB9XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3VydmV5LXdpZGdldFwiLCBTdXJ2ZXlDb250ZW50Q29tcG9uZW50KTtcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhY3JlYXRvci5pc0NyZWF0b3JEaXNwb3NlZFwiPlxuICA8c3YtbmctbW9kYWwtY29udGFpbmVyPjwvc3YtbmctbW9kYWwtY29udGFpbmVyPlxuICA8ZGl2IFtjbGFzc109XCJjcmVhdG9yLmdldFJvb3RDc3MoKVwiIFthdHRyLnN0eWxlXT1cInRoZW1lVmFyaWFibGVzU3RyaW5nXCIgI2NvbnRhaW5lcj5cbiAgICA8ZGl2PlxuICAgICAgPHN2LXN2Zy1idW5kbGU+PC9zdi1zdmctYnVuZGxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzdmMtZnVsbC1jb250YWluZXIgc3ZjLWNyZWF0b3JfX2FyZWEgc3ZjLWZsZXgtY29sdW1uXCJcbiAgICAgIFtjbGFzcy5zdmMtY3JlYXRvcl9fYXJlYS0td2l0aC1iYW5uZXJdPVwiIWNyZWF0b3IuaGF2ZUNvbW1lcmNpYWxMaWNlbnNlXCI+XG4gICAgICA8c3ZjLWNvbXBvbmVudC1jb250YWluZXIgKm5nSWY9XCJjb2xsYWJCYXJDb250YWluZXJcIiBbbW9kZWxdPVwiY29sbGFiQmFyQ29udGFpbmVyXCI+PC9zdmMtY29tcG9uZW50LWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtZmxleC1yb3cgc3ZjLWZ1bGwtY29udGFpbmVyXCJcbiAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX19zaWRlLWJhci0tbGVmdF09XCJjcmVhdG9yLnNpZGViYXJMb2NhdGlvbiA9PSAnbGVmdCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LWNvbHVtbiBzdmMtZmxleC1yb3dfX2VsZW1lbnQgc3ZjLWZsZXgtcm93X19lbGVtZW50LS1ncm93aW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy10b3AtYmFyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXRhYmJlZC1tZW51LXdyYXBwZXJcIiBbdmlzaWJsZV09XCJjcmVhdG9yLnNob3dUYWJzXCI+XG4gICAgICAgICAgICAgIDxzdmMtdGFiYmVkLW1lbnUgW21vZGVsXT1cImNyZWF0b3IudGFiYmVkTWVudVwiPjwvc3ZjLXRhYmJlZC1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3JlYXRvci5zaG93VG9vbGJhclwiIGNsYXNzPVwic3ZjLXRvb2xiYXItd3JhcHBlclwiIFt2aXNpYmxlXT1cImNyZWF0b3Iuc2hvd1Rvb2xiYXJcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IudG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC13cmFwcGVyIHN2Yy1mbGV4LXJvd1wiXG4gICAgICAgICAgICBbY2xhc3Muc3ZjLWNyZWF0b3JfX2NvbnRlbnQtd3JhcHBlci0tZm9vdGVyLXRvb2xiYXJdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC1ob2xkZXIgc3ZjLWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWFjdGl2ZVRhYlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cInRhYnBhbmVsXCIgY2xhc3M9XCJzdmMtY3JlYXRvci10YWJcIiBbYXR0ci5pZF09XCInc2Nyb2xsYWJsZURpdi0nICsgYWN0aXZlVGFiLmlkXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyBhY3RpdmVUYWIuaWRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX190b29sYm94LS1yaWdodF09XCJjcmVhdG9yLnRvb2xib3hMb2NhdGlvbiA9PSAncmlnaHQnXCI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGFjdGl2ZVRhYi5jb21wb25lbnRDb250ZW50LCBkYXRhOiB7IGRhdGE6IGNyZWF0b3IsIG1vZGVsOiBhY3RpdmVUYWIuZGF0YS5tb2RlbCB9IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjcmVhdG9yLmlzTW9iaWxlVmlld1wiIGNsYXNzPVwic3ZjLWZvb3Rlci1iYXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtdG9vbGJhci13cmFwcGVyXCIgW3Zpc2libGVdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IuZm9vdGVyVG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHN2Yy1zaWRlLWJhciBbbW9kZWxdPVwiY3JlYXRvci5zaWRlYmFyXCIgKm5nSWY9XCJjcmVhdG9yLmlzU2lkZWJhclZpc2libGVcIj48L3N2Yy1zaWRlLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN2Yy1jcmVhdG9yX19iYW5uZXJcIiAqbmdJZj1cIiFjcmVhdG9yLmhhdmVDb21tZXJjaWFsTGljZW5zZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Yy1jcmVhdG9yX19ub24tY29tbWVyY2lhbC10ZXh0XCIgW2lubmVySFRNTF09XCJjcmVhdG9yLmxpY2Vuc2VUZXh0IHwgc2FmZUh0bWxcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzdi1ub3RpZmllciBbbm90aWZpZXJdPVwiY3JlYXRvci5ub3RpZmllclwiPjwvc3Ytbm90aWZpZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -11,7 +11,7 @@ export class FileEditorButtonComponent extends BaseAngular {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
FileEditorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
|
|
14
|
+
FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n <span class=\"sv-visuallyhidden\">{{ question.chooseButtonCaption }}</span>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{
|
|
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
23
23
|
type: Input
|
|
24
24
|
}] } });
|
|
25
25
|
AngularComponentFactory.Instance.registerComponent("sv-fileedit-button", FileEditorButtonComponent);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lZGl0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b20tcXVlc3Rpb25zL2ZpbGUtZWRpdG9yLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvY3VzdG9tLXF1ZXN0aW9ucy9maWxlLWVkaXRvci1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFTekUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFdBQVc7SUFFeEQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFtQyxDQUFDO0lBQzdELENBQUM7SUFDRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7O3VIQVBVLHlCQUF5QjsyR0FBekIseUJBQXlCLG1IQ1Z0QyxzK0JBYUE7NEZESGEseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELE1BQU0sRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUN6Qzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7O0FBU1IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVFZGl0b3JNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1maWxlLWVkaXRvci1idXR0b25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLWVkaXRvci1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCJ7IDpob3N0IHsgZGlzcGxheTogbm9uZTsgfSB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVFZGl0b3JCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhciB7XG4gIEBJbnB1dCgpIG1vZGVsITogQWN0aW9uO1xuICBnZXQgcXVlc3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuZGF0YS5xdWVzdGlvbiBhcyBRdWVzdGlvbkZpbGVFZGl0b3JNb2RlbDtcbiAgfVxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2LWZpbGVlZGl0LWJ1dHRvblwiLCBGaWxlRWRpdG9yQnV0dG9uQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxsYWJlbCBbY2xhc3NdPVwibW9kZWwuZ2V0QWN0aW9uQmFySXRlbUNzcygpXCIgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLmlucHV0SWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLmNob29zZUJ1dHRvbkNhcHRpb25cIlxuICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmNob29zZUZpbGVzKCRldmVudClcIiBba2V5MmNsaWNrXT5cbiAgICAgIDxzdmcgW2ljb25OYW1lXT1cIm1vZGVsLmljb25OYW1lXCIgc2l6ZT1cIidhdXRvJ1wiIFt0aXRsZV09XCJtb2RlbC50aXRsZVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLml0ZW1JY29uXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICA8c3BhbiBjbGFzcz1cInN2LXZpc3VhbGx5aGlkZGVuXCI+e3sgcXVlc3Rpb24uY2hvb3NlQnV0dG9uQ2FwdGlvbiB9fTwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIFtkaXNhYmxlZF09XCJtb2RlbC5kaXNhYmxlZFwiIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmZpbGVJbnB1dFwiIFthdHRyLmlkXT1cInF1ZXN0aW9uLmlucHV0SWRcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInF1ZXN0aW9uLmFyaWFSZXF1aXJlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24uYXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cInF1ZXN0aW9uLmFyaWFJbnZhbGlkXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJxdWVzdGlvbi5hcmlhRGVzY3JpYmVkQnlcIiBbYXR0ci5tdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFt0aXRsZV09XCJxdWVzdGlvbi5pbnB1dFRpdGxlXCIgW2FjY2VwdF09XCJxdWVzdGlvbi5hY2NlcHRlZFR5cGVzXCIgKGNoYW5nZSk9XCJxdWVzdGlvbi5vbkZpbGVJbnB1dENoYW5nZSgkZXZlbnQpXCIgdGFiaW5kZXg9XCItMVwiPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -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.isSideBySideForms ? 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 <
|
|
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=\"st-side-by-side\"\n [class]=\"sideBySideModel.targetSurvey ? '' : 'st-side-by-side--no-target'\">\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,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFRekUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQTRCO0lBRzdELFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxtR0FBbUc7SUFDbkcsSUFBd0MscUJBQXFCLENBQUMsR0FBd0M7O1FBQ3BHLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFnQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELElBQXdDLHFCQUFxQixDQUFDLEdBQXdDOztRQUNwRyxNQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBZ0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxzR0FBc0c7SUFDdEcsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3ZELENBQUM7SUFDRCwrRkFBK0Y7SUFDL0YsaUdBQWlHO0lBQ2pHLCtGQUErRjtJQUN4RixvQkFBb0IsQ0FBQyxDQUFTLEVBQUUsTUFBVztRQUNoRCxPQUFPLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGVBQWUsS0FBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7cUhBekJVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLCtWQ1RwQywrN0RBb0NjOzRGRDNCRCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFTa0MscUJBQXFCO3NCQUE1RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFHTSxxQkFBcUI7c0JBQTVELFNBQVM7dUJBQUMsdUJBQXVCOztBQWNwQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSwgQmFzZUFuZ3VsYXIgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uQmFzZSwgVHJhbnNsYXRpb25TaWRlQnlTaWRlIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy10YWItdHJhbnNsYXRpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZTsgfVwiXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblRhYkNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFRyYW5zbGF0aW9uQmFzZT4ge1xuICBASW5wdXQoKSBtb2RlbCE6IFRyYW5zbGF0aW9uQmFzZTtcblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogVHJhbnNsYXRpb25CYXNlIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHNpZGVCeVNpZGVNb2RlbCgpOiBUcmFuc2xhdGlvblNpZGVCeVNpZGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmlzU2lkZUJ5U2lkZUZvcm1zID8gPFRyYW5zbGF0aW9uU2lkZUJ5U2lkZT50aGlzLm1vZGVsIDogdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRoZSBzZXR0ZXJzIGFsc28gZmlyZSB3aXRoIHVuZGVmaW5lZCB3aGVuICpuZ0lmIHJlbW92ZXMgdGhlIHBhbmVzLCB3aGljaCBkZXRhY2hlcyB0aGUgbGlzdGVuZXJzLlxuICBAVmlld0NoaWxkKFwic291cmNlU2Nyb2xsQ29udGFpbmVyXCIpIHNldCBzb3VyY2VTY3JvbGxDb250YWluZXIocmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2lkZUJ5U2lkZU1vZGVsPy5zZXRTb3VyY2VTY3JvbGxFbGVtZW50KHJlZiA/IHJlZi5uYXRpdmVFbGVtZW50IDogdW5kZWZpbmVkIGFzIGFueSk7XG4gIH1cbiAgQFZpZXdDaGlsZChcInRhcmdldFNjcm9sbENvbnRhaW5lclwiKSBzZXQgdGFyZ2V0U2Nyb2xsQ29udGFpbmVyKHJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNpZGVCeVNpZGVNb2RlbD8uc2V0VGFyZ2V0U2Nyb2xsRWxlbWVudChyZWYgPyByZWYubmF0aXZlRWxlbWVudCA6IHVuZGVmaW5lZCBhcyBhbnkpO1xuICB9XG4gIC8vIFRoZSBzdHJpbmdzLWdyaWQgbW9kZWw6IHRoZSB0YWIgbW9kZWwgaXRzZWxmIGluIHRoZSBkZWZhdWx0IG1vZGUgYW5kIGluIHRoZSBzaWRlLWJ5LXNpZGUgZ3JpZCB2aWV3LlxuICBwdWJsaWMgZ2V0IHN0cmluZ3NNb2RlbCgpOiBUcmFuc2xhdGlvbkJhc2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNpZGVCeVNpZGVNb2RlbCA/IHVuZGVmaW5lZCA6IHRoaXMubW9kZWw7XG4gIH1cbiAgLy8gVGhlIHN0cmluZ3Mgc3VydmV5IGlzIGZ1bGx5IHJlY3JlYXRlZCBvbiByZXNldCgpLiBJdHMgZWxlbWVudHMga2VlcCBkZXRlcm1pbmlzdGljIGlkcyBhY3Jvc3NcbiAgLy8gaW5zdGFuY2VzLCBzbyAqbmdGb3IncyBlbGVtZW50IHRyYWNrQnkgd291bGQgcmV1c2UgdGhlIGRpc3Bvc2VkIHN1cnZleSdzIChsYXp5LXNrZWxldG9uKSByb3dzLlxuICAvLyBLZXlpbmcgdGhlIHN1cnZleS1jb250ZW50IGJ5IHRoZSBwZXItaW5zdGFuY2UgZWxlbWVudElkUHJlZml4IGZvcmNlcyBBbmd1bGFyIHRvIHJlY3JlYXRlIGl0LlxuICBwdWJsaWMgdHJhY2tTdHJpbmdzU3VydmV5QnkoXzogbnVtYmVyLCBzdXJ2ZXk6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleT8uZWxlbWVudElkUHJlZml4IHx8IFwiXCI7XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLXRhYi10cmFuc2xhdGlvblwiLCBUcmFuc2xhdGlvblRhYkNvbXBvbmVudCk7XG5cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvci10YWJfX2NvbnRlbnQgc3ZjLXRyYW5zbGF0aW9uLXRhYlwiIFtjbGFzc109XCJtb2RlbC5pc0VtcHR5ID8gJ3N2Yy10cmFuc2xhdGlvbi10YWItLWVtcHR5JyA6ICcnXCI+XG4gICAgPHN2Yy1zdXJmYWNlLXBsYWNlaG9sZGVyICpuZ0lmPVwibW9kZWwuaXNFbXB0eVwiIFtuYW1lXT1cIid0cmFuc2xhdGlvbidcIlxuICAgICAgW3BsYWNlaG9sZGVyVGl0bGVUZXh0XT1cIm1vZGVsLnBsYWNlaG9sZGVyVGl0bGVUZXh0XCJcbiAgICAgIFtwbGFjZWhvbGRlckRlc2NyaXB0aW9uVGV4dF09XCJtb2RlbC5wbGFjZWhvbGRlckRlc2NyaXB0aW9uVGV4dFwiPlxuICAgIDwvc3ZjLXN1cmZhY2UtcGxhY2Vob2xkZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2RlbC5pc0VtcHR5XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic3RyaW5nc01vZGVsXCIgY2xhc3M9XCJzdC1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtZmxleC1jb2x1bW4gc3Qtc3RyaW5ncy13cmFwcGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LXJvdyBzdC1zdHJpbmdzLWhlYWRlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbc3RyaW5nc01vZGVsLnN0cmluZ3NIZWFkZXJTdXJ2ZXldOyB0cmFja0J5OiB0cmFja1N0cmluZ3NTdXJ2ZXlCeVwiPlxuICAgICAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cInNcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LXJvdyBzdmMtcGx1Z2luLXRhYl9fY29udGVudCBzdC1zdHJpbmdzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzdHJpbmdzTW9kZWwuc3RyaW5nc1N1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICAgIDxzdXJ2ZXktY29udGVudCBbbW9kZWxdPVwic1wiPjwvc3VydmV5LWNvbnRlbnQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaWRlQnlTaWRlTW9kZWxcIiBjbGFzcz1cInN0LXNpZGUtYnktc2lkZVwiXG4gICAgICAgIFtjbGFzc109XCJzaWRlQnlTaWRlTW9kZWwudGFyZ2V0U3VydmV5ID8gJycgOiAnc3Qtc2lkZS1ieS1zaWRlLS1uby10YXJnZXQnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdC1zaWRlLWJ5LXNpZGVfX3NvdXJjZVwiICNzb3VyY2VTY3JvbGxDb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbc2lkZUJ5U2lkZU1vZGVsLnNvdXJjZVN1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cInNcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNpZGVCeVNpZGVNb2RlbC50YXJnZXRTdXJ2ZXlcIiBjbGFzcz1cInN0LXNpZGUtYnktc2lkZV9fdGFyZ2V0XCIgI3RhcmdldFNjcm9sbENvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzaWRlQnlTaWRlTW9kZWwudGFyZ2V0U3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgIDxzdXJ2ZXktY29udGVudCBbbW9kZWxdPVwic1wiPjwvc3VydmV5LWNvbnRlbnQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|