fabrikantencore 2.1.7 → 2.1.8

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.
Files changed (29) hide show
  1. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +10 -8
  2. package/esm2020/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.mjs +45 -14
  3. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +3 -3
  4. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-toebehoren/fab-toebehoren.component.mjs +23 -72
  5. package/esm2020/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.mjs +7 -21
  6. package/esm2020/src/app/modules/fabrikantencore/components/fab-texture/fab-texture.component.mjs +5 -8
  7. package/esm2020/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.mjs +5 -5
  8. package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +4 -1
  9. package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +34 -15
  10. package/esm2020/src/app/modules/fabrikantencore/services/products.service.mjs +9 -5
  11. package/esm2020/src/app/modules/fabrikantencore/services/svg.service.mjs +1 -1
  12. package/esm2020/src/app/modules/fabrikantencore/services/toebehoren.service.mjs +72 -0
  13. package/esm2020/src/app/modules/fabrikantencore/services/webgl.service.mjs +1 -1
  14. package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +3 -1
  15. package/fesm2015/fabrikantencore.mjs +231 -167
  16. package/fesm2015/fabrikantencore.mjs.map +1 -1
  17. package/fesm2020/fabrikantencore.mjs +224 -162
  18. package/fesm2020/fabrikantencore.mjs.map +1 -1
  19. package/package.json +1 -1
  20. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.d.ts +1 -0
  21. package/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.d.ts +16 -3
  22. package/src/app/modules/fabrikantencore/components/fab-product/fab-toebehoren/fab-toebehoren.component.d.ts +6 -14
  23. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.d.ts +0 -2
  24. package/src/app/modules/fabrikantencore/components/fab-texture/fab-texture.component.d.ts +0 -1
  25. package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +7 -1
  26. package/src/app/modules/fabrikantencore/services/products.service.d.ts +1 -0
  27. package/src/app/modules/fabrikantencore/services/toebehoren.service.d.ts +20 -0
  28. package/src/app/modules/fabrikantencore/services/webgl.service.d.ts +1 -1
  29. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +2 -0
@@ -99,12 +99,12 @@ export class FabProductComponent {
99
99
  }
100
100
  }
