fabrikantencore 1.3.2 → 1.3.3
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/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs +2 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +2 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +2 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs +2 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.mjs +15 -11
- package/fesm2015/fabrikantencore.mjs +22 -18
- package/fesm2015/fabrikantencore.mjs.map +1 -1
- package/fesm2020/fabrikantencore.mjs +22 -18
- package/fesm2020/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.d.ts +2 -2
package/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs
CHANGED
|
@@ -34,10 +34,10 @@ export class FabFiltersComponent {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
FabFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabFiltersComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.BestekService }, { token: i4.TranslateService }, { token: i5.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
FabFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabFiltersComponent, selector: "fab-filters", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div class=\"product-view\">\r\n <fab-filters-overview></fab-filters-overview>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n", styles: [".row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-content{background-color:#fff}.loader{position:absolute;display:flex;align-items:center;z-index:20;background-color:#ffffffb3}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i11.FabFiltersOverviewComponent, selector: "fab-filters-overview" }] });
|
|
37
|
+
FabFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabFiltersComponent, selector: "fab-filters", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div class=\"product-view\">\r\n <fab-filters-overview></fab-filters-overview>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n", styles: [".row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-content{background-color:#fff}.loader{position:absolute;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i11.FabFiltersOverviewComponent, selector: "fab-filters-overview" }] });
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabFiltersComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
|
-
args: [{ selector: 'fab-filters', template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div class=\"product-view\">\r\n <fab-filters-overview></fab-filters-overview>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n", styles: [".row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-content{background-color:#fff}.loader{position:absolute;display:flex;align-items:center;z-index:20;background-color:#ffffffb3}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"] }]
|
|
40
|
+
args: [{ selector: 'fab-filters', template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div class=\"product-view\">\r\n <fab-filters-overview></fab-filters-overview>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n", styles: [".row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-content{background-color:#fff}.loader{position:absolute;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"] }]
|
|
41
41
|
}], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.BestekService }, { type: i4.TranslateService }, { type: i5.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onResize: [{
|
|
42
42
|
type: HostListener,
|
|
43
43
|
args: ['window:resize', ['$event']]
|
package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs
CHANGED
|
@@ -50,10 +50,10 @@ export class FabProductComponent {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
FabProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabProductComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.BestekService }, { token: i4.TranslateService }, { token: i5.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
FabProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabProductComponent, selector: "app-fab-product", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product .tabs{height:100%}app-fab-product .row{display:flex}app-fab-product .loader-card{margin:auto;width:300px}app-fab-product .loader-subtitle{text-align:center}app-fab-product .loader-spinner{margin:auto}app-fab-product .view-container{height:100%}app-fab-product .view-content{background-color:#fff}app-fab-product .loader{position:absolute;display:flex;width:100%;height:100%;align-items:center;z-index:20;background-color:#ffffffb3}app-fab-product .filter-view{width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i9.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i9.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.FabProductInfoComponent, selector: "app-fab-product-info" }, { kind: "component", type: i12.FabProductBestekComponent, selector: "app-fab-product-bestek" }, { kind: "component", type: i13.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i14.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }, { kind: "component", type: i15.FabWebglViewerComponent, selector: "app-fab-webgl-viewer" }, { kind: "component", type: i16.FabSvgViewerComponent, selector: "app-fab-svg-viewer" }], encapsulation: i0.ViewEncapsulation.None });
|
|
53
|
+
FabProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabProductComponent, selector: "app-fab-product", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product .tabs{height:100%}app-fab-product .row{display:flex}app-fab-product .loader-card{margin:auto;width:300px}app-fab-product .loader-subtitle{text-align:center}app-fab-product .loader-spinner{margin:auto}app-fab-product .view-container{height:100%}app-fab-product .view-content{background-color:#fff}app-fab-product .loader{position:absolute;display:flex;width:100%;height:100%;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product .filter-view{width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i9.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i9.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.FabProductInfoComponent, selector: "app-fab-product-info" }, { kind: "component", type: i12.FabProductBestekComponent, selector: "app-fab-product-bestek" }, { kind: "component", type: i13.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i14.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }, { kind: "component", type: i15.FabWebglViewerComponent, selector: "app-fab-webgl-viewer" }, { kind: "component", type: i16.FabSvgViewerComponent, selector: "app-fab-svg-viewer" }], encapsulation: i0.ViewEncapsulation.None });
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabProductComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
56
|
-
args: [{ selector: 'app-fab-product', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product .tabs{height:100%}app-fab-product .row{display:flex}app-fab-product .loader-card{margin:auto;width:300px}app-fab-product .loader-subtitle{text-align:center}app-fab-product .loader-spinner{margin:auto}app-fab-product .view-container{height:100%}app-fab-product .view-content{background-color:#fff}app-fab-product .loader{position:absolute;display:flex;width:100%;height:100%;align-items:center;z-index:20;background-color:#ffffffb3}app-fab-product .filter-view{width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"] }]
|
|
56
|
+
args: [{ selector: 'app-fab-product', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product .tabs{height:100%}app-fab-product .row{display:flex}app-fab-product .loader-card{margin:auto;width:300px}app-fab-product .loader-subtitle{text-align:center}app-fab-product .loader-spinner{margin:auto}app-fab-product .view-container{height:100%}app-fab-product .view-content{background-color:#fff}app-fab-product .loader{position:absolute;display:flex;width:100%;height:100%;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product .filter-view{width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"] }]
|
|
57
57
|
}], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.BestekService }, { type: i4.TranslateService }, { type: i5.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
|
|
58
58
|
type: ViewChild,
|
|
59
59
|
args: ['header']
|
|
@@ -44,10 +44,10 @@ export class FabProductSelectComponent {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
FabProductSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabProductSelectComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.BestekService }, { token: i4.TranslateService }, { token: i5.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
FabProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-window\" [style.height]=\"Height\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: [".main-window{display:flex;flex-flow:row wrap;overflow:auto}.subtitle{margin-bottom:10px;height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:4px}.row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-container{height:100%}.view-content{background-color:#fff}.loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.FabProductTileComponent, selector: "app-fab-product-tile", inputs: ["product"] }, { kind: "component", type: i11.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i12.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }] });
|
|
47
|
+
FabProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-window\" [style.height]=\"Height\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: [".main-window{display:flex;flex-flow:row wrap;overflow:auto}.subtitle{margin-bottom:10px;height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:4px}.row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-container{height:100%}.view-content{background-color:#fff}.loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.FabProductTileComponent, selector: "app-fab-product-tile", inputs: ["product"] }, { kind: "component", type: i11.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i12.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }] });
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabProductSelectComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
50
|
-
args: [{ selector: 'app-fab-product-select', template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-window\" [style.height]=\"Height\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: [".main-window{display:flex;flex-flow:row wrap;overflow:auto}.subtitle{margin-bottom:10px;height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:4px}.row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-container{height:100%}.view-content{background-color:#fff}.loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"] }]
|
|
50
|
+
args: [{ selector: 'app-fab-product-select', template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-window\" [style.height]=\"Height\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: [".main-window{display:flex;flex-flow:row wrap;overflow:auto}.subtitle{margin-bottom:10px;height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:4px}.row{display:flex}.loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.view-container{height:100%}.view-content{background-color:#fff}.loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}.filter-view{width:300px;min-width:300px;background-color:#fafafa}.product-view{flex:auto}\n"] }]
|
|
51
51
|
}], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.BestekService }, { type: i4.TranslateService }, { type: i5.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
|
|
52
52
|
type: ViewChild,
|
|
53
53
|
args: ['header']
|
package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs
CHANGED
|
@@ -17,9 +17,9 @@ export class FabStartComponent {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
FabStartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabStartComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
FabStartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabStartComponent, selector: "app-fab-start", ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\n <mat-card class=\"loader-card\">\n <mat-card-content>\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.loader{position:absolute;display:flex;align-items:center;width:100%;height:100%;justify-content:center;z-index:20;background-color:#ffffffb3}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }] });
|
|
20
|
+
FabStartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabStartComponent, selector: "app-fab-start", ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\n <mat-card class=\"loader-card\">\n <mat-card-content>\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.loader{position:absolute;display:flex;align-items:center;width:100%;height:100%;justify-content:center;z-index:20;background-color:#ffffffb3;top:0;left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }] });
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabStartComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
|
-
args: [{ selector: 'app-fab-start', template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\n <mat-card class=\"loader-card\">\n <mat-card-content>\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.loader{position:absolute;display:flex;align-items:center;width:100%;height:100%;justify-content:center;z-index:20;background-color:#ffffffb3}\n"] }]
|
|
23
|
+
args: [{ selector: 'app-fab-start', template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\n <mat-card class=\"loader-card\">\n <mat-card-content>\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\n </mat-card-content>\n </mat-card>\n</div>\n", styles: [".loader-card{margin:auto;width:300px}.loader-subtitle{text-align:center}.loader-spinner{margin:auto}.loader{position:absolute;display:flex;align-items:center;width:100%;height:100%;justify-content:center;z-index:20;background-color:#ffffffb3;top:0;left:0}\n"] }]
|
|
24
24
|
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }]; } });
|
|
25
25
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXN0YXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItc3RhcnQvZmFiLXN0YXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItc3RhcnQvZmFiLXN0YXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDUyxrQkFBc0MsRUFDdEMsZ0JBQWtDLEVBQ2pDLGlCQUFvQztRQUZyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFFbkQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakUsQ0FBQzs7OEdBVlUsaUJBQWlCO2tHQUFqQixpQkFBaUIscURDVDlCLHlQQU9BOzJGREVhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXN0YXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1zdGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZhYi1zdGFydC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZhYlN0YXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRGYWJyaWthbnRlblZpZXdNb2RlbCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTG9hZFRyYW5zbGF0aW9ucyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRpbmdcIiBjbGFzcz1cImxvYWRlclwiPlxuICA8bWF0LWNhcmQgY2xhc3M9XCJsb2FkZXItY2FyZFwiPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPVwibG9hZGVyLXNwaW5uZXJcIiBbZGlhbWV0ZXJdPVwiODBcIj48L21hdC1zcGlubmVyPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cbjwvZGl2PlxuIl19
|
|
@@ -15,6 +15,7 @@ export class FabWebglViewerComponent {
|
|
|
15
15
|
this.TranslateService = TranslateService;
|
|
16
16
|
this.MobileService = MobileService;
|
|
17
17
|
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
18
|
+
this.Height = "calc(100% - 0px)";
|
|
18
19
|
this.viewerInitialised = false;
|
|
19
20
|
this.WebGLService.FabWebglViewerComponent = this;
|
|
20
21
|
this.RefreshViewerSize();
|
|
@@ -24,9 +25,11 @@ export class FabWebglViewerComponent {
|
|
|
24
25
|
}
|
|
25
26
|
ngAfterViewInit() {
|
|
26
27
|
this.RefreshViewerSize();
|
|
28
|
+
this.UpdateHeight();
|
|
27
29
|
this.ChangeDetectorRef.detectChanges();
|
|
28
30
|
}
|
|
29
31
|
ngDoCheck() {
|
|
32
|
+
this.UpdateHeight();
|
|
30
33
|
this.RefreshViewerSize();
|
|
31
34
|
}
|
|
32
35
|
OpenBCBLink() {
|
|
@@ -63,15 +66,19 @@ export class FabWebglViewerComponent {
|
|
|
63
66
|
viewer.toonModel();
|
|
64
67
|
});
|
|
65
68
|
}
|
|
66
|
-
console.log("refresh viewer");
|
|
69
|
+
//console.log("refresh viewer");
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
|
-
|
|
72
|
+
UpdateHeight() {
|
|
70
73
|
var height = 0;
|
|
71
74
|
if (this.header != undefined) {
|
|
72
75
|
height += this.header.nativeElement.offsetHeight;
|
|
73
76
|
}
|
|
74
|
-
|
|
77
|
+
var temp = "calc(100% - " + height + "px)";
|
|
78
|
+
if (this.Height != temp) {
|
|
79
|
+
this.Height = temp;
|
|
80
|
+
this.RefreshViewer();
|
|
81
|
+
}
|
|
75
82
|
}
|
|
76
83
|
RefreshViewerSize() {
|
|
77
84
|
this.MobileService.UpdateScreenSize(window.innerWidth, window.innerHeight);
|
|
@@ -79,23 +86,20 @@ export class FabWebglViewerComponent {
|
|
|
79
86
|
var width = this.viewercontainer.nativeElement.offsetWidth - 6;
|
|
80
87
|
var height = this.viewercontainer.nativeElement.offsetHeight - 6;
|
|
81
88
|
if (this.WebGLService.ViewerWidth != width || this.WebGLService.ViewerHeight != height) {
|
|
82
|
-
clearTimeout(this.timeoutId);
|
|
83
89
|
this.WebGLService.ViewerWidth = width;
|
|
84
90
|
this.WebGLService.ViewerHeight = height;
|
|
85
91
|
this.ChangeDetectorRef.detectChanges();
|
|
86
|
-
console.log("width:" + width + " height: " + height);
|
|
87
|
-
this.
|
|
88
|
-
this.RefreshViewer();
|
|
89
|
-
}, 300);
|
|
92
|
+
//console.log("width:" + width + " height: " + height);
|
|
93
|
+
this.RefreshViewer();
|
|
90
94
|
}
|
|
91
95
|
}
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
FabWebglViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabWebglViewerComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.WebGLService }, { token: i3.TranslateService }, { token: i4.MobileService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
-
FabWebglViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabWebglViewerComponent, selector: "app-fab-webgl-viewer", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "viewercontainer", first: true, predicate: ["viewercontainer"], descendants: true }], ngImport: i0, template: "<div class=\"loader\" *ngIf=\"WebGLService.Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div class=\"main-window\">\n <div *ngIf=\"FabrikantenService.ShowVariants()\">\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\n <div>\n <ul>\n <li class=\"button\" mat-stroked-button *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\n {{ bcbproduct.name }}\n </li>\n </ul>\n </div>\n </div>\n <div *ngIf=\"ShowWebGL()\" class=\"main-window\">\n <div #header class=\"toolbar\">\n <button mat-stroked-button class=\"toolbar-button rfa-button\" (click)=\"FabrikantenService.DownloadRFA()\" *ngIf=\"WebGLService.HasNativeRFA()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRFALoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRFALoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\n </div>\n </div>\n </button>\n <!--<button mat-stroked-button class=\"toolbar-button revit-plugin-button\" (click)=\"FabrikantenService.DownloadRevitPlugin()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRevitPluginLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRevitPluginLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit (plugin)\") }}</span>\n </div>\n </div>\n </button>-->\n <button mat-stroked-button class=\"toolbar-button autocad-3d-button\" (click)=\"FabrikantenService.Download3DAutoCADDwg()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DAutoCADDwgLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D AutoCAD Dwg\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button dxf-3d-button\" (click)=\"FabrikantenService.Download3DDxf()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DDxfLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D Dxf\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button\" (click)=\"OpenBCBLink()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">open_in_new</mat-icon>\n </div>\n <div class=\"row-title\">\n {{ TranslateService.GetActiveValue(\"Common\", \"BCB\") }}\n </div>\n </div>\n </button>\n </div>\n\n <div #viewercontainer class=\"viewer-container\" [style.height]=\"
|
|
99
|
+
FabWebglViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: FabWebglViewerComponent, selector: "app-fab-webgl-viewer", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "viewercontainer", first: true, predicate: ["viewercontainer"], descendants: true }], ngImport: i0, template: "<div class=\"loader\" *ngIf=\"WebGLService.Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div class=\"main-window\">\n <div *ngIf=\"FabrikantenService.ShowVariants()\">\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\n <div>\n <ul>\n <li class=\"button\" mat-stroked-button *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\n {{ bcbproduct.name }}\n </li>\n </ul>\n </div>\n </div>\n <div *ngIf=\"ShowWebGL()\" class=\"main-window\">\n <div #header class=\"toolbar\">\n <button mat-stroked-button class=\"toolbar-button rfa-button\" (click)=\"FabrikantenService.DownloadRFA()\" *ngIf=\"WebGLService.HasNativeRFA()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRFALoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRFALoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\n </div>\n </div>\n </button>\n <!--<button mat-stroked-button class=\"toolbar-button revit-plugin-button\" (click)=\"FabrikantenService.DownloadRevitPlugin()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRevitPluginLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRevitPluginLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit (plugin)\") }}</span>\n </div>\n </div>\n </button>-->\n <button mat-stroked-button class=\"toolbar-button autocad-3d-button\" (click)=\"FabrikantenService.Download3DAutoCADDwg()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DAutoCADDwgLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D AutoCAD Dwg\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button dxf-3d-button\" (click)=\"FabrikantenService.Download3DDxf()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DDxfLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D Dxf\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button\" (click)=\"OpenBCBLink()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">open_in_new</mat-icon>\n </div>\n <div class=\"row-title\">\n {{ TranslateService.GetActiveValue(\"Common\", \"BCB\") }}\n </div>\n </div>\n </button>\n </div>\n\n <div #viewercontainer class=\"viewer-container\" [style.height]=\"Height\">\n <canvas id=\"viewerCanvas\" class=\"viewer-canvas\" [attr.width]=\"WebGLService.ViewerWidth\" [attr.height]=\"WebGLService.ViewerHeight\"></canvas>\n </div>\n </div>\n</div>\n\n\n", styles: [".row{display:flex;line-height:37px}.loader{position:absolute;width:100%;height:100%;justify-content:center}.icon{margin-right:3px}.viewer-container{overflow:auto}.row-icon{align-items:center;display:flex}.row-title{flex:auto}.viewer-canvas{background-color:#fff;cursor:grab}.main-window{height:100%}.toolbar{display:flex;padding:3px}button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-button{margin-right:5px;flex:auto;padding:0 3px}.button{margin:5px;width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.FabLoaderComponent, selector: "app-fab-loader" }] });
|
|
96
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabWebglViewerComponent, decorators: [{
|
|
97
101
|
type: Component,
|
|
98
|
-
args: [{ selector: 'app-fab-webgl-viewer', template: "<div class=\"loader\" *ngIf=\"WebGLService.Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div class=\"main-window\">\n <div *ngIf=\"FabrikantenService.ShowVariants()\">\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\n <div>\n <ul>\n <li class=\"button\" mat-stroked-button *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\n {{ bcbproduct.name }}\n </li>\n </ul>\n </div>\n </div>\n <div *ngIf=\"ShowWebGL()\" class=\"main-window\">\n <div #header class=\"toolbar\">\n <button mat-stroked-button class=\"toolbar-button rfa-button\" (click)=\"FabrikantenService.DownloadRFA()\" *ngIf=\"WebGLService.HasNativeRFA()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRFALoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRFALoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\n </div>\n </div>\n </button>\n <!--<button mat-stroked-button class=\"toolbar-button revit-plugin-button\" (click)=\"FabrikantenService.DownloadRevitPlugin()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRevitPluginLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRevitPluginLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit (plugin)\") }}</span>\n </div>\n </div>\n </button>-->\n <button mat-stroked-button class=\"toolbar-button autocad-3d-button\" (click)=\"FabrikantenService.Download3DAutoCADDwg()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DAutoCADDwgLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D AutoCAD Dwg\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button dxf-3d-button\" (click)=\"FabrikantenService.Download3DDxf()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DDxfLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D Dxf\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button\" (click)=\"OpenBCBLink()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">open_in_new</mat-icon>\n </div>\n <div class=\"row-title\">\n {{ TranslateService.GetActiveValue(\"Common\", \"BCB\") }}\n </div>\n </div>\n </button>\n </div>\n\n <div #viewercontainer class=\"viewer-container\" [style.height]=\"
|
|
102
|
+
args: [{ selector: 'app-fab-webgl-viewer', template: "<div class=\"loader\" *ngIf=\"WebGLService.Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<div class=\"main-window\">\n <div *ngIf=\"FabrikantenService.ShowVariants()\">\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\n <div>\n <ul>\n <li class=\"button\" mat-stroked-button *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\n {{ bcbproduct.name }}\n </li>\n </ul>\n </div>\n </div>\n <div *ngIf=\"ShowWebGL()\" class=\"main-window\">\n <div #header class=\"toolbar\">\n <button mat-stroked-button class=\"toolbar-button rfa-button\" (click)=\"FabrikantenService.DownloadRFA()\" *ngIf=\"WebGLService.HasNativeRFA()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRFALoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRFALoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\n </div>\n </div>\n </button>\n <!--<button mat-stroked-button class=\"toolbar-button revit-plugin-button\" (click)=\"FabrikantenService.DownloadRevitPlugin()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.DownloadRevitPluginLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.DownloadRevitPluginLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit (plugin)\") }}</span>\n </div>\n </div>\n </button>-->\n <button mat-stroked-button class=\"toolbar-button autocad-3d-button\" (click)=\"FabrikantenService.Download3DAutoCADDwg()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DAutoCADDwgLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D AutoCAD Dwg\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button dxf-3d-button\" (click)=\"FabrikantenService.Download3DDxf()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">file_download</mat-icon>\n </div>\n <div class=\"row-title\">\n <span *ngIf=\"FabrikantenService.Download3DDxfLoading\">...</span>\n <span *ngIf=\"!FabrikantenService.Download3DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D Dxf\") }}</span>\n </div>\n </div>\n </button>\n <button mat-stroked-button class=\"toolbar-button\" (click)=\"OpenBCBLink()\">\n <div class=\"row\">\n <div class=\"row-icon\">\n <mat-icon class=\"icon\">open_in_new</mat-icon>\n </div>\n <div class=\"row-title\">\n {{ TranslateService.GetActiveValue(\"Common\", \"BCB\") }}\n </div>\n </div>\n </button>\n </div>\n\n <div #viewercontainer class=\"viewer-container\" [style.height]=\"Height\">\n <canvas id=\"viewerCanvas\" class=\"viewer-canvas\" [attr.width]=\"WebGLService.ViewerWidth\" [attr.height]=\"WebGLService.ViewerHeight\"></canvas>\n </div>\n </div>\n</div>\n\n\n", styles: [".row{display:flex;line-height:37px}.loader{position:absolute;width:100%;height:100%;justify-content:center}.icon{margin-right:3px}.viewer-container{overflow:auto}.row-icon{align-items:center;display:flex}.row-title{flex:auto}.viewer-canvas{background-color:#fff;cursor:grab}.main-window{height:100%}.toolbar{display:flex;padding:3px}button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-button{margin-right:5px;flex:auto;padding:0 3px}.button{margin:5px;width:100%}\n"] }]
|
|
99
103
|
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.WebGLService }, { type: i3.TranslateService }, { type: i4.MobileService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
|
|
100
104
|
type: ViewChild,
|
|
101
105
|
args: ['header']
|
|
@@ -103,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
|
|
|
103
107
|
type: ViewChild,
|
|
104
108
|
args: ['viewercontainer']
|
|
105
109
|
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXdlYmdsLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2NvbXBvbmVudHMvZmFiLXdlYmdsLXZpZXdlci9mYWItd2ViZ2wtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItd2ViZ2wtdmlld2VyL2ZhYi13ZWJnbC12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQTZDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQWNsSSxNQUFNLE9BQU8sdUJBQXVCO0lBUWxDLFlBQ1Msa0JBQXNDLEVBQ3RDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUMzQixpQkFBb0M7UUFKckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFYdkMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBYXhDLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBRWpELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFD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LENBQUM7WUFFakUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksTUFBTSxFQUFFO2dCQUN0RixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUU3QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUV2QyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLEdBQUcsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUVyRCxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtJQUNILENBQUM7O29IQTlHVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixtUUNkcEMsK3ZKQXNHQTsyRkR4RmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjsrTkFTWCxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ1csZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ViR0xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuQXBpQ2xpZW50LCBGYWJyaWthbnRlbkZpbGVSZXF1ZXN0TW9kZWwsIEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxuZGVjbGFyZSB2YXIgTW9kdWxlVmlld2VyM0RMaWdodDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXdlYmdsLXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItd2ViZ2wtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXdlYmdsLXZpZXdlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZhYldlYmdsVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcblxuICBwdWJsaWMgdmlld2VySW5pdGlhbGlzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSB0aW1lb3V0SWQ6IGFueTtcblxuICBAVmlld0NoaWxkKCdoZWFkZXInKSBoZWFkZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3ZpZXdlcmNvbnRhaW5lcicpIHZpZXdlcmNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXG4gICAgcHVibGljIFdlYkdMU2VydmljZTogV2ViR0xTZXJ2aWNlLFxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBNb2JpbGVTZXJ2aWNlOiBNb2JpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuV2ViR0xTZXJ2aWNlLkZhYldlYmdsVmlld2VyQ29tcG9uZW50ID0gdGhpcztcblxuICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLlJlZnJlc2hWaWV3ZXJTaXplKCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcclxuICB9XG5cbiAgcHVibGljIE9wZW5CQ0JMaW5rKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuT3BlbkJDQkxpbmsodGhpcy5XZWJHTFNlcnZpY2UuRmFicmlrYW50ZW4zRFZpZXdNb2RlbC53dWlkICsgXCJcIik7XHJcbiAgfVxuXG4gIHB1YmxpYyBTaG93V2ViR0woKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dWYXJpYW50cygpKSB7XHJcbiAgICAgIGlmICh0aGlzLldlYkdMU2VydmljZS5GYWJyaWthbnRlbjNEVmlld01vZGVsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cblxuICBwdWJsaWMgUmVmcmVzaFZpZXdlcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5XZWJHTFNlcnZpY2UuTG9hZGluZyAmJiB0aGlzLldlYkdMU2VydmljZS5GYWJyaWthbnRlbjNEVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgdmFyIHZpZXdlciA9IE1vZHVsZVZpZXdlcjNETGlnaHQuZ2V0KFwidmlld2VyQ2FudmFzXCIpO1xyXG5cclxuICAgICAgaWYgKHZpZXdlciAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlld2VySW5pdGlhbGlzZWQpIHtcclxuICAgICAgICAgIHZhciBiZWxpY2h0aW5nID0gdmlld2VyLmJlbGljaHRpbmc7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLnRvb25TbGFnc2NoYWR1dyA9IHRydWU7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLnNsYWdzY2hhZHV3VmVyemFkaWdpbmcgPSAwLjU7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLmxpY2h0YnJvblN0ZXJrdGUgPSAwLjQ7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLmxpY2h0U2NoaXR0ZXJpbmcgPSAwLjMzMztcclxuICAgICAgICAgIGJlbGljaHRpbmcuaXNDYW1lcmFMaWNodCA9IGZhbHNlO1xyXG4gICAgICAgICAgYmVsaWNodGluZy5vbWdldmluZ2xpY2h0U3Rlcmt0ZSA9IDAuODtcclxuICAgICAgICAgIGJlbGljaHRpbmcubGljaHR2YWwgPSBbLTEuMCwgMC41LCAtMS4yXTtcclxuICAgICAgICAgIHZpZXdlci5vcnRob2dyYWZpc2NoZVByb2plY3RpZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdmlld2VyLmtpamtyaWNodGluZyA9IFswLjU2Nzc3NjE0NTQ5Mjg3ODQ3LCAwLjY5MzI4OTg5ODIwODU1ODEzLCAtMC40NDM4MjM1NzQ5MTU5OTgzM107XHJcblxyXG4gICAgICAgICAgdGhpcy52aWV3ZXJJbml0aWFsaXNlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2aWV3ZXIuY2xlYXIoKTtcclxuICAgICAgICB2aWV3ZXIuYWRkKHRoaXMuV2ViR0xTZXJ2aWNlLkZhYnJpa2FudGVuM0RWaWV3TW9kZWwud2ViR0xKU09OLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB2aWV3ZXIuemV0Wm9vbUdlaGVlbCgpO1xyXG4gICAgICAgICAgdmlld2VyLnRvb25Nb2RlbCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcInJlZnJlc2ggdmlld2VyXCIpO1xyXG4gICAgfVxyXG4gIH1cblxuICBwdWJsaWMgR2V0SGVpZ2h0KCk6IHN0cmluZyB7XHJcbiAgICB2YXIgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5oZWFkZXIgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGhlaWdodCArPSB0aGlzLmhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJjYWxjKDEwMCUgLSBcIiArIGhlaWdodCArIFwicHgpXCI7XHJcbiAgfVxuXG4gIHByaXZhdGUgUmVmcmVzaFZpZXdlclNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5Nb2JpbGVTZXJ2aWNlLlVwZGF0ZVNjcmVlblNpemUod2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCk7XHJcblxyXG4gICAgaWYgKHRoaXMudmlld2VyY29udGFpbmVyICE9IHVuZGVmaW5lZCkge1xyXG5cclxuICAgICAgdmFyIHdpZHRoID0gdGhpcy52aWV3ZXJjb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIDY7XHJcbiAgICAgIHZhciBoZWlnaHQgPSB0aGlzLnZpZXdlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIDY7XHJcblxyXG4gICAgICBpZiAodGhpcy5XZWJHTFNlcnZpY2UuVmlld2VyV2lkdGggIT0gd2lkdGggfHwgdGhpcy5XZWJHTFNlcnZpY2UuVmlld2VySGVpZ2h0ICE9IGhlaWdodCkge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCk7XHJcblxyXG4gICAgICAgIHRoaXMuV2ViR0xTZXJ2aWNlLlZpZXdlcldpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgdGhpcy5XZWJHTFNlcnZpY2UuVmlld2VySGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIndpZHRoOlwiICsgd2lkdGggKyBcIiBoZWlnaHQ6IFwiICsgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgdGhpcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuUmVmcmVzaFZpZXdlcigpO1xyXG4gICAgICAgIH0sIDMwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibG9hZGVyXCIgKm5nSWY9XCJXZWJHTFNlcnZpY2UuTG9hZGluZ1wiPlxuICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIj5cbiAgPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5TaG93VmFyaWFudHMoKVwiPlxuICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJNdWx0aXBsZSB2YXJpYW50c1wiKSB9fVxuICAgIDxkaXY+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaSBjbGFzcz1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYmNicHJvZHVjdCBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNcIj5cbiAgICAgICAgICB7eyBiY2Jwcm9kdWN0Lm5hbWUgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiU2hvd1dlYkdMKClcIiBjbGFzcz1cIm1haW4td2luZG93XCI+XG4gICAgPGRpdiAjaGVhZGVyIGNsYXNzPVwidG9vbGJhclwiPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiByZmEtYnV0dG9uXCIgKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJGQSgpXCIgKm5nSWY9XCJXZWJHTFNlcnZpY2UuSGFzTmF0aXZlUkZBKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUkZBTG9hZGluZ1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJGQUxvYWRpbmdcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiUmV2aXRcIikgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGFya2V5LWFkb21pLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRBUktFWUFkb21pKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQVJLRVlBZG9taUxvYWRpbmdcIj4uLi48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRBUktFWUFkb21pTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJBUktFWSBBZG9taVwiKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gaWZjLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkMoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkNMb2FkaW5nXCI+Li4uPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkSUZDTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJJRkNcIikgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8IS0tPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiByZXZpdC1wbHVnaW4tYnV0dG9uXCIgKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJldml0UGx1Z2luKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUmV2aXRQbHVnaW5Mb2FkaW5nXCI+Li4uPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUmV2aXRQbHVnaW5Mb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIlJldml0IChwbHVnaW4pXCIpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYnV0dG9uPi0tPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBhdXRvY2FkLTNkLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQzREF1dG9DQUREd2coKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQzREF1dG9DQUREd2dMb2FkaW5nXCI+Li4uPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkM0RBdXRvQ0FERHdnTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRCBBdXRvQ0FEIER3Z1wiKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gZHhmLTNkLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQzRER4ZigpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb25cIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDNERHhmTG9hZGluZ1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDNERHhmTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRCBEeGZcIikgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgKGNsaWNrKT1cIk9wZW5CQ0JMaW5rKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiQkNCXCIpIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICN2aWV3ZXJjb250YWluZXIgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCIgW3N0eWxlLmhlaWdodF09XCJHZXRIZWlnaHQoKVwiPlxuICAgICAgPGNhbnZhcyBpZD1cInZpZXdlckNhbnZhc1wiIGNsYXNzPVwidmlld2VyLWNhbnZhc1wiIFthdHRyLndpZHRoXT1cIldlYkdMU2VydmljZS5WaWV3ZXJXaWR0aFwiIFthdHRyLmhlaWdodF09XCJXZWJHTFNlcnZpY2UuVmlld2VySGVpZ2h0XCI+PC9jYW52YXM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuIl19
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXdlYmdsLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2NvbXBvbmVudHMvZmFiLXdlYmdsLXZpZXdlci9mYWItd2ViZ2wtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItd2ViZ2wtdmlld2VyL2ZhYi13ZWJnbC12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQTZDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQWNsSSxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLFlBQ1Msa0JBQXNDLEVBQ3RDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUMzQixpQkFBb0M7UUFKckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFadkMsV0FBTSxHQUFXLGtCQUFrQixDQUFDO1FBRXBDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQVl4QyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUVqRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlB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QyxDQUFDO1FBRTNFLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxTQUFTLEVBQUU7WUFFckMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUMvRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBRWpFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLE1BQU0sRUFBRTtnQkFFdEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFFdkMsdURBQXVEO2dCQUV2RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7U0FDRjtJQUNILENBQUM7O29IQW5IVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixtUUNkcEMsMHZKQXNHQTsyRkR4RmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjsrTkFVWCxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ1csZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ViR0xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuQXBpQ2xpZW50LCBGYWJyaWthbnRlbkZpbGVSZXF1ZXN0TW9kZWwsIEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxuZGVjbGFyZSB2YXIgTW9kdWxlVmlld2VyM0RMaWdodDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXdlYmdsLXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItd2ViZ2wtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXdlYmdsLXZpZXdlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZhYldlYmdsVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcblxuICBwdWJsaWMgSGVpZ2h0OiBzdHJpbmcgPSBcImNhbGMoMTAwJSAtIDBweClcIjtcblxuICBwdWJsaWMgdmlld2VySW5pdGlhbGlzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdoZWFkZXInKSBoZWFkZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3ZpZXdlcmNvbnRhaW5lcicpIHZpZXdlcmNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXG4gICAgcHVibGljIFdlYkdMU2VydmljZTogV2ViR0xTZXJ2aWNlLFxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBNb2JpbGVTZXJ2aWNlOiBNb2JpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuV2ViR0xTZXJ2aWNlLkZhYldlYmdsVmlld2VyQ29tcG9uZW50ID0gdGhpcztcblxuICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLlJlZnJlc2hWaWV3ZXJTaXplKCk7XHJcbiAgICB0aGlzLlVwZGF0ZUhlaWdodCgpO1xyXG4gICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLlVwZGF0ZUhlaWdodCgpO1xuICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcclxuICB9XG5cbiAgcHVibGljIE9wZW5CQ0JMaW5rKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuT3BlbkJDQkxpbmsodGhpcy5XZWJHTFNlcnZpY2UuRmFicmlrYW50ZW4zRFZpZXdNb2RlbC53dWlkICsgXCJcIik7XHJcbiAgfVxuXG4gIHB1YmxpYyBTaG93V2ViR0woKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dWYXJpYW50cygpKSB7XHJcbiAgICAgIGlmICh0aGlzLldlYkdMU2VydmljZS5GYWJyaWthbnRlbjNEVmlld01vZGVsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cblxuICBwdWJsaWMgUmVmcmVzaFZpZXdlcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5XZWJHTFNlcnZpY2UuTG9hZGluZyAmJiB0aGlzLldlYkdMU2VydmljZS5GYWJyaWthbnRlbjNEVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgdmFyIHZpZXdlciA9IE1vZHVsZVZpZXdlcjNETGlnaHQuZ2V0KFwidmlld2VyQ2FudmFzXCIpO1xyXG5cclxuICAgICAgaWYgKHZpZXdlciAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlld2VySW5pdGlhbGlzZWQpIHtcclxuICAgICAgICAgIHZhciBiZWxpY2h0aW5nID0gdmlld2VyLmJlbGljaHRpbmc7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLnRvb25TbGFnc2NoYWR1dyA9IHRydWU7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLnNsYWdzY2hhZHV3VmVyemFkaWdpbmcgPSAwLjU7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLmxpY2h0YnJvblN0ZXJrdGUgPSAwLjQ7XHJcbiAgICAgICAgICBiZWxpY2h0aW5nLmxpY2h0U2NoaXR0ZXJpbmcgPSAwLjMzMztcclxuICAgICAgICAgIGJlbGljaHRpbmcuaXNDYW1lcmFMaWNodCA9IGZhbHNlO1xyXG4gICAgICAgICAgYmVsaWNodGluZy5vbWdldmluZ2xpY2h0U3Rlcmt0ZSA9IDAuODtcclxuICAgICAgICAgIGJlbGljaHRpbmcubGljaHR2YWwgPSBbLTEuMCwgMC41LCAtMS4yXTtcclxuICAgICAgICAgIHZpZXdlci5vcnRob2dyYWZpc2NoZVByb2plY3RpZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdmlld2VyLmtpamtyaWNodGluZyA9IFswLjU2Nzc3NjE0NTQ5Mjg3ODQ3LCAwLjY5MzI4OTg5ODIwODU1ODEzLCAtMC40NDM4MjM1NzQ5MTU5OTgzM107XHJcblxyXG4gICAgICAgICAgdGhpcy52aWV3ZXJJbml0aWFsaXNlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2aWV3ZXIuY2xlYXIoKTtcclxuICAgICAgICB2aWV3ZXIuYWRkKHRoaXMuV2ViR0xTZXJ2aWNlLkZhYnJpa2FudGVuM0RWaWV3TW9kZWwud2ViR0xKU09OLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB2aWV3ZXIuemV0Wm9vbUdlaGVlbCgpO1xyXG4gICAgICAgICAgdmlld2VyLnRvb25Nb2RlbCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL2NvbnNvbGUubG9nKFwicmVmcmVzaCB2aWV3ZXJcIik7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHB1YmxpYyBVcGRhdGVIZWlnaHQoKTogdm9pZCB7XHJcbiAgICB2YXIgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5oZWFkZXIgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGhlaWdodCArPSB0aGlzLmhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdGVtcCA9IFwiY2FsYygxMDAlIC0gXCIgKyBoZWlnaHQgKyBcInB4KVwiO1xyXG5cclxuICAgIGlmICh0aGlzLkhlaWdodCAhPSB0ZW1wKSB7XHJcbiAgICAgIHRoaXMuSGVpZ2h0ID0gdGVtcDtcclxuICAgICAgdGhpcy5SZWZyZXNoVmlld2VyKCk7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHByaXZhdGUgUmVmcmVzaFZpZXdlclNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5Nb2JpbGVTZXJ2aWNlLlVwZGF0ZVNjcmVlblNpemUod2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCk7XHJcblxyXG4gICAgaWYgKHRoaXMudmlld2VyY29udGFpbmVyICE9IHVuZGVmaW5lZCkge1xyXG5cclxuICAgICAgdmFyIHdpZHRoID0gdGhpcy52aWV3ZXJjb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIDY7XHJcbiAgICAgIHZhciBoZWlnaHQgPSB0aGlzLnZpZXdlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIDY7XHJcblxyXG4gICAgICBpZiAodGhpcy5XZWJHTFNlcnZpY2UuVmlld2VyV2lkdGggIT0gd2lkdGggfHwgdGhpcy5XZWJHTFNlcnZpY2UuVmlld2VySGVpZ2h0ICE9IGhlaWdodCkge1xyXG5cclxuICAgICAgICB0aGlzLldlYkdMU2VydmljZS5WaWV3ZXJXaWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIHRoaXMuV2ViR0xTZXJ2aWNlLlZpZXdlckhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIndpZHRoOlwiICsgd2lkdGggKyBcIiBoZWlnaHQ6IFwiICsgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgdGhpcy5SZWZyZXNoVmlld2VyKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibG9hZGVyXCIgKm5nSWY9XCJXZWJHTFNlcnZpY2UuTG9hZGluZ1wiPlxuICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIj5cbiAgPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5TaG93VmFyaWFudHMoKVwiPlxuICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJNdWx0aXBsZSB2YXJpYW50c1wiKSB9fVxuICAgIDxkaXY+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaSBjbGFzcz1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYmNicHJvZHVjdCBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNcIj5cbiAgICAgICAgICB7eyBiY2Jwcm9kdWN0Lm5hbWUgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiU2hvd1dlYkdMKClcIiBjbGFzcz1cIm1haW4td2luZG93XCI+XG4gICAgPGRpdiAjaGVhZGVyIGNsYXNzPVwidG9vbGJhclwiPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiByZmEtYnV0dG9uXCIgKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJGQSgpXCIgKm5nSWY9XCJXZWJHTFNlcnZpY2UuSGFzTmF0aXZlUkZBKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUkZBTG9hZGluZ1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJGQUxvYWRpbmdcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiUmV2aXRcIikgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGFya2V5LWFkb21pLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRBUktFWUFkb21pKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQVJLRVlBZG9taUxvYWRpbmdcIj4uLi48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRBUktFWUFkb21pTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJBUktFWSBBZG9taVwiKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gaWZjLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkMoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkNMb2FkaW5nXCI+Li4uPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkSUZDTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJJRkNcIikgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8IS0tPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiByZXZpdC1wbHVnaW4tYnV0dG9uXCIgKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJldml0UGx1Z2luKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUmV2aXRQbHVnaW5Mb2FkaW5nXCI+Li4uPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUmV2aXRQbHVnaW5Mb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIlJldml0IChwbHVnaW4pXCIpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYnV0dG9uPi0tPlxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBhdXRvY2FkLTNkLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQzREF1dG9DQUREd2coKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQzREF1dG9DQUREd2dMb2FkaW5nXCI+Li4uPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkM0RBdXRvQ0FERHdnTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRCBBdXRvQ0FEIER3Z1wiKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gZHhmLTNkLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQzRER4ZigpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb25cIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDNERHhmTG9hZGluZ1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDNERHhmTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRCBEeGZcIikgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgKGNsaWNrKT1cIk9wZW5CQ0JMaW5rKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvblwiPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiQkNCXCIpIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICN2aWV3ZXJjb250YWluZXIgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCIgW3N0eWxlLmhlaWdodF09XCJIZWlnaHRcIj5cbiAgICAgIDxjYW52YXMgaWQ9XCJ2aWV3ZXJDYW52YXNcIiBjbGFzcz1cInZpZXdlci1jYW52YXNcIiBbYXR0ci53aWR0aF09XCJXZWJHTFNlcnZpY2UuVmlld2VyV2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwiV2ViR0xTZXJ2aWNlLlZpZXdlckhlaWdodFwiPjwvY2FudmFzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cbiJdfQ==
|