101
101
  FabProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.BestekService }, { token: i4.TranslateService }, { token: i5.WebGLService }, { token: i6.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
102
- FabProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", 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\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\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 mode=\"over\" position=\"end\" [(opened)]=\"MobileService.ActionOpened\">\r\n <div class=\"actionwrapper\">\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\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\" *ngIf=\"Show3D()\">\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\" *ngIf=\"Show2D()\" 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 label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.ShowToebehoren()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Toebehoren\") }}</span>\r\n </ng-template>\r\n <app-fab-toebehoren></app-fab-toebehoren>\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 .actionwrapper{width:200px;padding:20px}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{height:100%;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: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i8.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i9.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i9.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i9.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i10.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i10.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i10.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.FabProductInfoComponent, selector: "app-fab-product-info" }, { kind: "component", type: i13.FabProductBestekComponent, selector: "app-fab-product-bestek" }, { kind: "component", type: i14.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i15.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }, { kind: "component", type: i16.FabWebglViewerComponent, selector: "app-fab-webgl-viewer" }, { kind: "component", type: i17.FabSvgViewerComponent, selector: "app-fab-svg-viewer" }, { kind: "component", type: i18.FabTextureComponent, selector: "app-fab-texture" }, { kind: "component", type: i19.FabToebehorenComponent, selector: "app-fab-toebehoren" }, { kind: "component", type: i20.FabActionmenuComponent, selector: "app-fab-actionmenu" }], encapsulation: i0.ViewEncapsulation.None });
102
+ FabProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", 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.Loaded\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\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 mode=\"over\" position=\"end\" [(opened)]=\"MobileService.ActionOpened\">\r\n <div class=\"actionwrapper\">\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\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\" *ngIf=\"Show3D()\">\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\" *ngIf=\"Show2D()\" 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 label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.ShowToebehoren()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Toebehoren\") }}</span>\r\n </ng-template>\r\n <app-fab-toebehoren></app-fab-toebehoren>\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 .actionwrapper{width:250px;padding:20px}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{height:100%;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: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i8.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i9.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i9.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i9.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i10.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i10.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i10.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.FabProductInfoComponent, selector: "app-fab-product-info" }, { kind: "component", type: i13.FabProductBestekComponent, selector: "app-fab-product-bestek" }, { kind: "component", type: i14.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i15.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }, { kind: "component", type: i16.FabWebglViewerComponent, selector: "app-fab-webgl-viewer" }, { kind: "component", type: i17.FabSvgViewerComponent, selector: "app-fab-svg-viewer" }, { kind: "component", type: i18.FabTextureComponent, selector: "app-fab-texture" }, { kind: "component", type: i19.FabToebehorenComponent, selector: "app-fab-toebehoren" }, { kind: "component", type: i20.FabActionmenuComponent, selector: "app-fab-actionmenu" }], encapsulation: i0.ViewEncapsulation.None });
103
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductComponent, decorators: [{
104
104
  type: Component,
105
- 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\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\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 mode=\"over\" position=\"end\" [(opened)]=\"MobileService.ActionOpened\">\r\n <div class=\"actionwrapper\">\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\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\" *ngIf=\"Show3D()\">\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\" *ngIf=\"Show2D()\" 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 label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.ShowToebehoren()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Toebehoren\") }}</span>\r\n </ng-template>\r\n <app-fab-toebehoren></app-fab-toebehoren>\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 .actionwrapper{width:200px;padding:20px}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{height:100%;width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"] }]
105
+ 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.Loaded\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\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 mode=\"over\" position=\"end\" [(opened)]=\"MobileService.ActionOpened\">\r\n <div class=\"actionwrapper\">\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\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\" *ngIf=\"Show3D()\">\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\" *ngIf=\"Show2D()\" 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 label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.ShowToebehoren()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Toebehoren\") }}</span>\r\n </ng-template>\r\n <app-fab-toebehoren></app-fab-toebehoren>\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 .actionwrapper{width:250px;padding:20px}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{height:100%;width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"] }]
106
106
  }], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.BestekService }, { type: i4.TranslateService }, { type: i5.WebGLService }, { type: i6.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
107
107
  type: ViewChild,
108
108
  args: ['header']
109
109
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JsSixNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLFlBQ1MsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUN6QixjQUE4QixFQUM5QixpQkFBb0M7UUFOckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBWHZDLFdBQU0sR0FBVyxNQUFNLENBQUM7UUFhN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFD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QUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxjQUFjLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN6QyxDQUFDOztnSEFsR1UsbUJBQW1CO29HQUFuQixtQkFBbUIseUpDaEJoQyxneEdBdUVBOzJGRHZEYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUk7d1JBTWhCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYkNoYW5nZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVzdGVrU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Jlc3Rlay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2JpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNWR1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdmcuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlYkdMU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlYmdsLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXByb2R1Y3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXByb2R1Y3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWJQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcclxuXHJcbiAgcHVibGljIEhlaWdodDogc3RyaW5nID0gXCIxMDAlXCI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIGhlYWRlcjogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBCZXN0ZWtTZXJ2aWNlOiBCZXN0ZWtTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgV2ViR0xTZXJ2aWNlOiBXZWJHTFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuUHJvY2Vzc1BhcmFtZXRlcnModGhpcy5BY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRGYWJyaWthbnRlblZpZXdNb2RlbCh0aGlzLkNoYW5nZURldGVjdG9yUmVmLCB0aGlzLkFjdGl2YXRlZFJvdXRlKTtcclxuICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Mb2FkVHJhbnNsYXRpb25zKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuVXBkYXRlSGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQmFjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlbW92ZVByb2R1Y3RTZWxlY3Rpb24odGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlSGVpZ2h0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5IZWlnaHQgPSB0aGlzLkdldEhlaWdodCgpO1xyXG4gICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRUYWJDaGFuZ2UoZXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5UYWJTZWxlY3Rpb25DaGFuZ2VkKGV2ZW50LnRhYi50ZXh0TGFiZWwsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3czRCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1tpXS5oYXMzRCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3cyRCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1tpXS5zbmVkZXMgIT0gJycpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QnJlYWRjcnVtYigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5oaWRlQnJlYWRjcnVtYkluSWZyYW1lKSB7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0luZm9ybWF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmhpZGVJbmZvcm1hdGlvblRhYikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBHZXRIZWlnaHQoKTogc3RyaW5nIHtcclxuICAgIHZhciBoZWlnaHQgPSAwO1xyXG5cclxuICAgIGlmICh0aGlzLmhlYWRlciAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaGVpZ2h0ICs9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcImNhbGMoMTAwJSAtIFwiICsgaGVpZ2h0ICsgXCJweClcIjtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Mb2FkaW5nXCIgY2xhc3M9XCJsb2FkZXJcIj5cclxuICA8bWF0LWNhcmQgY2xhc3M9XCJsb2FkZXItY2FyZFwiPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImxvYWRlci1zcGlubmVyXCIgW2RpYW1ldGVyXT1cIjgwXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cImxvYWRlci1zdWJ0aXRsZVwiPlxyXG4gICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiUHJvZHVjdHMgbG9hZGluZ1wiKSB9fVxyXG4gICAgPC9tYXQtY2FyZC1zdWJ0aXRsZT5cclxuICA8L21hdC1jYXJkPlxyXG48L2Rpdj5cclxuXHJcbjxtYXQtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cInZpZXctY29udGFpbmVyXCI+XHJcbiAgPG1hdC1kcmF3ZXIgI2RyYXdlciBbbW9kZV09XCJNb2JpbGVTZXJ2aWNlLk5hdk1vZGVcIiBbKG9wZW5lZCldPVwiTW9iaWxlU2VydmljZS5OYXZPcGVuZWRcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXdcIj5cclxuICAgICAgPGZhYi1maWx0ZXJzLWlucHV0PjwvZmFiLWZpbHRlcnMtaW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXI+XHJcbiAgPG1hdC1kcmF3ZXIgbW9kZT1cIm92ZXJcIiBwb3NpdGlvbj1cImVuZFwiIFsob3BlbmVkKV09XCJNb2JpbGVTZXJ2aWNlLkFjdGlvbk9wZW5lZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbndyYXBwZXJcIj5cclxuICAgICAgPGFwcC1mYWItYWN0aW9ubWVudT48L2FwcC1mYWItYWN0aW9ubWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlcj5cclxuICA8bWF0LWRyYXdlci1jb250ZW50IGNsYXNzPVwidmlldy1jb250ZW50XCI+XHJcbiAgICA8ZGl2ICNoZWFkZXIgKm5nSWY9XCJTaG93QnJlYWRjcnVtYigpXCI+XHJcbiAgICAgIDxhcHAtZmFiLWhlYWRlciBbc2hvd2ZpbHRlcm1lbnVidXR0b25dPVwidHJ1ZVwiPjwvYXBwLWZhYi1oZWFkZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiSGVpZ2h0XCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbFwiPlxyXG4gICAgICA8bWF0LXRhYi1ncm91cCBjbGFzcz1cInZpZXctY29udGFpbmVyXCIgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIlNlbGVjdGVkVGFiQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkluZm9ybWF0aWVcIiAqbmdJZj1cIlNob3dJbmZvcm1hdGlvbigpXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkluZm9ybWF0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtaW5mbz48L2FwcC1mYWItcHJvZHVjdC1pbmZvPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIjNEXCIgKm5nSWY9XCJTaG93M0QoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRFwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi13ZWJnbC12aWV3ZXI+PC9hcHAtZmFiLXdlYmdsLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCIyRFwiICpuZ0lmPVwiU2hvdzJEKClcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiMkRcIikgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGFwcC1mYWItc3ZnLXZpZXdlcj48L2FwcC1mYWItc3ZnLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJCZXN0ZWtcIiAqbmdJZj1cIlRyYW5zbGF0ZVNlcnZpY2UuU2hvd1NwZWNpZmljYXRpb24oKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJTcGVjaWZpY2F0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtYmVzdGVrPjwvYXBwLWZhYi1wcm9kdWN0LWJlc3Rlaz5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJUZXh0dXJlXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1RleHR1cmUoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJUZXh0dXJlXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXRleHR1cmU+PC9hcHAtZmFiLXRleHR1cmU+XHJcbiAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVG9lYmVob3JlblwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dUb2ViZWhvcmVuKClcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiVG9lYmVob3JlblwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi10b2ViZWhvcmVuPjwvYXBwLWZhYi10b2ViZWhvcmVuPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XHJcbjwvbWF0LWRyYXdlci1jb250YWluZXI+XHJcblxyXG5cclxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JsSixNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLFlBQ1MsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUN6QixjQUE4QixFQUM5QixpQkFBb0M7UUFOckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBWHZDLFdBQU0sR0FBVyxNQUFNLENBQUM7UUFhN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFD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QUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxjQUFjLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN6QyxDQUFDOztnSEFsR1UsbUJBQW1CO29HQUFuQixtQkFBbUIseUpDaEJoQyxvekdBdUVBOzJGRHZEYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUk7d1JBTWhCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYkNoYW5nZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVzdGVrU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Jlc3Rlay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2JpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNWR1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdmcuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlYkdMU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlYmdsLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXByb2R1Y3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXByb2R1Y3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWJQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcclxuXHJcbiAgcHVibGljIEhlaWdodDogc3RyaW5nID0gXCIxMDAlXCI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIGhlYWRlcjogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBCZXN0ZWtTZXJ2aWNlOiBCZXN0ZWtTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgV2ViR0xTZXJ2aWNlOiBXZWJHTFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuUHJvY2Vzc1BhcmFtZXRlcnModGhpcy5BY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRGYWJyaWthbnRlblZpZXdNb2RlbCh0aGlzLkNoYW5nZURldGVjdG9yUmVmLCB0aGlzLkFjdGl2YXRlZFJvdXRlKTtcclxuICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Mb2FkVHJhbnNsYXRpb25zKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuVXBkYXRlSGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQmFjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlbW92ZVByb2R1Y3RTZWxlY3Rpb24odGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlSGVpZ2h0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5IZWlnaHQgPSB0aGlzLkdldEhlaWdodCgpO1xyXG4gICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRUYWJDaGFuZ2UoZXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5UYWJTZWxlY3Rpb25DaGFuZ2VkKGV2ZW50LnRhYi50ZXh0TGFiZWwsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3czRCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1tpXS5oYXMzRCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3cyRCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1tpXS5zbmVkZXMgIT0gJycpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QnJlYWRjcnVtYigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5oaWRlQnJlYWRjcnVtYkluSWZyYW1lKSB7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0luZm9ybWF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmhpZGVJbmZvcm1hdGlvblRhYikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBHZXRIZWlnaHQoKTogc3RyaW5nIHtcclxuICAgIHZhciBoZWlnaHQgPSAwO1xyXG5cclxuICAgIGlmICh0aGlzLmhlYWRlciAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaGVpZ2h0ICs9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcImNhbGMoMTAwJSAtIFwiICsgaGVpZ2h0ICsgXCJweClcIjtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Mb2FkaW5nXCIgY2xhc3M9XCJsb2FkZXJcIj5cclxuICA8bWF0LWNhcmQgY2xhc3M9XCJsb2FkZXItY2FyZFwiPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImxvYWRlci1zcGlubmVyXCIgW2RpYW1ldGVyXT1cIjgwXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cImxvYWRlci1zdWJ0aXRsZVwiPlxyXG4gICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiUHJvZHVjdHMgbG9hZGluZ1wiKSB9fVxyXG4gICAgPC9tYXQtY2FyZC1zdWJ0aXRsZT5cclxuICA8L21hdC1jYXJkPlxyXG48L2Rpdj5cclxuXHJcbjxtYXQtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cInZpZXctY29udGFpbmVyXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuTG9hZGVkXCI+XHJcbiAgPG1hdC1kcmF3ZXIgI2RyYXdlciBbbW9kZV09XCJNb2JpbGVTZXJ2aWNlLk5hdk1vZGVcIiBbKG9wZW5lZCldPVwiTW9iaWxlU2VydmljZS5OYXZPcGVuZWRcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXdcIj5cclxuICAgICAgPGZhYi1maWx0ZXJzLWlucHV0PjwvZmFiLWZpbHRlcnMtaW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXI+XHJcbiAgPG1hdC1kcmF3ZXIgbW9kZT1cIm92ZXJcIiBwb3NpdGlvbj1cImVuZFwiIFsob3BlbmVkKV09XCJNb2JpbGVTZXJ2aWNlLkFjdGlvbk9wZW5lZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbndyYXBwZXJcIj5cclxuICAgICAgPGFwcC1mYWItYWN0aW9ubWVudT48L2FwcC1mYWItYWN0aW9ubWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlcj5cclxuICA8bWF0LWRyYXdlci1jb250ZW50IGNsYXNzPVwidmlldy1jb250ZW50XCI+XHJcbiAgICA8ZGl2ICNoZWFkZXIgKm5nSWY9XCJTaG93QnJlYWRjcnVtYigpXCI+XHJcbiAgICAgIDxhcHAtZmFiLWhlYWRlciBbc2hvd2ZpbHRlcm1lbnVidXR0b25dPVwidHJ1ZVwiPjwvYXBwLWZhYi1oZWFkZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiSGVpZ2h0XCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbFwiPlxyXG4gICAgICA8bWF0LXRhYi1ncm91cCBjbGFzcz1cInZpZXctY29udGFpbmVyXCIgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIlNlbGVjdGVkVGFiQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkluZm9ybWF0aWVcIiAqbmdJZj1cIlNob3dJbmZvcm1hdGlvbigpXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkluZm9ybWF0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtaW5mbz48L2FwcC1mYWItcHJvZHVjdC1pbmZvPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIjNEXCIgKm5nSWY9XCJTaG93M0QoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRFwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi13ZWJnbC12aWV3ZXI+PC9hcHAtZmFiLXdlYmdsLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCIyRFwiICpuZ0lmPVwiU2hvdzJEKClcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiMkRcIikgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGFwcC1mYWItc3ZnLXZpZXdlcj48L2FwcC1mYWItc3ZnLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJCZXN0ZWtcIiAqbmdJZj1cIlRyYW5zbGF0ZVNlcnZpY2UuU2hvd1NwZWNpZmljYXRpb24oKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJTcGVjaWZpY2F0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtYmVzdGVrPjwvYXBwLWZhYi1wcm9kdWN0LWJlc3Rlaz5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJUZXh0dXJlXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1RleHR1cmUoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJUZXh0dXJlXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXRleHR1cmU+PC9hcHAtZmFiLXRleHR1cmU+XHJcbiAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVG9lYmVob3JlblwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dUb2ViZWhvcmVuKClcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiVG9lYmVob3JlblwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi10b2ViZWhvcmVuPjwvYXBwLWZhYi10b2ViZWhvcmVuPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XHJcbjwvbWF0LWRyYXdlci1jb250YWluZXI+XHJcblxyXG5cclxuIl19
@@ -1,31 +1,24 @@
1
1
  import { Component, ViewChild } from '@angular/core';
2
- import { Fabrikanten3DRequestModel } from '../../../swagger/SwaggerClient';
3
2
  import * as i0 from "@angular/core";
4
3
  import * as i1 from "../../../services/fabrikanten.service";
5
4
  import * as i2 from "../../../services/translate.service";
6
5
  import * as i3 from "../../../services/mobile.service";
7
- import * as i4 from "../../../swagger/SwaggerClient";
6
+ import * as i4 from "../../../services/toebehoren.service";
8
7
  import * as i5 from "@angular/common";
9
- import * as i6 from "@angular/material/form-field";
10
- import * as i7 from "@angular/forms";
11
- import * as i8 from "@angular/material/button";
12
- import * as i9 from "@angular/material/card";
13
- import * as i10 from "@angular/material/icon";
14
- import * as i11 from "@angular/material/select";
15
- import * as i12 from "@angular/material/core";
16
- import * as i13 from "../../fab-loader/fab-loader.component";
8
+ import * as i6 from "@angular/material/button";
9
+ import * as i7 from "@angular/material/card";
10
+ import * as i8 from "../../fab-loader/fab-loader.component";
11
+ import * as i9 from "../../fab-actionmenu/fab-actionmenu.component";
17
12
  export class FabToebehorenComponent {
18
- constructor(FabrikantenService, TranslateService, MobileService, ChangeDetectorRef, FabrikantenApiClient) {
13
+ constructor(FabrikantenService, TranslateService, MobileService, ChangeDetectorRef, ToebehorenService) {
19
14
  this.FabrikantenService = FabrikantenService;
20
15
  this.TranslateService = TranslateService;
21
16
  this.MobileService = MobileService;
22
17
  this.ChangeDetectorRef = ChangeDetectorRef;
23
- this.FabrikantenApiClient = FabrikantenApiClient;
24
- this.LoadingSVG = false;
25
- this.LoadingWebGL = false;
26
- this.Init = false;
18
+ this.ToebehorenService = ToebehorenService;
27
19
  this.ViewerWidth = 0;
28
20
  this.ViewerHeight = 0;
21
+ this.ToebehorenService.FabToebehorenComponent = this;
29
22
  }
30
23
  ngOnInit() {
31
24
  this.RefreshViewerSize();
@@ -38,56 +31,6 @@ export class FabToebehorenComponent {
38
31
  ngDoCheck() {
39
32
  this.RefreshViewerSize();
40
33
  }
41
- Loading() {
42
- return this.LoadingSVG || this.LoadingWebGL;
43
- }
44
- Open() {
45
- var toebehoren = this.GetSelectedToebehoren();
46
- if (this.FabrikantenService.FabrikantenViewModel?.sessionId != null) {
47
- if (toebehoren != null) {
48
- this.LoadFabrikanten3DViewModel(this.FabrikantenService.FabrikantenViewModel.sessionId, toebehoren);
49
- }
50
- }
51
- }
52
- LoadFabrikanten3DViewModel(sessionid, toebehoren) {
53
- this.LoadingWebGL = true;
54
- this.ChangeDetectorRef.detectChanges();
55
- var request = new Fabrikanten3DRequestModel();
56
- request.sessionId = sessionid;
57
- request.customBCBEBO = toebehoren.bcbeboId;
58
- this.FabrikantenApiClient.getFabrikanten3DViewModel(request).subscribe((model) => {
59
- this.Fabrikanten3DViewModel = model;
60
- this.LoadingWebGL = false;
61
- this.Init = true;
62
- this.ChangeDetectorRef.detectChanges();
63
- setTimeout(() => {
64
- console.log("first check");
65
- this.RefreshViewer();
66
- }, 100);
67
- this.RefreshViewerSize();
68
- }, (error) => {
69
- if (error.status == 400)
70
- console.log(error.json());
71
- else {
72
- console.log('An unexpected error occured');
73
- console.log(error);
74
- }
75
- });
76
- }
77
- GetSelectedToebehoren() {
78
- var toebehoren = null;
79
- if (this.FabrikantenService.FabrikantenViewModel.selectedProduct?.fabrikantenBCBProductViewModels != null &&
80
- this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels.length > 0 &&
81
- this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren != null &&
82
- this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren.length > 0) {
83
- for (var i = 0; i < this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren.length; i++) {
84
- if (this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren[i].id == this.Selected) {
85
- toebehoren = this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren[i];
86
- }
87
- }
88
- }
89
- return toebehoren;
90
- }
91
34
  RefreshViewerSize() {
92
35
  if (this.viewercontainer != undefined) {
93
36
  var width = this.viewercontainer.nativeElement.offsetWidth - 6;
@@ -101,7 +44,7 @@ export class FabToebehorenComponent {
101
44
  }
102
45
  }
103
46
  RefreshViewer() {
104
- if (!this.LoadingWebGL && this.Fabrikanten3DViewModel != null) {
47
+ if (!this.ToebehorenService.Loading && this.ToebehorenService.Fabrikanten3DViewModel != null) {
105
48
  var viewer = ModuleViewer3DLight.get("viewerCanvasToebehoren");
106
49
  if (viewer != null) {
107
50
  var belichting = viewer.belichting;
@@ -115,21 +58,29 @@ export class FabToebehorenComponent {
115
58
  viewer.orthografischeProjectie = false;
116
59
  viewer.kijkrichting = [0.50023241910093, 0.7443600526604934, -0.4423749980318723];
117
60
  viewer.clear();
118
- viewer.add(this.Fabrikanten3DViewModel.webGLJSON, function () {
61
+ viewer.add(this.ToebehorenService.Fabrikanten3DViewModel.webGLJSON, function () {
119
62
  viewer.zetZoomGeheel();
120
63
  viewer.toonModel();
121
64
  });
122
65
  }
123
66
  }
124
67
  }
68
+ HasModel() {
69
+ if (this.FabrikantenService.FabrikantenViewModel?.selectedProduct?.fabrikantenBCBProductViewModels != null) {
70
+ if (this.FabrikantenService.FabrikantenViewModel?.selectedProduct?.fabrikantenBCBProductViewModels.length > 0) {
71
+ return true;
72
+ }
73
+ }
74
+ return false;
75
+ }
125
76
  }
126
- FabToebehorenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabToebehorenComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i3.MobileService }, { token: i0.ChangeDetectorRef }, { token: i4.FabrikantenApiClient }], target: i0.ɵɵFactoryTarget.Component });
127
- FabToebehorenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabToebehorenComponent, selector: "app-fab-toebehoren", viewQueries: [{ propertyName: "viewercontainer", first: true, predicate: ["viewercontainertoebehoren"], descendants: true }], ngImport: i0, template: "<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!FabrikantenService.ShowVariants() && FabrikantenService.FabrikantenViewModel?.selectedProduct?.fabrikantenBCBProductViewModels != null\">\r\n <div *ngIf=\"FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren.length == 0\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Geen toebehoren\") }}\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren.length > 0\">\r\n <div *ngIf=\"!Init && !Loading()\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Selecteer toebehoren\") }}\r\n </div>\r\n <div class=\"flexauto\" *ngIf=\"Loading()\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!Loading() && Init\">\r\n <div #viewercontainertoebehoren class=\"viewer-container\">\r\n <canvas id=\"viewerCanvasToebehoren\" class=\"viewer-canvas\" [attr.width]=\"ViewerWidth\" [attr.height]=\"ViewerHeight\"></canvas>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"settings\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"column\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label class=\"select-mat-label\">Toebehoren</mat-label>\r\n <mat-select [(ngModel)]=\"Selected\" (selectionChange)=\"Open()\">\r\n <mat-option *ngFor=\"let item of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren\" [value]=\"item.id\">\r\n {{ TranslateService.GetActiveValueBCBEigenschapToebehoren(item.id) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button revit-plugin-button\" (click)=\"FabrikantenService.DownloadRevitPlugin(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadRevitPluginLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadRevitPluginLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit (plugin)\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button autocad-3d-button\" (click)=\"FabrikantenService.Download3DAutoCADDwg(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download3DAutoCADDwgLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download3DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D AutoCAD Dwg\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button autocad-2d-button\" (click)=\"FabrikantenService.Download2DAutoCADDwg(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DAutoCADDwgLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D AutoCAD Dwg\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button dxf-2d-button\" (click)=\"FabrikantenService.Download2DDxf(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DDxfLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D Dxf\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.flexauto{flex:auto}.row-icon{align-items:center;display:flex}.viewer-container{overflow:auto;height:100%}.message{padding:40px}.viewer-canvas{background-color:#fff;cursor:grab}.main-window{height:100%}.toolbar-button{margin-top:3px}.loader{position:absolute;width:100%;height:100%;justify-content:center}.settings{position:absolute;top:10px;right:10px;display:flex}.column{display:flex;flex-direction:column}\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.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.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: i9.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.FabLoaderComponent, selector: "app-fab-loader" }] });
77
+ FabToebehorenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabToebehorenComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i3.MobileService }, { token: i0.ChangeDetectorRef }, { token: i4.ToebehorenService }], target: i0.ɵɵFactoryTarget.Component });
78
+ FabToebehorenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabToebehorenComponent, selector: "app-fab-toebehoren", viewQueries: [{ propertyName: "viewercontainer", first: true, predicate: ["viewercontainertoebehoren"], descendants: true }], ngImport: i0, template: "<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!FabrikantenService.ShowVariants() && HasModel()\">\r\n <div *ngIf=\"!FabrikantenService.HasToebehoren()\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Geen toebehoren\") }}\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"FabrikantenService.HasToebehoren()\">\r\n <div *ngIf=\"!ToebehorenService.Init && !ToebehorenService.Loading\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Selecteer toebehoren\") }}\r\n </div>\r\n <div class=\"flexauto\" *ngIf=\"ToebehorenService.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!ToebehorenService.Loading && ToebehorenService.Init\">\r\n <div #viewercontainertoebehoren class=\"viewer-container\">\r\n <canvas id=\"viewerCanvasToebehoren\" class=\"viewer-canvas\" [attr.width]=\"ViewerWidth\" [attr.height]=\"ViewerHeight\"></canvas>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"settings\" *ngIf=\"MobileService.ShowActionMenu() && FabrikantenService.HasToebehoren()\">\r\n <mat-card>\r\n <mat-card-content>\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.flexauto{flex:auto}.row-icon{align-items:center;display:flex}.viewer-container{overflow:auto;height:100%}.message{padding:40px}.viewer-canvas{background-color:#fff;cursor:grab}.main-window{height:100%}.toolbar-button{margin-top:3px}.loader{position:absolute;width:100%;height:100%;justify-content:center}.settings{position:absolute;top:10px;right:10px;display:flex}.column{display:flex;flex-direction:column}\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.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i8.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i9.FabActionmenuComponent, selector: "app-fab-actionmenu" }] });
128
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabToebehorenComponent, decorators: [{
129
80
  type: Component,
130
- args: [{ selector: 'app-fab-toebehoren', template: "<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!FabrikantenService.ShowVariants() && FabrikantenService.FabrikantenViewModel?.selectedProduct?.fabrikantenBCBProductViewModels != null\">\r\n <div *ngIf=\"FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren.length == 0\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Geen toebehoren\") }}\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren.length > 0\">\r\n <div *ngIf=\"!Init && !Loading()\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Selecteer toebehoren\") }}\r\n </div>\r\n <div class=\"flexauto\" *ngIf=\"Loading()\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!Loading() && Init\">\r\n <div #viewercontainertoebehoren class=\"viewer-container\">\r\n <canvas id=\"viewerCanvasToebehoren\" class=\"viewer-canvas\" [attr.width]=\"ViewerWidth\" [attr.height]=\"ViewerHeight\"></canvas>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"settings\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"column\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label class=\"select-mat-label\">Toebehoren</mat-label>\r\n <mat-select [(ngModel)]=\"Selected\" (selectionChange)=\"Open()\">\r\n <mat-option *ngFor=\"let item of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[0].bcbProductToebehoren\" [value]=\"item.id\">\r\n {{ TranslateService.GetActiveValueBCBEigenschapToebehoren(item.id) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button revit-plugin-button\" (click)=\"FabrikantenService.DownloadRevitPlugin(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadRevitPluginLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadRevitPluginLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit (plugin)\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button autocad-3d-button\" (click)=\"FabrikantenService.Download3DAutoCADDwg(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download3DAutoCADDwgLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download3DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"3D AutoCAD Dwg\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button autocad-2d-button\" (click)=\"FabrikantenService.Download2DAutoCADDwg(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DAutoCADDwgLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D AutoCAD Dwg\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button dxf-2d-button\" (click)=\"FabrikantenService.Download2DDxf(GetSelectedToebehoren()?.bcbeboId)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DDxfLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D Dxf\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.flexauto{flex:auto}.row-icon{align-items:center;display:flex}.viewer-container{overflow:auto;height:100%}.message{padding:40px}.viewer-canvas{background-color:#fff;cursor:grab}.main-window{height:100%}.toolbar-button{margin-top:3px}.loader{position:absolute;width:100%;height:100%;justify-content:center}.settings{position:absolute;top:10px;right:10px;display:flex}.column{display:flex;flex-direction:column}\n"] }]
131
- }], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i3.MobileService }, { type: i0.ChangeDetectorRef }, { type: i4.FabrikantenApiClient }]; }, propDecorators: { viewercontainer: [{
81
+ args: [{ selector: 'app-fab-toebehoren', template: "<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!FabrikantenService.ShowVariants() && HasModel()\">\r\n <div *ngIf=\"!FabrikantenService.HasToebehoren()\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Geen toebehoren\") }}\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"FabrikantenService.HasToebehoren()\">\r\n <div *ngIf=\"!ToebehorenService.Init && !ToebehorenService.Loading\" class=\"message\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Selecteer toebehoren\") }}\r\n </div>\r\n <div class=\"flexauto\" *ngIf=\"ToebehorenService.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n <div class=\"main-window\" *ngIf=\"!ToebehorenService.Loading && ToebehorenService.Init\">\r\n <div #viewercontainertoebehoren class=\"viewer-container\">\r\n <canvas id=\"viewerCanvasToebehoren\" class=\"viewer-canvas\" [attr.width]=\"ViewerWidth\" [attr.height]=\"ViewerHeight\"></canvas>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"settings\" *ngIf=\"MobileService.ShowActionMenu() && FabrikantenService.HasToebehoren()\">\r\n <mat-card>\r\n <mat-card-content>\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.flexauto{flex:auto}.row-icon{align-items:center;display:flex}.viewer-container{overflow:auto;height:100%}.message{padding:40px}.viewer-canvas{background-color:#fff;cursor:grab}.main-window{height:100%}.toolbar-button{margin-top:3px}.loader{position:absolute;width:100%;height:100%;justify-content:center}.settings{position:absolute;top:10px;right:10px;display:flex}.column{display:flex;flex-direction:column}\n"] }]
82
+ }], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i3.MobileService }, { type: i0.ChangeDetectorRef }, { type: i4.ToebehorenService }]; }, propDecorators: { viewercontainer: [{
132
83
  type: ViewChild,
133
84
  args: ['viewercontainertoebehoren']
134
85
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXRvZWJlaG9yZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi10b2ViZWhvcmVuL2ZhYi10b2ViZWhvcmVuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItdG9lYmVob3Jlbi9mYWItdG9lYmVob3Jlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBK0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3BILE9BQU8sRUFBNEMseUJBQXlCLEVBQWdELE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVNuSyxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUNTLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ25DLG9CQUEwQztRQUozQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBbkI3QyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFJdEIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBVyxDQUFDLENBQUM7SUFjaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUs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QXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjt1T0FrQlUsZUFBZTtzQkFBdEQsU0FBUzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2JpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlYkdMU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYmdsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkJDQlByb2R1Y3RUb2ViZWhvcmVuVmlld01vZGVsLCBGYWJyaWthbnRlbjNEUmVxdWVzdE1vZGVsLCBGYWJyaWthbnRlbkFwaUNsaWVudCwgRmFicmlrYW50ZW4zRFZpZXdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5kZWNsYXJlIHZhciBNb2R1bGVWaWV3ZXIzRExpZ2h0OiBhbnk7XHJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZhYi10b2ViZWhvcmVuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi10b2ViZWhvcmVuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXRvZWJlaG9yZW4uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGYWJUb2ViZWhvcmVuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcblxuICBwdWJsaWMgTG9hZGluZ1NWRzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgTG9hZGluZ1dlYkdMOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIEluaXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgU2VsZWN0ZWQ6IG51bWJlcjtcblxuICBwdWJsaWMgVmlld2VyV2lkdGg6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBWaWV3ZXJIZWlnaHQ6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIEZhYnJpa2FudGVuM0RWaWV3TW9kZWw6IEZhYnJpa2FudGVuM0RWaWV3TW9kZWw7XG5cbiAgQFZpZXdDaGlsZCgndmlld2VyY29udGFpbmVydG9lYmVob3JlbicpIHZpZXdlcmNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIE1vYmlsZVNlcnZpY2U6IE1vYmlsZVNlcnZpY2UsXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIEZhYnJpa2FudGVuQXBpQ2xpZW50OiBGYWJyaWthbnRlbkFwaUNsaWVudFxuICApIHtcblxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlJlZnJlc2hWaWV3ZXJTaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlJlZnJlc2hWaWV3ZXJTaXplKCk7XHJcbiAgICB0aGlzLlJlZnJlc2hWaWV3ZXIoKTtcclxuICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5SZWZyZXNoVmlld2VyU2l6ZSgpO1xyXG4gIH1cblxuICBwdWJsaWMgTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5Mb2FkaW5nU1ZHIHx8IHRoaXMuTG9hZGluZ1dlYkdMO1xyXG4gIH1cblxuICBwdWJsaWMgT3BlbigpIHtcclxuICAgIHZhciB0b2ViZWhvcmVuID0gdGhpcy5HZXRTZWxlY3RlZFRvZWJlaG9yZW4oKTtcclxuXHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlc3Npb25JZCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0b2ViZWhvcmVuICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLkxvYWRGYWJyaWthbnRlbjNEVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZCwgdG9lYmVob3Jlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIExvYWRGYWJyaWthbnRlbjNEVmlld01vZGVsKHNlc3Npb25pZDogc3RyaW5nLCB0b2ViZWhvcmVuOiBGYWJyaWthbnRlbkJDQlByb2R1Y3RUb2ViZWhvcmVuVmlld01vZGVsKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmdXZWJHTCA9IHRydWU7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBGYWJyaWthbnRlbjNEUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSBzZXNzaW9uaWQ7XHJcbiAgICByZXF1ZXN0LmN1c3RvbUJDQkVCTyA9IHRvZWJlaG9yZW4uYmNiZWJvSWQ7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRGYWJyaWthbnRlbjNEVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuM0RWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlbjNEVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZGluZ1dlYkdMID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuSW5pdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJmaXJzdCBjaGVja1wiKTtcclxuICAgICAgICB0aGlzLlJlZnJlc2hWaWV3ZXIoKTtcclxuICAgICAgfSwgMTAwKTtcclxuXHJcbiAgICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcclxuXHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgR2V0U2VsZWN0ZWRUb2ViZWhvcmVuKCk6IEZhYnJpa2FudGVuQkNCUHJvZHVjdFRvZWJlaG9yZW5WaWV3TW9kZWwgfCBudWxsIHtcbiAgICB2YXIgdG9lYmVob3JlbjogRmFicmlrYW50ZW5CQ0JQcm9kdWN0VG9lYmVob3JlblZpZXdNb2RlbCB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscy5sZW5ndGggPiAwICYmXHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzWzBdLmJjYlByb2R1Y3RUb2ViZWhvcmVuICE9IG51bGwgJiZcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNbMF0uYmNiUHJvZHVjdFRvZWJlaG9yZW4ubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1swXS5iY2JQcm9kdWN0VG9lYmVob3Jlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1swXS5iY2JQcm9kdWN0VG9lYmVob3JlbltpXS5pZCA9PSB0aGlzLlNlbGVjdGVkKSB7XHJcbiAgICAgICAgICB0b2ViZWhvcmVuID0gdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNbMF0uYmNiUHJvZHVjdFRvZWJlaG9yZW5baV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvZWJlaG9yZW47XHJcbiAgfVxuXG4gIHByaXZhdGUgUmVmcmVzaFZpZXdlclNpemUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aWV3ZXJjb250YWluZXIgIT0gdW5kZWZpbmVkKSB7XHJcblxyXG4gICAgICB2YXIgd2lkdGggPSB0aGlzLnZpZXdlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gNjtcclxuICAgICAgdmFyIGhlaWdodCA9IHRoaXMudmlld2VyY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gNjtcclxuXHJcbiAgICAgIGlmICh0aGlzLlZpZXdlcldpZHRoICE9IHdpZHRoIHx8IHRoaXMuVmlld2VySGVpZ2h0ICE9IGhlaWdodCkge1xyXG5cclxuICAgICAgICB0aGlzLlZpZXdlcldpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgdGhpcy5WaWV3ZXJIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgIHRoaXMuUmVmcmVzaFZpZXdlcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxuXG4gIHByaXZhdGUgUmVmcmVzaFZpZXdlcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5Mb2FkaW5nV2ViR0wgJiYgdGhpcy5GYWJyaWthbnRlbjNEVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgdmFyIHZpZXdlciA9IE1vZHVsZVZpZXdlcjNETGlnaHQuZ2V0KFwidmlld2VyQ2FudmFzVG9lYmVob3JlblwiKTtcclxuXHJcbiAgICAgIGlmICh2aWV3ZXIgIT0gbnVsbCkge1xyXG5cclxuICAgICAgICB2YXIgYmVsaWNodGluZyA9IHZpZXdlci5iZWxpY2h0aW5nO1xyXG4gICAgICAgIGJlbGljaHRpbmcudG9vblNsYWdzY2hhZHV3ID0gdHJ1ZTtcclxuICAgICAgICBiZWxpY2h0aW5nLnNsYWdzY2hhZHV3VmVyemFkaWdpbmcgPSAwLjU7XHJcbiAgICAgICAgYmVsaWNodGluZy5saWNodGJyb25TdGVya3RlID0gMC44O1xyXG4gICAgICAgIGJlbGljaHRpbmcubGljaHRTY2hpdHRlcmluZyA9IDAuMzMzO1xyXG4gICAgICAgIGJlbGljaHRpbmcuaXNDYW1lcmFMaWNodCA9IGZhbHNlO1xyXG4gICAgICAgIGJlbGljaHRpbmcub21nZXZpbmdsaWNodFN0ZXJrdGUgPSAwLjQ7XHJcbiAgICAgICAgYmVsaWNodGluZy5saWNodHZhbCA9IFstMS4wLCAwLjUsIC0xLjJdO1xyXG4gICAgICAgIHZpZXdlci5vcnRob2dyYWZpc2NoZVByb2plY3RpZSA9IGZhbHNlO1xyXG4gICAgICAgIHZpZXdlci5raWprcmljaHRpbmcgPSBbMC41MDAyMzI0MTkxMDA5MywgMC43NDQzNjAwNTI2NjA0OTM0LCAtMC40NDIzNzQ5OTgwMzE4NzIzXTtcclxuXHJcbiAgICAgICAgdmlld2VyLmNsZWFyKCk7XHJcbiAgICAgICAgdmlld2VyLmFkZCh0aGlzLkZhYnJpa2FudGVuM0RWaWV3TW9kZWwud2ViR0xKU09OLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB2aWV3ZXIuemV0Wm9vbUdlaGVlbCgpO1xyXG4gICAgICAgICAgdmlld2VyLnRvb25Nb2RlbCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYWluLXdpbmRvd1wiPlxyXG4gIDxkaXYgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1ZhcmlhbnRzKClcIiBjbGFzcz1cIm11bHRpcGxldmFyaWFudHNcIj5cclxuICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJNdWx0aXBsZSB2YXJpYW50c1wiKSB9fVxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJjYnByb2R1Y3QtZGl2XCIgKm5nRm9yPVwibGV0IGJjYnByb2R1Y3Qgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5TZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpXCI+XHJcbiAgICAgICAgICB7eyBiY2Jwcm9kdWN0Lm5hbWUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIiAqbmdJZj1cIiFGYWJyaWthbnRlblNlcnZpY2UuU2hvd1ZhcmlhbnRzKCkgJiYgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbFwiPlxyXG4gICAgPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1swXS5iY2JQcm9kdWN0VG9lYmVob3Jlbi5sZW5ndGggPT0gMFwiIGNsYXNzPVwibWVzc2FnZVwiPlxyXG4gICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiR2VlbiB0b2ViZWhvcmVuXCIpIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluLXdpbmRvd1wiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzWzBdLmJjYlByb2R1Y3RUb2ViZWhvcmVuLmxlbmd0aCA+IDBcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFJbml0ICYmICFMb2FkaW5nKClcIiBjbGFzcz1cIm1lc3NhZ2VcIj5cclxuICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiU2VsZWN0ZWVyIHRvZWJlaG9yZW5cIikgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4YXV0b1wiICpuZ0lmPVwiTG9hZGluZygpXCI+XHJcbiAgICAgICAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIiAqbmdJZj1cIiFMb2FkaW5nKCkgJiYgSW5pdFwiPlxyXG4gICAgICAgIDxkaXYgI3ZpZXdlcmNvbnRhaW5lcnRvZWJlaG9yZW4gY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8Y2FudmFzIGlkPVwidmlld2VyQ2FudmFzVG9lYmVob3JlblwiIGNsYXNzPVwidmlld2VyLWNhbnZhc1wiIFthdHRyLndpZHRoXT1cIlZpZXdlcldpZHRoXCIgW2F0dHIuaGVpZ2h0XT1cIlZpZXdlckhlaWdodFwiPjwvY2FudmFzPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5nc1wiPlxyXG4gICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJzZWxlY3QtbWF0LWxhYmVsXCI+VG9lYmVob3JlbjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiU2VsZWN0ZWRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIk9wZW4oKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzWzBdLmJjYlByb2R1Y3RUb2ViZWhvcmVuXCIgW3ZhbHVlXT1cIml0ZW0uaWRcIj5cclxuICAgICAgICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZUJDQkVpZ2Vuc2NoYXBUb2ViZWhvcmVuKGl0ZW0uaWQpIH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBhcmtleS1hZG9taS1idXR0b25cIiAoY2xpY2spPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQVJLRVlBZG9taShHZXRTZWxlY3RlZFRvZWJlaG9yZW4oKT8uYmNiZWJvSWQpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQVJLRVlBZG9taUxvYWRpbmdcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZEFSS0VZQWRvbWlMb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkFSS0VZIEFkb21pXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGlmYy1idXR0b25cIiAoY2xpY2spPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkSUZDKEdldFNlbGVjdGVkVG9lYmVob3JlbigpPy5iY2JlYm9JZClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBmaWxlX2Rvd25sb2FkXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkNMb2FkaW5nXCI+Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkNMb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIklGQ1wiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiByZXZpdC1wbHVnaW4tYnV0dG9uXCIgKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJldml0UGx1Z2luKEdldFNlbGVjdGVkVG9lYmVob3JlbigpPy5iY2JlYm9JZClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBmaWxlX2Rvd25sb2FkXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRSZXZpdFBsdWdpbkxvYWRpbmdcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJldml0UGx1Z2luTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJSZXZpdCAocGx1Z2luKVwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBhdXRvY2FkLTNkLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQzREF1dG9DQUREd2coR2V0U2VsZWN0ZWRUb2ViZWhvcmVuKCk/LmJjYmVib0lkKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmdcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmdcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiM0QgQXV0b0NBRCBEd2dcIikgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gYXV0b2NhZC0yZC1idXR0b25cIiAoY2xpY2spPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkMkRBdXRvQ0FERHdnKEdldFNlbGVjdGVkVG9lYmVob3JlbigpPy5iY2JlYm9JZClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBmaWxlX2Rvd25sb2FkXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQyREF1dG9DQUREd2dMb2FkaW5nXCI+Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQyREF1dG9DQUREd2dMb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIjJEIEF1dG9DQUQgRHdnXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGR4Zi0yZC1idXR0b25cIiAoY2xpY2spPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkMkREeGYoR2V0U2VsZWN0ZWRUb2ViZWhvcmVuKCk/LmJjYmVib0lkKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDJERHhmTG9hZGluZ1wiPi4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkMkREeGZMb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIjJEIER4ZlwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXRvZWJlaG9yZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi10b2ViZWhvcmVuL2ZhYi10b2ViZWhvcmVuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItdG9lYmVob3Jlbi9mYWItdG9lYmVob3Jlbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBK0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQWVwSCxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFlBQ1Msa0JBQXNDLEVBQ3RDLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsaUJBQW9DO1FBSnBDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFWdEMsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFXOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUN2RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsRUFB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IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9lYmVob3JlblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2ViZWhvcmVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXZWJHTFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93ZWJnbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5CQ0JQcm9kdWN0VG9lYmVob3JlblZpZXdNb2RlbCwgRmFicmlrYW50ZW4zRFJlcXVlc3RNb2RlbCwgRmFicmlrYW50ZW5BcGlDbGllbnQsIEZhYnJpa2FudGVuM0RWaWV3TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuZGVjbGFyZSB2YXIgTW9kdWxlVmlld2VyM0RMaWdodDogYW55O1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mYWItdG9lYmVob3JlbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItdG9lYmVob3Jlbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZhYi10b2ViZWhvcmVuLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmFiVG9lYmVob3JlbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XG4gIHB1YmxpYyBWaWV3ZXJXaWR0aDogbnVtYmVyID0gMDtcbiAgcHVibGljIFZpZXdlckhlaWdodDogbnVtYmVyID0gMDtcblxuICBAVmlld0NoaWxkKCd2aWV3ZXJjb250YWluZXJ0b2ViZWhvcmVuJykgdmlld2VyY29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBUb2ViZWhvcmVuU2VydmljZTogVG9lYmVob3JlblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5Ub2ViZWhvcmVuU2VydmljZS5GYWJUb2ViZWhvcmVuQ29tcG9uZW50ID0gdGhpcztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5SZWZyZXNoVmlld2VyU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5SZWZyZXNoVmlld2VyU2l6ZSgpO1xyXG4gICAgdGhpcy5SZWZyZXNoVmlld2VyKCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVmcmVzaFZpZXdlclNpemUoKTtcclxuICB9XG5cbiAgcHVibGljIFJlZnJlc2hWaWV3ZXJTaXplKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmlld2VyY29udGFpbmVyICE9IHVuZGVmaW5lZCkge1xyXG5cclxuICAgICAgdmFyIHdpZHRoID0gdGhpcy52aWV3ZXJjb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIDY7XHJcbiAgICAgIHZhciBoZWlnaHQgPSB0aGlzLnZpZXdlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIDY7XHJcblxyXG4gICAgICBpZiAodGhpcy5WaWV3ZXJXaWR0aCAhPSB3aWR0aCB8fCB0aGlzLlZpZXdlckhlaWdodCAhPSBoZWlnaHQpIHtcclxuXHJcbiAgICAgICAgdGhpcy5WaWV3ZXJXaWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIHRoaXMuVmlld2VySGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB0aGlzLlJlZnJlc2hWaWV3ZXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cblxuICBwdWJsaWMgUmVmcmVzaFZpZXdlcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5Ub2ViZWhvcmVuU2VydmljZS5Mb2FkaW5nICYmIHRoaXMuVG9lYmVob3JlblNlcnZpY2UuRmFicmlrYW50ZW4zRFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciB2aWV3ZXIgPSBNb2R1bGVWaWV3ZXIzRExpZ2h0LmdldChcInZpZXdlckNhbnZhc1RvZWJlaG9yZW5cIik7XHJcblxyXG4gICAgICBpZiAodmlld2VyICE9IG51bGwpIHtcclxuXHJcbiAgICAgICAgdmFyIGJlbGljaHRpbmcgPSB2aWV3ZXIuYmVsaWNodGluZztcclxuICAgICAgICBiZWxpY2h0aW5nLnRvb25TbGFnc2NoYWR1dyA9IHRydWU7XHJcbiAgICAgICAgYmVsaWNodGluZy5zbGFnc2NoYWR1d1ZlcnphZGlnaW5nID0gMC41O1xyXG4gICAgICAgIGJlbGljaHRpbmcubGljaHRicm9uU3Rlcmt0ZSA9IDAuODtcclxuICAgICAgICBiZWxpY2h0aW5nLmxpY2h0U2NoaXR0ZXJpbmcgPSAwLjMzMztcclxuICAgICAgICBiZWxpY2h0aW5nLmlzQ2FtZXJhTGljaHQgPSBmYWxzZTtcclxuICAgICAgICBiZWxpY2h0aW5nLm9tZ2V2aW5nbGljaHRTdGVya3RlID0gMC40O1xyXG4gICAgICAgIGJlbGljaHRpbmcubGljaHR2YWwgPSBbLTEuMCwgMC41LCAtMS4yXTtcclxuICAgICAgICB2aWV3ZXIub3J0aG9ncmFmaXNjaGVQcm9qZWN0aWUgPSBmYWxzZTtcclxuICAgICAgICB2aWV3ZXIua2lqa3JpY2h0aW5nID0gWzAuNTAwMjMyNDE5MTAwOTMsIDAuNzQ0MzYwMDUyNjYwNDkzNCwgLTAuNDQyMzc0OTk4MDMxODcyM107XHJcblxyXG4gICAgICAgIHZpZXdlci5jbGVhcigpO1xyXG4gICAgICAgIHZpZXdlci5hZGQodGhpcy5Ub2ViZWhvcmVuU2VydmljZS5GYWJyaWthbnRlbjNEVmlld01vZGVsLndlYkdMSlNPTiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgdmlld2VyLnpldFpvb21HZWhlZWwoKTtcclxuICAgICAgICAgIHZpZXdlci50b29uTW9kZWwoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEhhc01vZGVsKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdD8uZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBcclxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIj5cclxuICA8ZGl2ICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dWYXJpYW50cygpXCIgY2xhc3M9XCJtdWx0aXBsZXZhcmlhbnRzXCI+XHJcbiAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiTXVsdGlwbGUgdmFyaWFudHNcIikgfX1cclxuICAgIDxkaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiY2Jwcm9kdWN0LWRpdlwiICpuZ0Zvcj1cImxldCBiY2Jwcm9kdWN0IG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuU2VsZWN0QkNCUHJvZHVjdChiY2Jwcm9kdWN0LCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKVwiPlxyXG4gICAgICAgICAge3sgYmNicHJvZHVjdC5uYW1lIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1haW4td2luZG93XCIgKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dWYXJpYW50cygpICYmIEhhc01vZGVsKClcIj5cclxuICAgIDxkaXYgKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkhhc1RvZWJlaG9yZW4oKVwiIGNsYXNzPVwibWVzc2FnZVwiPlxyXG4gICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiR2VlbiB0b2ViZWhvcmVuXCIpIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluLXdpbmRvd1wiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkhhc1RvZWJlaG9yZW4oKVwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIVRvZWJlaG9yZW5TZXJ2aWNlLkluaXQgJiYgIVRvZWJlaG9yZW5TZXJ2aWNlLkxvYWRpbmdcIiBjbGFzcz1cIm1lc3NhZ2VcIj5cclxuICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiU2VsZWN0ZWVyIHRvZWJlaG9yZW5cIikgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4YXV0b1wiICpuZ0lmPVwiVG9lYmVob3JlblNlcnZpY2UuTG9hZGluZ1wiPlxyXG4gICAgICAgIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1haW4td2luZG93XCIgKm5nSWY9XCIhVG9lYmVob3JlblNlcnZpY2UuTG9hZGluZyAmJiBUb2ViZWhvcmVuU2VydmljZS5Jbml0XCI+XHJcbiAgICAgICAgPGRpdiAjdmlld2VyY29udGFpbmVydG9lYmVob3JlbiBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxjYW52YXMgaWQ9XCJ2aWV3ZXJDYW52YXNUb2ViZWhvcmVuXCIgY2xhc3M9XCJ2aWV3ZXItY2FudmFzXCIgW2F0dHIud2lkdGhdPVwiVmlld2VyV2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwiVmlld2VySGVpZ2h0XCI+PC9jYW52YXM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNldHRpbmdzXCIgKm5nSWY9XCJNb2JpbGVTZXJ2aWNlLlNob3dBY3Rpb25NZW51KCkgJiYgRmFicmlrYW50ZW5TZXJ2aWNlLkhhc1RvZWJlaG9yZW4oKVwiPlxyXG4gICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8YXBwLWZhYi1hY3Rpb25tZW51PjwvYXBwLWZhYi1hY3Rpb25tZW51PlxyXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG4iXX0=
@@ -6,14 +6,10 @@ import * as i3 from "../../services/translate.service";
6
6
  import * as i4 from "@angular/platform-browser";
7
7
  import * as i5 from "../../services/mobile.service";
8
8
  import * as i6 from "@angular/common";
9
- import * as i7 from "@angular/material/form-field";
10
- import * as i8 from "@angular/forms";
11
- import * as i9 from "@angular/material/button";
12
- import * as i10 from "@angular/material/card";
13
- import * as i11 from "@angular/material/icon";
14
- import * as i12 from "@angular/material/select";
15
- import * as i13 from "@angular/material/core";
16
- import * as i14 from "../fab-loader/fab-loader.component";
9
+ import * as i7 from "@angular/material/button";
10
+ import * as i8 from "@angular/material/card";
11
+ import * as i9 from "../fab-loader/fab-loader.component";
12
+ import * as i10 from "../fab-actionmenu/fab-actionmenu.component";
17
13
  export class FabSvgViewerComponent {
18
14
  constructor(FabrikantenService, SVGService, TranslateService, sanitization, MobileService, ChangeDetectorRef) {
19
15
  this.FabrikantenService = FabrikantenService;
@@ -60,24 +56,14 @@ export class FabSvgViewerComponent {
60
56
  }
61
57
  }
62
58
  }
63
- RefreshSnede() {
64
- if (this.FabrikantenService?.FabrikantenViewModel?.sessionId != null) {
65
- this.SVGService.LoadFabrikantenSVGViewModel(this.FabrikantenService.FabrikantenViewModel.sessionId, this.ChangeDetectorRef);
66
- }
67
- }
68
- RefreshSchaal() {
69
- if (this.FabrikantenService?.FabrikantenViewModel?.sessionId != null) {
70
- this.SVGService.LoadFabrikantenSVGViewModel(this.FabrikantenService.FabrikantenViewModel.sessionId, this.ChangeDetectorRef);
71
- }
72
- }
73
59
  }
74
60
  FabSvgViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabSvgViewerComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.SVGService }, { token: i3.TranslateService }, { token: i4.DomSanitizer }, { token: i5.MobileService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
75
- FabSvgViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabSvgViewerComponent, selector: "app-fab-svg-viewer", viewQueries: [{ propertyName: "svgcontainer", first: true, predicate: ["svgcontainer"], descendants: true }], ngImport: i0, template: "<div class=\"loader\" *ngIf=\"SVGService.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"main-window flex-col\" *ngIf=\"ShowSVG()\">\r\n <div #svgcontainer class=\"svg-container\">\r\n <object class=\"svg-object\" *ngIf=\"ShowSVG()\" type=\"image/svg+xml\" [attr.data]=\"GetSafeURL()\"></object>\r\n </div>\r\n\r\n <div class=\"svg-settings\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"column\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label class=\"select-mat-label\">{{ TranslateService.GetActiveValue(\"Common\", \"Snede\") }}</mat-label>\r\n <mat-select [(ngModel)]=\"SVGService.Snede\" (selectionChange)=\"RefreshSnede()\">\r\n <mat-option *ngFor=\"let snede of SVGService.Snedes\" [value]=\"snede\">\r\n {{ TranslateService.GetActiveValue(\"Common\", snede) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label class=\"select-mat-label\">{{ TranslateService.GetActiveValue(\"Common\", \"Schaal\") }}</mat-label>\r\n <mat-select [(ngModel)]=\"SVGService.Schaal\" (selectionChange)=\"RefreshSchaal()\">\r\n <mat-option [value]=\"'0'\">1:1</mat-option>\r\n <mat-option [value]=\"'1'\">1:2</mat-option>\r\n <mat-option [value]=\"'2'\">1:5</mat-option>\r\n <mat-option [value]=\"'3'\">1:10</mat-option>\r\n <mat-option [value]=\"'4'\">1:20</mat-option>\r\n <mat-option [value]=\"'5'\">1:50</mat-option>\r\n <mat-option [value]=\"'6'\">1:100</mat-option>\r\n <mat-option [value]=\"'7'\">1:200</mat-option>\r\n <mat-option [value]=\"'8'\">1:500</mat-option>\r\n <mat-option [value]=\"'9'\">1:1000</mat-option>\r\n <mat-option [value]=\"'10'\">1:2000</mat-option>\r\n <mat-option [value]=\"'11'\">1:5000</mat-option>\r\n <mat-option [value]=\"'12'\">1:10000</mat-option>\r\n <mat-option [value]=\"'13'\">1:20000</mat-option>\r\n <mat-option [value]=\"'14'\">1:50000</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-stroked-button class=\"toolbar-button rfa-button\" (click)=\"FabrikantenService.DownloadRFA(undefined)\" *ngIf=\"SVGService.HasNativeRFA()\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadRFALoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadRFALoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button autocad-2d-button\" (click)=\"FabrikantenService.Download2DAutoCADDwg(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DAutoCADDwgLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D AutoCAD Dwg\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button dxf-2d-button\" (click)=\"FabrikantenService.Download2DDxf(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DDxfLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D Dxf\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button\" (click)=\"OpenBCBLink()\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon open_in_new\">open_in_new</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"BCB\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.row-icon{align-items:center;display:flex}.flex-auto{flex:auto}.column{display:flex;flex-direction:column}.svg-settings{position:absolute;top:10px;right:10px;display:flex}button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title{flex:auto}.flex-col{display:flex;flex-direction:column}.loader{position:absolute;width:100%;height:100%;justify-content:center}.main-window{height:100%;overflow:hidden}.toolbar{display:flex;padding:3px}.toolbar-mobile{padding-bottom:5px}.svg-container{overflow:auto;background-color:#f1eeeb;height:100%}.toolbar-actions{flex:auto}.svg-object{cursor:grab}.toolbar-button{margin-top:3px}.button{margin:5px;width:100%}\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.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.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: i10.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.FabLoaderComponent, selector: "app-fab-loader" }] });
61
+ FabSvgViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabSvgViewerComponent, selector: "app-fab-svg-viewer", viewQueries: [{ propertyName: "svgcontainer", first: true, predicate: ["svgcontainer"], descendants: true }], ngImport: i0, template: "<div class=\"loader\" *ngIf=\"SVGService.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"main-window flex-col\" *ngIf=\"ShowSVG()\">\r\n <div #svgcontainer class=\"svg-container\">\r\n <object class=\"svg-object\" *ngIf=\"ShowSVG()\" type=\"image/svg+xml\" [attr.data]=\"GetSafeURL()\"></object>\r\n </div>\r\n\r\n <div class=\"svg-settings\" *ngIf=\"MobileService.ShowActionMenu()\">\r\n <mat-card>\r\n <mat-card-content>\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.row-icon{align-items:center;display:flex}.flex-auto{flex:auto}.column{display:flex;flex-direction:column}.svg-settings{position:absolute;top:10px;right:10px;display:flex}button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title{flex:auto}.flex-col{display:flex;flex-direction:column}.loader{position:absolute;width:100%;height:100%;justify-content:center}.main-window{height:100%;overflow:hidden}.toolbar{display:flex;padding:3px}.toolbar-mobile{padding-bottom:5px}.svg-container{overflow:auto;background-color:#f1eeeb;height:100%}.toolbar-actions{flex:auto}.svg-object{cursor:grab}.toolbar-button{margin-top:3px}.button{margin:5px;width:100%}\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.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: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i10.FabActionmenuComponent, selector: "app-fab-actionmenu" }] });
76
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabSvgViewerComponent, decorators: [{
77
63
  type: Component,
78
- args: [{ selector: 'app-fab-svg-viewer', template: "<div class=\"loader\" *ngIf=\"SVGService.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"main-window flex-col\" *ngIf=\"ShowSVG()\">\r\n <div #svgcontainer class=\"svg-container\">\r\n <object class=\"svg-object\" *ngIf=\"ShowSVG()\" type=\"image/svg+xml\" [attr.data]=\"GetSafeURL()\"></object>\r\n </div>\r\n\r\n <div class=\"svg-settings\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"column\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label class=\"select-mat-label\">{{ TranslateService.GetActiveValue(\"Common\", \"Snede\") }}</mat-label>\r\n <mat-select [(ngModel)]=\"SVGService.Snede\" (selectionChange)=\"RefreshSnede()\">\r\n <mat-option *ngFor=\"let snede of SVGService.Snedes\" [value]=\"snede\">\r\n {{ TranslateService.GetActiveValue(\"Common\", snede) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label class=\"select-mat-label\">{{ TranslateService.GetActiveValue(\"Common\", \"Schaal\") }}</mat-label>\r\n <mat-select [(ngModel)]=\"SVGService.Schaal\" (selectionChange)=\"RefreshSchaal()\">\r\n <mat-option [value]=\"'0'\">1:1</mat-option>\r\n <mat-option [value]=\"'1'\">1:2</mat-option>\r\n <mat-option [value]=\"'2'\">1:5</mat-option>\r\n <mat-option [value]=\"'3'\">1:10</mat-option>\r\n <mat-option [value]=\"'4'\">1:20</mat-option>\r\n <mat-option [value]=\"'5'\">1:50</mat-option>\r\n <mat-option [value]=\"'6'\">1:100</mat-option>\r\n <mat-option [value]=\"'7'\">1:200</mat-option>\r\n <mat-option [value]=\"'8'\">1:500</mat-option>\r\n <mat-option [value]=\"'9'\">1:1000</mat-option>\r\n <mat-option [value]=\"'10'\">1:2000</mat-option>\r\n <mat-option [value]=\"'11'\">1:5000</mat-option>\r\n <mat-option [value]=\"'12'\">1:10000</mat-option>\r\n <mat-option [value]=\"'13'\">1:20000</mat-option>\r\n <mat-option [value]=\"'14'\">1:50000</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-stroked-button class=\"toolbar-button rfa-button\" (click)=\"FabrikantenService.DownloadRFA(undefined)\" *ngIf=\"SVGService.HasNativeRFA()\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadRFALoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadRFALoading\">{{ TranslateService.GetActiveValue(\"Common\", \"Revit\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button arkey-adomi-button\" (click)=\"FabrikantenService.DownloadARKEYAdomi(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadARKEYAdomiLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadARKEYAdomiLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"ARKEY Adomi\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button ifc-button\" (click)=\"FabrikantenService.DownloadIFC(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.DownloadIFCLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.DownloadIFCLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"IFC\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button autocad-2d-button\" (click)=\"FabrikantenService.Download2DAutoCADDwg(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DAutoCADDwgLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DAutoCADDwgLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D AutoCAD Dwg\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button dxf-2d-button\" (click)=\"FabrikantenService.Download2DDxf(undefined)\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon file_download\">file_download</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n <span *ngIf=\"FabrikantenService.Download2DDxfLoading\">...</span>\r\n <span *ngIf=\"!FabrikantenService.Download2DDxfLoading\">{{ TranslateService.GetActiveValue(\"Common\", \"2D Dxf\") }}</span>\r\n </div>\r\n </div>\r\n </button>\r\n <button mat-stroked-button class=\"toolbar-button\" (click)=\"OpenBCBLink()\">\r\n <div class=\"row\">\r\n <div class=\"row-icon\">\r\n <mat-icon class=\"icon open_in_new\">open_in_new</mat-icon>\r\n </div>\r\n <div class=\"row-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"BCB\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.row-icon{align-items:center;display:flex}.flex-auto{flex:auto}.column{display:flex;flex-direction:column}.svg-settings{position:absolute;top:10px;right:10px;display:flex}button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title{flex:auto}.flex-col{display:flex;flex-direction:column}.loader{position:absolute;width:100%;height:100%;justify-content:center}.main-window{height:100%;overflow:hidden}.toolbar{display:flex;padding:3px}.toolbar-mobile{padding-bottom:5px}.svg-container{overflow:auto;background-color:#f1eeeb;height:100%}.toolbar-actions{flex:auto}.svg-object{cursor:grab}.toolbar-button{margin-top:3px}.button{margin:5px;width:100%}\n"] }]
64
+ args: [{ selector: 'app-fab-svg-viewer', template: "<div class=\"loader\" *ngIf=\"SVGService.Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div class=\"main-window\">\r\n <div *ngIf=\"FabrikantenService.ShowVariants()\" class=\"multiplevariants\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Multiple variants\") }}\r\n <div>\r\n <div class=\"bcbproduct-div\" *ngFor=\"let bcbproduct of FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels\">\r\n <button mat-stroked-button (click)=\"FabrikantenService.SelectBCBProduct(bcbproduct, this.ChangeDetectorRef)\">\r\n {{ bcbproduct.name }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"main-window flex-col\" *ngIf=\"ShowSVG()\">\r\n <div #svgcontainer class=\"svg-container\">\r\n <object class=\"svg-object\" *ngIf=\"ShowSVG()\" type=\"image/svg+xml\" [attr.data]=\"GetSafeURL()\"></object>\r\n </div>\r\n\r\n <div class=\"svg-settings\" *ngIf=\"MobileService.ShowActionMenu()\">\r\n <mat-card>\r\n <mat-card-content>\r\n <app-fab-actionmenu></app-fab-actionmenu>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{display:flex;line-height:37px}.bcbproduct-div{padding:3px}.icon{margin-right:3px}.multiplevariants{padding:20px}.row-icon{align-items:center;display:flex}.flex-auto{flex:auto}.column{display:flex;flex-direction:column}.svg-settings{position:absolute;top:10px;right:10px;display:flex}button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title{flex:auto}.flex-col{display:flex;flex-direction:column}.loader{position:absolute;width:100%;height:100%;justify-content:center}.main-window{height:100%;overflow:hidden}.toolbar{display:flex;padding:3px}.toolbar-mobile{padding-bottom:5px}.svg-container{overflow:auto;background-color:#f1eeeb;height:100%}.toolbar-actions{flex:auto}.svg-object{cursor:grab}.toolbar-button{margin-top:3px}.button{margin:5px;width:100%}\n"] }]
79
65
  }], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.SVGService }, { type: i3.TranslateService }, { type: i4.DomSanitizer }, { type: i5.MobileService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { svgcontainer: [{
80
66
  type: ViewChild,
81
67
  args: ['svgcontainer']
82
68
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXN2Zy12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1zdmctdmlld2VyL2ZhYi1zdmctdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItc3ZnLXZpZXdlci9mYWItc3ZnLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBWS9ILE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFDUyxrQkFBc0MsRUFDdEMsVUFBc0IsRUFDdEIsZ0JBQWtDLEVBQ2pDLFlBQTBCLEVBQzNCLGFBQTRCLEVBQzVCLGlCQUFvQztRQUxwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQzNDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsSUFBSSxTQUFTLEVBQUU7Z0JBQ3hELE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxTQUFTLEVBQUU7WUFFbEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUM1RCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBRTlELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLE1BQU0sRUFBRTtnQkFDbEYsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLElBQUksSUFBSSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3SDtJQUNILENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQzdIO0lBQ0gsQ0FBQzs7a0hBeEVVLHFCQUFxQjtzR0FBckIscUJBQXFCLHdLQ1psQyx5NE5BNEhBOzJGRGhIYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usb0JBQW9CO3dQQUtILFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwsIFNhZmVTdHlsZSwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU1ZHU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N2Zy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZhYi1zdmctdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLXN2Zy12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZhYi1zdmctdmlld2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYlN2Z1ZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XHJcbiAgQFZpZXdDaGlsZCgnc3ZnY29udGFpbmVyJykgc3ZnY29udGFpbmVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBwcml2YXRlIHRpbWVvdXRJZDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBTVkdTZXJ2aWNlOiBTVkdTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNhbml0aXphdGlvbjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHVibGljIE1vYmlsZVNlcnZpY2U6IE1vYmlsZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLlVwZGF0ZVNpemUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVTaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlVwZGF0ZVNpemUoKTtcclxuICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVTaXplKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd1NWRygpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuU2hvd1ZhcmlhbnRzKCkpIHtcclxuICAgICAgaWYgKHRoaXMuU1ZHU2VydmljZS5GYWJyaWthbnRlblNWR1ZpZXdNb2RlbCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRTYWZlVVJMKCk6IFNhZmVSZXNvdXJjZVVybCB7XHJcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6YXRpb24uYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuU1ZHU2VydmljZS5GYWJyaWthbnRlblNWR1ZpZXdNb2RlbC5zdmcgKyBcIlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBPcGVuQkNCTGluaygpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLk9wZW5CQ0JMaW5rKHRoaXMuU1ZHU2VydmljZS5GYWJyaWthbnRlblNWR1ZpZXdNb2RlbC53dWlkICsgXCJcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlU2l6ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN2Z2NvbnRhaW5lciAhPSB1bmRlZmluZWQpIHtcclxuXHJcbiAgICAgIHZhciB3aWR0aCA9IHRoaXMuc3ZnY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA2O1xyXG4gICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5zdmdjb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSA2O1xyXG5cclxuICAgICAgaWYgKHRoaXMuU1ZHU2VydmljZS5WaWV3ZXJXaWR0aCAhPSB3aWR0aCB8fCB0aGlzLlNWR1NlcnZpY2UuVmlld2VySGVpZ2h0ICE9IGhlaWdodCkge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCk7XHJcblxyXG4gICAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLlNWR1NlcnZpY2UuVXBkYXRlVmlld2VyU2l6ZSh3aWR0aCwgaGVpZ2h0LCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgICB9LCAzMDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVmcmVzaFNuZWRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlPy5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2Vzc2lvbklkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5TVkdTZXJ2aWNlLkxvYWRGYWJyaWthbnRlblNWR1ZpZXdNb2RlbCh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlZnJlc2hTY2hhYWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2U/LkZhYnJpa2FudGVuVmlld01vZGVsPy5zZXNzaW9uSWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlNWR1NlcnZpY2UuTG9hZEZhYnJpa2FudGVuU1ZHVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2FkZXJcIiAqbmdJZj1cIlNWR1NlcnZpY2UuTG9hZGluZ1wiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJtYWluLXdpbmRvd1wiPlxyXG4gIDxkaXYgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1ZhcmlhbnRzKClcIiBjbGFzcz1cIm11bHRpcGxldmFyaWFudHNcIj5cclxuICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJNdWx0aXBsZSB2YXJpYW50c1wiKSB9fVxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJjYnByb2R1Y3QtZGl2XCIgKm5nRm9yPVwibGV0IGJjYnByb2R1Y3Qgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5TZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpXCI+XHJcbiAgICAgICAgICB7eyBiY2Jwcm9kdWN0Lm5hbWUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwibWFpbi13aW5kb3cgZmxleC1jb2xcIiAqbmdJZj1cIlNob3dTVkcoKVwiPlxyXG4gICAgPGRpdiAjc3ZnY29udGFpbmVyIGNsYXNzPVwic3ZnLWNvbnRhaW5lclwiPlxyXG4gICAgICA8b2JqZWN0IGNsYXNzPVwic3ZnLW9iamVjdFwiICpuZ0lmPVwiU2hvd1NWRygpXCIgdHlwZT1cImltYWdlL3N2Zyt4bWxcIiBbYXR0ci5kYXRhXT1cIkdldFNhZmVVUkwoKVwiPjwvb2JqZWN0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN2Zy1zZXR0aW5nc1wiPlxyXG4gICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJzZWxlY3QtbWF0LWxhYmVsXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIlNuZWRlXCIpIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJTVkdTZXJ2aWNlLlNuZWRlXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJSZWZyZXNoU25lZGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNuZWRlIG9mIFNWR1NlcnZpY2UuU25lZGVzXCIgW3ZhbHVlXT1cInNuZWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgc25lZGUpIH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwic2VsZWN0LW1hdC1sYWJlbFwiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJTY2hhYWxcIikgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIlNWR1NlcnZpY2UuU2NoYWFsXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJSZWZyZXNoU2NoYWFsKClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMCdcIj4xOjE8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzEnXCI+MToyPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicyJ1wiPjE6NTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMydcIj4xOjEwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIic0J1wiPjE6MjA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzUnXCI+MTo1MDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInNidcIj4xOjEwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInNydcIj4xOjIwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInOCdcIj4xOjUwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInOSdcIj4xOjEwMDA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzEwJ1wiPjE6MjAwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMTEnXCI+MTo1MDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxMidcIj4xOjEwMDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxMydcIj4xOjIwMDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxNCdcIj4xOjUwMDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiByZmEtYnV0dG9uXCIgKGNsaWNrKT1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZFJGQSh1bmRlZmluZWQpXCIgKm5nSWY9XCJTVkdTZXJ2aWNlLkhhc05hdGl2ZVJGQSgpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUkZBTG9hZGluZ1wiPi4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkUkZBTG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJSZXZpdFwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBhcmtleS1hZG9taS1idXR0b25cIiAoY2xpY2spPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQVJLRVlBZG9taSh1bmRlZmluZWQpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQVJLRVlBZG9taUxvYWRpbmdcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZEFSS0VZQWRvbWlMb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkFSS0VZIEFkb21pXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGlmYy1idXR0b25cIiAoY2xpY2spPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkSUZDKHVuZGVmaW5lZClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBmaWxlX2Rvd25sb2FkXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkNMb2FkaW5nXCI+Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRJRkNMb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIklGQ1wiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBhdXRvY2FkLTJkLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQyREF1dG9DQUREd2codW5kZWZpbmVkKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDJEQXV0b0NBRER3Z0xvYWRpbmdcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZDJEQXV0b0NBRER3Z0xvYWRpbmdcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiMkQgQXV0b0NBRCBEd2dcIikgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gZHhmLTJkLWJ1dHRvblwiIChjbGljayk9XCJGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQyRER4Zih1bmRlZmluZWQpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkMkREeGZMb2FkaW5nXCI+Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFGYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQyRER4ZkxvYWRpbmdcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiMkQgRHhmXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgKGNsaWNrKT1cIk9wZW5CQ0JMaW5rKClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBvcGVuX2luX25ld1wiPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiQkNCXCIpIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXN2Zy12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1zdmctdmlld2VyL2ZhYi1zdmctdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItc3ZnLXZpZXdlci9mYWItc3ZnLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7QUFZL0gsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxZQUNTLGtCQUFzQyxFQUN0QyxVQUFzQixFQUN0QixnQkFBa0MsRUFDakMsWUFBMEIsRUFDM0IsYUFBNEIsRUFDNUIsaUJBQW9DO1FBTHBDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDM0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixJQUFJLFNBQVMsRUFBRTtnQkFDeEQsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLFNBQVMsRUFBRTtZQUVsQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQzVELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7WUFFOUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLElBQUksTUFBTSxFQUFFO2dCQUNsRixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUU3QixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDMUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtJQUNILENBQUM7O2tIQTVEVSxxQkFBcUI7c0dBQXJCLHFCQUFxQix3S0NabEMscXNDQThCQTsyRkRsQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG9CQUFvQjt3UEFLSCxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsLCBTYWZlU3R5bGUsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2JpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNWR1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdmcuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mYWItc3ZnLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1zdmctdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWItc3ZnLXZpZXdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWJTdmdWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xyXG4gIEBWaWV3Q2hpbGQoJ3N2Z2NvbnRhaW5lcicpIHN2Z2NvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuXHJcbiAgcHJpdmF0ZSB0aW1lb3V0SWQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgU1ZHU2VydmljZTogU1ZHU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzYW5pdGl6YXRpb246IERvbVNhbml0aXplcixcclxuICAgIHB1YmxpYyBNb2JpbGVTZXJ2aWNlOiBNb2JpbGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgdGhpcy5VcGRhdGVTaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuVXBkYXRlU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVTaXplKCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIHRoaXMuVXBkYXRlU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dTVkcoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dWYXJpYW50cygpKSB7XHJcbiAgICAgIGlmICh0aGlzLlNWR1NlcnZpY2UuRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0U2FmZVVSTCgpOiBTYWZlUmVzb3VyY2VVcmwge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemF0aW9uLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLlNWR1NlcnZpY2UuRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwuc3ZnICsgXCJcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbkJDQkxpbmsoKTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5PcGVuQkNCTGluayh0aGlzLlNWR1NlcnZpY2UuRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwud3VpZCArIFwiXCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFVwZGF0ZVNpemUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdmdjb250YWluZXIgIT0gdW5kZWZpbmVkKSB7XHJcblxyXG4gICAgICB2YXIgd2lkdGggPSB0aGlzLnN2Z2NvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gNjtcclxuICAgICAgdmFyIGhlaWdodCA9IHRoaXMuc3ZnY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gNjtcclxuXHJcbiAgICAgIGlmICh0aGlzLlNWR1NlcnZpY2UuVmlld2VyV2lkdGggIT0gd2lkdGggfHwgdGhpcy5TVkdTZXJ2aWNlLlZpZXdlckhlaWdodCAhPSBoZWlnaHQpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SWQpO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5TVkdTZXJ2aWNlLlVwZGF0ZVZpZXdlclNpemUod2lkdGgsIGhlaWdodCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgfSwgMzAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxvYWRlclwiICpuZ0lmPVwiU1ZHU2VydmljZS5Mb2FkaW5nXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1haW4td2luZG93XCI+XHJcbiAgPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5TaG93VmFyaWFudHMoKVwiIGNsYXNzPVwibXVsdGlwbGV2YXJpYW50c1wiPlxyXG4gICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIk11bHRpcGxlIHZhcmlhbnRzXCIpIH19XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmNicHJvZHVjdC1kaXZcIiAqbmdGb3I9XCJsZXQgYmNicHJvZHVjdCBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNlbGVjdEJDQlByb2R1Y3QoYmNicHJvZHVjdCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZilcIj5cclxuICAgICAgICAgIHt7IGJjYnByb2R1Y3QubmFtZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJtYWluLXdpbmRvdyBmbGV4LWNvbFwiICpuZ0lmPVwiU2hvd1NWRygpXCI+XHJcbiAgICA8ZGl2ICNzdmdjb250YWluZXIgY2xhc3M9XCJzdmctY29udGFpbmVyXCI+XHJcbiAgICAgIDxvYmplY3QgY2xhc3M9XCJzdmctb2JqZWN0XCIgKm5nSWY9XCJTaG93U1ZHKClcIiB0eXBlPVwiaW1hZ2Uvc3ZnK3htbFwiIFthdHRyLmRhdGFdPVwiR2V0U2FmZVVSTCgpXCI+PC9vYmplY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3ZnLXNldHRpbmdzXCIgKm5nSWY9XCJNb2JpbGVTZXJ2aWNlLlNob3dBY3Rpb25NZW51KClcIj5cclxuICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgPGFwcC1mYWItYWN0aW9ubWVudT48L2FwcC1mYWItYWN0aW9ubWVudT5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==