{"version":3,"file":"main.js","mappings":"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EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,C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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/configurator/configurator.component.ts","./src/app/configurator/configurator.component.html","./src/app/conflicts-panel/conflicts-panel.component.ts","./src/app/conflicts-panel/conflicts-panel.component.html","./src/app/enums/CompletionType.enum.ts","./src/app/enums/doorDirection.enum.ts","./src/app/enums/doorHandleType.enum.ts","./src/app/enums/doorType.enum.ts","./src/app/enums/errorTypes.enum.ts","./src/app/enums/finishTypes.enum.ts","./src/app/enums/floorTypes.enum.ts","./src/app/enums/hingeType.enum.ts","./src/app/enums/innerWallType.enum.ts","./src/app/enums/purpose.ts","./src/app/enums/siliconeColours.enum.ts","./src/app/enums/wallSide.enum.ts","./src/app/language-selector/language-selector.component.ts","./src/app/language-selector/language-selector.component.html","./src/app/lazy-translate-loader.ts","./src/app/load-configuration/load-configuration.component.ts","./src/app/load-configuration/load-configuration.component.html","./src/app/loading-indicator/loading-indicator.component.ts","./src/app/loading-indicator/loading-indicator.component.html","./src/app/loading/loading.component.ts","./src/app/loading/loading.component.html","./src/app/model-view/model-view.component.ts","./src/app/model-view/model-view.component.html","./src/app/models/OptionPage.model.ts","./src/app/models/configuration.model.ts","./src/app/models/doorModel.ts","./src/app/models/doorPosition.model.ts","./src/app/models/errorMessage.model.ts","./src/app/models/language.model.ts","./src/app/models/settings.model.ts","./src/app/models/startupConfiguration.model.ts","./src/app/models/viewboxOption.model.ts","./src/app/models/wallFinish.model.ts","./src/app/models/wallFinishType.model.ts","./src/app/models/wallFinishUpdate.model.ts","./src/app/pipes/replace.pipe.ts","./src/app/price-information/price-information.component.ts","./src/app/price-information/price-information.component.html","./src/app/services/api.service.ts","./src/app/services/appinsights.service.ts","./src/app/services/completion.service.ts","./src/app/services/configuration.service.ts","./src/app/services/error.service.ts","./src/app/services/js-pdf-font.service.ts","./src/app/services/language.service.ts","./src/app/services/modular-google-analytics.service.ts","./src/app/services/notification.service.ts","./src/app/services/onresize.service.ts","./src/app/services/order-email.service.ts","./src/app/services/pdf-generation.service.ts","./src/app/services/price.service.ts","./src/app/services/startup.service.ts","./src/app/services/step.service.ts","./src/app/services/three-d.service.ts","./src/app/settings/price-settings.ts","./src/app/shared/close/close.component.ts","./src/app/shared/close/close.component.html","./src/app/shared/error/error.component.ts","./src/app/shared/error/error.component.html","./src/app/shared/help/help.component.ts","./src/app/shared/help/help.component.html","./src/app/shared/internal-external-switch/internal-external-switch.component.ts","./src/app/shared/internal-external-switch/internal-external-switch.component.html","./src/app/shared/isomaster-red-loading/isomaster-red-loading.component.ts","./src/app/shared/isomaster-red-loading/isomaster-red-loading.component.html","./src/app/shared/isomasters-logo/isomasters-logo.component.ts","./src/app/shared/isomasters-logo/isomasters-logo.component.html","./src/app/shared/isomasters-ui/isomasters-button/isomasters-button.component.ts","./src/app/shared/isomasters-ui/isomasters-button/isomasters-button.component.html","./src/app/shared/isomasters-ui/isomasters-horizontal-viewbox/isomasters-horizontal-viewbox.component.ts","./src/app/shared/isomasters-ui/isomasters-horizontal-viewbox/isomasters-horizontal-viewbox.component.html","./src/app/shared/isomasters-ui/isomasters-input/isomasters-input.component.ts","./src/app/shared/isomasters-ui/isomasters-input/isomasters-input.component.html","./src/app/shared/isomasters-ui/isomasters-paging/isomasters-paging.component.ts","./src/app/shared/isomasters-ui/isomasters-paging/isomasters-paging.component.html","./src/app/shared/isomasters-ui/isomasters-popup/isomasters-popup.component.ts","./src/app/shared/isomasters-ui/isomasters-popup/isomasters-popup.component.html","./src/app/shared/isomasters-ui/isomasters-scrollbar/isomasters-scrollbar.component.ts","./src/app/shared/isomasters-ui/isomasters-scrollbar/isomasters-scrollbar.component.html","./src/app/shared/isomasters-ui/isomasters-slider/isomasters-slider.component.ts","./src/app/shared/isomasters-ui/isomasters-slider/isomasters-slider.component.html","./src/app/shared/isomasters-ui/isomasters-text-copy/isomasters-text-copy.component.ts","./src/app/shared/isomasters-ui/isomasters-text-copy/isomasters-text-copy.component.html","./src/app/shared/isomasters-ui/isomasters-ui.module.ts","./src/app/shared/notification/balloon-notification/balloon-notification.component.ts","./src/app/shared/notification/balloon-notification/balloon-notification.component.html","./src/app/shared/notification/input-alternatives/input-alternatives.component.ts","./src/app/shared/notification/input-alternatives/input-alternatives.component.html","./src/app/shared/notification/notification.component.ts","./src/app/shared/notification/notification.component.html","./src/app/shared/pipes/plus-min-price-pipe.module.ts","./src/app/shared/pipes/plus-min-price.pipe.ts","./src/app/shared/progressbar/progressbar.component.ts","./src/app/shared/progressbar/progressbar.component.html","./src/app/shared/summary-dialog/summary-dialog.component.ts","./src/app/shared/summary-dialog/summary-dialog.component.html","./src/app/shared/watermark/watermark.component.ts","./src/app/shared/watermark/watermark.component.html","./src/app/step-container/step-container.component.ts","./src/app/step-container/step-container.component.html","./src/app/steps/helpstep/helpstep.component.ts","./src/app/steps/helpstep/helpstep.component.html","./src/app/steps/step-buttons/step-buttons.component.ts","./src/app/steps/step-buttons/step-buttons.component.html","./src/app/steps/step-five/door-dimension-slider/door-dimension-slider.component.ts","./src/app/steps/step-five/door-dimension-slider/door-dimension-slider.component.html","./src/app/steps/step-five/step-five-slider/step-five-slider.component.ts","./src/app/steps/step-five/step-five-slider/step-five-slider.component.html","./src/app/steps/step-five/step-five.component.ts","./src/app/steps/step-five/step-five.component.html","./src/app/steps/step-four/step-four.component.ts","./src/app/steps/step-four/step-four.component.html","./src/app/steps/step-inner-walls/step-inner-walls.component.ts","./src/app/steps/step-inner-walls/step-inner-walls.component.html","./src/app/steps/step-one/step-one.component.ts","./src/app/steps/step-one/step-one.component.html","./src/app/steps/step-six/step-six.component.ts","./src/app/steps/step-six/step-six.component.html","./src/app/steps/step-three/step-three-slider/step-three-slider.component.ts","./src/app/steps/step-three/step-three-slider/step-three-slider.component.html","./src/app/steps/step-three/step-three.component.ts","./src/app/steps/step-three/step-three.component.html","./src/app/steps/step-two/step-two.component.ts","./src/app/steps/step-two/step-two.component.html","./src/app/summary-collisions/summary-collisions.component.ts","./src/app/summary-collisions/summary-collisions.component.html","./src/app/summary-container/summary-container.component.ts","./src/app/summary-container/summary-container.component.html","./src/app/summary-price-list/summary-price-list.component.ts","./src/app/summary-price-list/summary-price-list.component.html","./src/app/summary-share-demo/summary-share-demo.component.ts","./src/app/summary-share-demo/summary-share-demo.component.html","./src/app/summary-step/summary-step.component.ts","./src/app/summary-step/summary-step.component.html","./src/app/summary/summary.component.ts","./src/app/summary/summary.component.html","./src/environments/environment.test.ts","./src/main.ts","./src/settings.ts","./src/assets/i18n/ lazy ^\\.\\/.*\\.json$ namespace object"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ErrorComponent } from './shared/error/error.component';\nimport { ConfiguratorComponent } from './configurator/configurator.component';\nimport { LoadConfigurationComponent } from './load-configuration/load-configuration.component';\n\nconst routes: Routes = [\n { path: 'error', component: ErrorComponent },\n { path: 'load-configuration', component: LoadConfigurationComponent },\n { path: '**', component: ConfiguratorComponent, pathMatch: 'full' },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {})],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { StartupService } from './services/startup.service';\nimport { StepService } from './services/step.service';\nimport { debounceTime } from 'rxjs/operators';\nimport { ThreeDService } from './services/three-d.service';\nimport { AppInsightsService } from './services/appinsights.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n sharedLinkVersion = false;\n step: number;\n hideUI = true;\n\n constructor(\n translate: TranslateService,\n private activatedRoute: ActivatedRoute,\n private startupService: StartupService,\n public stepService: StepService,\n private threeDService: ThreeDService,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appInsights: AppInsightsService //Do not remove, needed to init app insights\n ) {\n translate.setDefaultLang('nl');\n translate.use('nl');\n\n document.documentElement.style.setProperty(\n '--document-height',\n document.documentElement.clientHeight.toString() + 'px'\n );\n }\n\n ngOnInit() {\n this.threeDService.finishedBuilding$.subscribe(() => {\n this.threeDService.setZoom(5);\n Array.from(document.getElementsByClassName('hidden')).forEach((el: any) => {\n el.style.transition = 'opacity 1s 2s ease-in-out';\n el.style.opacity = '1';\n });\n });\n this.stepService.stepChange$.subscribe((step: number) => {\n this.step = step;\n });\n\n this.startupService.sharedLinkConfiguration$.subscribe((data: false | string) => {\n if (data === false) {\n this.sharedLinkVersion = false;\n return;\n }\n this.sharedLinkVersion = true;\n });\n\n this.activatedRoute.queryParamMap.pipe(debounceTime(100)).subscribe(queryMap => {\n this.startupService.initialized$.next(false);\n this.startupService.readInput(queryMap);\n });\n }\n\n hasToken(): boolean {\n return !!this.startupService.token;\n }\n}\n","\n\n\n\n\n\n\n\n\n
\n
\n
\n
\n\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { ModelViewComponent } from './model-view/model-view.component';\nimport { StepContainerComponent } from './step-container/step-container.component';\nimport { StepOneComponent } from './steps/step-one/step-one.component';\nimport { StepTwoComponent } from './steps/step-two/step-two.component';\nimport { StepThreeComponent } from './steps/step-three/step-three.component';\nimport { StepFourComponent } from './steps/step-four/step-four.component';\nimport { StepFiveComponent } from './steps/step-five/step-five.component';\nimport { StepSixComponent } from './steps/step-six/step-six.component';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { LanguageSelectorComponent } from './language-selector/language-selector.component';\nimport { ProgressbarComponent } from './shared/progressbar/progressbar.component';\nimport { HelpComponent } from './shared/help/help.component';\nimport { CloseComponent } from './shared/close/close.component';\nimport { WatermarkComponent } from './shared/watermark/watermark.component';\nimport { InlineSVGModule } from 'ng-inline-svg-2';\nimport { HelpstepComponent } from './steps/helpstep/helpstep.component';\nimport { IsomastersUiModule } from './shared/isomasters-ui/isomasters-ui.module';\nimport localeEn from '@angular/common/locales/en';\nimport localeFr from '@angular/common/locales/fr';\nimport localeNl from '@angular/common/locales/nl';\nimport localeDe from '@angular/common/locales/de';\nimport localeDa from '@angular/common/locales/da';\nimport localePl from '@angular/common/locales/pl';\n\nimport { DatePipe, registerLocaleData } from '@angular/common';\nimport { PriceInformationComponent } from './price-information/price-information.component';\nimport { StepThreeSliderComponent } from './steps/step-three/step-three-slider/step-three-slider.component';\nimport { InternalExternalSwitchComponent } from './shared/internal-external-switch/internal-external-switch.component';\nimport { SummaryComponent } from './summary/summary.component';\nimport { SummaryDialogComponent } from './shared/summary-dialog/summary-dialog.component';\nimport { ErrorComponent } from './shared/error/error.component';\nimport { ConfiguratorComponent } from './configurator/configurator.component';\nimport { NotificationComponent } from './shared/notification/notification.component';\nimport { StepFiveSliderComponent } from './steps/step-five/step-five-slider/step-five-slider.component';\nimport { IsomastersLogoComponent } from './shared/isomasters-logo/isomasters-logo.component';\nimport { environment } from 'src/environments/environment';\nimport { StepButtonsComponent } from './steps/step-buttons/step-buttons.component';\nimport { SummaryPriceListComponent } from './summary-price-list/summary-price-list.component';\nimport { SummaryContainerComponent } from './summary-container/summary-container.component';\nimport { SummaryStepComponent } from './summary-step/summary-step.component';\nimport { BalloonNotificationComponent } from './shared/notification/balloon-notification/balloon-notification.component';\nimport { InputAlternativesComponent } from './shared/notification/input-alternatives/input-alternatives.component';\nimport { DoorDimensionSliderComponent } from './steps/step-five/door-dimension-slider/door-dimension-slider.component';\nimport { PlusMinPricePipeModule } from './shared/pipes/plus-min-price-pipe.module';\nimport { NgxGoogleAnalyticsModule } from 'ngx-google-analytics';\nimport { StepInnerWallsComponent } from './steps/step-inner-walls/step-inner-walls.component';\nimport { SummaryCollisionsComponent } from './summary-collisions/summary-collisions.component';\nimport { IsomasterRedLoadingComponent } from './shared/isomaster-red-loading/isomaster-red-loading.component';\nimport { LoadConfigurationComponent } from './load-configuration/load-configuration.component';\nimport { LoadingComponent } from './loading/loading.component';\nimport { SummaryShareDemoComponent } from './summary-share-demo/summary-share-demo.component';\nimport { LoadingIndicatorComponent } from './loading-indicator/loading-indicator.component';\nimport { ConflictsPanelComponent } from './conflicts-panel/conflicts-panel.component';\nimport { ReplacePipe } from './pipes/replace.pipe';\nimport { LazyTranslateLoader } from './lazy-translate-loader';\n\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localeEn, 'en');\nregisterLocaleData(localeFr, 'fr');\nregisterLocaleData(localeDe, 'de');\nregisterLocaleData(localeDa, 'da');\nregisterLocaleData(localePl, 'pl');\n\n@NgModule({\n declarations: [\n AppComponent,\n ModelViewComponent,\n StepContainerComponent,\n StepOneComponent,\n StepTwoComponent,\n StepThreeComponent,\n StepFourComponent,\n StepFiveComponent,\n StepSixComponent,\n LanguageSelectorComponent,\n ProgressbarComponent,\n HelpComponent,\n CloseComponent,\n WatermarkComponent,\n HelpstepComponent,\n PriceInformationComponent,\n StepThreeSliderComponent,\n InternalExternalSwitchComponent,\n SummaryComponent,\n SummaryDialogComponent,\n ErrorComponent,\n ConfiguratorComponent,\n NotificationComponent,\n StepFiveSliderComponent,\n IsomastersLogoComponent,\n StepButtonsComponent,\n SummaryPriceListComponent,\n SummaryContainerComponent,\n SummaryStepComponent,\n BalloonNotificationComponent,\n InputAlternativesComponent,\n DoorDimensionSliderComponent,\n StepInnerWallsComponent,\n SummaryCollisionsComponent,\n IsomasterRedLoadingComponent,\n LoadConfigurationComponent,\n LoadingComponent,\n SummaryShareDemoComponent,\n LoadingIndicatorComponent,\n ConflictsPanelComponent,\n ReplacePipe,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n FlexLayoutModule,\n HttpClientModule,\n NgxGoogleAnalyticsModule.forRoot(environment.googleAnalyticsTrackingCode),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useClass: LazyTranslateLoader,\n },\n }),\n InlineSVGModule.forRoot(),\n IsomastersUiModule,\n PlusMinPricePipeModule,\n ],\n providers: [HttpClient, DatePipe],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component, ElementRef, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { StartupService } from '../services/startup.service';\nimport { StepService } from '../services/step.service';\nimport { ThreeDService } from '../services/three-d.service';\n\n@Component({\n selector: 'app-configurator',\n templateUrl: './configurator.component.html',\n styleUrls: ['./configurator.component.scss'],\n})\nexport class ConfiguratorComponent implements OnInit {\n sharedLinkVersion = true;\n hideUI = true;\n loading = true;\n @ViewChildren('hideforui') hiddenElements: QueryList;\n\n constructor(\n private startupService: StartupService,\n private threeDService: ThreeDService,\n private stepService: StepService\n ) {\n this.stepService.loading$.subscribe(loading => (this.loading = loading));\n }\n\n ngOnInit() {\n this.threeDService.finishedBuilding$.subscribe(() => {\n Array.from(document.getElementsByClassName('hidden')).forEach((el: any) => {\n el.style.transition = 'opacity 1s 2s ease-in-out';\n el.style.opacity = '1';\n setTimeout(() => {\n el.style.visibility = 'unset';\n }, 3500);\n });\n this.loading = false;\n });\n this.startupService.sharedLinkConfiguration$.subscribe((data: false | string) => {\n if (data === false) {\n this.sharedLinkVersion = false;\n return;\n }\n this.sharedLinkVersion = true;\n });\n }\n}\n","\n\n\n\n\n\n\n","import { DecimalPipe } from '@angular/common';\nimport { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WallSide } from '../enums/wallSide.enum';\nimport { CollisionPoint } from '../models/collisionPoint.model';\nimport { Conflicts } from '../models/conflicts.model';\nimport { InnerWall } from '../models/innerWall.model';\nimport { LanguageService } from '../services/language.service';\nimport { ThreeDService } from '../services/three-d.service';\n\n@Component({\n selector: 'app-conflicts-panel',\n templateUrl: './conflicts-panel.component.html',\n styleUrls: ['./conflicts-panel.component.scss'],\n})\nexport class ConflictsPanelComponent implements OnInit {\n conflicts: Conflicts = {} as Conflicts;\n decimalPipe: DecimalPipe;\n\n constructor(\n private threeDService: ThreeDService,\n private cd: ChangeDetectorRef,\n private translateService: TranslateService,\n private languageService: LanguageService\n ) {\n this.decimalPipe = new DecimalPipe(this.currentLocale);\n }\n get currentLocale() {\n return this.languageService.currentLanguage;\n }\n get hasAny() {\n return this.conflicts.collisions.length > 0 || this.conflicts.invalidPanels.length > 0;\n }\n ngOnInit(): void {\n this.threeDService.conflicts$.subscribe(conflicts => {\n this.conflicts = conflicts;\n this.cd.detectChanges();\n });\n }\n\n get totalInstanceCount() {\n return this.conflicts.collisions.length + this.conflicts.invalidPanels.reduce((a, b) => (a += b.count), 0);\n }\n\n getTitleForCollision(collisionPoint: CollisionPoint): string {\n return (\n this.getADescriptionForCollision(collisionPoint) +\n ' ' +\n this.translateService.instant('AND') +\n ' ' +\n this.getBDescriptionForCollision(collisionPoint)\n );\n }\n\n getADescriptionForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshAIsDoor) {\n text +=\n this.translateService.instant('DOOR') +\n ' ' +\n this.translateService.instant('WALL.' + collisionPoint.doorA.side);\n if (collisionPoint.doorA.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.doorA.innerWallId)}`;\n }\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallA.side);\n if (collisionPoint.wallA.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallA.innerWall.id)}`;\n }\n }\n return text;\n }\n getBDescriptionForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshBIsDoor) {\n text +=\n this.translateService.instant('DOOR') +\n ' ' +\n this.translateService.instant('WALL.' + collisionPoint.doorB.side);\n if (collisionPoint.doorB.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.doorB.innerWallId)}`;\n }\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallB.side);\n if (collisionPoint.wallB.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallB.innerWall.id)}\\n`;\n text += `${this.translateService.instant('WALL.' + collisionPoint.wallB.innerWall.placedOnSide)}`;\n }\n }\n return text;\n }\n\n getATextForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshAIsDoor) {\n text += this.translateService.instant('DOOR');\n text += ` ${this.numberToString(collisionPoint.doorA.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallA.side);\n if (collisionPoint.wallA.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallA.innerWall.id)}`;\n text += '\\n';\n text += `${this.translateService.instant(\n 'WALL.' + collisionPoint.wallA.innerWall.placedOnSide\n )} ${this.numberToString(collisionPoint.wallA.innerWall.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n }\n }\n return text;\n }\n getBTextForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshBIsDoor) {\n text += this.translateService.instant('DOOR');\n text += ` ${this.numberToString(collisionPoint.doorB.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallB.side);\n if (collisionPoint.wallB.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallB.innerWall.id)}\\n`;\n text += `${this.translateService.instant(\n 'WALL.' + collisionPoint.wallB.innerWall.placedOnSide\n )} ${this.numberToString(collisionPoint.wallB.innerWall.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n }\n }\n return text;\n }\n\n numberToString(value: number): string {\n return this.decimalPipe.transform(value, '1.0-0');\n }\n\n getId(id: string) {\n if (!id) {\n return '';\n }\n const names = id.split('-');\n if (names.length > 1) {\n return +names[1] + 1;\n }\n return '';\n }\n getLeft(iw: InnerWall) {\n return iw.left;\n }\n}\n","
\n
{{ 'CONFLICTS' | translate }} ({{ totalInstanceCount }})
\n
\n \n
\n
\n {{ 'INVALID_PANEL.TITLE' | translate | replace: '[SIZE]' : invalidPanel.size }}\n 1\">({{ invalidPanel.count }})\n
\n
{{ 'INVALID_PANEL.DETAIL' | translate | replace: '[SIZE]' : invalidPanel.size }}
\n
\n
\n
\n \n
\n
{{ getTitleForCollision(collision) }}
\n
{{ getATextForCollision(collision) }}
\n
{{ getBTextForCollision(collision) }}
\n
\n
\n
\n {{ 'CONFLICTS_RESOLVE' | translate }}\n
\n
\n","export enum CompletionType {\n None = 0,\n Completed = 1,\n Cancelled = 2,\n}\n","export enum DoorDirection {\n left = 0,\n right = 1,\n}\n","export enum DoorHandleType {\n euro2015 = 'Euro2015',\n euro2000 = 'Euro2000',\n euro2016 = 'Euro2016',\n null = 'None',\n}\n","export enum DoorType {\n Turn,\n Slide,\n}\n","export enum ErrorTypes {\n Generic = 'ERROR.GENERIC',\n ConfigurationNotFound = 'ERROR.CONFIGURATIONNOTFOUND',\n AxTokenNotFound = 'ERROR.AXTOKENNOTFOUND',\n IframeNotConnected = 'ERROR.IFRAMENOTCONNECTED',\n BackendNotFound = 'ERROR.BACKENDNOTFOUND',\n InvalidAxToken = 'ERROR.INVALIDAXTOKEN',\n}\n","export enum FinishTypes {\n STEEL = 'STEEL',\n STEEL_PET55 = 'STEELPET55',\n RVS304_ROUND_BRUSH = 'RVS304ROUNDBRUSH',\n RVS304_LINEN = 'RVS304LINEN',\n RVS304_COLLED_ROLLED = 'RVS304COLLEDROLLED',\n RVS304_LINE_BRUSH = 'RVS304LINEBRUSH',\n RVS304_DESIGN_5WL = 'RVS304DESIGN5WL',\n RVS316_ROUND_BRUSH = 'RVS316ROUNDBRUSH',\n}\n","export enum FloorTypes {\n NONE = 'NONE',\n ANTISLIP = 'ANTISLIP',\n DURAFLOOR = 'DURAFLOOR',\n REINFORCEDANTISLIP = 'REINFORCEDANTISLIP',\n ALUMINUM25 = 'ALUMINUM25',\n ALUMINUM35 = 'ALUMINUM35',\n STEELSMOOTH3 = 'STEELSMOOTH3',\n STEELANTISLIP5 = 'STEELANTISLIP5',\n RVSANTISLIPR13 = 'RVSANTISLIPR13',\n}\n","export enum HingeType {\n normal = 'Normal',\n normalNotRising = 'NormalNotRising',\n chrome = 'Chrome',\n}\n","export enum InnerWallType {\n threeway,\n lProfile,\n}\n","export enum Purpose {\n Cooling,\n Freezing,\n Both,\n}\n","export enum SiliconeColours {\n White,\n Transparent,\n Bronze,\n}\n","export enum WallSide {\n north = 0,\n east = 1,\n south = 2,\n west = 3,\n inner = 4,\n ceiling = 5,\n floor = 6,\n}\n","import { Component, OnInit } from '@angular/core';\nimport { LanguageService } from '../services/language.service';\n\n@Component({\n selector: 'app-language-selector',\n templateUrl: './language-selector.component.html',\n styleUrls: ['./language-selector.component.scss'],\n})\nexport class LanguageSelectorComponent implements OnInit {\n constructor(private languageService: LanguageService) {}\n\n get currentLanguage(): string {\n return this.languageService.currentLanguage;\n }\n\n ngOnInit() {}\n\n setLanguage(language: string) {\n this.languageService.setLanguage(language);\n }\n}\n","
\n \n
\n","import { TranslateLoader } from '@ngx-translate/core';\nimport { from, Observable } from 'rxjs';\n\nexport class LazyTranslateLoader implements TranslateLoader {\n getTranslation(lang: string): Observable {\n return from(import(`../assets/i18n/${lang}.json`));\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ErrorTypes } from '../enums/errorTypes.enum';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { ErrorService } from '../services/error.service';\nimport { StartupService } from '../services/startup.service';\n\n@Component({\n selector: 'app-load-configuration',\n templateUrl: './load-configuration.component.html',\n styleUrls: ['./load-configuration.component.scss'],\n})\nexport class LoadConfigurationComponent implements OnInit {\n configurationId = '';\n loading = false;\n exists = true;\n invalidGuid = false;\n\n constructor(\n private startupService: StartupService,\n private configurationService: ConfigurationService,\n private router: Router,\n private errorService: ErrorService,\n private activatedRoute: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n if (!this.activatedRoute.snapshot.queryParamMap.has('token')) {\n this.router.navigate(['/']);\n }\n }\n\n updateConfiguration(configurationId: string) {\n this.configurationId = configurationId;\n }\n\n load() {\n if (this.configurationId) {\n this.loading = true;\n this.exists = true;\n this.invalidGuid = false;\n this.configurationService.doesConfigurationExist(this.configurationId).subscribe(\n result => {\n this.loading = false;\n if (result === null) {\n this.invalidGuid = true;\n } else if (result) {\n this.startupService.loadConfiguration(this.configurationId);\n this.router.navigate(['/'], { queryParamsHandling: 'merge' });\n } else {\n this.exists = false;\n }\n },\n err => this.errorService.throwError(ErrorTypes.BackendNotFound, 'ConfigurationExists' + err.status)\n );\n }\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n {{ 'LOAD_CONFIGURATION.TITLE' | translate }}\n

{{ 'LOAD_CONFIGURATION.DESCRIPTION' | translate }}

\n
\n \n
\n
\n \n
{{ 'LOAD_CONFIGURATION.LOAD' | translate }}
\n
\n
\n
\n {{ 'LOAD_CONFIGURATION.DOES_NOT_EXIST' | translate }}\n
\n
\n {{ 'LOAD_CONFIGURATION.INVALID_GUID' | translate }}\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n})\nexport class LoadingIndicatorComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss'],\n})\nexport class LoadingComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n \n
{{ 'LOAD_CONFIGURATION.VALIDATING' | translate }}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { ThreeDService } from '../services/three-d.service';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { ErrorService } from '../services/error.service';\nimport { ErrorTypes } from '../enums/errorTypes.enum';\nimport { StartupService } from '../services/startup.service';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-model-view',\n templateUrl: './model-view.component.html',\n styleUrls: ['./model-view.component.scss'],\n})\nexport class ModelViewComponent implements OnInit, AfterViewInit {\n @ViewChild('iframe') iframeElement;\n init = false;\n configurationReady = false;\n timeOutCounter = 0;\n safeResourceUrl: SafeResourceUrl;\n\n get visibility() {\n return this.configurationReady ? 'visible' : 'hidden';\n }\n\n private get iframe() {\n return this.iframeElement.nativeElement as HTMLIFrameElement;\n }\n\n constructor(\n private threeDService: ThreeDService,\n private configurationService: ConfigurationService,\n private errorService: ErrorService,\n private startUpService: StartupService,\n private domSanitizer: DomSanitizer,\n public cd: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.startUpService.initialized$.subscribe((ready: boolean) => {\n this.configurationReady = ready;\n if (ready) {\n let url = 'assets/3d/index.html';\n if (!this.hasToken()) {\n url += '?nologo=true';\n }\n this.safeResourceUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(url);\n }\n });\n\n this.setVisibilityEvents();\n }\n\n setVisibilityEvents() {\n document.addEventListener('visibilitychange', () => this.handleVisibilityChange(), false);\n }\n\n handleVisibilityChange() {\n if (!document.hidden && !this.init) {\n this.timeOutCounter = 0;\n setTimeout(() => {\n this.runRecursiveLoader();\n });\n }\n }\n\n ngAfterViewInit() {\n if (!document.hidden) {\n this.runRecursiveLoader();\n }\n }\n\n runRecursiveLoader() {\n if (document.hidden) {\n return;\n }\n setTimeout(() => {\n if (this.iframe.contentWindow) {\n this.setIframeResetModel();\n }\n if (this.errorService.errorThrown) {\n return;\n }\n if (this.timeOutCounter > 500) {\n this.errorService.throwError(ErrorTypes.IframeNotConnected);\n return;\n }\n\n if (!this.init) {\n if (document.readyState === 'complete') {\n this.timeOutCounter++;\n }\n this.runRecursiveLoader();\n }\n }, 20);\n }\n\n setIframeResetModel() {\n if (this.init) {\n return;\n }\n this.init = this.threeDService.setIframe(this.iframe.contentWindow);\n setTimeout(() => {\n this.configurationService.updatePrice$.emit(this.configurationService.configuration);\n });\n }\n\n private hasToken(): boolean {\n const hasIt = !!this.startUpService.token;\n return hasIt;\n }\n}\n","\n
\n","export class OptionPage {\n active = false;\n pageItems: any[];\n index: number;\n}\n","import { Settings } from './settings.model';\nimport { CompletionType } from '../enums/CompletionType.enum';\n\nexport class Configuration {\n configurationId: string;\n settings: Settings = new Settings();\n language: string;\n completionType: CompletionType = CompletionType.None;\n\n clone(): Configuration {\n const newConfig = new Configuration();\n newConfig.configurationId = this.configurationId;\n newConfig.settings = this.settings.clone();\n newConfig.settings.doorSettings = [];\n this.settings.doorSettings.forEach(d => {\n newConfig.settings.doorSettings.push(d.clone());\n });\n this.settings.innerWalls.forEach(iw => {\n newConfig.settings.innerWalls.push(Object.assign({}, iw));\n });\n newConfig.language = this.language;\n return newConfig;\n }\n}\n","import { DoorType } from '../enums/doorType.enum';\nimport { DoorDirection } from '../enums/doorDirection.enum';\nimport { HingeType } from '../enums/hingeType.enum';\nimport { DoorHandleType } from '../enums/doorHandleType.enum';\n\nexport class DoorModel {\n panelWidth: number;\n panelHeight: number;\n\n type: DoorType;\n direction: DoorDirection;\n openingWidth: number;\n openingHeight: number;\n hingeType: HingeType;\n handleType: DoorHandleType;\n\n constructor(\n type: DoorType,\n openingWidth: number,\n openingHeight: number,\n panelWidth: number,\n panelHeight: number,\n direction?: DoorDirection,\n doorHandleType = DoorHandleType.euro2015,\n hingeType = HingeType.normal\n ) {\n this.openingHeight = openingHeight;\n this.openingWidth = openingWidth;\n this.panelWidth = panelWidth;\n this.panelHeight = panelHeight;\n this.type = type || DoorType.Turn;\n this.direction = direction || DoorDirection.left;\n this.hingeType = hingeType;\n this.handleType = doorHandleType;\n }\n\n public getPanelHeight(): number {\n return this.panelHeight;\n }\n\n public setPanelHeight(panelHeight: number): void {\n this.panelHeight = panelHeight;\n }\n\n public getOpeningWidth(): number {\n return this.openingWidth;\n }\n\n public getOpeningHeight(): number {\n return this.openingHeight;\n }\n\n public getType(): DoorType {\n return this.type;\n }\n\n public getHingeType(): HingeType {\n return this.hingeType;\n }\n\n public getHandleType(): DoorHandleType {\n return this.handleType;\n }\n\n public getDoorDirection(): DoorDirection {\n return this.direction;\n }\n}\n","import { WallSide } from '../enums/wallSide.enum';\nimport { DoorType } from '../enums/doorType.enum';\nimport { DoorDirection } from '../enums/doorDirection.enum';\nimport { DoorModel } from './doorModel';\nimport { FinishTypes } from '../enums/finishTypes.enum';\nimport { HingeType } from '../enums/hingeType.enum';\nimport { DoorHandleType } from '../enums/doorHandleType.enum';\n\nexport class DoorPosition {\n id: number;\n doorModel: DoorModel;\n left: number;\n side: WallSide;\n frameInteriorFinish: FinishTypes;\n frameExteriorFinish: FinishTypes;\n selected: boolean;\n mesh?: any;\n image = 'assets/svg/close.svg';\n panelHeight: number;\n salesPrice: false | number;\n hingeType?: HingeType;\n doorHandleType?: DoorHandleType;\n innerWallId?: string;\n backPanelMaterial: string;\n frontPanelMaterial: string;\n leafInteriorFinish: FinishTypes = FinishTypes.STEEL;\n leafExteriorFinish: FinishTypes = FinishTypes.STEEL;\n\n constructor(\n id: number,\n left: number,\n side: WallSide,\n openingWidth: number,\n openingHeight: number,\n panelWidth: number,\n panelHeight: number,\n frameInteriorFinish: FinishTypes,\n frameExteriorFinish: FinishTypes,\n leafInteriorFinish?: FinishTypes,\n leafExteriorFinish?: FinishTypes,\n type?: DoorType,\n direction?: DoorDirection,\n hingeType?: HingeType,\n doorHandleType?: DoorHandleType,\n innerWallId?: string\n ) {\n this.id = id;\n this.doorModel = null;\n this.doorModel = new DoorModel(type, openingWidth, openingHeight, panelWidth, panelHeight, direction);\n this.left = left !== undefined ? left : 300;\n this.side = side !== undefined ? side : WallSide.south;\n this.panelHeight = panelHeight;\n this.frameExteriorFinish = frameExteriorFinish;\n this.frameInteriorFinish = frameInteriorFinish;\n this.setLeafExteriorFinish(leafExteriorFinish || FinishTypes.STEEL);\n this.setLeafInteriorFinish(leafInteriorFinish || FinishTypes.STEEL);\n this.hingeType = hingeType || HingeType.normal;\n this.doorHandleType = doorHandleType || DoorHandleType.euro2015;\n this.innerWallId = innerWallId;\n }\n\n get direction(): number {\n return this.doorModel.direction;\n }\n\n set direction(value: number) {\n this.doorModel.direction = value;\n }\n\n setLeafInteriorFinish(value: FinishTypes) {\n this.leafInteriorFinish = value;\n this.backPanelMaterial = this.materialFromFinishType(value);\n }\n\n setLeafExteriorFinish(value: FinishTypes) {\n this.leafExteriorFinish = value;\n this.frontPanelMaterial = this.materialFromFinishType(value);\n }\n\n materialFromFinishType(finishType: FinishTypes): string {\n switch (finishType) {\n case FinishTypes.STEEL:\n case FinishTypes.STEEL_PET55:\n return '#FFFFFF';\n case FinishTypes.RVS304_ROUND_BRUSH:\n case FinishTypes.RVS316_ROUND_BRUSH:\n return 'rvs-circular';\n case FinishTypes.RVS304_DESIGN_5WL:\n case FinishTypes.RVS304_LINEN:\n return 'rvs-plate';\n case FinishTypes.RVS304_COLLED_ROLLED:\n case FinishTypes.RVS304_LINE_BRUSH:\n return 'rvs';\n }\n }\n\n equals(door: DoorPosition) {\n return door ? this.left === door.left && this.side === door.side : false;\n }\n\n clone(): DoorPosition {\n const clone = new DoorPosition(\n this.id,\n this.left,\n this.side,\n this.doorModel.openingWidth,\n this.doorModel.openingHeight,\n this.doorModel.panelWidth,\n this.doorModel.panelHeight,\n this.frameInteriorFinish,\n this.frameExteriorFinish,\n this.leafInteriorFinish,\n this.leafExteriorFinish,\n this.doorModel.type,\n this.doorModel.direction,\n this.hingeType,\n this.doorHandleType,\n this.innerWallId\n );\n return clone;\n }\n}\n","import { ErrorTypes } from '../enums/errorTypes.enum';\n\nexport class ErrorMessage {\n errorType: ErrorTypes;\n message?: string;\n\n constructor(errorType: ErrorTypes, message?: string) {\n this.errorType = errorType;\n if (message) {\n this.message = message;\n }\n }\n}\n","export class Language {\n private _language: string;\n private twoLetterCountryCodeLength = 2;\n private lcidDecimal = 4;\n private lcidString = 5;\n\n get language(): string {\n return this._language;\n }\n\n constructor(language: string) {\n if (language.length === this.twoLetterCountryCodeLength || language.length === this.lcidString) {\n this._language = language.toLowerCase().substring(0, 2);\n } else if (language.length === this.lcidDecimal && !isNaN(+language)) {\n switch (+language) {\n case 1033:\n case 2057:\n this._language = 'en';\n break;\n case 1043:\n case 2067:\n this._language = 'nl';\n break;\n case 1036:\n case 2060:\n this._language = 'fr';\n break;\n case 3079:\n case 1031:\n case 5127:\n case 4103:\n case 2055:\n this._language = 'de';\n break;\n case 1030:\n this._language = 'da';\n break;\n }\n }\n }\n}\n","import { Purpose } from '../enums/purpose';\nimport { FloorTypes } from '../enums/floorTypes.enum';\nimport { DoorPosition } from './doorPosition.model';\nimport { WallFinish } from './wallFinish.model';\nimport { WallSide } from '../enums/wallSide.enum';\nimport { DoorType } from '../enums/doorType.enum';\nimport { FinishTypes } from '../enums/finishTypes.enum';\nimport { InnerWall } from './innerWall.model';\nimport { DoorDirection } from '../enums/doorDirection.enum';\nimport { HingeType } from '../enums/hingeType.enum';\nimport { DoorHandleType } from '../enums/doorHandleType.enum';\n\nexport class Settings {\n purpose: Purpose = Purpose.Cooling;\n wallThickness = 80;\n lengthInMM = 2100;\n widthInMM = 2100;\n heightInMM = 2100;\n innerWalls: InnerWall[] = [];\n floorType = FloorTypes.DURAFLOOR;\n sunkenFloor = false;\n ventilationProfiles = true;\n ceilingMoldings = false;\n _doorSettings: DoorPosition[] = [\n new DoorPosition(\n 1,\n 600,\n WallSide.south,\n 900,\n 1985,\n 1200,\n 2100,\n FinishTypes.STEEL,\n FinishTypes.STEEL,\n FinishTypes.STEEL,\n FinishTypes.STEEL,\n DoorType.Turn,\n DoorDirection.left,\n HingeType.normal,\n DoorHandleType.euro2015\n ),\n ];\n\n wallFinishes: Record;\n\n plinthsInside = false;\n plinthsOutside = false;\n itemId = 'PBM.000.002';\n salesPrice: number;\n salesTotal: number;\n\n constructor() {\n this.wallFinishes = {\n [WallSide.north]: new WallFinish(WallSide.north),\n [WallSide.east]: new WallFinish(WallSide.east),\n [WallSide.south]: new WallFinish(WallSide.south),\n [WallSide.west]: new WallFinish(WallSide.west),\n [WallSide.inner]: new WallFinish(WallSide.inner),\n [WallSide.ceiling]: new WallFinish(WallSide.ceiling),\n [WallSide.floor]: new WallFinish(WallSide.floor),\n };\n }\n get doorSettings(): DoorPosition[] {\n return this._doorSettings;\n }\n\n set doorSettings(value: DoorPosition[]) {\n this._doorSettings = value;\n }\n\n clone(): Settings {\n const clone = new Settings();\n clone._doorSettings = [];\n this._doorSettings.forEach(ds => {\n const newSetting = ds.clone();\n clone._doorSettings.push(newSetting);\n });\n if (this.ceilingMoldings !== undefined) {\n clone.ceilingMoldings = this.ceilingMoldings.valueOf();\n }\n if (this.floorType !== undefined) {\n clone.floorType = this.floorType.valueOf() as FloorTypes;\n }\n if (this.heightInMM !== undefined) {\n clone.heightInMM = this.heightInMM.valueOf();\n }\n if (this.itemId !== undefined) {\n clone.itemId = this.itemId.valueOf();\n }\n if (this.lengthInMM !== undefined) {\n clone.lengthInMM = this.lengthInMM.valueOf();\n }\n if (this.plinthsInside !== undefined) {\n clone.plinthsInside = this.plinthsInside.valueOf();\n }\n if (this.plinthsOutside !== undefined) {\n clone.plinthsOutside = this.plinthsOutside.valueOf();\n }\n if (this.purpose !== undefined) {\n clone.purpose = this.purpose.valueOf();\n }\n if (this.salesPrice !== undefined) {\n clone.salesPrice = this.salesPrice.valueOf();\n }\n if (this.salesTotal !== undefined) {\n clone.salesTotal = this.salesTotal.valueOf();\n }\n\n if (this.sunkenFloor !== undefined) {\n clone.sunkenFloor = this.sunkenFloor.valueOf();\n }\n if (this.ventilationProfiles !== undefined) {\n clone.ventilationProfiles = this.ventilationProfiles.valueOf();\n }\n\n for (let i = 0; i < Object.values(this.wallFinishes).length; i++) {\n clone.wallFinishes[i] = Object.assign(new WallFinish(0), this.wallFinishes[i]);\n }\n\n if (this.wallThickness !== undefined) {\n clone.wallThickness = this.wallThickness.valueOf();\n }\n if (this.widthInMM !== undefined) {\n clone.widthInMM = this.widthInMM.valueOf();\n }\n return clone;\n }\n}\n","import { Language } from './language.model';\n\nexport class StartupConfiguration {\n itemId: string;\n configurationId: string;\n language: Language;\n token: string;\n}\n","import { EventEmitter } from '@angular/core';\n\nexport class ViewboxOption {\n set selected(value: boolean) {\n this._selected = value;\n if (this._selected) {\n this.selected$.emit(value);\n }\n }\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected?: boolean;\n description: string;\n content: string;\n option: T;\n link?: string;\n priceChange?: number;\n selected$?: EventEmitter = new EventEmitter();\n\n constructor(selected: boolean, description: string, content: string, option: any, link?: string) {\n this._selected = selected;\n this.description = description;\n this.content = content;\n this.option = option;\n this.link = link;\n }\n}\n","import { WallSide } from '../enums/wallSide.enum';\nimport { FinishTypes } from '../enums/finishTypes.enum';\n\nexport class WallFinish {\n side: WallSide;\n interior: FinishTypes;\n exterior: FinishTypes;\n\n constructor(side: WallSide, exterior?: FinishTypes, interior?: FinishTypes) {\n this.side = side;\n this.interior = interior !== undefined ? interior : FinishTypes.STEEL;\n this.exterior = exterior !== undefined ? exterior : FinishTypes.STEEL;\n }\n}\n","import { ViewboxOption } from './viewboxOption.model';\n\nexport class ViewboxOptionWithPrice extends ViewboxOption {\n priceChange?: any;\n\n constructor(selected: boolean, description: string, content: string, option: T, link?: string) {\n super(selected, description, content, option, link);\n }\n}\n","import { WallSide } from '../enums/wallSide.enum';\nimport { FinishTypes } from '../enums/finishTypes.enum';\n\nexport class WallFinishUpdate {\n wallSide: WallSide;\n finishType: FinishTypes;\n exterior: boolean;\n innerWallId: string;\n\n constructor(wallSide: WallSide, finishType: FinishTypes, exterior: boolean, innerWallId?: string) {\n this.wallSide = wallSide;\n this.finishType = finishType;\n this.exterior = exterior;\n this.innerWallId = innerWallId;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'replace',\n})\nexport class ReplacePipe implements PipeTransform {\n transform(value: string, from: string, to: string): string {\n return value.replace(from, to);\n }\n}\n","import { Component, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { PriceInformation } from '../models/price-information';\nimport { PriceService } from '../services/price.service';\nimport { LanguageService } from '../services/language.service';\nimport { StartupService } from '../services/startup.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ConfigurationService } from '../services/configuration.service';\n\n@Component({\n selector: 'app-price-information',\n templateUrl: './price-information.component.html',\n styleUrls: ['./price-information.component.scss'],\n})\nexport class PriceInformationComponent implements OnInit, OnDestroy {\n private unsubscribe: Subject = new Subject();\n priceLoading: boolean;\n price: number;\n invalid = false;\n showPrices: boolean;\n\n constructor(\n private priceService: PriceService,\n private languageService: LanguageService,\n private changeDetector: ChangeDetectorRef,\n private startupService: StartupService,\n private configurationService: ConfigurationService\n ) {}\n\n ngOnInit() {\n this.startupService.priceEnabledSetting$.pipe(takeUntil(this.unsubscribe)).subscribe((enabled: boolean) => {\n this.showPrices = enabled;\n });\n this.priceService.priceInformation$\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((priceInformation: PriceInformation) => {\n this.updatePrice(priceInformation);\n });\n\n this.configurationService.furthestStepVisitedUpdated$.subscribe(() => {\n this.changeDetector.detectChanges();\n });\n }\n get visible(): boolean {\n return this.showPrices && this.configurationService.furthestStepVisited > 2;\n }\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.unsubscribe();\n }\n\n updatePrice(priceInformation: PriceInformation) {\n if (priceInformation.loading) {\n this.priceLoading = true;\n this.changeDetector.detectChanges();\n return;\n }\n this.priceLoading = false;\n this.price = priceInformation.price;\n if (priceInformation.invalid) {\n this.invalid = true;\n } else {\n this.invalid = false;\n }\n\n this.changeDetector.detectChanges();\n }\n get currentLocale() {\n return this.languageService.currentLanguage;\n }\n}\n","
\n
\n
{{ 'STEPCONTAINER.GROSSPRICE' | translate }}
\n
\n
\n {{ price | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}\n
\n
?
\n
...
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { environment } from '../../environments/environment';\nimport { Observable } from 'rxjs';\nimport { DoorPrice } from '../models/doorPrice.model';\nimport { StartupService } from './startup.service';\nimport { DoorHandleType } from '../enums/doorHandleType.enum';\nimport { HingeType } from '../enums/hingeType.enum';\nimport { DoorPriceRequest } from '../interfaces/door-price-request.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n private readonly _apiPrefix = environment.backendUrl;\n private readonly _customHeaders: HttpHeaders;\n\n constructor(\n private httpClient: HttpClient,\n private startupService: StartupService\n ) {\n this._customHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });\n }\n\n public getUrlPrefix() {\n return this._apiPrefix;\n }\n\n public getOptions(responseType = 'json'): any {\n return {\n observe: 'response',\n headers: this._customHeaders,\n responseType,\n };\n }\n\n public post(partialUrl: string, body: any, responseType = 'json'): Observable {\n let url = this.getUrlPrefix() + partialUrl;\n if (this.startupService.token) {\n url = url + '?token=' + this.startupService.token;\n }\n return this.httpClient.post(url, body, this.getOptions(responseType));\n }\n\n get(partialUrl: string): Observable {\n let url = this.getUrlPrefix() + partialUrl;\n if (this.startupService.token) {\n url = url + '?token=' + this.startupService.token;\n }\n return this.httpClient.get(url);\n }\n\n getDoorPrice(\n type: string,\n height: number,\n width: number,\n isFreezer: boolean,\n interiorFinish: string,\n exteriorFinish: string,\n doorHandleType: DoorHandleType,\n hingeType: HingeType\n ): Observable {\n let url = this.getUrlPrefix() + 'api/prices/doors/';\n const request = {\n doorHandleType,\n exteriorFinish,\n height,\n hingeType,\n interiorFinish,\n isFreezer,\n type,\n width,\n } as DoorPriceRequest;\n if (this.startupService.token) {\n url = url + '?token=' + this.startupService.token;\n }\n return this.httpClient.post(url, request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppInsightsService {\n appInsights: ApplicationInsights;\n constructor() {\n this.appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: environment.applicationInsightsInstrumentationKey,\n enableAutoRouteTracking: true, // option to log all route changes\n },\n });\n this.appInsights.loadAppInsights();\n }\n\n logPageView(name?: string, url?: string) {\n // option to call manually\n this.appInsights.trackPageView({\n name: name,\n uri: url,\n });\n }\n startPageTrack(name?: string) {\n this.appInsights.startTrackPage(name);\n }\n stopPageTrack(name?: string, url?: string, properties?: any) {\n this.appInsights.stopTrackPage(name, url, properties);\n }\n\n logEvent(name: string, properties?: { [key: string]: any }) {\n this.appInsights.trackEvent({ name: name }, properties);\n }\n\n logMetric(name: string, average: number, properties?: { [key: string]: any }) {\n this.appInsights.trackMetric({ name: name, average: average }, properties);\n }\n\n logException(exception: Error, severityLevel?: number) {\n this.appInsights.trackException({ exception: exception, severityLevel: severityLevel });\n }\n\n logTrace(message: string, properties?: { [key: string]: any }) {\n this.appInsights.trackTrace({ message: message }, properties);\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CompletionService {\n terminated$: EventEmitter = new EventEmitter();\n completed$: EventEmitter = new EventEmitter();\n constructor() {}\n\n terminate() {\n this.terminated$.emit();\n parent.postMessage('ConfiguratorClose', environment.webshopUrl);\n }\n\n complete(configId: string, itemId: string) {\n this.completed$.emit();\n parent.postMessage(`ConfiguratorComplete|${configId}|${itemId}`, environment.webshopUrl);\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { Configuration } from '../models/configuration.model';\nimport { Purpose } from '../enums/purpose';\nimport { PriceService } from './price.service';\nimport { ThreeDService } from './three-d.service';\nimport { ApiService } from './api.service';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { FloorType } from '../models/floorType.model';\nimport { FloorTypes } from '../enums/floorTypes.enum';\nimport { StartupService } from './startup.service';\nimport { Settings } from '../models/settings.model';\nimport { ErrorService } from './error.service';\nimport { ErrorTypes } from '../enums/errorTypes.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NotificationService } from './notification.service';\nimport { DoorPosition } from '../models/doorPosition.model';\nimport { FinishTypes } from '../enums/finishTypes.enum';\nimport { WallSide } from '../enums/wallSide.enum';\nimport { ViewboxOptionWithPrice } from '../models/wallFinishType.model';\nimport { CompletionType } from '../enums/CompletionType.enum';\nimport { CompletionService } from './completion.service';\nimport { InnerWallType } from '../enums/innerWallType.enum';\nimport { DoorHandleType } from '../enums/doorHandleType.enum';\nimport { HingeType } from '../enums/hingeType.enum';\nimport { ConfigurationReceived } from '../models/configurationReceived.model';\nimport { Observable } from 'rxjs';\nconst stepSizeLengthWidth = 100;\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigurationService {\n public static readonly COOLING_CELL_TIMER_LOAD_CONFIGURATION = 50;\n\n private _configuration: Configuration;\n private _minimumFreezingThickness = 80;\n private _defaultWallThicknessFreezing = 140;\n private _defaultWallThicknessCooling = 80;\n private _wallThicknesses = [60, 80, 100, 140];\n private _heights = [1800, 2100, 2400, 2700, 3000, 3300, 3600, 3900];\n private _furthestStepVisited = 1;\n private _wallsHidden = false;\n\n shoppingCartIdReady$: EventEmitter = new EventEmitter();\n configurationChanged$: EventEmitter = new EventEmitter();\n configurationSaved$: EventEmitter = new EventEmitter();\n updatePrice$: EventEmitter = new EventEmitter();\n hideFrontWallsChanged$: EventEmitter = new EventEmitter();\n updateBlockingValues$: EventEmitter = new EventEmitter();\n furthestStepVisitedUpdated$: EventEmitter = new EventEmitter();\n saveConfigurationEndpoint = 'api/configuration/save';\n generate2dPlanEndpoint = 'api/configuration/generate2DPlan';\n getConfigurationEndpoint = 'api/configuration/';\n\n externalWallFinishViewboxOptions: Record> = {\n [FinishTypes.STEEL]: new ViewboxOptionWithPrice(\n true,\n 'FINISHTYPESFULL.STEEL',\n '/assets/images/white9010.jpg',\n FinishTypes.STEEL,\n ''\n ),\n [FinishTypes.STEEL_PET55]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.STEELPET55',\n '/assets/images/white9010PET.jpg',\n FinishTypes.STEEL_PET55,\n ''\n ),\n [FinishTypes.RVS304_COLLED_ROLLED]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304COLLEDROLLED',\n '/assets/images/metal.jpg',\n FinishTypes.RVS304_COLLED_ROLLED,\n ''\n ),\n [FinishTypes.RVS304_DESIGN_5WL]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304DESIGN5WL',\n '/assets/images/5WL.jpg',\n FinishTypes.RVS304_DESIGN_5WL,\n ''\n ),\n [FinishTypes.RVS304_LINEN]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEN',\n '/assets/images/linen.jpg',\n FinishTypes.RVS304_LINEN,\n ''\n ),\n [FinishTypes.RVS304_LINE_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEBRUSH',\n '/assets/images/metal_turned.jpg',\n FinishTypes.RVS304_LINE_BRUSH,\n ''\n ),\n [FinishTypes.RVS304_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS304_ROUND_BRUSH,\n ''\n ),\n [FinishTypes.RVS316_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS316ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS316_ROUND_BRUSH,\n ''\n ),\n };\n\n internalWallFinishViewboxOptions: Record> = {\n [FinishTypes.STEEL]: new ViewboxOptionWithPrice(\n true,\n 'FINISHTYPESFULL.STEEL',\n '/assets/images/white9010.jpg',\n FinishTypes.STEEL,\n ''\n ),\n [FinishTypes.STEEL_PET55]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.STEELPET55',\n '/assets/images/white9010PET.jpg',\n FinishTypes.STEEL_PET55,\n ''\n ),\n [FinishTypes.RVS304_COLLED_ROLLED]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304COLLEDROLLED',\n '/assets/images/metal.jpg',\n FinishTypes.RVS304_COLLED_ROLLED,\n ''\n ),\n [FinishTypes.RVS304_DESIGN_5WL]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304DESIGN5WL',\n '/assets/images/5WL.jpg',\n FinishTypes.RVS304_DESIGN_5WL,\n ''\n ),\n [FinishTypes.RVS304_LINEN]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEN',\n '/assets/images/linen.jpg',\n FinishTypes.RVS304_LINEN,\n ''\n ),\n [FinishTypes.RVS304_LINE_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEBRUSH',\n '/assets/images/metal_turned.jpg',\n FinishTypes.RVS304_LINE_BRUSH,\n ''\n ),\n [FinishTypes.RVS304_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS304_ROUND_BRUSH,\n ''\n ),\n [FinishTypes.RVS316_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS316ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS316_ROUND_BRUSH,\n ''\n ),\n };\n\n externalDoorFinishViewboxOptions: Record> = {\n [FinishTypes.STEEL]: new ViewboxOptionWithPrice(\n true,\n 'FINISHTYPESFULL.STEEL',\n '/assets/images/white9010.jpg',\n FinishTypes.STEEL,\n ''\n ),\n [FinishTypes.STEEL_PET55]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.STEELPET55',\n '/assets/images/white9010PET.jpg',\n FinishTypes.STEEL_PET55,\n ''\n ),\n [FinishTypes.RVS304_COLLED_ROLLED]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304COLLEDROLLED',\n '/assets/images/metal.jpg',\n FinishTypes.RVS304_COLLED_ROLLED,\n ''\n ),\n [FinishTypes.RVS304_DESIGN_5WL]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304DESIGN5WL',\n '/assets/images/5WL.jpg',\n FinishTypes.RVS304_DESIGN_5WL,\n ''\n ),\n [FinishTypes.RVS304_LINEN]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEN',\n '/assets/images/linen.jpg',\n FinishTypes.RVS304_LINEN,\n ''\n ),\n [FinishTypes.RVS304_LINE_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEBRUSH',\n '/assets/images/metal_turned.jpg',\n FinishTypes.RVS304_LINE_BRUSH,\n ''\n ),\n [FinishTypes.RVS304_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS304_ROUND_BRUSH,\n ''\n ),\n [FinishTypes.RVS316_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS316ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS316_ROUND_BRUSH,\n ''\n ),\n };\n\n internalDoorFinishViewboxOptions: Record> = {\n [FinishTypes.STEEL]: new ViewboxOptionWithPrice(\n true,\n 'FINISHTYPESFULL.STEEL',\n '/assets/images/white9010.jpg',\n FinishTypes.STEEL,\n ''\n ),\n [FinishTypes.STEEL_PET55]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.STEELPET55',\n '/assets/images/white9010PET.jpg',\n FinishTypes.STEEL_PET55,\n ''\n ),\n [FinishTypes.RVS304_COLLED_ROLLED]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304COLLEDROLLED',\n '/assets/images/metal.jpg',\n FinishTypes.RVS304_COLLED_ROLLED,\n ''\n ),\n [FinishTypes.RVS304_DESIGN_5WL]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304DESIGN5WL',\n '/assets/images/5WL.jpg',\n FinishTypes.RVS304_DESIGN_5WL,\n ''\n ),\n [FinishTypes.RVS304_LINEN]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEN',\n '/assets/images/linen.jpg',\n FinishTypes.RVS304_LINEN,\n ''\n ),\n [FinishTypes.RVS304_LINE_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304LINEBRUSH',\n '/assets/images/metal_turned.jpg',\n FinishTypes.RVS304_LINE_BRUSH,\n ''\n ),\n [FinishTypes.RVS304_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS304ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS304_ROUND_BRUSH,\n ''\n ),\n [FinishTypes.RVS316_ROUND_BRUSH]: new ViewboxOptionWithPrice(\n false,\n 'FINISHTYPESFULL.RVS316ROUNDBRUSH',\n '/assets/images/circular.jpg',\n FinishTypes.RVS316_ROUND_BRUSH,\n ''\n ),\n };\n doorHandleTypes: Record | null> = {\n [DoorHandleType.euro2015]: new ViewboxOptionWithPrice(\n true,\n 'DOORHANDLE.EURO2015',\n '/assets/images/doorHandles/euro2015.png',\n DoorHandleType.euro2015,\n ''\n ),\n [DoorHandleType.euro2000]: new ViewboxOptionWithPrice(\n false,\n 'DOORHANDLE.EURO2000',\n '/assets/images/doorHandles/euro2000.png',\n DoorHandleType.euro2000,\n ''\n ),\n [DoorHandleType.euro2016]: new ViewboxOptionWithPrice(\n false,\n 'DOORHANDLE.EURO2016',\n '/assets/images/doorHandles/euro2016.png',\n DoorHandleType.euro2016,\n ''\n ),\n [DoorHandleType.null]: new ViewboxOptionWithPrice(\n false,\n 'DOORHANDLE.NONE',\n '/assets/images/doorHandles/geen.png',\n DoorHandleType.null,\n ''\n ),\n };\n doorHingeTypes: Record> = {\n [HingeType.normal]: new ViewboxOptionWithPrice(\n true,\n 'DOORHINGE.NORMAL',\n '/assets/images/doorHinges/normal.png',\n HingeType.normal,\n ''\n ),\n [HingeType.normalNotRising]: new ViewboxOptionWithPrice(\n false,\n 'DOORHINGE.NORMALNOTRISING',\n '/assets/images/doorHinges/normalnotrising.png',\n HingeType.normalNotRising,\n ''\n ),\n [HingeType.chrome]: new ViewboxOptionWithPrice(\n false,\n 'DOORHINGE.CHROME',\n '/assets/images/doorHinges/chrome.png',\n HingeType.chrome,\n ''\n ),\n };\n private _allowedFloorTypes: Record = {\n [FloorTypes.NONE]: {\n available: true,\n option: FloorTypes.NONE,\n strong: null,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.NONE',\n selected: false,\n content: '',\n },\n [FloorTypes.ANTISLIP]: {\n available: false,\n option: FloorTypes.ANTISLIP,\n strong: false,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.ANTISLIP',\n selected: true,\n content: `/assets/images/floors/antislip.png`,\n link: 'https://downloads.isomasters.com/technical/Tech%20details%20floorpanel%20-%20Standard%209mm.pdf',\n },\n [FloorTypes.DURAFLOOR]: {\n available: true,\n option: FloorTypes.DURAFLOOR,\n strong: false,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.DURAFLOOR',\n selected: true,\n content: `/assets/images/floors/DuraFloor.png`,\n link: 'https://downloads.isomasters.com/technical/Tech%20details%20floorpanel%20-%20Standard%209mm.pdf',\n },\n [FloorTypes.REINFORCEDANTISLIP]: {\n available: false,\n option: FloorTypes.REINFORCEDANTISLIP,\n strong: false,\n minimumWallThickness: 80,\n description: 'FLOORTYPES.REINFORCEDANTISLIP',\n selected: false,\n content: `/assets/images/floors/Versterkte.png`,\n link: 'https://downloads.isomasters.com/technical/Tech%20details%20floorpanel%20-%20Reinforced%20standard%2024mm.pdf',\n },\n [FloorTypes.ALUMINUM25]: {\n available: true,\n option: FloorTypes.ALUMINUM25,\n strong: true,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.ALUMINUM25',\n selected: false,\n content: `/assets/images/floors/Aluminium traanplaat.png`,\n },\n [FloorTypes.ALUMINUM35]: {\n available: true,\n option: FloorTypes.ALUMINUM35,\n strong: true,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.ALUMINUM35',\n selected: false,\n content: `/assets/images/floors/Aluminium traanplaat.png`,\n },\n [FloorTypes.STEELSMOOTH3]: {\n available: true,\n option: FloorTypes.STEELSMOOTH3,\n strong: true,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.STEELSMOOTH3',\n selected: false,\n content: `/assets/images/floors/Galva staalplaat.png`,\n },\n [FloorTypes.STEELANTISLIP5]: {\n available: true,\n option: FloorTypes.STEELANTISLIP5,\n strong: true,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.STEELANTISLIP5',\n selected: false,\n content: `/assets/images/floors/Staalplaat eenzijdig gemetalliseerd.png`,\n },\n [FloorTypes.RVSANTISLIPR13]: {\n available: true,\n option: FloorTypes.RVSANTISLIPR13,\n strong: false,\n minimumWallThickness: 0,\n description: 'FLOORTYPES.RVSANTISLIPR13',\n selected: false,\n content: `/assets/images/floors/RVS plaat 5WL.png`,\n link: 'https://downloads.isomasters.com/technical/Tech%20details%20floorpanel%20-%20Stainless%20steel%200.6mm.pdf',\n },\n };\n registerNewDoors = false;\n doorsAreBeingSet: boolean;\n configSavedSuccessfully: boolean;\n\n defaultTurnDoorWidth = 620;\n defaultTurnDoorheight = 1985;\n defaultTurnDoorheightUnder2m = 1800;\n defaultSlideDoorWidth = 800;\n defaultSlideDoorheight = 1900;\n readonly roundedWallCorrectionThickness = 15;\n\n constructor(\n private priceService: PriceService,\n private threeDService: ThreeDService,\n private apiService: ApiService,\n private startUpService: StartupService,\n private errorService: ErrorService,\n private translateService: TranslateService,\n private notificationService: NotificationService,\n private completionService: CompletionService\n ) {\n this.completionService.terminated$.subscribe(() => {\n this.configuration.completionType = CompletionType.Cancelled;\n this.saveConfiguration(this.configuration);\n });\n\n this.threeDService.readyReceived$.subscribe(() => {\n setTimeout(() => {\n this.reset3dModel();\n });\n });\n this.threeDService.doorAdded$.pipe(filter(() => this.registerNewDoors)).subscribe(() => {\n this.updateDoorSettings();\n });\n\n this.threeDService.doorDroppedOffWall$.subscribe(() => {\n this.updateDoorSettings();\n });\n\n this.threeDService.doorRemoved$.subscribe(() => {\n this.updateDoorSettings();\n });\n\n this.threeDService.updateDoors$.subscribe(() => {\n this.updateDoorSettings();\n });\n\n this.startUpService.priceEnabledSetting$.subscribe((pricesEnabled: boolean) => {\n this.priceService.priceEnabled = pricesEnabled;\n });\n\n this.startUpService.configurationReceived$.subscribe(async (data: ConfigurationReceived) => {\n try {\n const config = await this.getConfiguration(data.configurationId);\n if (!config) {\n this.errorService.throwError(ErrorTypes.ConfigurationNotFound);\n }\n let coolingCellTimer: number = undefined;\n if (data.makeCopy) {\n config.configurationId = undefined;\n coolingCellTimer = ConfigurationService.COOLING_CELL_TIMER_LOAD_CONFIGURATION;\n }\n this.handleExistingConfiguration(config, data.languageOverride, coolingCellTimer);\n } catch (e) {\n if (e.status === 404) {\n this.errorService.throwError(ErrorTypes.ConfigurationNotFound);\n return;\n }\n this.errorService.throwError(ErrorTypes.Generic, (e as Error).message);\n }\n });\n\n this.startUpService.sharedLinkConfiguration$.subscribe(async (data: false | string) => {\n if (data === false) {\n this._configuration = new Configuration();\n this.startUpService.initialized$.next(true);\n return;\n }\n this.priceService.priceEnabled = false;\n try {\n this.notificationService.showNotification('NOTIFICATIONS.READONLYLINK', NotificationService.DEFAULT_TIMEOUT);\n const config = await this.getConfiguration(data);\n if (!config) {\n this.errorService.throwError(ErrorTypes.ConfigurationNotFound);\n }\n this.handleExistingConfiguration(config);\n } catch (e) {\n if (e.status === 404) {\n this.errorService.throwError(ErrorTypes.ConfigurationNotFound);\n return;\n }\n this.errorService.throwError(ErrorTypes.Generic, (e as Error).message);\n }\n });\n\n this.configurationChanged$.pipe(debounceTime(1000)).subscribe(async (configuration: Configuration) => {\n this.saveConfiguration(configuration);\n });\n\n this.priceService.pricesLoaded$.subscribe(() => {\n if (!this.configSavedSuccessfully) {\n this.configurationChanged$.emit(this._configuration);\n }\n });\n\n this.updatePrice$.pipe(debounceTime(50)).subscribe(async (configuration: Configuration) => {\n this.priceService.updatePrice(configuration);\n });\n }\n\n handleExistingConfiguration(config: Configuration, languageOverride?: string, coolingCellTimer?: number) {\n this.translateService.use(config.language);\n this._configuration.configurationId = config.configurationId;\n this._configuration.language = languageOverride || config.language;\n this._configuration.settings = this.useValuesOrDefault(config.settings);\n this.reset3dModel(coolingCellTimer);\n this.threeDService.resetDefaultCamera(true);\n this.startUpService.initialized$.next(true);\n }\n\n private useValuesOrDefault(config: Settings): Settings {\n const settings = new Settings();\n settings.floorType = config.floorType || settings.floorType;\n settings.heightInMM = config.heightInMM || settings.heightInMM;\n settings.lengthInMM = config.lengthInMM || settings.lengthInMM;\n settings.widthInMM = config.widthInMM || settings.widthInMM;\n settings.wallThickness = config.wallThickness || settings.wallThickness;\n if (!this._wallThicknesses.includes(settings.wallThickness)) {\n if (settings.wallThickness > Math.max(...this._wallThicknesses)) {\n settings.wallThickness = Math.max(...this._wallThicknesses);\n } else {\n settings.wallThickness = this._wallThicknesses.filter(a => a >= settings.wallThickness)[0];\n }\n }\n settings.purpose = config.purpose || settings.purpose;\n settings.doorSettings.splice(0, settings.doorSettings.length);\n\n (config._doorSettings || settings._doorSettings).forEach(ds => {\n const doorSetting = new DoorPosition(\n ds.id,\n ds.left,\n ds.side,\n ds.doorModel.openingWidth,\n ds.doorModel.openingHeight,\n ds.doorModel.panelWidth,\n ds.doorModel.panelHeight,\n ds.frameInteriorFinish,\n ds.frameExteriorFinish,\n ds.leafInteriorFinish,\n ds.leafExteriorFinish,\n ds.doorModel.type,\n ds.doorModel.direction,\n ds.hingeType,\n ds.doorHandleType,\n ds.innerWallId\n );\n settings.doorSettings.push(doorSetting);\n });\n settings.plinthsInside = config.plinthsInside != null ? config.plinthsInside : settings.plinthsInside;\n settings.plinthsOutside = config.plinthsOutside != null ? config.plinthsOutside : settings.plinthsOutside;\n settings.ventilationProfiles =\n config.ventilationProfiles != null ? config.ventilationProfiles : settings.ventilationProfiles;\n settings.sunkenFloor = config.sunkenFloor != null ? config.sunkenFloor : settings.sunkenFloor;\n settings.ceilingMoldings = config.ceilingMoldings != null ? config.ceilingMoldings : settings.ceilingMoldings;\n\n settings.wallFinishes = config.wallFinishes != null ? config.wallFinishes : settings.wallFinishes;\n settings.innerWalls = config.innerWalls != null ? config.innerWalls : settings.innerWalls;\n return settings;\n }\n\n async saveAndGetConfigurationId() {\n await this.saveConfiguration(this._configuration, true);\n }\n\n generate2dPlan(configuration: Configuration) {\n configuration.language = this.translateService.currentLang;\n const configurationForBackend = this.removeExcessProperties(configuration);\n\n return this.apiService.post(this.generate2dPlanEndpoint, configurationForBackend, 'blob');\n }\n async saveConfiguration(configuration: Configuration, shoppingCartTime = false) {\n configuration.language = this.translateService.currentLang;\n if (this.priceService.priceEnabled && this.priceService.hasPrices) {\n configuration = await this.addPricesToConfiguration(configuration);\n if (!configuration) {\n this.configSavedSuccessfully = false;\n return;\n }\n }\n configuration = this.removeExcessProperties(configuration);\n if (shoppingCartTime) {\n this.configuration.completionType = CompletionType.Completed;\n }\n\n this.apiService.post(this.saveConfigurationEndpoint, configuration).subscribe(\n response => {\n this._configuration.configurationId = response.body.configurationId;\n if (shoppingCartTime) {\n this.shoppingCartIdReady$.emit(this._configuration);\n }\n this.configSavedSuccessfully = true;\n this.configurationSaved$.next(configuration);\n },\n err => {\n console.log(err);\n this.configSavedSuccessfully = false;\n\n if (err.error === 'Cannot save config in AX') {\n this.errorService.throwError(ErrorTypes.InvalidAxToken, err);\n } else {\n this.errorService.throwError(ErrorTypes.BackendNotFound, err);\n }\n }\n );\n\n this.configSavedSuccessfully = true;\n }\n\n async addPricesToConfiguration(configuration: Configuration): Promise {\n const totalPricesExcludingDoors = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const calculateDoorPrice = await this.priceService.getPricesOfDoors(configuration);\n if (totalPricesExcludingDoors === false || calculateDoorPrice === false) {\n return;\n }\n configuration.settings.salesPrice = totalPricesExcludingDoors;\n\n configuration.settings.salesTotal = totalPricesExcludingDoors + calculateDoorPrice;\n\n for (const door of configuration.settings.doorSettings) {\n const price = await this.priceService.getPriceOfDoor(\n door,\n configuration.settings.wallThickness,\n configuration.settings.purpose !== Purpose.Cooling\n );\n if (price === false) {\n return;\n }\n door.salesPrice = price.Price;\n }\n return configuration;\n }\n\n removeExcessProperties(configuration: Configuration): Configuration {\n let cleanConfig = new Configuration();\n cleanConfig = Object.assign(cleanConfig, configuration);\n\n if (cleanConfig.settings.doorSettings) {\n cleanConfig.settings.doorSettings.forEach(d => {\n d.selected = undefined;\n d.image = undefined;\n if (d.mesh) {\n d.mesh = undefined;\n }\n });\n }\n return cleanConfig;\n }\n\n async getConfiguration(configurationId: string): Promise {\n return this.apiService.get(this.getConfigurationEndpoint + configurationId).toPromise();\n }\n\n doesConfigurationExist(configurationId: string): Observable {\n return this.apiService.get(this.getConfigurationEndpoint + configurationId + '/exists');\n }\n\n checkForIncompatibleDoorHandles() {\n if (this.purpose === Purpose.Freezing && this.wallThickness < 100) {\n let update = false;\n this.configuration.settings.doorSettings\n .filter(d => d.doorHandleType === DoorHandleType.euro2000 || d.doorHandleType === DoorHandleType.euro2016)\n .forEach(door => {\n update = true;\n door.doorHandleType = DoorHandleType.euro2015;\n this.threeDService.changeDoorHandle(door, DoorHandleType.euro2015);\n });\n if (update) {\n this.updateDoorSettings();\n }\n }\n }\n checkForIncompatibleWalls() {\n if (this.wallThickness <= 80) {\n let update = false;\n [...this.configuration.settings.innerWalls].forEach(wall => {\n if (wall.type === InnerWallType.lProfile || this.wallThickness < 80) {\n update = true;\n this.threeDService.removeInnerWall(wall);\n }\n });\n if (update) {\n this.updateDoorSettings();\n let message = 'STEPINNERWALL.DELETED_INNER_WALLS_TYPE_INNER_WALL_NOT_ALLOWED_AT_THIS_THICKNESS';\n if (this.wallThickness < 80) {\n message = 'STEPINNERWALL.DELETED_INNER_WALLS_NO_INNER_WALL_AT_THIS_THICKNESS';\n }\n this.notificationService.showNotification(message, NotificationService.DEFAULT_TIMEOUT);\n }\n }\n }\n get mustHaveFloor(): boolean {\n if (this._configuration.settings.purpose !== Purpose.Cooling) {\n return true;\n }\n if (this.wallThickness > 100) {\n return true;\n }\n return false;\n }\n get configuration(): Configuration {\n return this._configuration;\n }\n\n get minimumFreezingThickness(): number {\n return this._minimumFreezingThickness;\n }\n get defaultWallThicknessFreezing(): number {\n return this._defaultWallThicknessFreezing;\n }\n get defaultWallThicknessCooling(): number {\n return this._defaultWallThicknessCooling;\n }\n\n get furthestStepVisited(): number {\n return this._furthestStepVisited;\n }\n\n set furthestStepVisited(step: number) {\n this._furthestStepVisited = Math.max(step, this._furthestStepVisited);\n this.furthestStepVisitedUpdated$.emit(this._furthestStepVisited);\n }\n\n get canUseInnerWalls(): boolean {\n return this.wallThickness > 60;\n }\n\n set purpose(value: Purpose) {\n this._configuration.settings.purpose = value;\n if (this._furthestStepVisited === 1) {\n if (value === Purpose.Cooling) {\n this.wallThickness = this._defaultWallThicknessCooling;\n } else {\n this.wallThickness = this._defaultWallThicknessFreezing;\n }\n } else {\n if (value !== Purpose.Cooling && this._configuration.settings.wallThickness < this._minimumFreezingThickness) {\n this.wallThickness = this._minimumFreezingThickness;\n }\n }\n\n if (this.mustHaveFloor && this.floorType === FloorTypes.NONE) {\n this.floorType = FloorTypes.DURAFLOOR;\n }\n this.checkForIncompatibleDoorHandles();\n this.checkForInvalidPlinths();\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this._configuration);\n }\n\n get purpose(): Purpose {\n return this._configuration.settings.purpose;\n }\n\n set wallThickness(value: number) {\n if (!this._wallThicknesses.includes(value)) {\n if (value > Math.max(...this._wallThicknesses)) {\n value = Math.max(...this._wallThicknesses);\n } else {\n value = this._wallThicknesses.filter(a => a >= value)[0];\n }\n }\n this.threeDService.setWallThickness(value);\n this._configuration.settings.wallThickness = value;\n if (this.mustHaveFloor && this.floorType === FloorTypes.NONE) {\n this.floorType = FloorTypes.DURAFLOOR;\n }\n if (this.allowedFloorTypesRecord[this.floorType].minimumWallThickness > value) {\n this.floorType = FloorTypes.DURAFLOOR;\n this.notificationService.showNotification(\n this.translateService.instant('NOTIFICATIONS.ONLYSTANDARDFLOOR'),\n NotificationService.DEFAULT_TIMEOUT\n );\n }\n this.checkForIncompatibleDoorHandles();\n this.checkForIncompatibleWalls();\n this.checkForInvalidPlinths();\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this._configuration);\n }\n\n get wallThickness(): number {\n return this._configuration.settings.wallThickness;\n }\n\n set length(value: number) {\n value = +value;\n if (value === this.configuration.settings.lengthInMM) {\n return;\n }\n\n if (value % stepSizeLengthWidth !== 0) {\n value = Math.ceil(value / stepSizeLengthWidth) * stepSizeLengthWidth;\n }\n if (value < 900) {\n value = 900;\n }\n if (value > 12000) {\n value = 12000;\n }\n this.threeDService.setLength(value / 1000);\n this.configuration.settings.lengthInMM = value;\n\n const innerWalls = this.threeDService.getInnerWalls();\n const innerWallsNoLongerFeasible = innerWalls.filter(\n iw =>\n (iw.placedOnSide == WallSide.north || iw.placedOnSide == WallSide.south) &&\n ((iw.left > value - 300 && iw.type == InnerWallType.threeway) ||\n (iw.left > value - 100 && iw.type == InnerWallType.lProfile))\n );\n\n innerWallsNoLongerFeasible.forEach(iw => {\n this.threeDService.removeInnerWall(iw);\n });\n if (innerWallsNoLongerFeasible.length > 0) {\n this.updateInnerWalls();\n }\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n get length(): number {\n return this.configuration.settings.lengthInMM;\n }\n set width(value: number) {\n value = +value;\n if (value === this.configuration.settings.widthInMM) {\n return;\n }\n\n if (value % stepSizeLengthWidth !== 0) {\n value = Math.ceil(value / stepSizeLengthWidth) * stepSizeLengthWidth;\n }\n if (value < 900) {\n value = 900;\n }\n if (value > 12000) {\n value = 12000;\n }\n this.threeDService.setWidth(value / 1000);\n this.configuration.settings.widthInMM = value;\n\n const innerWalls = this.threeDService.getInnerWalls();\n const innerWallsNoLongerFeasible = innerWalls.filter(\n iw =>\n (iw.placedOnSide == WallSide.east || iw.placedOnSide == WallSide.west) &&\n ((iw.left > value - 300 && iw.type == InnerWallType.threeway) ||\n (iw.left > value - 100 && iw.type == InnerWallType.lProfile))\n );\n\n innerWallsNoLongerFeasible.forEach(iw => {\n this.threeDService.removeInnerWall(iw);\n });\n if (innerWallsNoLongerFeasible.length > 0) {\n this.updateInnerWalls();\n }\n\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n get width(): number {\n return this.configuration.settings.widthInMM;\n }\n set height(value: number) {\n value = +value;\n\n if (value === this.configuration.settings.heightInMM) {\n return;\n }\n\n if (!this._heights.includes(value)) {\n value = this._heights.filter(a => a >= value)[0];\n }\n this.threeDService.setHeight(value / 1000);\n this.configuration.settings.heightInMM = value;\n if (value <= 1800) {\n this.threeDService.removeDoorsOnInnerWalls(true);\n }\n this.updateDoorSettings();\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n get height(): number {\n return this.configuration.settings.heightInMM;\n }\n\n get allowedWallThicknesses(): number[] {\n if (this._configuration.settings.purpose === Purpose.Cooling) {\n return this._wallThicknesses;\n }\n return this._wallThicknesses.filter(v => v >= this._minimumFreezingThickness);\n }\n\n get wallsHidden(): boolean {\n return this._wallsHidden;\n }\n\n set floorType(value: FloorTypes) {\n if (this.configuration.settings.floorType === value) {\n return;\n }\n\n this.allowedFloorTypes.forEach(f => (f.selected = false));\n\n const floorTypeToUpdate = this.allowedFloorTypes.find(f => f.option === value);\n if (floorTypeToUpdate) {\n floorTypeToUpdate.selected = true;\n }\n\n this._configuration.settings.floorType = value;\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n this.setFloorTypeIn3D(value);\n }\n get floorType(): FloorTypes {\n return this.configuration.settings.floorType;\n }\n\n private setFloorTypeIn3D(value: FloorTypes) {\n if (value === FloorTypes.NONE) {\n this.threeDService.setFloorVisible(false);\n return;\n }\n if (this.threeDService.getFloorVisible() === false) {\n this.threeDService.setFloorVisible(true);\n }\n const finish = this.floorTypeToMaterial(value);\n this.threeDService.setFloorMaterial(finish);\n }\n\n private floorTypeToMaterial(floorType: FloorTypes): string {\n switch (floorType as FloorTypes) {\n case FloorTypes.ALUMINUM25:\n case FloorTypes.ALUMINUM35:\n return 'rvs-diamondplate';\n case FloorTypes.RVSANTISLIPR13:\n return 'rvs-plate';\n case FloorTypes.STEELANTISLIP5:\n return 'rvs-steelplate';\n case FloorTypes.STEELSMOOTH3:\n return 'rvs';\n case FloorTypes.DURAFLOOR:\n return 'durafloor';\n case FloorTypes.ANTISLIP:\n case FloorTypes.REINFORCEDANTISLIP:\n default:\n return 'antislip';\n }\n }\n\n reset3dModel(coolingCellCounterOverride?: number) {\n const wallFinishes = [\n this._configuration.settings.wallFinishes[WallSide.north],\n this._configuration.settings.wallFinishes[WallSide.east],\n this._configuration.settings.wallFinishes[WallSide.south],\n this._configuration.settings.wallFinishes[WallSide.west],\n ];\n\n this.threeDService.recreateCoolingCell(\n Math.ceil((this._configuration.settings.lengthInMM / 1000) * 10) / 10,\n Math.ceil((this._configuration.settings.heightInMM / 1000) * 10) / 10,\n Math.ceil((this._configuration.settings.widthInMM / 1000) * 10) / 10,\n this._configuration.settings.wallThickness,\n this.floorTypeToMaterial(this._configuration.settings.floorType),\n this._configuration.settings.floorType !== FloorTypes.NONE,\n this.threeDService.materialFromFinishType(this._configuration.settings.wallFinishes[WallSide.ceiling].exterior),\n this._configuration.settings.sunkenFloor,\n this._configuration.settings.ventilationProfiles,\n this.plinths,\n this._configuration.settings.ceilingMoldings,\n wallFinishes,\n this._configuration.settings.doorSettings,\n this._configuration.settings.innerWalls,\n coolingCellCounterOverride\n );\n }\n\n setHideFrontWalls(hide: boolean) {\n if (hide === this._wallsHidden) {\n return;\n }\n\n this._wallsHidden = hide;\n this.threeDService.setWallsHidden(this._wallsHidden);\n this.hideFrontWallsChanged$.emit(this._wallsHidden);\n }\n\n get allowedFloorTypes(): FloorType[] {\n return Object.values(this._allowedFloorTypes);\n }\n\n get allowedFloorTypesRecord(): Record {\n return this._allowedFloorTypes;\n }\n\n getSelectedDoorSettings(): DoorPosition {\n return this.threeDService.selectedDoor;\n }\n\n updateDoorSettings() {\n this.priceService.priceLoading();\n const threeDDoors = this.threeDService.getDoors();\n const newList = this._configuration.settings.doorSettings.filter(d => threeDDoors.some(td => d.id === td.id));\n threeDDoors.forEach(door => {\n const doorToUpdate = newList.find(d => d.id === door.id);\n if (doorToUpdate) {\n doorToUpdate.doorModel.direction = door.doorModel.direction;\n doorToUpdate.doorModel.openingHeight = door.doorModel.openingHeight;\n doorToUpdate.doorModel.openingWidth = door.doorModel.openingWidth;\n doorToUpdate.doorModel.panelHeight = door.doorModel.panelHeight;\n doorToUpdate.doorModel.panelWidth = door.doorModel.panelWidth;\n doorToUpdate.doorModel.type = door.doorModel.type;\n doorToUpdate.left = door.left;\n doorToUpdate.side = door.side;\n doorToUpdate.innerWallId = door.innerWallId;\n } else {\n door.frameExteriorFinish = this._configuration.settings.wallFinishes[door.side].exterior;\n door.frameInteriorFinish = this._configuration.settings.wallFinishes[door.side].interior;\n newList.push(door);\n }\n });\n\n this._configuration.settings.doorSettings = newList;\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n this.updateBlockingValues$.emit();\n }\n\n get ventilationProfiles() {\n return this.configuration.settings.ventilationProfiles;\n }\n\n set ventilationProfiles(value: boolean) {\n if (this.configuration.settings.ventilationProfiles !== value) {\n this.configuration.settings.ventilationProfiles = value;\n this.threeDService.setVentilationProfiles(value);\n\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n }\n\n set sunkenFloor(value: boolean) {\n if (value === this._configuration.settings.sunkenFloor) {\n return;\n }\n this._configuration.settings.sunkenFloor = value;\n this.threeDService.setSunkenFloor(value);\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n get sunkenFloor(): boolean {\n return this._configuration.settings.sunkenFloor;\n }\n\n set plinthsInside(value: boolean) {\n if (value === this._configuration.settings.plinthsInside) {\n return;\n }\n this._configuration.settings.plinthsInside = value;\n this.threeDService.setPlinthsOnSide(this.plinths);\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n get plinthsInside(): boolean {\n return this._configuration.settings.plinthsInside;\n }\n\n set plinthsOutside(value: boolean) {\n if (value === this._configuration.settings.plinthsOutside) {\n return;\n }\n this._configuration.settings.plinthsOutside = value;\n this.threeDService.setPlinthsOnSide(this.plinths);\n\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n get plinthsOutside(): boolean {\n return this._configuration.settings.plinthsOutside;\n }\n get plinths(): number {\n let value = 0;\n if (this.plinthsInside) {\n value += 1;\n }\n if (this.plinthsOutside) {\n value += 2;\n }\n return value;\n }\n set ceilingMoldings(value: boolean) {\n if (value === this._configuration.settings.ceilingMoldings) {\n return;\n }\n this._configuration.settings.ceilingMoldings = value;\n this.threeDService.setCeilingMoldings(value);\n\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n get ceilingMoldings(): boolean {\n return this._configuration.settings.ceilingMoldings;\n }\n\n updateWallFinish(wallSide: WallSide, outside: boolean, finishType: FinishTypes, innerWallId?: string) {\n if (wallSide !== WallSide.inner) {\n const wallFinish = this._configuration.settings.wallFinishes[wallSide];\n const doorsToUpdate = this._configuration.settings.doorSettings.filter(d => d.side === wallSide);\n if (outside) {\n wallFinish.exterior = finishType;\n doorsToUpdate.forEach(d => (d.frameExteriorFinish = finishType));\n } else {\n wallFinish.interior = finishType;\n doorsToUpdate.forEach(d => (d.frameInteriorFinish = finishType));\n }\n } else {\n const doorsToUpdate = this._configuration.settings.doorSettings.filter(\n d => d.side === wallSide && d.innerWallId == innerWallId\n );\n const innerWall = this._configuration.settings.innerWalls.find(iw => iw.id === innerWallId);\n if (outside) {\n innerWall.exteriorFinish = finishType;\n doorsToUpdate.forEach(d => (d.frameExteriorFinish = finishType));\n } else {\n innerWall.interiorFinish = finishType;\n doorsToUpdate.forEach(d => (d.frameInteriorFinish = finishType));\n }\n }\n\n this.threeDService.updateWallFinish(wallSide, outside, finishType, innerWallId);\n\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n updateSelectedDoorFinish(outside: boolean, finish: FinishTypes) {\n const doorToUpdate = this.configuration.settings.doorSettings.find(d => d.id === this.getSelectedDoorSettings().id);\n if (!doorToUpdate) {\n return;\n }\n\n if (outside) {\n doorToUpdate.setLeafExteriorFinish(finish);\n } else {\n doorToUpdate.setLeafInteriorFinish(finish);\n }\n\n this.threeDService.updateSelectedDoorFinish(outside, finish);\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n get widthExternal(): number {\n let width = this.width + 2 * this.wallThickness;\n if (this.wallThickness <= 80) {\n width += 2 * this.roundedWallCorrectionThickness;\n }\n const innerWalls = this._configuration.settings.innerWalls.filter(\n iw => iw.placedOnSide === WallSide.north || iw.placedOnSide === WallSide.south\n );\n innerWalls.forEach(iw => {\n switch (iw.type) {\n case InnerWallType.threeway: {\n width += this.wallThickness;\n if (this.wallThickness <= 80) {\n width += 2 * this.roundedWallCorrectionThickness;\n }\n break;\n }\n default:\n break;\n }\n });\n return width;\n }\n get lengthExternal(): number {\n let length = this.length + 2 * this.wallThickness;\n if (this.wallThickness <= 80) {\n length += 2 * this.roundedWallCorrectionThickness;\n }\n const innerWalls = this._configuration.settings.innerWalls.filter(\n iw => iw.placedOnSide === WallSide.east || iw.placedOnSide === WallSide.west\n );\n innerWalls.forEach(iw => {\n switch (iw.type) {\n case InnerWallType.threeway: {\n length += this.wallThickness;\n if (this.wallThickness <= 80) {\n length += 2 * this.roundedWallCorrectionThickness;\n }\n break;\n }\n default:\n break;\n }\n });\n return length;\n }\n\n get heightExternal(): number {\n let height = this.height + this.wallThickness;\n if (this.wallThickness < 100) {\n height += 15;\n }\n if (this.floorType !== FloorTypes.NONE) {\n height += this.wallThickness;\n if (this.wallThickness < 100) {\n height += 15;\n }\n }\n if (this.ventilationProfiles) {\n height += 40;\n }\n return height;\n }\n\n updateInnerWalls() {\n this.configuration.settings.innerWalls = this.threeDService.getInnerWalls();\n this.updatePrice$.emit(this.configuration);\n }\n\n changeSelectedDoorHandle(doorHandleType: DoorHandleType) {\n const doorToUpdate = this.configuration.settings.doorSettings.find(d => d.id === this.getSelectedDoorSettings().id);\n if (!doorToUpdate) {\n return;\n }\n\n doorToUpdate.doorHandleType = doorHandleType;\n\n this.threeDService.changeSelectedDoorHandle(doorHandleType);\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n changeSelectedDoorHinge(doorHingeType: HingeType) {\n const doorToUpdate = this.configuration.settings.doorSettings.find(d => d.id === this.getSelectedDoorSettings().id);\n if (!doorToUpdate) {\n return;\n }\n\n doorToUpdate.hingeType = doorHingeType;\n\n this.threeDService.changeSelectedDoorHinge(doorHingeType);\n this.configurationChanged$.emit(this._configuration);\n this.updatePrice$.emit(this.configuration);\n }\n\n get canHavePlinths() {\n if (this.purpose !== Purpose.Cooling) {\n return false;\n }\n return this.wallThickness >= 100;\n }\n\n checkForInvalidPlinths() {\n if (this.plinthsInside && !this.canHavePlinths) {\n this.plinthsInside = false;\n this.notificationService.showNotification('NOTIFICATIONS.NO_PLINTHS', NotificationService.DEFAULT_TIMEOUT);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ErrorTypes } from '../enums/errorTypes.enum';\nimport { BehaviorSubject } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { ErrorMessage } from '../models/errorMessage.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ErrorService {\n errorThrown = false;\n errorMessage$ = new BehaviorSubject(new ErrorMessage(ErrorTypes.Generic));\n\n constructor(private router: Router) {}\n\n throwError(errorType: ErrorTypes = ErrorTypes.Generic, message?: string) {\n this.errorThrown = true;\n this.errorMessage$.next(new ErrorMessage(errorType, message));\n this.router.navigate(['/error'], { queryParamsHandling: 'merge' });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { jsPDF } from 'jspdf';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class JsPDFFontService {\n constructor(private httpClient: HttpClient) {}\n async AddFonts(doc: jsPDF) {\n const bold = await this.httpClient.get('assets/fonts/HindMadurai-Bold.txt', { responseType: 'text' }).toPromise();\n const light = await this.httpClient.get('assets/fonts/HindMadurai-Light.txt', { responseType: 'text' }).toPromise();\n const medium = await this.httpClient\n .get('assets/fonts/HindMadurai-Medium.txt', { responseType: 'text' })\n .toPromise();\n const regular = await this.httpClient\n .get('assets/fonts/HindMadurai-Regular.txt', { responseType: 'text' })\n .toPromise();\n const semiBold = await this.httpClient\n .get('assets/fonts/HindMadurai-SemiBold.txt', { responseType: 'text' })\n .toPromise();\n\n doc.addFileToVFS('assets/fonts/HindMadurai-Bold.ttf', bold);\n doc.addFileToVFS('assets/fonts/HindMadurai-Light.ttf', light);\n doc.addFileToVFS('assets/fonts/HindMadurai-Medium.ttf', medium);\n doc.addFileToVFS('assets/fonts/HindMadurai-Regular.ttf', regular);\n doc.addFileToVFS('assets/fonts/HindMadurai-SemiBold.ttf', semiBold);\n doc.addFont('assets/fonts/HindMadurai-Bold.ttf', 'HindMadurai-Bold', 'normal');\n doc.addFont('assets/fonts/HindMadurai-Light.ttf', 'HindMadurai-Light', 'normal');\n doc.addFont('assets/fonts/HindMadurai-Medium.ttf', 'HindMadurai-Medium', 'normal');\n doc.addFont('assets/fonts/HindMadurai-Regular.ttf', 'HindMadurai-Regular', 'normal');\n doc.addFont('assets/fonts/HindMadurai-SemiBold.ttf', 'HindMadurai-SemiBold', 'normal');\n doc.setFont('HindMadurai-Regular');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StartupService } from './startup.service';\nimport { Language } from '../models/language.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LanguageService {\n readonly allowedLanguages = ['en', 'nl', 'fr', 'de', 'da', 'pl'];\n\n constructor(\n private translateService: TranslateService,\n private startupService: StartupService\n ) {\n if (!this.translateService.currentLang) {\n this.setLanguage('nl');\n }\n this.startupService.languageReceived$.subscribe((selected: Language) => {\n if (!!selected && !!selected.language) {\n this.setLanguage(selected.language);\n }\n });\n }\n\n get currentLanguage(): string {\n return this.translateService.currentLang;\n }\n\n setLanguage(language: string) {\n if (this.allowedLanguages.includes(language)) {\n this.translateService.use(language);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { GoogleAnalyticsService } from 'ngx-google-analytics';\nimport { environment } from '../../environments/environment';\nimport { LanguageService } from './language.service';\nimport { StartupService } from './startup.service';\n\nconst COOKIE_FLAGS = 'max-age=7200;secure;samesite=none';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModularGoogleAnalyticsService {\n constructor(\n private googleAnalyticsService: GoogleAnalyticsService,\n private startupService: StartupService,\n private languageService: LanguageService\n ) {\n this.startupService.initialized$.subscribe(val => {\n if (val) {\n setTimeout(() => {\n this.setWithCookies('dimension1', this.languageService.currentLanguage);\n this.setWithCookies('dimension2', (!!this.startupService.token).toString());\n this.sendEvent('init', 'init');\n }, 10000);\n }\n });\n }\n\n public sendPageView(labelName: string) {\n const category = this.getCategory();\n this.pageViewWithCookies('/' + category + '/' + labelName, labelName);\n }\n\n public sendEvent(action: string, labelName?: string, value?: number) {\n const category = this.getCategory();\n this.eventWithCookies(action, labelName, category, value);\n }\n\n private getCategory() {\n let category = 'coldroom';\n if (!this.startupService.token) {\n category = 'demo/' + category;\n }\n if (environment.environment !== 'production') {\n category = category + '_' + environment.environment;\n }\n return category;\n }\n\n private pageViewWithCookies(pagePath: string, pageTitle: string) {\n this.googleAnalyticsService.gtag('config', environment.googleAnalyticsTrackingCode, {\n cookieFlags: COOKIE_FLAGS,\n page_title: pageTitle,\n page_path: pagePath,\n });\n }\n\n private eventWithCookies(eventName: string, label: string, category: string, value: number) {\n this.googleAnalyticsService.gtag('event', eventName, {\n cookieFlags: COOKIE_FLAGS,\n event_label: label,\n event_category: category,\n event_value: value,\n });\n }\n\n private setWithCookies(key: string, value: string) {\n const options = {} as any;\n options[key] = value;\n options['cookie_flags'] = COOKIE_FLAGS;\n this.googleAnalyticsService.gtag('set', options);\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { NotificationModel } from '../models/notification.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n static DEFAULT_TIMEOUT = 16000;\n notification$ = new EventEmitter();\n balloonNotification$ = new EventEmitter();\n hideBalloonNotification$ = new EventEmitter();\n\n constructor() {}\n\n showNotification(text: string, timeout?: number) {\n this.notification$.emit({ text, timeout });\n }\n\n showBalloonNotification(text: string, target: HTMLElement, timeout?: number, alternatives?: boolean, side = 0) {\n this.balloonNotification$.emit({ text, parent: target, timeout, alternatives, side });\n }\n\n hideBalloonNotification(id: string) {\n this.hideBalloonNotification$.emit(id);\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { WindowSize } from '../models/windowSize.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnresizeService {\n windowResized$: EventEmitter = new EventEmitter();\n\n constructor() {\n window.onresize = () => {\n document.documentElement.style.setProperty(\n '--document-height',\n document.documentElement.clientHeight.toString() + 'px'\n );\n this.windowResized$.emit({\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n });\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { settings } from 'src/settings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderEmailService {\n constructor(private activatedRoute: ActivatedRoute) {}\n\n getEmailAddressForOrder(): string | null {\n const domain = this.activatedRoute.snapshot.queryParamMap.get('domain');\n if (!domain) {\n return null;\n }\n if (domain.includes('frost.is')) {\n return settings.frost;\n }\n if (domain.includes('gosens-koeltechniek.nl')) {\n return settings.gosens;\n }\n if (domain.includes('koledanmark.dk')) {\n return settings.koledanmark;\n }\n if (domain.includes('coldroom.dk')) {\n return settings.coldroomdk;\n }\n if (domain.includes('koelcelwinkel.nl')) {\n return settings.koelcelwinkel;\n }\n if (domain.includes('kingspan.com')) {\n return settings.kingspan;\n }\n if (domain.includes('kingspangroup.com')) {\n return settings.kingspangroup;\n }\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { jsPDF } from 'jspdf';\nimport { JsPDFFontService } from '../services/js-pdf-font.service';\nimport { DatePipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigurationService } from './configuration.service';\nimport { environment } from 'src/environments/environment';\n@Injectable({\n providedIn: 'root',\n})\nexport class PdfGenerationService {\n modularBlue = [46, 42, 94];\n introTextColor = [136, 151, 176];\n modularBorder = [217, 225, 239];\n modularGreen = [105, 165, 162];\n numberOfPages = 1;\n\n private readonly spaceBetweenLinesInValue = 15;\n\n private readonly spaceBetweenValues = 3;\n\n constructor(\n private jsPDFFontService: JsPDFFontService,\n private datePipe: DatePipe,\n private translateService: TranslateService,\n private configurationService: ConfigurationService\n ) {}\n\n async createPDF(): Promise {\n const doc = new jsPDF({\n orientation: 'p',\n unit: 'px',\n format: 'a4',\n });\n await this.jsPDFFontService.AddFonts(doc);\n this.numberOfPages = 1;\n return doc;\n }\n\n text(\n doc: jsPDF,\n text: string,\n x: number,\n y: number,\n flags?: any,\n angle?: any,\n align: 'left' | 'center' | 'right' | 'justify' = 'left'\n ) {\n text = text.split(String.fromCharCode(160)).join(' ');\n doc.text(text, x, y, { angle, align });\n }\n\n getTextWidth(doc: jsPDF, text: string): number {\n text = text.split(String.fromCharCode(160)).join(' ');\n return doc.getTextWidth(text);\n }\n\n generateHeader(doc: jsPDF, imageSrc: string, demoMode = false) {\n doc.setTextColor(this.modularBlue[0], this.modularBlue[1], this.modularBlue[2]);\n doc.setFont('HindMadurai-SemiBold');\n doc.setFontSize(24);\n this.text(doc, this.translateService.instant('SUMMARY.TITLE'), 40, 70);\n doc.setTextColor(this.introTextColor[0], this.introTextColor[1], this.introTextColor[2]);\n doc.setFont('HindMadurai-Medium');\n doc.setFontSize(12);\n this.text(doc, this.translateService.instant('SUMMARY.DESCRIPTION'), 40, 90);\n doc.setDrawColor(this.modularBorder[0], this.modularBorder[1], this.modularBorder[2]);\n const isomastersLogo = new Image();\n isomastersLogo.src = demoMode ? 'assets/images/logo-coldroomconfigurator-demo.png' : 'assets/images/Variant1.png';\n doc.addImage(isomastersLogo, 'png', 280, 60, 140, 42);\n doc.line(40, 110, 400, 111);\n if (imageSrc) {\n doc.setFillColor('#A3BECF');\n doc.roundedRect(80, 160, 270, 270, 8, 8, 'F');\n doc.addImage(imageSrc, 'PNG', 90, 170, 260, 260);\n }\n if (this.configurationService.configuration.configurationId) {\n const link = environment.frontendUrl + '/?share=' + this.configurationService.configuration.configurationId;\n const introText = this.translateService.instant('SUMMARY.FINDONLINE');\n this.text(doc, introText, 40, 510);\n doc.setTextColor(this.modularBlue[0], this.modularBlue[1], this.modularBlue[2]);\n doc.textWithLink(link, 40, 524, { url: link });\n }\n\n doc.addPage('a4', 'p');\n this.numberOfPages++;\n }\n\n generateAdditionalImages(doc: jsPDF, imageInside: string, imagesWithDoors: object, height: number) {\n let right = false;\n const rowHeight = 195;\n if (height + rowHeight > 600) {\n doc.addPage('a4', 'p');\n this.numberOfPages++;\n height = 15;\n }\n if (imageInside) {\n ({ height, right } = this.addImage(doc, height, imageInside, right, this.translateService.instant('INSIDEVIEW')));\n }\n const doorSides = Object.keys(imagesWithDoors).sort((a, b) => (+a < 2 ? +a + 4 : +a) - (+b < 2 ? +b + 4 : +b));\n for (const side of doorSides) {\n if (height + rowHeight > 600) {\n doc.addPage('a4', 'p');\n this.numberOfPages++;\n height = 15;\n }\n ({ height, right } = this.addImage(\n doc,\n height,\n imagesWithDoors[side],\n right,\n this.translateService.instant('WALL.' + side)\n ));\n }\n }\n\n private addImage(doc: jsPDF, height: number, image: string, right: boolean, text: string) {\n doc.setFillColor('#A3BECF');\n doc.roundedRect(right ? 240 : 40, height, 175, 175, 8, 8, 'F');\n doc.addImage(image, 'PNG', right ? 250 : 50, height + 5, 160, 160);\n const width = this.getTextWidth(doc, text) / 2;\n doc.text(text, (right ? 327.5 : 127.5) - width, height + 185);\n if (right === false) {\n right = true;\n } else {\n height += 200;\n right = false;\n }\n return { height, right };\n }\n\n generateStep(\n doc: jsPDF,\n stepNumber: number,\n stepContent: StepItem[],\n height: number,\n stepTitle?: string,\n conflicts = false\n ): number {\n if (height + 20 + this.getBoxHeight(stepContent) > 600) {\n doc.addPage('a4', 'p');\n this.numberOfPages++;\n height = 15;\n }\n if (stepNumber) {\n this.generateStepHeader(doc, stepNumber, height);\n } else {\n if (stepTitle) {\n this.generateStepTitle(doc, stepTitle, height);\n }\n }\n if (!conflicts) {\n return this.generateStepItems(doc, stepContent, height + 20);\n } else {\n return this.generateConflictItems(doc, stepContent, height + 20);\n }\n }\n\n generateStepHeader(doc: jsPDF, stepNumber: number, startingHeight: number) {\n doc.setTextColor(this.modularGreen[0], this.modularGreen[1], this.modularGreen[2]);\n doc.setFont('HindMadurai-SemiBold');\n doc.setFontSize(18);\n this.text(doc, this.stepToDisplayNumber(stepNumber), 40, startingHeight + 12);\n doc.setTextColor(this.modularBlue[0], this.modularBlue[1], this.modularBlue[2]);\n doc.setFontSize(14);\n this.text(doc, this.translateService.instant('STEP' + stepNumber + '.SUMMARYTITLE'), 70, startingHeight + 12);\n }\n\n generateStepTitle(doc: jsPDF, title: string, startingHeight: number) {\n doc.setFont('HindMadurai-SemiBold');\n doc.setTextColor(this.modularBlue[0], this.modularBlue[1], this.modularBlue[2]);\n doc.setFontSize(14);\n this.text(doc, this.translateService.instant(title), 40, startingHeight + 12);\n }\n\n generateStepItems(doc: jsPDF, stepContent: StepItem[], startingHeight: number) {\n const boxHeight = this.getBoxHeight(stepContent);\n doc.setFillColor(250, 251, 253);\n doc.roundedRect(40, startingHeight, 360, boxHeight, 8, 8, 'F');\n\n doc.setFont('HindMadurai-Medium');\n doc.setFontSize(12);\n doc.setTextColor(this.introTextColor[0], this.introTextColor[1], this.introTextColor[2]);\n let height = startingHeight + 5;\n stepContent.forEach(step => {\n step.title.split('\\n').forEach(line => {\n this.text(doc, this.translateService.instant(line), 50, height + 11);\n height += this.spaceBetweenLinesInValue;\n });\n const extraLinesInValue = step.value.split('\\n').length - step.title.split('\\n').length;\n if (extraLinesInValue > 0) {\n height += this.spaceBetweenLinesInValue * extraLinesInValue;\n }\n height += this.spaceBetweenValues;\n });\n\n doc.setFont('HindMadurai-Medium');\n doc.setFontSize(14);\n doc.setTextColor(this.modularBlue[0], this.modularBlue[1], this.modularBlue[2]);\n height = startingHeight + 5;\n stepContent.forEach(step => {\n if (step.value != null) {\n step.value.split('\\n').forEach(line => {\n this.text(doc, line, 390, height + 11, {}, 0, 'right');\n height += this.spaceBetweenLinesInValue;\n });\n }\n height += this.spaceBetweenValues;\n });\n\n return startingHeight + boxHeight;\n }\n\n generateConflictItems(doc: jsPDF, stepContent: StepItem[], startingHeight: number) {\n const boxHeight = this.getBoxHeightAllOnleft(stepContent);\n doc.setFillColor(255, 245, 245);\n doc.roundedRect(40, startingHeight, 360, boxHeight, 8, 8, 'F');\n\n doc.setTextColor(this.modularBlue[0], this.modularBlue[1], this.modularBlue[2]);\n let height = startingHeight + 5;\n stepContent.forEach(step => {\n doc.setFontSize(12);\n step.title.split('\\n').forEach(line => {\n this.text(doc, line, 50, height + 11);\n height += this.spaceBetweenLinesInValue;\n });\n doc.setFontSize(10);\n if (step.value != null) {\n step.value.split('\\n').forEach(line => {\n this.text(doc, line, 50, height + 11, {}, 0, 'left');\n height += this.spaceBetweenLinesInValue;\n });\n }\n height += this.spaceBetweenValues;\n });\n doc.setFontSize(12);\n return startingHeight + boxHeight;\n }\n\n getBoxHeight(stepContent: StepItem[]) {\n const numberOfLines = stepContent\n .map(s => (s.value == null ? 1 : s.value.split('\\n').length))\n .reduce((a, b) => a + b, 0);\n return stepContent.length * this.spaceBetweenValues + numberOfLines * this.spaceBetweenLinesInValue + 10;\n }\n getBoxHeightAllOnleft(stepContent: StepItem[]) {\n const numberOfLines = stepContent\n .map(s => (s.value == null ? 0 : s.value.split('\\n').length) + s.title.split('\\n').length)\n .reduce((a, b) => a + b, 0);\n return stepContent.length * this.spaceBetweenValues + numberOfLines * this.spaceBetweenLinesInValue + 10;\n }\n\n stepToDisplayNumber(step: number): string {\n if (step >= 10) {\n return step.toString();\n }\n return '0' + step;\n }\n\n generateFooter(doc: jsPDF) {\n for (let page = 1; page <= this.numberOfPages; page++) {\n doc.setPage(page);\n doc.setTextColor(this.introTextColor[0], this.introTextColor[1], this.introTextColor[2]);\n doc.setFont('HindMadurai-Medium');\n doc.setFontSize(10);\n if (this.configurationService.configuration.configurationId) {\n this.text(\n doc,\n this.translateService.instant('SUMMARY.YOUR_UNIQUE_CONFIGURATION_ID') +\n ': ' +\n this.configurationService.configuration.configurationId,\n 40,\n 600\n );\n }\n const text =\n this.translateService.instant('SUMMARY.GENERATEDON') +\n ': ' +\n this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss');\n this.text(doc, text, 40, 610);\n\n doc.setTextColor(this.modularBlue[0], this.modularBlue[1], this.modularBlue[2]);\n doc.setFontSize(16);\n const pageNumberText = page + '/' + this.numberOfPages;\n this.text(doc, pageNumberText, 380, 600, {}, 0, 'right');\n }\n }\n}\n\nexport class StepItem {\n title: string;\n value: string | null;\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { Configuration } from '../models/configuration.model';\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\nimport { PriceInformation } from '../models/price-information';\nimport { PriceSettings } from '../settings/price-settings';\nimport { FloorTypes } from '../enums/floorTypes.enum';\nimport { ApiService } from './api.service';\nimport { ErrorService } from './error.service';\nimport { ErrorTypes } from '../enums/errorTypes.enum';\nimport { IWall } from '../interfaces/wall.interface';\nimport { WallFinish } from '../models/wallFinish.model';\nimport { WallSide } from '../enums/wallSide.enum';\nimport { FinishTypes } from '../enums/finishTypes.enum';\nimport { DoorType } from '../enums/doorType.enum';\nimport { DoorPrice } from '../models/doorPrice.model';\nimport { DoorPosition } from '../models/doorPosition.model';\nimport { SiliconeColours } from '../enums/siliconeColours.enum';\nimport { Purpose } from '../enums/purpose';\nimport { InnerWall } from '../models/innerWall.model';\nimport { InnerWallType } from '../enums/innerWallType.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PriceService {\n priceInformation$: BehaviorSubject = new BehaviorSubject({\n loading: true,\n price: 12345.5,\n });\n pricesLoaded$: EventEmitter = new EventEmitter();\n priceEnabled = false;\n pricesAreBeingLoaded = false;\n doorPricesCalculated = '';\n doorPrices = 0;\n prices: Record = null;\n doorPriceCache: Record = {};\n\n constructor(\n private apiService: ApiService,\n private errorService: ErrorService\n ) {}\n\n get hasPrices(): boolean {\n return this.prices !== null;\n }\n\n async updatePrice(configuration: Configuration): Promise {\n if (!this.priceEnabled) {\n return;\n }\n this.priceLoading();\n if (this.prices === null) {\n if (this.pricesAreBeingLoaded) {\n this.priceLoading();\n return;\n }\n try {\n this.prices = await this.apiService.get>('api/prices').toPromise();\n } catch (error) {\n this.errorService.throwError(ErrorTypes.InvalidAxToken);\n this.pricesAreBeingLoaded = false;\n return;\n }\n this.pricesAreBeingLoaded = false;\n this.pricesLoaded$.emit();\n }\n\n let price = this.calculateTotalPriceExcludingDoors(configuration);\n if (price === false) {\n this.returnInvalidPrice();\n return;\n }\n if (this.generateIdentifierForDoors(configuration) === this.doorPricesCalculated) {\n price += this.doorPrices;\n } else {\n const doorPrices = await this.getPricesOfDoors(configuration);\n if (doorPrices === false) {\n this.returnInvalidPrice();\n return;\n }\n\n price += doorPrices;\n this.doorPrices = doorPrices;\n this.doorPricesCalculated = this.generateIdentifierForDoors(configuration);\n }\n this.priceInformation$.next({ loading: false, price });\n\n return price;\n }\n\n generateIdentifierForDoors(configuration: Configuration): any {\n let text = '';\n configuration.settings.doorSettings.forEach(door => {\n text += this.getIDForDoorPrice(\n door,\n configuration.settings.wallThickness,\n configuration.settings.purpose !== Purpose.Cooling\n );\n });\n text += '|' + configuration.settings.wallThickness;\n return text;\n }\n\n priceLoading() {\n this.priceInformation$.next({ loading: true, price: 0 });\n }\n\n calculateTotalPriceExcludingDoors(configuration: Configuration): number | false {\n let price = 0;\n const basePrice = this.calculateModularBasicPrice(configuration);\n if (basePrice === false) {\n return false;\n }\n price += basePrice;\n\n const additionalCostOfFloor = this.calculateAdditionalCostsOfFloor(configuration);\n if (additionalCostOfFloor === false) {\n return false;\n }\n price += additionalCostOfFloor;\n\n const costOfVentilationProfiles = this.calculateCostOfVentilationProfiles(configuration);\n if (costOfVentilationProfiles === false) {\n return false;\n }\n price += costOfVentilationProfiles;\n\n const costOfPlinths = this.calculateCostOfPlinths(configuration);\n if (costOfPlinths === false) {\n return false;\n }\n price += costOfPlinths;\n\n const costOfFinishes = this.calculateCostOfWallFinishes(configuration);\n if (costOfFinishes === false) {\n return false;\n }\n price += costOfFinishes;\n\n const costOfValve = this.calculateCostOfAirPressureEqualizerValve(configuration);\n if (costOfValve === false) {\n return false;\n }\n price += costOfValve;\n\n const costOfUProfiles = this.calculatePriceOfUProfiles(configuration);\n if (costOfUProfiles === false) {\n return false;\n }\n price += costOfUProfiles;\n\n configuration.settings.innerWalls.forEach(iw => {\n const costOfInnerWall = this.calculatePriceOfInnerWall(iw, configuration);\n if (costOfInnerWall === false) {\n return false;\n }\n price += costOfInnerWall;\n });\n\n return price;\n }\n\n calculateCostOfAirPressureEqualizerValve(configuration: Configuration): number | false {\n if (configuration.settings.purpose === Purpose.Cooling) {\n return 0;\n }\n const articleItemId = PriceSettings.airPressureEqualizerValve;\n\n if (!this.prices[articleItemId]) {\n return false;\n }\n\n return this.prices[articleItemId] * this.calculateNumberOfAirPressureEqualizerValves(configuration);\n }\n\n calculateNumberOfAirPressureEqualizerValves(configuration: Configuration): number {\n return 1 + configuration.settings.innerWalls.length;\n }\n\n calculateModularBasicPrice(configuration: Configuration): number | false {\n let price = 0;\n const costOfPoles = this.calculateCostOfCornerBeams(configuration);\n if (costOfPoles === false) {\n return false;\n }\n price += costOfPoles;\n\n const costOfWalls = this.calculateCostOfWalls(configuration);\n if (costOfWalls === false) {\n return false;\n }\n price += costOfWalls;\n\n const costOfStandardFloor = this.calculateCostOfStandardFloor(configuration);\n if (costOfStandardFloor === false) {\n return false;\n }\n price += costOfStandardFloor;\n\n const costOfSilicone = this.calculateCostsOfAllSilicone(configuration);\n if (costOfSilicone === false) {\n return false;\n }\n price += costOfSilicone;\n\n return price;\n }\n\n returnInvalidPrice() {\n this.priceInformation$.next({ loading: false, price: 0, invalid: true });\n }\n\n calculateCostOfWalls(configuration: Configuration): number | false {\n let totalCost = 0;\n\n for (let index = 0; index < 4; index++) {\n const wall: IWall = this.getWallByWallSide(index, configuration);\n const wallPrice = this.calculateCostOfWall(wall, configuration);\n if (wallPrice === false) {\n return false;\n }\n totalCost += +wallPrice;\n }\n\n const ceilingCost = this.calculateCostOfCeiling(configuration);\n if (ceilingCost === false) {\n return false;\n }\n totalCost += +ceilingCost;\n\n return totalCost;\n }\n\n calculateCostOfWallFinishes(configuration: Configuration): number | false {\n let totalCost = 0;\n\n for (let index = 0; index < 4; index++) {\n const wall: IWall = this.getWallByWallSide(index, configuration);\n const wallFinish = configuration.settings.wallFinishes[index];\n\n const insidePrice = this.calculateCostOfWallInsideFinish(wall, wallFinish);\n const outsidePrice = this.calculateCostOfWallOutsideFinish(wall, wallFinish);\n if (insidePrice === false || outsidePrice === false) {\n return false;\n }\n totalCost += insidePrice + outsidePrice;\n }\n\n const ceilingInsidePrice = this.calculateCostOfCeilingInsideFinish(\n configuration,\n configuration.settings.wallFinishes[WallSide.ceiling]\n );\n const ceilingOutsidePrice = this.calculateCostOfCeilingOutsideFinish(\n configuration,\n configuration.settings.wallFinishes[WallSide.ceiling]\n );\n if (ceilingInsidePrice === false || ceilingOutsidePrice === false) {\n return false;\n }\n totalCost += ceilingInsidePrice + ceilingOutsidePrice;\n return totalCost;\n }\n\n getWallByWallSide(index: number, configuration: Configuration) {\n const wall: IWall = {\n side: index as WallSide,\n height: Math.max(configuration.settings.heightInMM / 1000, 2.1),\n depth: configuration.settings.lengthInMM / 1000,\n width: configuration.settings.widthInMM / 1000,\n wallLength: 0,\n wallThickness: configuration.settings.wallThickness,\n };\n if (wall.side === WallSide.north || wall.side === WallSide.south) {\n wall.wallLength = configuration.settings.widthInMM / 1000;\n } else {\n wall.wallLength = configuration.settings.lengthInMM / 1000;\n }\n return wall;\n }\n\n calculateCostOfCeiling(configuration: Configuration) {\n const ceilingSurface = (configuration.settings.lengthInMM / 1000) * (configuration.settings.widthInMM / 1000);\n\n const wallThicknessPrice =\n this.prices[PriceSettings.wallCoresToArticleNumbers[configuration.settings.wallThickness]];\n if (wallThicknessPrice === undefined) {\n return false;\n }\n const coreCost = wallThicknessPrice * ceilingSurface;\n return coreCost;\n }\n\n calculateCostOfCeilingInsideFinish(configuration: Configuration, finish: WallFinish) {\n const ceilingSurface = (configuration.settings.lengthInMM / 1000) * (configuration.settings.widthInMM / 1000);\n\n const interiorPrice = this.prices[PriceSettings.wallFinishToArticleNumbers[finish.interior]];\n if (interiorPrice === undefined) {\n return false;\n }\n const finishCost = interiorPrice * ceilingSurface;\n\n return finishCost;\n }\n\n calculateCostOfCeilingOutsideFinish(configuration: Configuration, finish: WallFinish) {\n const ceilingSurface = (configuration.settings.lengthInMM / 1000) * (configuration.settings.widthInMM / 1000);\n\n const exteriorPrice = this.prices[PriceSettings.wallFinishToArticleNumbers[finish.exterior]];\n if (exteriorPrice === undefined) {\n return false;\n }\n const finishCost = exteriorPrice * ceilingSurface;\n\n return finishCost;\n }\n\n calculateCostOfWall(wall: IWall, configuration: Configuration): number | false {\n const squareMetersOfWall = this.getWallSurfaceArea(wall);\n\n const wallThicknessPrice =\n this.prices[PriceSettings.wallCoresToArticleNumbers[configuration.settings.wallThickness]];\n\n if (wallThicknessPrice === undefined) {\n return false;\n }\n\n const coreCost = wallThicknessPrice * squareMetersOfWall;\n return coreCost;\n }\n\n calculateCostOfWallInsideFinish(wall: IWall, finish: WallFinish): number | false {\n const squareMetersOfWall = this.getWallSurfaceArea(wall);\n\n const interiorPrice = this.prices[PriceSettings.wallFinishToArticleNumbers[finish.interior]];\n if (interiorPrice === undefined) {\n return false;\n }\n const finishCost = interiorPrice * squareMetersOfWall;\n return finishCost;\n }\n\n calculateCostOfWallOutsideFinish(wall: IWall, finish: WallFinish): number | false {\n const squareMetersOfWall = this.getWallSurfaceArea(wall);\n const exteriorPrice = this.prices[PriceSettings.wallFinishToArticleNumbers[finish.exterior]];\n if (exteriorPrice === undefined) {\n return false;\n }\n const finishCost = exteriorPrice * squareMetersOfWall;\n\n return finishCost;\n }\n\n getWallSurfaceArea(wall: IWall) {\n return wall.height * wall.wallLength;\n }\n\n calculateCostOfWallFinishesForAllFinishes(configuration: Configuration): Record {\n const result: Record = {\n [FinishTypes.STEEL]: this.calculateCostOfWallFinishesByFinish(FinishTypes.STEEL, configuration),\n [FinishTypes.STEEL_PET55]: this.calculateCostOfWallFinishesByFinish(FinishTypes.STEEL_PET55, configuration),\n [FinishTypes.RVS304_LINE_BRUSH]: this.calculateCostOfWallFinishesByFinish(\n FinishTypes.RVS304_LINE_BRUSH,\n configuration\n ),\n [FinishTypes.RVS304_COLLED_ROLLED]: this.calculateCostOfWallFinishesByFinish(\n FinishTypes.RVS304_COLLED_ROLLED,\n configuration\n ),\n [FinishTypes.RVS304_DESIGN_5WL]: this.calculateCostOfWallFinishesByFinish(\n FinishTypes.RVS304_DESIGN_5WL,\n configuration\n ),\n [FinishTypes.RVS304_LINEN]: this.calculateCostOfWallFinishesByFinish(FinishTypes.RVS304_LINEN, configuration),\n [FinishTypes.RVS304_ROUND_BRUSH]: this.calculateCostOfWallFinishesByFinish(\n FinishTypes.RVS304_ROUND_BRUSH,\n configuration\n ),\n [FinishTypes.RVS316_ROUND_BRUSH]: this.calculateCostOfWallFinishesByFinish(\n FinishTypes.RVS316_ROUND_BRUSH,\n configuration\n ),\n };\n return result;\n }\n\n calculateCostOfWallFinishesByFinish(finishTypeToFilter: FinishTypes, configuration: Configuration) {\n let totalCost = 0;\n\n for (let index = 0; index < 4; index++) {\n const wall: IWall = this.getWallByWallSide(index, configuration);\n const wallFinish: WallFinish = configuration.settings.wallFinishes[index];\n if (wallFinish.interior === finishTypeToFilter) {\n const priceInside = this.calculateCostOfWallInsideFinish(wall, wallFinish);\n if (!priceInside) {\n return false;\n }\n totalCost += priceInside;\n }\n if (wallFinish.exterior === finishTypeToFilter) {\n const priceOutside = this.calculateCostOfWallOutsideFinish(wall, wallFinish);\n if (!priceOutside) {\n return false;\n }\n totalCost += priceOutside;\n }\n }\n const ceilingFinish: WallFinish = configuration.settings.wallFinishes[WallSide.ceiling];\n if (ceilingFinish.interior === finishTypeToFilter) {\n const priceInside = this.calculateCostOfCeilingInsideFinish(configuration, ceilingFinish);\n if (!priceInside) {\n return false;\n }\n totalCost += priceInside;\n }\n if (ceilingFinish.exterior === finishTypeToFilter) {\n const priceInside = this.calculateCostOfCeilingOutsideFinish(configuration, ceilingFinish);\n if (!priceInside) {\n return false;\n }\n totalCost += priceInside;\n }\n return totalCost;\n }\n\n calculateCostOfCornerBeams(configuration: Configuration): number | false {\n const verticalCornersLengthInM = this.calculateVerticalCornerBeams(configuration);\n const horizontalCornersLengthInM = this.calculateHorizontalCornerBeams(configuration);\n\n const articleItemId = PriceSettings.cornerBeamThicknessToArticles[configuration.settings.wallThickness];\n\n if (this.prices && this.prices[articleItemId]) {\n const price = (verticalCornersLengthInM + horizontalCornersLengthInM) * this.prices[articleItemId];\n return price;\n }\n console.log('Price for ' + articleItemId + ' not found.');\n return false;\n }\n\n calculateHorizontalCornerBeams(configuration: Configuration) {\n let lengthInMM = 0;\n lengthInMM += this.calculateInsidePerimeter(configuration);\n if (configuration.settings.floorType !== FloorTypes.NONE) {\n lengthInMM += this.calculateInsidePerimeter(configuration);\n }\n return lengthInMM / 1000;\n }\n\n calculateVerticalCornerBeams(configuration: Configuration) {\n const panelThickness = configuration.settings.wallThickness;\n let lengthInMM = 0;\n\n if (configuration.settings.floorType !== FloorTypes.NONE) {\n lengthInMM += this.height(configuration) + 2 * panelThickness;\n } else {\n lengthInMM += this.height(configuration) + panelThickness;\n }\n lengthInMM *= 4;\n return lengthInMM / 1000;\n }\n\n calculateCostOfStandardFloor(configuration: Configuration): number | false {\n const floorSurfaceInSqM = this.floorSurface(configuration);\n\n const internalFinishArticleItemId = PriceSettings.floorTypesToArticleNumbers[FloorTypes.DURAFLOOR];\n const externalFinishArticleItemId = PriceSettings.wallFinishToArticleNumbers[FinishTypes.STEEL];\n const coreArticleItemId = PriceSettings.wallCoresToArticleNumbers[configuration.settings.wallThickness];\n\n if (\n this.prices[internalFinishArticleItemId] &&\n this.prices[externalFinishArticleItemId] &&\n this.prices[coreArticleItemId]\n ) {\n const pricePerSqM =\n this.prices[internalFinishArticleItemId] +\n this.prices[coreArticleItemId] +\n this.prices[externalFinishArticleItemId];\n const price = floorSurfaceInSqM * pricePerSqM;\n return price;\n }\n console.log(\n 'Price for ' +\n internalFinishArticleItemId +\n ' or ' +\n externalFinishArticleItemId +\n ' or ' +\n coreArticleItemId +\n ' not found.'\n );\n return false;\n }\n\n calculateAdditionalCostsOfFloor(configuration: Configuration): number | false {\n if (configuration.settings.floorType === FloorTypes.NONE) {\n return -this.calculateCostOfStandardFloor(configuration);\n }\n let price = 0;\n if (configuration.settings.floorType !== FloorTypes.DURAFLOOR) {\n const floorSurfaceInSqM = this.floorSurface(configuration);\n const internalFinishArticleItemId = PriceSettings.floorTypesToArticleNumbers[configuration.settings.floorType];\n if (!this.prices[internalFinishArticleItemId]) {\n return false;\n }\n price += floorSurfaceInSqM * this.prices[internalFinishArticleItemId];\n }\n\n if (configuration.settings.wallFinishes[+WallSide.floor].exterior !== FinishTypes.STEEL) {\n const floorSurfaceInSqM = this.floorSurface(configuration);\n const externalFinishArticleItemId =\n PriceSettings.wallFinishToArticleNumbers[configuration.settings.wallFinishes[+WallSide.floor].exterior];\n if (!this.prices[externalFinishArticleItemId]) {\n return false;\n }\n price += floorSurfaceInSqM * this.prices[externalFinishArticleItemId];\n }\n return price;\n }\n\n calculateCostOfVentilationProfiles(configuration: Configuration): number | false {\n if (configuration.settings.floorType === FloorTypes.NONE || configuration.settings.ventilationProfiles === false) {\n return 0;\n }\n\n const longSide = Math.max(configuration.settings.widthInMM, configuration.settings.lengthInMM);\n const shortSide = Math.min(configuration.settings.widthInMM, configuration.settings.lengthInMM);\n const wallThickness = configuration.settings.wallThickness;\n\n const totalLength = ((Math.ceil(longSide / 400) + 3) * (shortSide + wallThickness * 2)) / 1000;\n\n const ventilationProfileArticleItemId = PriceSettings.ventilationProfiles;\n if (!this.prices[ventilationProfileArticleItemId]) {\n return false;\n }\n const price = this.prices[ventilationProfileArticleItemId] * totalLength;\n return price;\n }\n\n calculateCostOfPlinths(configuration: Configuration): number | false {\n if (configuration.settings.plinthsInside === false && configuration.settings.plinthsOutside === false) {\n return 0;\n }\n const factorForOutside = 8;\n const totalDoorLength = configuration.settings.doorSettings.reduce(\n (sum, current) => sum + current.doorModel.panelWidth,\n 0\n );\n let insideLengthInMM = this.calculateInsidePerimeter(configuration) - totalDoorLength;\n insideLengthInMM += configuration.settings.innerWalls\n .map(iw =>\n iw.placedOnSide === WallSide.east || iw.placedOnSide === WallSide.west\n ? configuration.settings.widthInMM\n : configuration.settings.lengthInMM\n )\n .reduce((sum, current) => (sum += 2 * current), 0);\n\n const outsideLengthInMM =\n this.calculateInsidePerimeter(configuration) +\n configuration.settings.wallThickness * factorForOutside -\n totalDoorLength;\n\n let lengthInM = 0;\n if (configuration.settings.plinthsInside) {\n lengthInM += insideLengthInMM / 1000;\n }\n if (configuration.settings.plinthsOutside) {\n lengthInM += outsideLengthInMM / 1000;\n }\n lengthInM = Math.ceil(lengthInM / 4) * 4;\n const quantity = lengthInM / 4;\n const plinthsArticleItemId = PriceSettings.plinths;\n if (!this.prices[plinthsArticleItemId]) {\n return false;\n }\n let price = this.prices[plinthsArticleItemId] * quantity;\n\n const plinthsScrewsArticleItemId = PriceSettings.plinthsScrews;\n if (!this.prices[plinthsScrewsArticleItemId]) {\n return false;\n }\n price += (this.prices[plinthsScrewsArticleItemId] * lengthInM) / 0.6;\n return price;\n }\n\n async getPricesOfDoors(configuration: Configuration): Promise {\n let totalPrice = 0;\n for (const door of configuration.settings.doorSettings) {\n const price = await this.getPriceOfDoor(\n door,\n configuration.settings.wallThickness,\n configuration.settings.purpose !== Purpose.Cooling\n );\n if (price === false) {\n this.returnInvalidPrice();\n return;\n }\n totalPrice += price.Price;\n }\n\n return totalPrice;\n }\n\n getIDForDoorPrice(door: DoorPosition, wallThickness: number, isFreezer: boolean) {\n return (\n door.doorModel.openingHeight +\n '-' +\n door.doorModel.openingWidth +\n '|' +\n wallThickness +\n (isFreezer ? 'F' : 'C') +\n door.leafExteriorFinish +\n door.leafInteriorFinish +\n door.doorModel.type +\n '|' +\n door.doorHandleType +\n '|' +\n door.hingeType\n );\n }\n\n async getPriceOfDoor(door: DoorPosition, wallThickness: number, isFreezer: boolean): Promise {\n let type = '';\n\n const id = this.getIDForDoorPrice(door, wallThickness, isFreezer);\n if (Object.keys(this.doorPriceCache).includes(id)) {\n return this.doorPriceCache[id];\n }\n switch (door.doorModel.type) {\n case DoorType.Turn:\n type = 'DE';\n break;\n case DoorType.Slide:\n type = 'EN';\n break;\n }\n switch (wallThickness) {\n case 60:\n type += '06';\n break;\n case 80:\n type += '08';\n break;\n case 100:\n type += '10';\n break;\n case 140:\n type += '14';\n break;\n case 180:\n type += '18';\n break;\n }\n try {\n const price = await firstValueFrom(\n this.apiService.getDoorPrice(\n type,\n door.doorModel.openingHeight,\n door.doorModel.openingWidth,\n isFreezer,\n door.leafInteriorFinish,\n door.leafExteriorFinish,\n door.doorHandleType,\n door.hingeType\n )\n );\n this.doorPriceCache[id] = price;\n return price;\n } catch {\n this.errorService.throwError(ErrorTypes.InvalidAxToken);\n return false;\n }\n }\n\n getSiliconeColourForFinish(finishType: FinishTypes | FloorTypes): SiliconeColours {\n switch (finishType) {\n case FinishTypes.STEEL:\n case FloorTypes.DURAFLOOR:\n return SiliconeColours.White;\n\n case FinishTypes.STEEL_PET55:\n case FinishTypes.RVS304_ROUND_BRUSH:\n case FinishTypes.RVS316_ROUND_BRUSH:\n case FinishTypes.RVS304_COLLED_ROLLED:\n case FinishTypes.RVS304_LINE_BRUSH:\n case FinishTypes.RVS304_LINEN:\n case FinishTypes.RVS304_DESIGN_5WL:\n case FloorTypes.ALUMINUM25:\n case FloorTypes.ALUMINUM35:\n case FloorTypes.STEELSMOOTH3:\n case FloorTypes.STEELANTISLIP5:\n return SiliconeColours.Transparent;\n\n case FloorTypes.ANTISLIP:\n case FloorTypes.REINFORCEDANTISLIP:\n case FloorTypes.RVSANTISLIPR13:\n return SiliconeColours.Bronze;\n }\n }\n\n calculateCostsOfAllSilicone(configuration: Configuration): number | false {\n const priceBronze = this.calculateCostOfSilicone(configuration, SiliconeColours.Bronze);\n const priceTransparent = this.calculateCostOfSilicone(configuration, SiliconeColours.Transparent);\n const priceWhite = this.calculateCostOfSilicone(configuration, SiliconeColours.White);\n if (priceBronze === false || priceTransparent === false || priceWhite === false) {\n return false;\n }\n return priceBronze + priceTransparent + priceWhite;\n }\n\n calculateCostOfSilicone(configuration: Configuration, siliconeColour: SiliconeColours): number | false {\n const quantity = Math.ceil(this.getQuantityOfSiliconeByColour(configuration, siliconeColour));\n const price = this.prices[PriceSettings.siliconeToArticleNumbers[siliconeColour]];\n if (!price) {\n return false;\n }\n return price * quantity;\n }\n\n getQuantityOfSiliconeByColour(configuration: Configuration, colour: SiliconeColours): number {\n const widthInM = configuration.settings.widthInMM / 1000;\n const lengthInM = configuration.settings.lengthInMM / 1000;\n\n let quantity = 0;\n if (configuration.settings.floorType === FloorTypes.NONE) {\n if (this.getSiliconeColourForFinish(configuration.settings.wallFinishes[WallSide.south].interior) === colour) {\n quantity += (widthInM * 2) / 10;\n }\n if (this.getSiliconeColourForFinish(configuration.settings.wallFinishes[WallSide.north].interior) === colour) {\n quantity += (widthInM * 2) / 10;\n }\n if (this.getSiliconeColourForFinish(configuration.settings.wallFinishes[WallSide.east].interior) === colour) {\n quantity += (lengthInM * 2) / 10;\n }\n if (this.getSiliconeColourForFinish(configuration.settings.wallFinishes[WallSide.west].interior) === colour) {\n quantity += (lengthInM * 2) / 10;\n }\n configuration.settings.innerWalls.forEach(iw => {\n if (this.getSiliconeColourForFinish(iw.interiorFinish) === colour) {\n quantity += iw.placedOnSide % 2 === 0 ? widthInM : (lengthInM * 2) / 10;\n }\n });\n } else {\n if (this.getSiliconeColourForFinish(configuration.settings.floorType) === colour) {\n quantity += Math.ceil(widthInM / 1.2) * lengthInM;\n quantity += Math.ceil(lengthInM / 2.4) * widthInM;\n quantity /= 5;\n quantity = Math.ceil(quantity);\n }\n }\n return quantity;\n }\n\n calculatePriceOfUProfiles(configuration: Configuration): number | false {\n if (configuration.settings.floorType !== FloorTypes.NONE) {\n return 0;\n }\n if (configuration.settings.wallThickness <= 100) {\n return this.calculatePriceOfUProfilesUpTo10(configuration);\n }\n return false;\n }\n\n calculatePriceOfUProfilesUpTo10(configuration: Configuration): number | false {\n let price = 0;\n const wallThicknessInMM = configuration.settings.wallThickness;\n const pvcProfileArticleId = PriceSettings.uProfiles[wallThicknessInMM];\n if (!pvcProfileArticleId) {\n return false;\n }\n const lengthInMM = configuration.settings.lengthInMM;\n const widthInMM = configuration.settings.widthInMM;\n let quantity = Math.ceil(((lengthInMM + widthInMM + 2 * wallThicknessInMM) * 2) / 3 / 1000);\n configuration.settings.innerWalls\n .map(iw =>\n iw.placedOnSide === WallSide.east || iw.placedOnSide === WallSide.west\n ? configuration.settings.widthInMM\n : configuration.settings.lengthInMM\n )\n .forEach(value => (quantity += Math.ceil(value / 1000 / 3)));\n quantity = Math.ceil(quantity);\n if (this.prices[pvcProfileArticleId] === undefined) {\n return false;\n }\n price += 3 * quantity * this.prices[pvcProfileArticleId];\n const pvcProfileCornerArticleId = PriceSettings.uProfilesCorners[wallThicknessInMM];\n\n if (!pvcProfileCornerArticleId || this.prices[pvcProfileCornerArticleId] === undefined) {\n return false;\n }\n price += 4 * this.prices[pvcProfileCornerArticleId];\n\n if (this.prices[PriceSettings.butyl] === undefined) {\n return false;\n }\n price += quantity * this.prices[PriceSettings.butyl];\n\n if (this.prices[PriceSettings.strokePlug] === undefined) {\n return false;\n }\n price += quantity * 18 * this.prices[PriceSettings.strokePlug];\n\n if (this.prices[PriceSettings.washer] === undefined) {\n return false;\n }\n price += quantity * 18 * this.prices[PriceSettings.washer];\n return price;\n }\n\n calculatePriceOfInnerWall(iw: InnerWall, configuration: Configuration): number | false {\n let price = 0;\n let surface = 0;\n let innerWallLength = 0;\n const innerWallHeight = configuration.settings.heightInMM / 1000;\n if (iw.placedOnSide === WallSide.east || iw.placedOnSide === WallSide.west) {\n surface = (configuration.settings.widthInMM / 1000) * (configuration.settings.heightInMM / 1000);\n innerWallLength = configuration.settings.widthInMM / 1000;\n } else {\n surface = (configuration.settings.lengthInMM / 1000) * (configuration.settings.heightInMM / 1000);\n innerWallLength = configuration.settings.lengthInMM / 1000;\n }\n const wallThicknessPrice =\n this.prices[PriceSettings.wallCoresToArticleNumbers[configuration.settings.wallThickness]];\n if (wallThicknessPrice === undefined) {\n return false;\n }\n\n price += wallThicknessPrice * surface;\n\n const interiorPrice = this.prices[PriceSettings.wallFinishToArticleNumbers[iw.interiorFinish]];\n if (interiorPrice === undefined) {\n return false;\n }\n\n price += interiorPrice * surface;\n\n const exteriorPrice = this.prices[PriceSettings.wallFinishToArticleNumbers[iw.exteriorFinish]];\n if (exteriorPrice === undefined) {\n return false;\n }\n\n price += exteriorPrice * surface;\n switch (iw.type) {\n case InnerWallType.threeway: {\n let amount = (innerWallLength + innerWallHeight) * 2 + (4 * configuration.settings.wallThickness) / 1000;\n if (configuration.settings.floorType === FloorTypes.NONE) {\n amount -= innerWallLength + (2 * configuration.settings.wallThickness) / 1000;\n }\n const threeWayCornerItemId = PriceSettings.threeWayCornerByThickness[configuration.settings.wallThickness];\n if (this.prices[threeWayCornerItemId] === undefined) {\n return false;\n }\n price += amount * this.prices[threeWayCornerItemId];\n break;\n }\n case InnerWallType.lProfile: {\n const amount = innerWallLength * 2 + innerWallHeight * 4;\n const lProfileItemId = PriceSettings.lProfileByThickness[configuration.settings.wallThickness];\n if (this.prices[lProfileItemId] === undefined) {\n return false;\n }\n price += amount * this.prices[lProfileItemId];\n break;\n }\n }\n return price;\n }\n\n private height(configuration: Configuration) {\n return Math.max(configuration.settings.heightInMM, 2100);\n }\n\n private floorSurface(configuration: Configuration) {\n return (configuration.settings.lengthInMM / 1000) * (configuration.settings.widthInMM / 1000);\n }\n\n private calculateInsidePerimeter(configuration: Configuration): number {\n return 2 * configuration.settings.lengthInMM + 2 * configuration.settings.widthInMM;\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { ActivatedRoute, ParamMap } from '@angular/router';\nimport { StartupConfiguration } from '../models/startupConfiguration.model';\nimport { Language } from '../models/language.model';\nimport { BehaviorSubject } from 'rxjs';\nimport { ThreeDService } from './three-d.service';\nimport { ConfigurationReceived } from '../models/configurationReceived.model';\nimport { filter, take } from 'rxjs/operators';\nimport { ConfigurationService } from './configuration.service';\nimport { AppInsightsService } from './appinsights.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StartupService {\n private _startupInput: StartupConfiguration;\n private _languageReceived$: EventEmitter = new EventEmitter();\n\n get languageReceived$(): EventEmitter {\n return this._languageReceived$;\n }\n\n configurationReceived$: EventEmitter = new EventEmitter();\n moveToSummaryForLoadedConfiguration$: EventEmitter = new EventEmitter();\n loading$: EventEmitter = new EventEmitter();\n initialized$: BehaviorSubject = new BehaviorSubject(true);\n sharedLinkConfiguration$: BehaviorSubject = new BehaviorSubject(false);\n priceEnabledSetting$: BehaviorSubject = new BehaviorSubject(false);\n constructor(\n private appInsightsService: AppInsightsService,\n private activatedRoute: ActivatedRoute,\n private threeDService: ThreeDService\n ) {\n this._startupInput = new StartupConfiguration();\n }\n\n get startupInput(): StartupConfiguration {\n return this._startupInput;\n }\n\n readInput(queryParams: ParamMap) {\n if (queryParams.has('share')) {\n this.appInsightsService.logEvent('Opening shared link', { configurationId: queryParams.get('share') });\n this.setUpSharedLink(queryParams.get('share'));\n return;\n }\n queryParams.keys.forEach(key => {\n switch (key.toLowerCase()) {\n case 'configurationid':\n this._startupInput.configurationId = queryParams.get(key);\n if (this._startupInput.configurationId) {\n this.configurationReceived$.emit({ configurationId: this._startupInput.configurationId, makeCopy: false });\n }\n break;\n case 'itemid':\n this._startupInput.itemId = queryParams.get(key);\n break;\n case 'language':\n this._startupInput.language = new Language(queryParams.get(key));\n this.languageReceived$.emit(this._startupInput.language);\n break;\n case 'token':\n this._startupInput.token = queryParams.get(key);\n break;\n }\n });\n this.threeDService.finishedBuilding$.subscribe(() => {\n this.languageReceived$.emit(this._startupInput.language);\n });\n if (this._startupInput.token) {\n this.priceEnabledSetting$.next(true);\n this.initialized$.next(true);\n } else {\n this.priceEnabledSetting$.next(false);\n this.initialized$.next(true);\n }\n }\n setUpSharedLink(shareId: string) {\n this.sharedLinkConfiguration$.next(shareId);\n }\n\n loadConfiguration(configurationId: string) {\n const language = this.activatedRoute.snapshot.queryParamMap.get('language');\n this.threeDService.finishedBuilding$.pipe(take(1)).subscribe(() => this.loading$.emit(true));\n this.threeDService.modelFinishedConstructing$\n .pipe(filter(x => x == ConfigurationService.COOLING_CELL_TIMER_LOAD_CONFIGURATION))\n .subscribe(() => this.moveToSummaryForLoadedConfiguration$.emit(null));\n this.configurationReceived$.emit({ configurationId, makeCopy: true, languageOverride: language });\n }\n\n get token() {\n return this._startupInput.token;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { ConfigurationService } from './configuration.service';\nimport { PriceService } from './price.service';\nimport { ThreeDService } from './three-d.service';\nimport { ModularGoogleAnalyticsService } from './modular-google-analytics.service';\nimport { WallSide } from '../enums/wallSide.enum';\nimport { StartupService } from './startup.service';\nimport { debounceTime, take } from 'rxjs/operators';\nimport { AppInsightsService } from './appinsights.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StepService {\n public step = 1;\n public maxStep = 8;\n public minStep = 1;\n loading$: EventEmitter = new EventEmitter();\n blockOnDoorCount: boolean;\n private newStep$: EventEmitter = new EventEmitter();\n\n constructor(\n private appInsightsService: AppInsightsService,\n private configurationService: ConfigurationService,\n private priceService: PriceService,\n private threeDService: ThreeDService,\n private startupService: StartupService,\n private modularGoogleAnalyticsService: ModularGoogleAnalyticsService\n ) {\n this.appInsightsService.startPageTrack(this.stepName(1));\n this.modularGoogleAnalyticsService.sendPageView(this.stepDescriptionEnglish(1));\n this.startupService.loading$.subscribe(loading => this.loading$.emit(loading));\n this.startupService.moveToSummaryForLoadedConfiguration$.pipe(debounceTime(300), take(1)).subscribe(() => {\n this.actuallyMoveStep(this.maxStep);\n this.loading$.emit(false);\n });\n }\n\n get stepChange$() {\n return this.newStep$;\n }\n\n get forwardBlocked() {\n if (this.blockOnDoorCount) {\n if (\n this.configurationService.configuration.settings.doorSettings.filter(d => d.side !== WallSide.inner).length ===\n 0\n ) {\n return true;\n }\n }\n\n if (this.priceService.priceEnabled && !this.priceService.hasPrices) {\n return true;\n }\n\n if (!this.threeDService.modelIsReady) {\n return true;\n }\n\n return false;\n }\n\n get forwardBlockedMessage(): string {\n if (this.blockOnDoorCount) {\n if (\n this.configurationService.configuration.settings.doorSettings.filter(d => d.side !== WallSide.inner).length ===\n 0\n ) {\n return 'ERRORS.ATLEASTONEDOOR';\n }\n }\n if (this.priceService.priceEnabled && !this.priceService.hasPrices) {\n return 'ERRORS.PRICESBEINGLOADED';\n }\n\n if (!this.threeDService.modelIsReady) {\n return 'ERRORS.MODELBEINGLOADED';\n }\n\n return '';\n }\n\n stepName(step: number) {\n switch (step) {\n case 4:\n return 'STEP4';\n case 5:\n return 'STEPINNERWALL';\n case 6:\n return 'STEP5';\n case 7:\n return 'STEP6';\n default:\n return 'STEP' + step;\n }\n }\n\n stepDescriptionEnglish(step: number) {\n switch (step) {\n case 1:\n return 'Purpose';\n case 2:\n return 'WallThickness';\n case 3:\n return 'Dimensions';\n case 4:\n return 'Floor';\n case 5:\n return 'InnerWalls';\n case 6:\n return 'Doors';\n case 7:\n return 'Finishes';\n case 8:\n return 'Summary';\n default:\n return 'unknown step';\n }\n }\n\n blockForwardUntilMoreThanOneDoorSelected() {\n this.blockOnDoorCount = true;\n }\n\n releaseBlockForwardUntilMoreThanOneDoorSelected() {\n this.blockOnDoorCount = false;\n }\n\n nextStep(): number {\n if (this.forwardBlocked) {\n return this.step;\n }\n if (this.step + 1 <= this.maxStep) {\n this.actuallyMoveStep(this.step + 1);\n }\n return this.step;\n }\n\n previousStep(): number {\n if (this.step - 1 >= this.minStep) {\n this.actuallyMoveStep(this.step - 1);\n }\n return this.step;\n }\n\n moveToStep(stepNumber: number): number {\n if (this.forwardBlocked && stepNumber > this.step) {\n return;\n }\n if (stepNumber >= this.minStep && stepNumber <= this.maxStep) {\n this.actuallyMoveStep(stepNumber);\n }\n\n return this.step;\n }\n\n getActiveStep() {\n return this.step;\n }\n\n getMinStep() {\n return this.minStep;\n }\n\n getMaxStep() {\n return this.maxStep;\n }\n\n private _logStepChange(newStep: number) {\n this.appInsightsService.stopPageTrack(this.stepName(this.step), window.location.href, {\n configuration: this.configurationService.configuration.configurationId,\n });\n this.appInsightsService.startPageTrack(this.stepName(newStep));\n this.modularGoogleAnalyticsService.sendPageView(this.stepDescriptionEnglish(newStep));\n }\n\n private actuallyMoveStep(stepNumber: number) {\n this._logStepChange(stepNumber);\n this.step = stepNumber;\n this.newStep$.emit(this.step);\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { WallSide } from '../enums/wallSide.enum';\nimport { ICoolingCell } from '../interfaces/coolingCell.interface';\nimport { IWall } from '../interfaces/wall.interface';\nimport { IDoorManager } from '../interfaces/doorManager.interface';\nimport { DoorDirection } from '../enums/doorDirection.enum';\nimport { DoorPosition } from '../models/doorPosition.model';\nimport { NotificationService } from './notification.service';\nimport { FinishTypes } from '../enums/finishTypes.enum';\nimport { ISceneManager, IWallMaterialPerSide } from '../interfaces/sceneManager.interface';\nimport { WallFinish } from '../models/wallFinish.model';\nimport { DoorType } from '../enums/doorType.enum';\nimport { IWallSelection } from '../interfaces/wallSelection.interface';\nimport { InnerWallType } from '../enums/innerWallType.enum';\nimport { InnerWall } from '../models/innerWall.model';\nimport { DoorHandleType } from '../enums/doorHandleType.enum';\nimport { HingeType } from '../enums/hingeType.enum';\nimport { BehaviorSubject } from 'rxjs';\nimport { Conflicts, InvalidPanel } from '../models/conflicts.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThreeDService {\n doorAdded$: EventEmitter = new EventEmitter();\n doorReplaced$: EventEmitter = new EventEmitter();\n doorAddedFailed$: EventEmitter = new EventEmitter();\n doorCollision$: EventEmitter = new EventEmitter();\n doorDropsOffWall$: EventEmitter = new EventEmitter();\n doorDroppedOffWall$: EventEmitter = new EventEmitter();\n doorPositionSet$: EventEmitter = new EventEmitter();\n doorRemoved$: EventEmitter = new EventEmitter();\n updateDoors$: EventEmitter = new EventEmitter();\n doorSelected$: EventEmitter = new EventEmitter();\n doorSelectionRemoved$: EventEmitter = new EventEmitter();\n wallSelectionChanged$: EventEmitter = new EventEmitter();\n doorHeightChangedFailed$: EventEmitter = new EventEmitter();\n doorWidthChangedFailed$: EventEmitter = new EventEmitter();\n readyForInput$: EventEmitter = new EventEmitter();\n finishedBuilding$: EventEmitter = new EventEmitter();\n modelFinishedConstructing$: EventEmitter = new EventEmitter();\n conflicts$ = new BehaviorSubject({ collisions: [], invalidPanels: [] } as Conflicts);\n readyReceived = false;\n readyReceived$ = new EventEmitter();\n collided: boolean;\n doorDropsOffWall: boolean;\n nextCoolingCellCounter: number;\n private iframe: any = null;\n\n constructor(private notificationService: NotificationService) {}\n\n get wallSelectionEnabled(): boolean {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n return this.iframe.isomasters3d.wallSelectionEnabled;\n }\n\n set wallSelectionEnabled(value: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return;\n }\n\n this.iframe.isomasters3d.wallSelectionEnabled = value;\n }\n\n get innerWallSelectionEnabled(): boolean {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n return this.iframe.isomasters3d.innerWallSelectionEnabled;\n }\n\n set innerWallSelectionEnabled(value: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return;\n }\n\n this.iframe.isomasters3d.innerWallSelectionEnabled = value;\n }\n\n get doorSelectionEnabled(): boolean {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n return this.iframe.isomasters3d.doorSelectionEnabled;\n }\n\n set doorSelectionEnabled(value: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return;\n }\n\n this.doorManager.deselectDoor();\n this.iframe.isomasters3d.doorSelectionEnabled = value;\n }\n\n get ceilingSelectionEnabled(): boolean {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n return this.iframe.isomasters3d.ceilingSelectionEnabled;\n }\n\n set ceilingSelectionEnabled(value: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return;\n }\n\n this.doorManager.deselectDoor();\n this.iframe.isomasters3d.ceilingSelectionEnabled = value;\n }\n\n get modelIsReady(): boolean {\n if (!this.iframe || !this.readyReceived) {\n return false;\n }\n\n if (!this.coolingCell) {\n return false;\n }\n\n if (!this.coolingCell.readyForInput) {\n return false;\n }\n\n return true;\n }\n\n get selectedDoor(): DoorPosition {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.createDoorPosition(this.doorManager.getSelectedIDoor());\n }\n\n get doorManager(): IDoorManager {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.iframe.isomasters3d.getDoorManager();\n }\n\n get wallSelection(): IWallSelection {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.iframe.isomasters3d.getWallSelection();\n }\n\n get coolingCell(): ICoolingCell {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.iframe.isomasters3d.getCoolingCell();\n }\n\n setIframe(iframe: any): boolean {\n if (iframe && iframe.isomasters3d && iframe.isomasters3d.getCoolingCell()) {\n this.iframe = iframe;\n this.iframe.document.addEventListener('DoorSelected', this.doorSelectedEventHandler);\n this.iframe.document.addEventListener('DoorSelectionRemoved', this.doorSelectionRemovedEventHandler);\n this.iframe.document.addEventListener('ReadyForInput', this.readyInputEventHandler);\n this.iframe.document.addEventListener('DoorAdded', this.doorAddedEventHandler);\n this.iframe.document.addEventListener('DoorReplaced', this.doorReplacedEventHandler);\n this.iframe.document.addEventListener('DoorAddedFailed', this.doorAddedFailedEventHandler);\n this.iframe.document.addEventListener('DoorCollision', this.doorCollisionEventHandler);\n this.iframe.document.addEventListener('DoorDropsOffWall', this.doorDropsOffWallEventHandler);\n this.iframe.document.addEventListener('DoorPositionAdjusted', this.doorPositionAdjustedEventHandler);\n this.iframe.document.addEventListener('DoorRemoved', this.doorRemovedEventHandler);\n this.iframe.document.addEventListener('DoorDroppedOffWall', this.doorDroppedOffWallEventHandler);\n this.iframe.document.addEventListener('DoorHeightChanged', this.doorHeightChangedEventHandler);\n this.iframe.document.addEventListener('DoorPositionSet', this.doorPositionSetEventHandler);\n this.iframe.document.addEventListener('WallSelectionChanged', this.wallSelectionChangedEventHandler);\n this.iframe.document.addEventListener('DoorHeightDoesNotFit', this.doorHeightDoesNotFitEventHandler);\n this.iframe.document.addEventListener('DoorWidthDoesNotFit', this.doorWidthDoesNotFitEventHandler);\n this.iframe.document.addEventListener('DoorCantOpen', this.doorCantOpenEventHandler);\n this.iframe.document.addEventListener('NewInnerwallNotPossible', this.newInnerWallNotPossibleEventHandler);\n this.iframe.document.addEventListener('InnerwallRemoved', this.innerWallRemovedEventHandler);\n this.iframe.document.addEventListener('ReadyForMoreInput', () => {\n this.readyForInput$.emit();\n });\n this.iframe.document.addEventListener('FinishedBuilding', () => {\n this.finishedBuilding$.emit();\n });\n this.iframe.document.addEventListener('ModelFinishedConstructing', (event: CustomEvent) => {\n this.modelFinishedConstructing$.emit(event.detail);\n this.updateConflicts();\n });\n\n const coolingCell = this.iframe.isomasters3d.getCoolingCell();\n if (coolingCell.readyForInput) {\n if (!this.readyReceived) {\n this.readyReceived = true;\n this.readyReceived$.emit(true);\n }\n return true;\n }\n }\n\n return false;\n }\n\n recreateCoolingCell(\n length: number,\n height: number,\n width: number,\n wallThickness: number,\n floorMaterial: string,\n floorVisible: boolean,\n ceilingMaterial: string,\n sunkenFloor: boolean,\n ventilationProfiles: boolean,\n plinths: number,\n moldingsEnabled: boolean,\n wallFinishes: WallFinish[],\n doors: DoorPosition[],\n innerWalls: InnerWall[] = [],\n coolingCellCounter?: number\n ) {\n if (!this.iframe || !this.readyReceived) {\n if (coolingCellCounter) {\n this.nextCoolingCellCounter = coolingCellCounter;\n }\n return null;\n }\n\n if (!coolingCellCounter && !!this.nextCoolingCellCounter) {\n coolingCellCounter = this.nextCoolingCellCounter;\n this.nextCoolingCellCounter = undefined;\n }\n\n const wallMaterialsPerSide = wallFinishes.map(\n wf =>\n ({\n side: wf.side,\n wallMaterials: {\n front: this.materialFromFinishType(wf.exterior),\n back: this.materialFromFinishType(wf.interior),\n },\n }) as IWallMaterialPerSide\n );\n (this.iframe.isomasters3d as ISceneManager).createCoolingCell(\n null,\n length,\n height,\n width,\n wallThickness,\n floorVisible,\n floorMaterial,\n ceilingMaterial,\n sunkenFloor,\n null,\n ventilationProfiles,\n null,\n plinths,\n null,\n moldingsEnabled,\n wallMaterialsPerSide,\n null,\n doors,\n null,\n innerWalls,\n coolingCellCounter\n );\n }\n\n doorPositionSetEventHandler = () => {\n this.doorPositionSet$.emit();\n this.collided = false;\n this.doorDropsOffWall = false;\n };\n\n doorPositionAdjustedEventHandler = () => {\n this.updateDoors$.emit();\n };\n\n doorCollisionEventHandler = () => {\n this.doorCollision$.emit();\n if (!this.collided) {\n this.collided = true;\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.WOULDCOLLIDE', NotificationService.DEFAULT_TIMEOUT);\n }\n };\n\n doorDropsOffWallEventHandler = () => {\n this.doorDropsOffWall$.emit();\n if (!this.doorDropsOffWall) {\n this.doorDropsOffWall = true;\n this.notificationService.showNotification(\n 'NOTIFICATIONS.DOOR.WOULDDROPOFFWALL',\n NotificationService.DEFAULT_TIMEOUT\n );\n }\n };\n\n doorDroppedOffWallEventHandler = () => {\n this.doorDroppedOffWall$.emit();\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.DROPPEDOFFWALL', NotificationService.DEFAULT_TIMEOUT);\n };\n\n doorHeightChangedEventHandler = () => {\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.HEIGHTCHANGED', NotificationService.DEFAULT_TIMEOUT);\n this.updateDoors$.emit();\n };\n\n doorSelectionRemovedEventHandler = () => {\n this.doorSelectionRemoved$.emit();\n };\n\n doorRemovedEventHandler = () => {\n this.doorRemoved$.emit();\n };\n\n doorAddedEventHandler = (door: CustomEvent) => {\n this.doorAdded$.emit(this.createDoorPosition(door.detail));\n };\n\n doorReplacedEventHandler = (door: CustomEvent) => {\n this.doorReplaced$.emit(this.createDoorPosition(door.detail));\n };\n\n doorAddedFailedEventHandler = () => {\n this.doorAddedFailed$.emit();\n this.notificationService.showNotification(\n 'NOTIFICATIONS.DOOR.CANNOTBEADDEDHERE',\n NotificationService.DEFAULT_TIMEOUT\n );\n };\n\n readyInputEventHandler = () => {\n if (!this.readyReceived) {\n this.readyReceived = true;\n this.readyReceived$.emit(true);\n this.iframe.document.removeEventListener('ReadyForInput', this.readyInputEventHandler);\n }\n };\n\n doorSelectedEventHandler = () => {\n setTimeout(() => {\n this.doorSelected$.emit(this.createDoorPosition(this.selectedDoor));\n });\n };\n\n doorHeightDoesNotFitEventHandler = () => {\n this.doorHeightChangedFailed$.emit();\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.TOOHIGH', NotificationService.DEFAULT_TIMEOUT);\n };\n\n doorWidthDoesNotFitEventHandler = () => {\n this.doorWidthChangedFailed$.emit();\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.TOOWIDE', NotificationService.DEFAULT_TIMEOUT);\n };\n\n doorCantOpenEventHandler = () => {\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.CANTOPEN', NotificationService.DEFAULT_TIMEOUT);\n };\n\n newInnerWallNotPossibleEventHandler = () => {\n this.notificationService.showNotification(\n 'NOTIFICATIONS.INNERWALL.NEWNOTPOSSIBLE',\n NotificationService.DEFAULT_TIMEOUT\n );\n };\n\n innerWallRemovedEventHandler = () => {\n this.notificationService.showNotification('NOTIFICATIONS.INNERWALL.REMOVED', NotificationService.DEFAULT_TIMEOUT);\n };\n\n wallSelectionChangedEventHandler = (wallEvent: CustomEvent) => {\n if (wallEvent.detail >= 0) {\n this.wallSelectionChanged$.emit(wallEvent.detail as WallSide);\n } else if (wallEvent.detail === -1) {\n this.wallSelectionChanged$.emit(-1);\n }\n };\n\n getIframe(): any {\n return this.iframe;\n }\n\n setWallThickness(thickness: number): number | null {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.setWallThickness(thickness);\n }\n\n setHeight(valueInMeters: number): number | null {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.setHeight(valueInMeters);\n }\n\n setWidth(valueInMeters: number): number | null {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.setWidth(valueInMeters);\n }\n\n setLength(valueInMeters: number): number | null {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.setDepth(valueInMeters);\n }\n\n setWallsHidden(wallsHidden: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.setHideWalls(wallsHidden);\n }\n\n setFloorMaterial(type: string) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.setFloorMaterial(type);\n }\n\n setDoorPosition(newDoorPosition: number) {\n if (!this.iframe || !this.readyReceived || !this.modelIsReady) {\n return null;\n }\n this.coolingCell.setSelectedDoorPosition(newDoorPosition);\n }\n\n removeSelectedDoor() {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.removeSelectedDoor();\n }\n\n getWallBySide(side: WallSide, innerWallId?: string): IWall {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.getWallBySide(side, innerWallId);\n }\n\n getDoors(): DoorPosition[] {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n const doors: DoorPosition[] = [];\n\n this.coolingCell.getDoors().forEach(d => {\n doors.push(this.createDoorPosition(d));\n });\n\n return doors;\n }\n\n createDoorPosition(d: DoorPosition): DoorPosition {\n if (d === undefined) {\n return d;\n }\n\n return new DoorPosition(\n d.id,\n d.left,\n d.side,\n d.doorModel.openingWidth,\n d.doorModel.openingHeight,\n d.doorModel.panelWidth,\n d.doorModel.panelHeight,\n d.frameInteriorFinish,\n d.frameExteriorFinish,\n d.leafInteriorFinish,\n d.leafExteriorFinish,\n d.doorModel.type,\n d.direction,\n d.hingeType,\n d.doorHandleType,\n d.innerWallId\n );\n }\n\n setDoors(doors: DoorPosition[]) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n this.coolingCell.setDoorsByUsefullDimensions(doors);\n }\n\n getDoorsBySide(side: WallSide): DoorPosition[] {\n const doors = this.getDoors();\n if (doors) {\n return doors.filter(d => d.side === side);\n } else {\n return [];\n }\n }\n\n setDoorRotationSide(side: DoorDirection) {\n if (!this.iframe) {\n return null;\n }\n this.coolingCell.setDoorRotationSide(side);\n }\n\n setDoorSlidingDirection(direction: DoorDirection) {\n if (!this.iframe) {\n return null;\n }\n this.coolingCell.setDoorSlidingDirection(direction);\n }\n\n setVentilationProfiles(value: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.setVentilationProfiles(value);\n }\n\n setSunkenFloor(value: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.setSunkenFloor(value);\n }\n\n setPlinthsOnSide(plinths: number) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n if (plinths < 0 || plinths > 3) {\n return null;\n }\n this.coolingCell.setPlinthsOnSide(plinths);\n }\n\n setCeilingMoldings(value: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.setCeilingMoldings(value);\n }\n\n async createAllScreenshots(): Promise {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.iframe.isomasters3d.getCameraControls().repositionCameraTarget();\n await this.iframe.isomasters3d.createAllScreenshots();\n }\n\n getMainScreenshot(big?: boolean, inside?: boolean): string {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.iframe.isomasters3d.createMainScreenshot(big, inside);\n }\n\n getScreenshotsForSidesWithDoors() {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.setColoringOfCollision(false);\n this.iframe.isomasters3d.getCameraControls().repositionCameraTarget();\n const screenShots = this.iframe.isomasters3d.createScreenshotsForSidesWithDoors();\n this.setColoringOfCollision(true);\n return screenShots;\n }\n\n setFloorVisible(visible: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.setFloorVisible(visible);\n }\n\n getFloorVisible(): boolean | null {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.getFloorVisible();\n }\n\n isValidDoorPosition(newLeftPosition: number): boolean {\n if (!this.iframe || !this.readyReceived) {\n return false;\n }\n return this.coolingCell.isValidSelectedDoorPosition(newLeftPosition);\n }\n\n isValidDoorWidth(newDoorWidth: number): boolean {\n if (!this.iframe || !this.readyReceived) {\n return false;\n }\n return this.coolingCell.isValidSelectedDoorWidth(newDoorWidth);\n }\n\n isValidDoorHeight(newDoorHeight: number): boolean {\n if (!this.iframe || !this.readyReceived) {\n return false;\n }\n return this.coolingCell.isValidSelectedDoorHeight(newDoorHeight);\n }\n\n updateWallFinish(wallSide: WallSide, outside: boolean, finishType: FinishTypes, innerWallId?: string) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n if (wallSide === WallSide.floor) {\n return;\n }\n if (wallSide === WallSide.ceiling) {\n if (outside) {\n this.coolingCell.setCeilingColor(this.materialFromFinishType(finishType));\n } else {\n this.coolingCell.setCeilingColor(this.materialFromFinishType(finishType), true);\n }\n return;\n }\n const wall = this.coolingCell.getWallBySide(wallSide, innerWallId);\n const wallMaterial = this.materialFromFinishType(finishType);\n this.coolingCell.setWallMaterial(wall, wallMaterial, outside, wallSide === WallSide.inner ? finishType : undefined);\n }\n\n materialFromFinishType(finishType: FinishTypes): string {\n switch (finishType) {\n case FinishTypes.STEEL:\n case FinishTypes.STEEL_PET55:\n return '#FFFFFF';\n case FinishTypes.RVS304_ROUND_BRUSH:\n case FinishTypes.RVS316_ROUND_BRUSH:\n return 'rvs-circular';\n case FinishTypes.RVS304_DESIGN_5WL:\n case FinishTypes.RVS304_LINEN:\n return 'rvs-plate';\n case FinishTypes.RVS304_COLLED_ROLLED:\n case FinishTypes.RVS304_LINE_BRUSH:\n return 'rvs';\n }\n }\n\n setCameraOnSide(side: WallSide) {\n this.doorManager.setCameraOnSide(side);\n }\n\n addNewDoor(\n type: DoorType,\n side: WallSide,\n direction: DoorDirection,\n width: number,\n height: number,\n left: number,\n materials: string[]\n ) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n let innerWallId = null;\n if (side === WallSide.inner) {\n const wall = this.wallSelection.getSelectedWall();\n if (wall.innerWall) {\n innerWallId = wall.innerWall.id;\n }\n }\n this.coolingCell.addNewDoor(\n type,\n side,\n direction,\n width,\n height,\n left,\n false,\n materials,\n undefined,\n undefined,\n null,\n innerWallId\n );\n }\n\n selectFirstDoor() {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.doorManager.selectFirstDoor();\n }\n\n setSelectedDoorHeight(value: number) {\n if (!this.iframe || !this.readyReceived || !this.modelIsReady) {\n return null;\n }\n\n this.coolingCell.setSelectedDoorHeight(value);\n }\n\n setSelectedDoorWidth(value: number) {\n if (!this.iframe || !this.readyReceived || !this.modelIsReady) {\n return null;\n }\n\n return this.coolingCell.setSelectedDoorWidth(value);\n }\n\n updateSelectedDoorFinish(outside: boolean, finish: FinishTypes) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n if (outside) {\n this.coolingCell.setSelectedDoorPanelOutsideMaterial(this.materialFromFinishType(finish));\n } else {\n this.coolingCell.setSelectedDoorPanelInsideMaterial(this.materialFromFinishType(finish));\n }\n }\n\n deselect() {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n this.coolingCell.deselectAll();\n }\n\n setZoom(zoom: number) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n\n this.iframe.isomasters3d.getCameraControls().setCameraDistance(false, zoom, true);\n }\n\n resetDefaultCamera(low = false) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n if (low) {\n this.iframe.isomasters3d.getCameraControls().addToCameraMoveList('standardlow');\n return;\n }\n this.iframe.isomasters3d.getCameraControls().addToCameraMoveList('standard');\n }\n\n removeDoorsOnSide(wallSide: WallSide, prepareCoolingCell = true) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.removeDoorsOnSide(wallSide, prepareCoolingCell);\n }\n\n removeDoorsOnInnerWalls(prepareCoolingCell = true) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.removeDoorsOnInnerWalls(prepareCoolingCell);\n }\n\n addInnerWall(innerWallType: InnerWallType, left?: number): string {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.addInnerWall(innerWallType, left);\n }\n\n getInnerWalls(): InnerWall[] {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.getInnerWalls();\n }\n\n setInnerWallPosition(newPosition: number): void {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.setInnerWallPosition(newPosition);\n }\n\n removeSelectedInnerWall() {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.removeSelectedInnerWall();\n this.updateDoors$.emit();\n }\n\n removeInnerWall(iw: InnerWall) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.removeInnerWall(iw);\n this.updateDoors$.emit();\n }\n\n flipInnerWall(innerWall: InnerWall) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.flipInnerWall(innerWall);\n }\n\n changeSelectedDoorHandle(doorHandleType: DoorHandleType) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.changeSelectedDoorHandle(doorHandleType);\n }\n\n changeDoorHandle(door: DoorPosition, doorHandleType: DoorHandleType) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.changeDoorHandle(door, doorHandleType);\n }\n\n changeSelectedDoorHinge(doorHingeType: HingeType) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.changeSelectedDoorHinge(doorHingeType);\n }\n\n doesDoorHeightFit(type: DoorType, height: number): boolean {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n return this.coolingCell.doesDoorHeightFit(type, height);\n }\n\n getConflicts(): Conflicts {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n const conflicts = this.coolingCell.getConflicts();\n const list: InvalidPanel[] = [];\n conflicts.invalidPanels.forEach(ip => {\n if (!list.some(w => w.size == ip.size)) {\n list.push({ size: ip.size, count: 0 });\n }\n list.find(w => w.size === ip.size).count++;\n });\n conflicts.invalidPanels = list;\n return conflicts;\n }\n\n setColoringOfCollision(on: boolean) {\n if (!this.iframe || !this.readyReceived) {\n return null;\n }\n this.coolingCell.setColoringOfCollision(on);\n }\n\n private updateConflicts() {\n this.conflicts$.next(this.getConflicts());\n }\n}\n","import { FloorTypes } from '../enums/floorTypes.enum';\nimport { FinishTypes } from '../enums/finishTypes.enum';\nimport { SiliconeColours } from '../enums/siliconeColours.enum';\n\nexport class PriceSettings {\n public static cornerBeamThicknessToArticles: Record = {\n 60: 'PRS.000.739',\n 80: 'PRS.000.740',\n 100: 'PRS.000.741',\n 140: 'PRS.000.742',\n };\n\n public static cornerBeamsThreeSidesToArticleNumbers: Record = {\n 80: 'PRS.000.743',\n 100: 'PRS.000.744',\n 140: 'PRS.000.745',\n };\n\n public static wallCoresToArticleNumbers: Record = {\n 60: 'KPB.000.405',\n 80: 'KPB.000.406',\n 100: 'KPB.000.407',\n 140: 'KPB.000.408',\n };\n\n public static wallFinishToArticleNumbers: Record = {\n [FinishTypes.STEEL]: 'KPB.000.030',\n [FinishTypes.STEEL_PET55]: 'KPB.000.031',\n [FinishTypes.RVS304_LINE_BRUSH]: 'KPB.000.356',\n [FinishTypes.RVS304_COLLED_ROLLED]: 'KPB.000.037',\n [FinishTypes.RVS304_DESIGN_5WL]: 'KPB.000.041',\n [FinishTypes.RVS304_LINEN]: 'KPB.000.039',\n [FinishTypes.RVS304_ROUND_BRUSH]: 'KPB.000.036',\n [FinishTypes.RVS316_ROUND_BRUSH]: 'KPB.000.040',\n };\n public static floorTypesToArticleNumbers: Record = {\n [FloorTypes.DURAFLOOR]: 'KPB.000.404',\n [FloorTypes.ALUMINUM25]: 'PRS.000.580-ALC1',\n [FloorTypes.ALUMINUM35]: 'PRS.000.580-ALD1',\n [FloorTypes.ANTISLIP]: 'KPB.000.056',\n [FloorTypes.REINFORCEDANTISLIP]: 'PRS.000.580-VLS2',\n [FloorTypes.RVSANTISLIPR13]: 'PRS.000.580-WBPJ',\n [FloorTypes.STEELANTISLIP5]: 'PLA.000.134', // Losse plaat\n [FloorTypes.STEELSMOOTH3]: 'PRS.000.580-VZD1',\n [FloorTypes.NONE]: '',\n };\n public static airPressureEqualizerValve = 'GRS.001.734';\n public static caps: Record = {\n white: 'PFA.000.057-Ral 9010',\n black: 'PFA.000.057-Ral 8019',\n };\n public static ventilationProfiles = 'PRF.000.192';\n public static plinths = 'PRF.000.237';\n public static plinthsScrews = 'BEV.000.078';\n public static siliconeToArticleNumbers: Record = {\n [SiliconeColours.Bronze]: 'CHM.000.008',\n [SiliconeColours.Transparent]: 'CHM.000.018',\n [SiliconeColours.White]: 'CHM.000.019',\n };\n public static butyl = 'CHM.000.026';\n public static strokePlug = 'BEV.000.158';\n public static washer = 'BEV.000.034';\n public static uProfiles: Record = {\n 60: 'PRF.000.454',\n 80: 'PRF.000.243',\n 100: 'PRF.000.244',\n };\n\n public static uProfilesCorners: Record = {\n 60: 'PFA.000.352',\n 80: 'PFA.000.353',\n 100: 'PFA.000.354',\n };\n\n public static allowedDoorFinishes: FinishTypes[] = [\n FinishTypes.RVS304_LINEN,\n FinishTypes.RVS304_LINE_BRUSH,\n FinishTypes.RVS304_ROUND_BRUSH,\n FinishTypes.RVS316_ROUND_BRUSH,\n FinishTypes.STEEL,\n FinishTypes.STEEL_PET55,\n ];\n public static threeWayCornerByThickness: Record = {\n 60: 'PRS.000.305',\n 80: 'PRS.000.306',\n 100: 'PRS.000.307',\n 140: 'PRS.000.308',\n 180: 'PRS.000.309',\n };\n public static tProfileByThickness: Record = {\n 60: 'OPT.000.266',\n 80: 'OPT.000.266',\n 100: 'OPT.000.266',\n 140: 'OPT.000.266',\n 180: 'OPT.000.266',\n };\n public static lProfileByThickness: Record = {\n 60: 'PRS.000.512',\n 80: 'PRS.000.512',\n 100: 'PRS.000.512',\n 140: 'PRS.000.512',\n 180: 'PRS.000.512',\n };\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CompletionService } from 'src/app/services/completion.service';\n\n@Component({\n selector: 'app-close',\n templateUrl: './close.component.html',\n styleUrls: ['./close.component.scss'],\n})\nexport class CloseComponent implements OnInit {\n hidden = true;\n\n constructor(private completionService: CompletionService) {}\n\n ngOnInit() {\n if (this.inIframe()) {\n this.hidden = false;\n }\n }\n\n inIframe(): boolean {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n }\n\n close() {\n this.completionService.terminate();\n }\n}\n","
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { ErrorService } from 'src/app/services/error.service';\nimport { ErrorTypes } from 'src/app/enums/errorTypes.enum';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ErrorMessage } from 'src/app/models/errorMessage.model';\n\n@Component({\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n})\nexport class ErrorComponent implements OnInit {\n showError: ErrorTypes;\n extraMessage: string;\n\n get errorText(): string {\n const translatedText = this.translateService.instant(this.showError.toString());\n if (translatedText === this.showError.toString()) {\n return this.translateService.instant(ErrorTypes.Generic.toString());\n }\n return translatedText;\n }\n\n constructor(\n private errorService: ErrorService,\n private translateService: TranslateService\n ) {}\n\n ngOnInit() {\n this.errorService.errorMessage$.subscribe((errorMessage: ErrorMessage) => {\n this.showError = errorMessage.errorType;\n this.extraMessage = errorMessage.message;\n });\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n {{ 'ERROR.TITLE' | translate }}\n

{{ errorText }}

\n

\n {{ extraMessage |json }}\n

\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { StepService } from 'src/app/services/step.service';\nimport { ModularGoogleAnalyticsService } from '../../services/modular-google-analytics.service';\n\n@Component({\n selector: 'app-help',\n templateUrl: './help.component.html',\n styleUrls: ['./help.component.scss'],\n})\nexport class HelpComponent {\n active: boolean;\n steps: number[];\n\n constructor(\n private modularGoogleAnalyticsService: ModularGoogleAnalyticsService,\n private stepService: StepService\n ) {\n this.steps = Array(this.stepService.maxStep - 1)\n .fill(x => x)\n .map((x, i) => i + 1);\n }\n\n openHelp() {\n this.modularGoogleAnalyticsService.sendEvent('help', 'open');\n this.active = true;\n }\n\n closeHelp() {\n this.modularGoogleAnalyticsService.sendEvent('help', 'close');\n this.active = false;\n }\n\n eventNinja(event: Event) {\n event.stopPropagation();\n }\n}\n","
\n
\n \n \n
\n
\n\n
\n
\n
\n
\n {{ 'HELP.TITLE' | translate }}\n
\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { ModularGoogleAnalyticsService } from '../../services/modular-google-analytics.service';\n\n@Component({\n selector: 'app-internal-external-switch',\n templateUrl: './internal-external-switch.component.html',\n styleUrls: ['./internal-external-switch.component.scss'],\n})\nexport class InternalExternalSwitchComponent implements OnInit {\n wallsHidden = false;\n\n constructor(\n private configurationService: ConfigurationService,\n private googleAnalyticsService: ModularGoogleAnalyticsService\n ) {}\n\n ngOnInit() {\n this.configurationService.hideFrontWallsChanged$.subscribe(hidden => {\n this.wallsHidden = hidden;\n });\n }\n\n toggleInternal(internal: boolean) {\n this.googleAnalyticsService.sendEvent('internalExternalSwitch', internal ? 'Internal' : 'External');\n this.wallsHidden = internal;\n this.configurationService.setHideFrontWalls(internal);\n }\n}\n","\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-isomaster-red-loading',\n templateUrl: './isomaster-red-loading.component.html',\n styleUrls: ['./isomaster-red-loading.component.scss'],\n})\nexport class IsomasterRedLoadingComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-isomasters-logo',\n templateUrl: './isomasters-logo.component.html',\n styleUrls: ['./isomasters-logo.component.scss'],\n})\nexport class IsomastersLogoComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n \n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-isomasters-button',\n templateUrl: './isomasters-button.component.html',\n styleUrls: ['./isomasters-button.component.scss'],\n})\nexport class IsomastersButtonComponent implements OnInit {\n @Input() selected = false;\n @Input() disabled = false;\n @Input() blockCheckMark = false;\n @Input() loading = false;\n @Output() modularClick = new EventEmitter();\n\n constructor() {}\n\n get showCheckmark(): boolean {\n if (this.blockCheckMark) {\n return false;\n }\n return this.selected && !this.disabled;\n }\n\n ngOnInit() {}\n\n getClasses() {\n return {\n selected: this.selected && !this.disabled,\n disabled: this.disabled,\n };\n }\n\n clickButton(event) {\n if (this.selected || this.disabled) {\n return;\n }\n event.stopPropagation();\n this.emit();\n }\n\n private emit() {\n this.modularClick.emit(true);\n }\n}\n","\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ElementRef,\n OnDestroy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { LanguageService } from 'src/app/services/language.service';\nimport { ViewboxOption } from 'src/app/models/viewboxOption.model';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { Subject } from 'rxjs';\nimport { IsomastersPagingComponent } from '../isomasters-paging/isomasters-paging.component';\nimport { OptionPage } from 'src/app/models/OptionPage.model';\n\n@Component({\n selector: 'app-isomasters-horizontal-viewbox',\n templateUrl: './isomasters-horizontal-viewbox.component.html',\n styleUrls: ['./isomasters-horizontal-viewbox.component.scss'],\n})\nexport class IsomastersHorizontalViewboxComponent implements OnDestroy {\n @Input() options: any[] = [];\n @Output() optionSelected$: EventEmitter = new EventEmitter();\n\n @ViewChild('hostElement') hostElement: ElementRef;\n @ViewChild('paging') paging: IsomastersPagingComponent;\n\n @Input() needsBorderedFlaredImage = false;\n @Input() bigImagesNoBorders = false;\n private unsubscribe: Subject = new Subject();\n displayOptions: any[] = [];\n\n get hasOnlyOnePage() {\n return this.options?.length == this.displayOptions.length;\n }\n constructor(\n private host: ElementRef,\n private languageService: LanguageService,\n private notificationService: NotificationService,\n private cd: ChangeDetectorRef\n ) {}\n get currentLocale() {\n return this.languageService.currentLanguage;\n }\n\n isNumber(value: any) {\n return typeof value === 'number';\n }\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.unsubscribe();\n }\n\n get pagedOptions(): ViewboxOption[] {\n return this.displayOptions;\n }\n\n showNotification(option: ViewboxOption, element: HTMLElement) {\n if (element) {\n element.id = option.option;\n }\n\n this.notificationService.showBalloonNotification(option.description, element, null, false, 1);\n }\n\n hideNotification(option: ViewboxOption) {\n this.notificationService.hideBalloonNotification(option.option);\n }\n\n getGoodLocation(element: HTMLElement): any {\n return element.offsetLeft - 30;\n }\n\n selectButton(option: any) {\n option.selected = true;\n this.optionSelected$.emit(option);\n }\n\n openLink(event: Event, link: string) {\n window.open(link);\n event.stopPropagation();\n event.preventDefault();\n }\n\n pageChanged(page: OptionPage) {\n this.displayOptions = page.pageItems;\n\n this.cd.detectChanges();\n }\n}\n","
\n
\n
\n \n
\n
\n
\n  \n \n {{ option.priceChange | plusMinPrice }}\n \n \n {{ option.priceChange }}\n \n
\n
\n
\n \n
\n \n {{ option.description | translate }}\n
\n
\n \n
\n
\n
\n \n
\n
\n \n\n","import { Component, OnInit, Input, Output, EventEmitter, ElementRef, ViewChild } from '@angular/core';\nimport { NotificationService } from 'src/app/services/notification.service';\n\n@Component({\n selector: 'app-isomasters-input',\n templateUrl: './isomasters-input.component.html',\n styleUrls: ['./isomasters-input.component.scss'],\n})\nexport class IsomastersInputComponent implements OnInit {\n @Input() type = 'text';\n @Input() autocomplete = false;\n private _val: number;\n\n @Input() set value(value: number) {\n this._val = value;\n\n setTimeout(() => {\n if (this.input) {\n this.processNewInput(this.input.nativeElement);\n }\n }, 10);\n }\n\n get value() {\n return this._val;\n }\n\n @Output() valueChange = new EventEmitter();\n @Input() placeholder = '';\n @Input() max: number;\n @Input() min: number;\n @Input() step: number;\n @ViewChild('input') input: ElementRef;\n @Input() selectId = 'default';\n\n error = false;\n\n get currentTarget(): HTMLInputElement {\n if (this.input) {\n this.input.nativeElement.id = this.selectId;\n return this.input.nativeElement;\n }\n\n return null;\n }\n\n constructor(\n private notificationService: NotificationService,\n private host: ElementRef\n ) {}\n\n ngOnInit() {\n document.addEventListener('click', (event: Event) => {\n if ((event.target as Element).closest('#' + this.selectId) === null) {\n this.lostFocus();\n }\n });\n\n (this.host.nativeElement as HTMLElement).id = this.selectId;\n }\n\n processNewInput(target: HTMLInputElement): boolean {\n if (!target.validity.valid || !target.value) {\n this.notificationService.showBalloonNotification(\n this.getErrorMessage(+this.currentTarget.value),\n this.currentTarget,\n 0,\n true\n );\n this.error = true;\n return false;\n } else if (+target.value === this.max) {\n this.notificationService.showBalloonNotification(\n 'INPUT.SUGGESTION.CONTACT',\n this.currentTarget,\n NotificationService.DEFAULT_TIMEOUT,\n false\n );\n } else {\n this.notificationService.hideBalloonNotification(this.selectId);\n this.error = null;\n }\n\n return true;\n }\n\n emit(target: HTMLInputElement) {\n if (!this.processNewInput(target)) {\n return;\n }\n\n this.error = false;\n this.valueChange.emit(target.value);\n }\n\n getErrorMessage(value: number): string {\n if (value < this.max && value > this.min) {\n return 'INPUT.ERROR.INVALIDSTEPSIZE';\n } else if (value >= this.max) {\n return 'INPUT.SUGGESTION.CONTACT';\n } else if (value <= this.min) {\n return 'INPUT.ERROR.TOOSMALL';\n } else {\n return '';\n }\n }\n\n gotFocus() {\n if (this.error) {\n this.notificationService.showBalloonNotification(\n this.getErrorMessage(+this.currentTarget.value),\n this.currentTarget,\n 0,\n true\n );\n } else if (+this.currentTarget.value === this.max) {\n this.notificationService.showBalloonNotification(\n 'INPUT.SUGGESTION.CONTACT',\n this.currentTarget,\n NotificationService.DEFAULT_TIMEOUT,\n false\n );\n }\n }\n\n lostFocus() {\n this.notificationService.hideBalloonNotification(this.selectId);\n }\n\n emitCheckbox(target: HTMLInputElement) {\n this.valueChange.emit(target.checked);\n }\n}\n","\n\n\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, AfterViewInit } from '@angular/core';\nimport { ViewboxOption } from 'src/app/models/viewboxOption.model';\nimport { Subject } from 'rxjs';\nimport { OptionPage } from 'src/app/models/OptionPage.model';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-isomasters-paging',\n templateUrl: './isomasters-paging.component.html',\n styleUrls: ['./isomasters-paging.component.scss'],\n})\nexport class IsomastersPagingComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() elementIHaveToPage: Element;\n _options: ViewboxOption[] = [];\n\n get options(): ViewboxOption[] {\n return this._options;\n }\n\n @Input() set options(value: ViewboxOption[]) {\n this._options = value;\n this.pageArray = [];\n\n if (this._options === undefined) {\n return;\n }\n\n for (let i = 0; i < Math.ceil(this._options.length / 2); i++) {\n const optionPage = { active: false, pageItems: [], index: i };\n\n for (let j = 0; j < 2; j++) {\n if (this._options[i * 2 + j]) {\n if (this._options[i * 2 + j].selected) {\n optionPage.active = true;\n }\n optionPage.pageItems.push(this._options[i * 2 + j]);\n }\n }\n\n this.pageArray.push(optionPage);\n }\n\n this._options.forEach((o: ViewboxOption) => {\n o.selected$.pipe(takeUntil(this.unsubscribe)).subscribe(selected => {\n if (selected) {\n const page = this.pages.find(p => p.pageItems.some(pi => pi.selected));\n\n if (page) {\n this.gotoPage(page);\n }\n }\n });\n });\n }\n\n private pageArray: OptionPage[] = [];\n\n @Output() pageActivated$: EventEmitter = new EventEmitter();\n private unsubscribe: Subject = new Subject();\n\n constructor() {}\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n this.pageActivated$.emit(this.currentPage);\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.unsubscribe();\n }\n\n get pages(): OptionPage[] {\n return this.pageArray;\n }\n\n get currentPage(): OptionPage {\n const currentPage = this.pages.find(p => p.active === true);\n if (currentPage) {\n return currentPage;\n }\n if (this.pages.length > 0) {\n this.pages[0].active = true;\n return this.pages[0];\n }\n return new OptionPage();\n }\n\n get currentPageOptions(): ViewboxOption[] {\n if (this.currentPage && this.currentPage.pageItems) {\n return this.currentPage.pageItems;\n } else {\n return [];\n }\n }\n\n goBack() {\n const previousPage = this.pages.find(p => p.index === this.currentPage.index - 1);\n\n if (previousPage) {\n this.currentPage.active = false;\n previousPage.active = true;\n this.pageActivated$.emit(this.currentPage);\n } else {\n this.gotoLastPage();\n }\n }\n\n gotoLastPage() {\n this.gotoPage(this.pages[this.pages.length - 1]);\n }\n\n gotoFirstPage() {\n this.gotoPage(this.pages[0]);\n }\n\n goForward() {\n const nextPage = this.pages.find(p => p.index === this.currentPage.index + 1);\n\n if (nextPage) {\n this.currentPage.active = false;\n nextPage.active = true;\n this.pageActivated$.emit(this.currentPage);\n } else {\n this.gotoFirstPage();\n }\n }\n\n gotoPage(page: OptionPage) {\n this.currentPage.active = false;\n page.active = true;\n this.pageActivated$.emit(this.currentPage);\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-isomasters-popup',\n templateUrl: './isomasters-popup.component.html',\n styleUrls: ['./isomasters-popup.component.scss'],\n})\nexport class IsomastersPopupComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n
\n \n
\n
\n
\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, ViewChild } from '@angular/core';\nimport { debounceTime } from 'rxjs/operators';\nimport { OnresizeService } from 'src/app/services/onresize.service';\n\n@Component({\n selector: 'app-isomasters-scrollbar',\n templateUrl: './isomasters-scrollbar.component.html',\n styleUrls: ['./isomasters-scrollbar.component.scss'],\n})\nexport class IsomastersScrollbarComponent implements OnInit, AfterViewInit {\n @Input() public scrolled: EventEmitter;\n @Input() elementIHaveToscroll: Element;\n @ViewChild('thumb') thumb: ElementRef;\n\n scrollOffset: number;\n dragEnabled: boolean;\n relativeX: number;\n\n constructor(\n private onresizeService: OnresizeService,\n private host: ElementRef\n ) {}\n\n ngOnInit() {\n this.scrolled.pipe(debounceTime(10)).subscribe(() => {\n this.scrollOffset = this.getThumbOffset();\n });\n\n this.onresizeService.windowResized$.subscribe(() => {\n this.scrollOffset = this.getThumbOffset();\n });\n }\n\n ngAfterViewInit() {\n this.relativeX = (this.thumb.nativeElement as Element).getBoundingClientRect().left;\n }\n\n calculateRelativeScrollPosition(): number {\n return (\n this.elementIHaveToscroll.clientWidth /\n (this.elementIHaveToscroll.scrollWidth - this.elementIHaveToscroll.clientWidth)\n );\n }\n\n getThumbOffset(): number {\n return Math.min(\n Math.max(\n 0,\n Math.ceil(\n (this.elementIHaveToscroll.scrollLeft - this.thumb.nativeElement.clientWidth / 2) *\n this.calculateRelativeScrollPosition()\n )\n ),\n this.host.nativeElement.clientWidth - this.thumb.nativeElement.clientWidth / 2\n );\n }\n\n positionClicked(event: MouseEvent) {\n this.elementIHaveToscroll.scrollTo({\n left: event.offsetX / this.calculateRelativeScrollPosition(),\n top: this.elementIHaveToscroll.scrollTop,\n behavior: 'smooth',\n });\n }\n\n mouseDown() {\n this.dragEnabled = true;\n }\n\n mouseLeave(event: MouseEvent) {\n this.mouseUp(event);\n }\n\n mouseMove(event: MouseEvent) {\n if (this.dragEnabled) {\n this.setViewPosition(event);\n }\n }\n\n setViewPosition(event: MouseEvent) {\n this.elementIHaveToscroll.scrollTo({\n left: (event.clientX - this.relativeX) / this.calculateRelativeScrollPosition(),\n top: this.elementIHaveToscroll.scrollTop,\n behavior: 'auto',\n });\n }\n\n mouseUp(event: MouseEvent) {\n if (this.dragEnabled) {\n this.dragEnabled = false;\n\n setTimeout(() => {\n this.setViewPosition(event);\n });\n }\n }\n\n scrolling(event: WheelEvent) {\n if (event.shiftKey) {\n this.elementIHaveToscroll.scrollTo({\n left: this.elementIHaveToscroll.scrollLeft + event.deltaY,\n top: this.elementIHaveToscroll.scrollTop,\n behavior: 'smooth',\n });\n }\n }\n}\n","\n
\n
\n
\n
\n\n","import { Component, OnInit, ChangeDetectorRef, Input, Output, EventEmitter } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-isomasters-slider',\n templateUrl: './isomasters-slider.component.html',\n styleUrls: ['./isomasters-slider.component.scss'],\n})\nexport class IsomastersSliderComponent implements OnInit {\n @Input() max: number;\n @Input() min: number;\n @Input() set value(value: number) {\n this._val = value;\n }\n get value() {\n return this._val;\n }\n @Output() valueChange = new EventEmitter();\n @Input() step: number;\n\n private _val: number;\n constructor(\n private domSanatizer: DomSanitizer,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n get style(): SafeStyle {\n const styleString = `--min: ${this.min};\n --max: ${this.max};\n --val: ${this._val || 50}`;\n return this.domSanatizer.bypassSecurityTrustStyle(styleString);\n }\n ngOnInit() {\n this._val = this.value;\n this.changeDetector.detectChanges();\n }\n\n setProgress(target: HTMLInputElement) {\n if (!target.validity.valid || !target.value) {\n return;\n }\n this._val = +target.value;\n this.valueChange.emit(this._val);\n }\n}\n","
\n \n
\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-isomasters-text-copy',\n templateUrl: './isomasters-text-copy.component.html',\n styleUrls: ['./isomasters-text-copy.component.scss'],\n})\nexport class IsomastersTextCopyComponent implements OnInit {\n @Input() value: string;\n buttonClicked = false;\n constructor() {}\n\n ngOnInit(): void {}\n\n click() {\n this.buttonClicked = true;\n setTimeout(() => (this.buttonClicked = false), 250);\n }\n}\n","
\n \n
\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IsomastersButtonComponent } from './isomasters-button/isomasters-button.component';\nimport { IsomastersSliderComponent } from './isomasters-slider/isomasters-slider.component';\nimport { IsomastersInputComponent } from './isomasters-input/isomasters-input.component';\nimport { IsomastersHorizontalViewboxComponent } from './isomasters-horizontal-viewbox/isomasters-horizontal-viewbox.component';\nimport { IsomastersScrollbarComponent } from './isomasters-scrollbar/isomasters-scrollbar.component';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { IsomastersPopupComponent } from './isomasters-popup/isomasters-popup.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InlineSVGModule } from 'ng-inline-svg-2';\nimport { IsomastersPagingComponent } from './isomasters-paging/isomasters-paging.component';\nimport { PlusMinPricePipeModule } from '../pipes/plus-min-price-pipe.module';\nimport { IsomastersTextCopyComponent } from './isomasters-text-copy/isomasters-text-copy.component';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\n\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http);\n}\n\n@NgModule({\n declarations: [\n IsomastersButtonComponent,\n IsomastersSliderComponent,\n IsomastersInputComponent,\n IsomastersHorizontalViewboxComponent,\n IsomastersScrollbarComponent,\n IsomastersPopupComponent,\n IsomastersPagingComponent,\n IsomastersTextCopyComponent,\n ],\n imports: [CommonModule, TranslateModule.forChild(), InlineSVGModule, PlusMinPricePipeModule, ClipboardModule],\n exports: [\n IsomastersButtonComponent,\n IsomastersSliderComponent,\n IsomastersInputComponent,\n IsomastersHorizontalViewboxComponent,\n IsomastersScrollbarComponent,\n IsomastersPopupComponent,\n IsomastersTextCopyComponent,\n ],\n})\nexport class IsomastersUiModule {}\n","import { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { NotificationModel } from 'src/app/models/notification.model';\n\n@Component({\n selector: 'app-balloon-notification',\n templateUrl: './balloon-notification.component.html',\n styleUrls: ['./balloon-notification.component.scss'],\n})\nexport class BalloonNotificationComponent implements OnInit {\n message: string;\n parent: HTMLElement;\n useAlternatives = false;\n timer: any;\n\n @ViewChild('host') host: ElementRef;\n side: number;\n alternativesAvailable = false;\n visible = false;\n top = 0;\n left = 0;\n\n constructor(\n private translateService: TranslateService,\n private notificationService: NotificationService,\n private cd: ChangeDetectorRef\n ) {}\n\n get rightside(): boolean {\n return this.side === 1;\n }\n\n ngOnInit() {\n this.notificationService.balloonNotification$.subscribe((notification: NotificationModel) => {\n this.reset();\n if (!!notification && !!notification.text) {\n this.message = this.translateService.instant(notification.text);\n\n if (notification.parent) {\n if (this.fitsInParent(notification)) {\n return;\n }\n\n this.parent = notification.parent;\n this.side = notification.side;\n this.useAlternatives = notification.alternatives;\n }\n setTimeout(() => {\n this.visible = true;\n }, 5);\n\n setTimeout(() => {\n this.setBalloonLocation();\n }, 10);\n\n if (notification.timeout) {\n this.setTimeout(notification.timeout);\n }\n }\n });\n\n this.notificationService.hideBalloonNotification$.subscribe((id: string) => {\n if (this.parent && this.parent.id === id) {\n this.visible = false;\n this.parent = undefined;\n this.useAlternatives = false;\n }\n });\n }\n\n fitsInParent(notification: NotificationModel) {\n const measureSpan = document.createElement('span');\n notification.parent.appendChild(measureSpan);\n measureSpan.style.opacity = '0';\n measureSpan.style.left = '0';\n measureSpan.style.position = 'fixed';\n\n measureSpan.innerText = this.message;\n measureSpan.setAttribute('class', 'button-description');\n\n this.cd.detectChanges();\n const fitsInParent =\n measureSpan.clientWidth / 2 < notification.parent.clientWidth - notification.parent.offsetLeft * 2;\n notification.parent.removeChild(measureSpan);\n this.cd.detectChanges();\n\n return fitsInParent;\n }\n\n reset() {\n this.visible = false;\n this.parent = undefined;\n this.useAlternatives = false;\n this.cancelTimout();\n }\n\n setTimeout(timeout: number) {\n this.timer = setTimeout(() => {\n this.visible = false;\n this.parent = undefined;\n }, timeout);\n }\n\n cancelTimout() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n setBalloonLocation() {\n if (this.parent) {\n let position: any;\n switch (this.side) {\n case 0:\n position = this.getBalloonLocationForTop(this.parent);\n break;\n case 1:\n position = this.getBalloonLocationForRight(this.parent);\n break;\n }\n\n if (position !== undefined) {\n (this.host.nativeElement as Element).getBoundingClientRect();\n this.top = position[0];\n this.left = position[1];\n }\n } else {\n return;\n }\n }\n\n getBalloonLocationForTop(target: HTMLElement): number[] {\n const rect = target.getBoundingClientRect();\n const hostRect = (this.host.nativeElement as Element).getBoundingClientRect();\n const middle = rect.left + rect.width / 2;\n return [rect.top - 8 - hostRect.height, middle - hostRect.width / 2];\n }\n\n getBalloonLocationForRight(target: HTMLElement): number[] {\n const rect = target.getBoundingClientRect();\n const hostRect = (this.host.nativeElement as Element).getBoundingClientRect();\n const middle = rect.top + rect.height / 2;\n\n return [middle - hostRect.height / 2, rect.left + rect.width + 8];\n }\n}\n","\n
\n {{ message }}\n \n \n \n
\n
\n\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-input-alternatives',\n templateUrl: './input-alternatives.component.html',\n styleUrls: ['./input-alternatives.component.scss'],\n})\nexport class InputAlternativesComponent implements OnInit {\n alternatives: string[] = [];\n\n constructor() {}\n\n @Input() source: HTMLInputElement;\n\n ngOnInit() {\n if (this.source) {\n this.getClosestPossibleValues(+this.source.value);\n }\n }\n\n get errorMessage() {\n if (this.alternatives.length === 1) {\n return 'INPUT.ERROR.ALTERNATIVE';\n } else {\n return 'INPUT.ERROR.ALTERNATIVES';\n }\n }\n\n setAlternativeValue(suggestion: string) {\n this.source.value = suggestion;\n this.source.dispatchEvent(new Event('input'));\n }\n\n getClosestPossibleValues(value: number) {\n const lower = Math.floor(value / +this.source.step) * +this.source.step;\n if (lower >= +this.source.min && lower <= +this.source.max) {\n this.alternatives.push(lower.toString());\n } else if (lower < +this.source.min) {\n this.alternatives.push(this.source.min);\n }\n\n const higher = Math.floor(value / +this.source.step) * +this.source.step + +this.source.step;\n if (higher <= +this.source.max && higher >= +this.source.min) {\n this.alternatives.push(higher.toString());\n } else if (higher > +this.source.max) {\n this.alternatives.push(this.source.max);\n }\n }\n}\n","
\n
{{ errorMessage | translate }}
\n
\n
\n  {{ alt }}mm\n of\n
\n
\n .\n
\n","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { NotificationModel } from 'src/app/models/notification.model';\n\n@Component({\n selector: 'app-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n})\nexport class NotificationComponent implements OnInit {\n messages = new Map();\n\n constructor(\n private translateService: TranslateService,\n private notificationService: NotificationService\n ) {}\n\n ngOnInit() {\n this.notificationService.notification$.subscribe((notification: NotificationModel) => {\n this.messages.set(\n notification.text,\n setTimeout(() => {\n this.messages.delete(notification.text);\n }, notification.timeout ?? 99999999)\n );\n });\n }\n\n displayText(text: string) {\n if (!text) {\n return text;\n }\n return this.translateService.instant(text);\n }\n\n close(text: string) {\n clearTimeout(this.messages.get(text));\n this.messages.delete(text);\n }\n}\n","
\n
\n
\n
\n

\n {{ displayText(message.key) }}\n

\n
\n
\n
\n
\n\n","import { NgModule } from '@angular/core';\nimport { PlusMinPricePipe } from './plus-min-price.pipe';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [PlusMinPricePipe],\n imports: [CommonModule],\n exports: [PlusMinPricePipe],\n})\nexport class PlusMinPricePipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\nimport { LanguageService } from 'src/app/services/language.service';\n\n@Pipe({\n name: 'plusMinPrice',\n})\nexport class PlusMinPricePipe implements PipeTransform {\n currenyPipe: CurrencyPipe;\n\n constructor(private languageService: LanguageService) {\n this.currenyPipe = new CurrencyPipe(this.languageService.currentLanguage);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform(value: any, ...args: any[]): any {\n const language = this.languageService.currentLanguage;\n if (value === false) {\n return '?';\n }\n const styledValue = this.currenyPipe.transform(value, 'EUR', 'symbol', '1.2-2', language);\n if (value > 0) {\n if (language === 'nl') {\n return this.insertIntoString(styledValue, 2, '+');\n }\n return '+' + styledValue;\n }\n return styledValue;\n }\n\n insertIntoString(string: string, index: number, value: string) {\n if (index > 0) {\n return string.substring(0, index) + value + string.substring(index, string.length);\n }\n return value + this;\n }\n}\n","import { Component, OnInit, Renderer2, ElementRef, ViewChild, Input, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { StepService } from 'src/app/services/step.service';\n\n@Component({\n selector: 'app-progressbar',\n templateUrl: './progressbar.component.html',\n styleUrls: ['./progressbar.component.scss'],\n})\nexport class ProgressbarComponent implements OnInit, AfterViewInit {\n progressPercentage: number;\n\n constructor(\n private renderer2: Renderer2,\n private stepService: StepService\n ) {}\n\n private unsubscribe: Subject = new Subject();\n\n @Input() public step: number;\n @Input() public maxStep: number;\n\n @ViewChild('progressBar') progressBar: ElementRef;\n @ViewChild('totalBar') totalBar: ElementRef;\n\n ngAfterViewInit() {\n this.stepService.stepChange$.subscribe(newStep => {\n this.processStepChangeEvent(newStep);\n });\n\n this.setProgress();\n }\n\n processStepChangeEvent(newStep: number) {\n if (newStep > 0 && newStep <= this.maxStep) {\n this.step = newStep;\n this.setProgress();\n }\n }\n\n ngOnInit() {}\n\n setProgress() {\n this.progressPercentage = this.step / this.maxStep;\n\n if (this.progressBar) {\n this.renderer2.setStyle(\n this.progressBar.nativeElement,\n 'width',\n this.progressPercentage * this.totalBar.nativeElement.clientWidth + 'px'\n );\n }\n }\n}\n","
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-summary-dialog',\n templateUrl: './summary-dialog.component.html',\n styleUrls: ['./summary-dialog.component.scss'],\n})\nexport class SummaryDialogComponent implements OnInit {\n active: boolean;\n\n constructor() {}\n\n ngOnInit() {}\n openSummaryDialog() {\n this.active = true;\n }\n\n closeSummaryDialog() {\n this.active = false;\n }\n\n eventNinja(event: Event) {\n event.stopPropagation();\n }\n}\n","\n\n\n
\n
\n
\n \n
\n \n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-watermark',\n templateUrl: './watermark.component.html',\n styleUrls: ['./watermark.component.scss'],\n})\nexport class WatermarkComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","
isomasters
\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { StepService as StepService } from '../services/step.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-step-container',\n templateUrl: './step-container.component.html',\n styleUrls: ['./step-container.component.scss'],\n})\nexport class StepContainerComponent implements OnInit, AfterViewInit {\n private _step: number;\n hasScrollbar = false;\n maxStep: number;\n\n @ViewChild('scrollable') scrollableElement: ElementRef;\n @ViewChild('scrollShadow') scrollShadowElement: ElementRef;\n\n constructor(\n private stepService: StepService,\n private translateService: TranslateService\n ) {}\n\n ngOnInit() {\n this.stepService.stepChange$.subscribe(stepNumber => (this.step = stepNumber));\n\n this.step = this.stepService.getActiveStep();\n this.maxStep = this.stepService.maxStep;\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.scrollHelpers();\n });\n }\n\n get step(): number {\n return this._step;\n }\n\n set step(value: number) {\n this._step = value;\n if (this.scrollableElement) {\n this.scrollableElement.nativeElement.scrollTop = 0;\n }\n }\n\n get stepTitle(): string {\n return this.translateService.instant(`${this.stepService.stepName(this.step)}.TITLE`);\n }\n\n scrollHelpers() {\n if (this.scrollableElement && this.scrollShadowElement) {\n const target = this.scrollableElement.nativeElement as HTMLDivElement;\n const scrollShadow = this.scrollShadowElement.nativeElement as HTMLDivElement;\n\n this.hasScrollbar = Math.round(target.clientHeight) !== Math.round(target.scrollHeight);\n const shadowOffset = Math.min(0, target.scrollTop - scrollShadow.scrollHeight);\n\n scrollShadow.style.transform = `translateY(${shadowOffset}px)`;\n }\n }\n}\n","
\n
\n
\n \n
\n
\n {{ stepTitle }}\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n \n \n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { StepService } from 'src/app/services/step.service';\n\n@Component({\n selector: 'app-helpstep',\n templateUrl: './helpstep.component.html',\n styleUrls: ['./helpstep.component.scss'],\n})\nexport class HelpstepComponent implements OnInit {\n @Input() step: number;\n currentStep: number;\n steptitle: string;\n stepintro: string;\n stepnumber: string;\n\n constructor(\n private translateService: TranslateService,\n private stepService: StepService\n ) {}\n\n ngOnInit() {\n if (this.step) {\n if (this.step < 10) {\n this.stepnumber = '0' + this.step.toString();\n } else {\n this.stepnumber = this.step.toString();\n }\n\n this.steptitle = this.translateService.instant(this.stepService.stepName(this.step) + '.TITLE');\n this.stepintro = this.translateService.instant(this.stepService.stepName(this.step) + '.INTRODUCTIONTEXT');\n\n this.currentStep = this.stepService.getActiveStep();\n\n this.stepService.stepChange$.subscribe(newStep => {\n this.currentStep = newStep;\n });\n }\n }\n}\n","
\n
\n {{ stepnumber }}\n
\n
\n {{ steptitle }}\n
\n
\n {{ stepintro }}\n
\n
\n","import { Component, OnInit, ChangeDetectorRef, ViewChild, ElementRef, ViewRef } from '@angular/core';\nimport { StepService } from 'src/app/services/step.service';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { ThreeDService } from 'src/app/services/three-d.service';\n\n@Component({\n selector: 'app-step-buttons',\n templateUrl: './step-buttons.component.html',\n styleUrls: ['./step-buttons.component.scss'],\n})\nexport class StepButtonsComponent implements OnInit {\n step: number;\n minStep: number;\n maxStep: number;\n @ViewChild('nextButton') nextButton: ElementRef;\n constructor(\n public stepService: StepService,\n private configurationService: ConfigurationService,\n private notificationService: NotificationService,\n private translateService: TranslateService,\n private cd: ChangeDetectorRef,\n private threeDService: ThreeDService\n ) {}\n\n ngOnInit() {\n this.stepService.stepChange$.subscribe(stepNumber => (this.step = stepNumber));\n this.configurationService.updateBlockingValues$.subscribe(() => {\n setTimeout(() => {\n if (this.cd && !(this.cd as ViewRef).destroyed) {\n this.cd.detectChanges();\n }\n });\n });\n\n this.step = this.stepService.getActiveStep();\n this.minStep = this.stepService.getMinStep();\n this.maxStep = this.stepService.getMaxStep();\n this.threeDService.finishedBuilding$.subscribe(() => {\n setTimeout(() => {\n if (this.cd && !(this.cd as ViewRef).destroyed) {\n this.cd.detectChanges();\n }\n }, 3100);\n });\n\n window.addEventListener('focus', () => {\n setTimeout(() => {\n if (this.cd && !(this.cd as ViewRef).destroyed) {\n this.cd.detectChanges();\n }\n });\n });\n\n this.threeDService.readyForInput$.subscribe(() => {\n setTimeout(() => {\n if (this.cd && !(this.cd as ViewRef).destroyed) {\n this.cd.detectChanges();\n }\n });\n });\n }\n\n get blocked(): boolean {\n return this.stepService.forwardBlocked;\n }\n\n get blockedText(): string {\n return this.translateService.instant(this.stepService.forwardBlockedMessage);\n }\n\n next() {\n this.step = this.stepService.nextStep();\n }\n\n previous() {\n this.step = this.stepService.previousStep();\n }\n\n goToStep(stepNumber: any) {\n this.step = this.stepService.moveToStep(stepNumber);\n }\n\n showNotificationIfNeeded() {\n if (!this.blocked) {\n this.notificationService.hideBalloonNotification('nextButton');\n return;\n }\n this.notificationService.showBalloonNotification(this.blockedText, this.nextButton.nativeElement);\n }\n hideNotification() {\n this.notificationService.hideBalloonNotification('nextButton');\n }\n}\n","
\n
\n \n
\n
{{ 'STEPCONTAINER.PREVIOUSSTEP' | translate }}
\n
\n = maxStep || blocked }\"\n class=\"button next no-select\"\n fxFlex\n fxLayout=\"row\"\n id=\"nextButton\">\n
{{ 'STEPCONTAINER.NEXTSTEP' | translate }}
\n
{{ 'STEPCONTAINER.SUMMARY' | translate }}
\n \n
\n \n\n","import {\n Component,\n OnInit,\n ChangeDetectorRef,\n OnDestroy,\n Output,\n EventEmitter,\n Input,\n ViewRef,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef,\n AfterViewInit,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-door-dimension-slider',\n templateUrl: './door-dimension-slider.component.html',\n styleUrls: ['./door-dimension-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DoorDimensionSliderComponent implements OnInit, OnDestroy, AfterViewInit {\n public unsubscribe: Subject = new Subject();\n @Output() valueChanged = new EventEmitter();\n private _range: number[] = [0];\n @ViewChild('slider') slider: ElementRef;\n\n _val: number;\n\n @Input() set value(val: number) {\n if (val === this._val) {\n return;\n }\n\n this._val = val;\n\n this.valueChanged.emit(this._val);\n this.sliderValue = this.value;\n if (!!this.slider && !!this.slider.nativeElement) {\n this.slider.nativeElement.value = '' + this.sliderValue;\n }\n this.error = false;\n this.changeDetector.detectChanges();\n }\n\n get value(): number {\n return this._val;\n }\n\n @Input() set range(value: number[]) {\n this._range = value;\n\n if (this._range === undefined) {\n return;\n }\n\n if (this._range.length > 1) {\n if (this._range[0] && this.min !== this._range[0]) {\n this.min = this._range[0];\n }\n const max = this._range[this._range.length - 1];\n if (max && this.max !== max) {\n this.max = max;\n }\n } else if (this._range.length === 1) {\n this.min = this._range[0] - 1;\n this.max = this._range[0] + 1;\n }\n\n this.sliderValue = this.value;\n if (!!this.slider && !!this.slider.nativeElement) {\n this.slider.nativeElement.value = '' + this.sliderValue;\n }\n this.changeDetector.detectChanges();\n }\n\n min: number;\n max: number;\n sliderValue = 900;\n error: boolean;\n\n constructor(\n private domSanitizer: DomSanitizer,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n get style(): SafeStyle {\n const styleString = `--min: ${this.min};\n --max: ${this.max};\n --val: ${this.sliderValue}`;\n return this.domSanitizer.bypassSecurityTrustStyle(styleString);\n }\n\n get isEditingEnabled() {\n return this._range.length > 1;\n }\n\n ngOnInit() {\n this.sliderValue = this._val;\n }\n ngAfterViewInit() {\n if (!!this.slider && !!this.slider.nativeElement) {\n this.slider.nativeElement.value = '' + this.sliderValue;\n }\n }\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.unsubscribe();\n }\n\n setProgressSlider(event: any) {\n const closest = this._range.reduce((prev, curr) => {\n return Math.abs(curr - +event.target.value) < Math.abs(prev - +event.target.value) ? curr : prev;\n });\n\n this.sliderValue = event.target.valueAsNumber;\n this.value = closest;\n this.error = false;\n this.changeDetector.detectChanges();\n }\n\n sliderMouseUp() {\n setTimeout(() => {\n if (this.changeDetector && !(this.changeDetector as ViewRef).destroyed) {\n this.sliderValue = this.value;\n this.changeDetector.detectChanges();\n }\n }, 10);\n }\n\n inputChanged(target: HTMLInputElement) {\n if (!this._range.includes(+target.value)) {\n this.error = true;\n } else {\n this.value = +target.value;\n this.error = false;\n }\n\n this.changeDetector.detectChanges();\n }\n}\n","
\n
\n \n
\n
\n \n
\n
mm
\n
\n","import {\n Component,\n ViewChild,\n ElementRef,\n AfterViewInit,\n Output,\n EventEmitter,\n Input,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-step-five-slider',\n templateUrl: './step-five-slider.component.html',\n styleUrls: ['./step-five-slider.component.scss'],\n})\nexport class StepFiveSliderComponent implements AfterViewInit, OnDestroy {\n private unsubscribe: Subject = new Subject();\n collided: boolean;\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n sliderSize: number;\n sliderSteps: number;\n minimumSpacePercentage = 1;\n\n private _positionFromLeftLimit: number;\n private _positionFromRightLimit: number;\n\n leftContainerSize: number;\n rightContainersize: number;\n\n minimumSpaceSize = 0;\n\n @ViewChild('container') container: ElementRef;\n @ViewChild('thumb') thumb: ElementRef;\n @Output() newPositionFromLeft$: EventEmitter = new EventEmitter();\n @Input() collided$: EventEmitter = new EventEmitter();\n\n dragEnabled: boolean;\n moveStartReference: number;\n minimumStep = 300;\n minimumValue = 0;\n\n ngAfterViewInit() {\n this.sliderSize = this.container.nativeElement.clientWidth - this.minimumSpaceSize * 2;\n\n this.minimumSpacePercentage = (this.minimumSpaceSize / this.container.nativeElement.clientWidth) * 100;\n\n this.setViewPosition();\n\n this.collided$.pipe(takeUntil(this.unsubscribe)).subscribe((value: boolean) => {\n this.collided = value;\n this.changeDetector.detectChanges();\n });\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.unsubscribe();\n }\n\n set positionFromLeftLimit(value: number) {\n if (value >= this.minimumValue) {\n this._positionFromLeftLimit = value;\n this.newPositionFromLeft$.emit(this.positionFromLeftLimit);\n\n this.sliderSteps = this.totalWallWidth() / this.minimumStep;\n }\n }\n\n get positionFromLeftLimit(): number {\n return this._positionFromLeftLimit;\n }\n\n set positionFromRightLimit(value: number) {\n if (value >= this.minimumValue) {\n this._positionFromRightLimit = value;\n\n this.sliderSteps = this.totalWallWidth() / this.minimumStep;\n }\n }\n\n get positionFromRightLimit(): number {\n return this._positionFromRightLimit;\n }\n\n setViewPosition() {\n if (!this.minimumSpacePercentage) {\n this.minimumSpacePercentage = 0;\n }\n this.leftContainerSize =\n this.minimumSpacePercentage +\n (this.positionFromLeftLimit / this.totalWallWidth()) * (100 - this.minimumSpacePercentage * 2);\n this.rightContainersize =\n this.minimumSpacePercentage +\n (this.positionFromRightLimit / this.totalWallWidth()) * (100 - this.minimumSpacePercentage * 2);\n this.changeDetector.detectChanges();\n }\n\n totalWallWidth(): number {\n return this.positionFromLeftLimit + this.positionFromRightLimit;\n }\n\n mouseDown(event: MouseEvent) {\n this.moveStartReference = event.clientX;\n this.dragEnabled = true;\n }\n\n mouseUp() {\n setTimeout(() => {\n this.dragEnabled = false;\n });\n }\n\n mouseLeave() {\n this.dragEnabled = false;\n }\n\n mouseMove(event: MouseEvent) {\n if (this.dragEnabled) {\n if (this.moveStartReference + this.stepSize() < event.clientX) {\n this.moveSliderRight();\n this.moveStartReference = event.clientX;\n } else if (this.moveStartReference - this.stepSize() > event.clientX) {\n this.moveSliderLeft();\n this.moveStartReference = event.clientX;\n }\n }\n }\n stepSize(): number {\n return this.sliderSize / this.sliderSteps / 1.25;\n }\n\n moveSliderRight() {\n if (this.positionFromRightLimit - this.minimumStep >= this.minimumValue) {\n this.positionFromLeftLimit += this.minimumStep;\n this.positionFromRightLimit -= this.minimumStep;\n this.setViewPosition();\n }\n }\n\n moveSliderLeft() {\n if (this.positionFromLeftLimit - this.minimumStep >= this.minimumValue) {\n this.positionFromRightLimit += this.minimumStep;\n this.positionFromLeftLimit -= this.minimumStep;\n this.setViewPosition();\n }\n }\n\n stopDragBubble(event: Event) {\n event.preventDefault();\n }\n\n moveSteps(event: any) {\n if (this.dragEnabled) {\n return;\n }\n\n let mmFromCenter = (event.layerX - this.centerOfThumb) * this.pixelsToMillimetersFactor;\n\n if (mmFromCenter > 0) {\n do {\n this.moveSliderRight();\n mmFromCenter = Math.max(mmFromCenter - this.minimumStep, 0);\n } while (mmFromCenter !== 0);\n this.moveStartReference = event.clientX;\n } else if (mmFromCenter < 0) {\n do {\n this.moveSliderLeft();\n mmFromCenter = Math.min(mmFromCenter + this.minimumStep, 0);\n } while (mmFromCenter !== 0);\n this.moveStartReference = event.clientX;\n }\n }\n\n get pixelsToMillimetersFactor(): number {\n return this.totalWallWidth() / this.sliderSize;\n }\n\n get centerOfThumb() {\n if (this.thumb) {\n return this.thumb.nativeElement.offsetLeft + this.thumb.nativeElement.clientWidth / 2;\n } else {\n return -1;\n }\n }\n\n scrolling(event: WheelEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.deltaY > 0) {\n this.moveSliderRight();\n this.moveStartReference = event.clientX;\n } else if (event.deltaY < 0) {\n this.moveSliderLeft();\n this.moveStartReference = event.clientX;\n }\n }\n}\n","
\n
\n L - {{ positionFromLeftLimit }} mm\n R - {{ positionFromRightLimit }} mm\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n","import { ChangeDetectorRef, Component, EventEmitter, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { ThreeDService } from 'src/app/services/three-d.service';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\nimport { StepFiveSliderComponent } from './step-five-slider/step-five-slider.component';\nimport { debounceTime } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DoorType } from 'src/app/enums/doorType.enum';\nimport { DoorDirection } from 'src/app/enums/doorDirection.enum';\nimport { DoorPosition } from 'src/app/models/doorPosition.model';\nimport { WallSide } from 'src/app/enums/wallSide.enum';\nimport { StepService } from 'src/app/services/step.service';\nimport { DoorDimensionSliderComponent } from './door-dimension-slider/door-dimension-slider.component';\nimport { PriceService } from 'src/app/services/price.service';\nimport { FinishTypes } from 'src/app/enums/finishTypes.enum';\nimport { ViewboxOptionWithPrice } from 'src/app/models/wallFinishType.model';\nimport { ViewboxOption } from 'src/app/models/viewboxOption.model';\nimport { StartupService } from 'src/app/services/startup.service';\nimport { Purpose } from 'src/app/enums/purpose';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { DoorHandleType } from 'src/app/enums/doorHandleType.enum';\nimport { HingeType } from 'src/app/enums/hingeType.enum';\nimport { InnerWall } from 'src/app/models/innerWall.model';\n\n@Component({\n selector: 'app-step-five',\n templateUrl: './step-five.component.html',\n styleUrls: ['./step-five.component.scss'],\n})\nexport class StepFiveComponent implements OnInit, OnDestroy {\n remainingSpaceToLeft: number;\n remainingSpaceToRight: number;\n hasSelectedDoor: boolean;\n widthHeightRangeTurnDoor: number[][] = [\n //internal width, internal height, panel height\n [620, 1800, 1800],\n [620, 1800, 2100],\n [620, 1985, 2100],\n [620, 2000, 2400],\n [620, 2100, 2400],\n [620, 2200, 2400],\n [700, 1800, 1800],\n [700, 1800, 2100],\n [700, 1985, 2100],\n [700, 2000, 2400],\n [700, 2100, 2400],\n [700, 2200, 2400],\n [800, 1800, 1800],\n [800, 1800, 2100],\n [800, 1985, 2100],\n [800, 2000, 2400],\n [800, 2100, 2400],\n [800, 2200, 2400],\n [900, 1800, 1800],\n [900, 1800, 2100],\n [900, 1985, 2100],\n [900, 2000, 2400],\n [900, 2100, 2400],\n [900, 2200, 2400],\n [1000, 1800, 1800],\n [1000, 1800, 2100],\n [1000, 1985, 2100],\n [1000, 2000, 2400],\n [1000, 2100, 2400],\n [1000, 2200, 2400],\n [1100, 1800, 1800],\n [1100, 1800, 2100],\n [1100, 1985, 2100],\n [1100, 2000, 2400],\n [1100, 2100, 2400],\n [1100, 2200, 2400],\n [1200, 1800, 1800],\n [1200, 1800, 2100],\n [1200, 1985, 2100],\n [1200, 2000, 2400],\n [1200, 2100, 2400],\n [1200, 2200, 2400],\n [1400, 1800, 1800],\n [1400, 1800, 2100],\n [1400, 1985, 2100],\n [1400, 2000, 2400],\n [1400, 2100, 2400],\n [1400, 2200, 2400],\n [1500, 1800, 1800],\n [1500, 1800, 2100],\n [1500, 1985, 2100],\n [1500, 2000, 2400],\n [1500, 2100, 2400],\n [1500, 2200, 2400],\n ];\n widthHeightRangeSlideDoor: number[][] = [\n [800, 1900, 2100],\n [800, 2000, 2400],\n [800, 2100, 2400],\n [800, 2200, 2400],\n [800, 2400, 2700],\n [900, 1900, 2100],\n [900, 2000, 2400],\n [900, 2100, 2400],\n [900, 2200, 2400],\n [900, 2400, 2700],\n [1000, 1900, 2100],\n [1000, 2000, 2400],\n [1000, 2100, 2400],\n [1000, 2200, 2400],\n [1000, 2400, 2700],\n [1100, 1900, 2100],\n [1100, 2000, 2400],\n [1100, 2100, 2400],\n [1100, 2200, 2400],\n [1100, 2400, 2700],\n [1200, 1900, 2100],\n [1200, 2000, 2400],\n [1200, 2100, 2400],\n [1200, 2200, 2400],\n [1200, 2400, 2700],\n [1400, 1900, 2100],\n [1400, 2000, 2400],\n [1400, 2100, 2400],\n [1400, 2200, 2400],\n [1400, 2400, 2700],\n [1500, 1900, 2100],\n [1500, 2000, 2400],\n [1500, 2100, 2400],\n [1500, 2200, 2400],\n [1500, 2400, 2700],\n ];\n\n @ViewChild('slider') slider: StepFiveSliderComponent;\n collided$: EventEmitter = new EventEmitter();\n currentSide: WallSide;\n @ViewChild('doorWidth') doorWidth: DoorDimensionSliderComponent;\n @ViewChild('doorHeight') doorHeight: DoorDimensionSliderComponent;\n _externalDoorFinishOptions: ViewboxOptionWithPrice[];\n _internalDoorFinishOptions: ViewboxOptionWithPrice[];\n pricesVisible: boolean;\n doorOpeningWidth: number;\n doorOpeningHeight: number;\n private unsubscribe: Subject = new Subject();\n private debouncer = new Subject();\n private subscription: Subscription;\n\n constructor(\n private configurationService: ConfigurationService,\n private threeDService: ThreeDService,\n private translateService: TranslateService,\n private stepService: StepService,\n private changeDetector: ChangeDetectorRef,\n private priceService: PriceService,\n private notificationService: NotificationService,\n private startupService: StartupService\n ) {\n this.configurationService.registerNewDoors = true;\n }\n\n private _selectedDoor: DoorPosition | null = null;\n\n get selectedDoor(): DoorPosition {\n return this._selectedDoor;\n }\n\n set selectedDoor(selectedDoor: DoorPosition) {\n if (!selectedDoor) {\n this._selectedDoor = null;\n return;\n }\n\n if (!this._selectedDoor) {\n this._selectedDoor = new DoorPosition(\n 0,\n -1,\n WallSide.south,\n 620,\n 1780,\n 900,\n this.configurationService.height,\n FinishTypes.STEEL,\n FinishTypes.STEEL\n );\n }\n\n if (this._selectedDoor.equals(selectedDoor)) {\n return;\n }\n\n this._selectedDoor = selectedDoor;\n\n this.doorOpeningWidth = this.selectedDoor.doorModel.openingWidth;\n this.doorOpeningHeight = this.selectedDoor.doorModel.openingHeight;\n\n this.changeDetector.detectChanges();\n\n if (this.slider) {\n this.slider.positionFromLeftLimit = this.calculateRemainingSpaceToLeft();\n this.slider.positionFromRightLimit = this.calculateRemainingSpaceToRight();\n this.slider.setViewPosition();\n }\n\n if (this.doorWidth.valueChanged) {\n this.doorWidth.valueChanged.pipe(takeUntil(this.doorWidth.unsubscribe)).subscribe((value: number) => {\n if (this.threeDService.isValidDoorWidth(value)) {\n this.threeDService.setSelectedDoorWidth(value);\n this.doorOpeningWidth = value;\n if (this.doorOpeningHeight < this.heightRange[0]) {\n this.doorOpeningHeight = this.heightRange[0];\n this.threeDService.setSelectedDoorHeight(this.doorOpeningHeight);\n }\n if (this.doorOpeningHeight > this.heightRange[this.heightRange.length - 1]) {\n this.doorOpeningHeight = this.heightRange[this.heightRange.length - 1];\n this.threeDService.setSelectedDoorHeight(this.doorOpeningHeight);\n }\n this.configurationService.updateDoorSettings();\n this.updatePricesForDoorFinishes();\n this.updatePricesForDoorHandleTypes();\n this.updatePricesForHingeTypes();\n this.priceService.updatePrice(this.configurationService.configuration);\n } else {\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.TOOWIDE', NotificationService.DEFAULT_TIMEOUT);\n setTimeout(() => {\n this.doorWidth.value = this.selectedDoor.doorModel.openingWidth;\n });\n }\n });\n }\n if (this.doorHeight && this.doorHeight.valueChanged) {\n this.doorHeight.valueChanged.pipe(takeUntil(this.doorHeight.unsubscribe)).subscribe((value: number) => {\n if (this.threeDService.isValidDoorHeight(value)) {\n this.threeDService.setSelectedDoorHeight(value);\n this.doorOpeningHeight = value;\n if (this.doorOpeningWidth < this.widthRange[0]) {\n this.doorOpeningWidth = this.widthRange[0];\n this.threeDService.setSelectedDoorWidth(this.doorOpeningWidth);\n }\n if (this.doorOpeningWidth > this.widthRange[this.widthRange.length - 1]) {\n this.doorOpeningWidth = this.widthRange[this.widthRange.length - 1];\n this.threeDService.setSelectedDoorWidth(this.doorOpeningWidth);\n }\n\n this.configurationService.updateDoorSettings();\n this.updatePricesForDoorFinishes();\n this.updatePricesForDoorHandleTypes();\n this.updatePricesForHingeTypes();\n this.priceService.updatePrice(this.configurationService.configuration);\n } else {\n this.notificationService.showNotification('NOTIFICATIONS.DOOR.TOOHIGH', NotificationService.DEFAULT_TIMEOUT);\n setTimeout(() => {\n this.doorHeight.value = this.selectedDoor.doorModel.openingHeight;\n });\n }\n });\n }\n }\n\n _choosingDoorType: boolean;\n\n get choosingDoorType(): boolean {\n return this._choosingDoorType;\n }\n\n set choosingDoorType(value: boolean) {\n this._choosingDoorType = value;\n this.changeDetector.detectChanges();\n }\n\n _doorHandleTypes: ViewboxOptionWithPrice[];\n\n get doorHandleTypes(): ViewboxOptionWithPrice[] {\n return this._doorHandleTypes;\n }\n\n _doorHingeTypes: ViewboxOptionWithPrice[];\n\n get doorHingeTypes(): ViewboxOptionWithPrice[] {\n return this._doorHingeTypes;\n }\n\n get widthRange(): number[] {\n if (this.selectedDoor.doorModel.type === DoorType.Turn) {\n return this.widthHeightRangeTurnDoor.map(wh => wh[0]);\n } else if (this.selectedDoor.doorModel.type === DoorType.Slide) {\n return this.widthHeightRangeSlideDoor.map(wh => wh[0]);\n }\n }\n\n get heightRange(): number[] {\n if (this.selectedDoor.doorModel.type === DoorType.Turn) {\n return this.widthHeightRangeTurnDoor\n .filter(wh => wh[0] === this.doorOpeningWidth && wh[2] <= this.configurationService.height)\n .map(wh => wh[1]);\n } else if (this.selectedDoor.doorModel.type === DoorType.Slide) {\n return this.widthHeightRangeSlideDoor\n .filter(wh => wh[0] === this.doorOpeningWidth && wh[2] <= this.configurationService.height)\n .map(wh => wh[1]);\n }\n }\n\n get externalDoorFinishTypes(): ViewboxOptionWithPrice[] {\n return this._externalDoorFinishOptions;\n }\n\n get internalDoorFinishTypes(): ViewboxOptionWithPrice[] {\n return this._internalDoorFinishOptions;\n }\n\n get canUseSlideDoor() {\n return this.currentSide !== WallSide.inner;\n }\n\n get canUseTurnDoor() {\n return this.currentSide !== WallSide.inner || this.configurationService.configuration.settings.heightInMM > 1800;\n }\n\n get anyDoors(): boolean {\n return this.configurationService.configuration.settings.doorSettings.length > 0;\n }\n\n get noDoorImage() {\n if (this.anyDoors) {\n return '/assets/images/doors/nodoor.png';\n }\n return '/assets/svg/icon-geendeuren.svg';\n }\n\n get doorInstructionTitle() {\n if (this.configurationService.configuration.settings.doorSettings.length === 0) {\n return this.translateService.instant('STEP5.NODOORADDED');\n } else if (!this.selectedDoor) {\n return this.translateService.instant('STEP5.NODOORSELECTED');\n }\n }\n\n get doorInstructionText() {\n if (this.configurationService.configuration.settings.doorSettings.length === 0) {\n return this.translateService.instant('STEP5.ADDBYPLUS');\n } else if (!this.selectedDoor) {\n return this.translateService.instant('STEP5.SELECTBYCLICK');\n }\n }\n\n get turnLeft(): boolean {\n return this.selectedDoor ? this.selectedDoor.doorModel.direction === DoorDirection.left : false;\n }\n\n get isTurnType(): boolean {\n return this.selectedDoor ? this.selectedDoor.doorModel.type === DoorType.Turn : false;\n }\n\n get isSlideType(): boolean {\n return this.selectedDoor ? this.selectedDoor.doorModel.type == DoorType.Slide : false;\n }\n\n ngOnInit() {\n this.choosingDoorType = false;\n\n this._externalDoorFinishOptions = Object.values(this.configurationService.externalDoorFinishViewboxOptions);\n this._internalDoorFinishOptions = Object.values(this.configurationService.internalDoorFinishViewboxOptions);\n this._doorHandleTypes = Object.values(this.configurationService.doorHandleTypes).filter(x => x != null);\n if (this.configurationService.purpose === Purpose.Freezing && this.configurationService.wallThickness < 100) {\n this._doorHandleTypes = this._doorHandleTypes.filter(\n t => t.option !== DoorHandleType.euro2000 && t.option != DoorHandleType.euro2016\n );\n }\n this._doorHingeTypes = Object.values(this.configurationService.doorHingeTypes);\n this.stepService.blockForwardUntilMoreThanOneDoorSelected();\n this.configurationService.setHideFrontWalls(false);\n this.threeDService.wallSelectionEnabled = true;\n this.threeDService.doorSelectionEnabled = true;\n this.threeDService.innerWallSelectionEnabled = true;\n this.threeDService.setZoom(3.75);\n\n this.startupService.priceEnabledSetting$.pipe(takeUntil(this.unsubscribe)).subscribe((enabled: boolean) => {\n this.pricesVisible = enabled;\n });\n\n this.threeDService.doorSelected$.pipe(takeUntil(this.unsubscribe)).subscribe(async (door: DoorPosition) => {\n this.selectedDoor = this.configurationService.configuration.settings.doorSettings.find(d => d.id === door.id);\n if (door.side > -1) {\n this.setCameraOnSide(door.side);\n }\n if (this.slider) {\n this.slider.positionFromLeftLimit = this.calculateRemainingSpaceToLeft();\n this.slider.positionFromRightLimit = this.calculateRemainingSpaceToRight();\n this.slider.setViewPosition();\n }\n this.updateSelectedViewboxOption();\n this.updatePricesForDoorFinishes();\n this.updatePricesForDoorHandleTypes();\n this.updatePricesForHingeTypes();\n this.changeDetector.detectChanges();\n });\n\n this.threeDService.selectFirstDoor();\n\n this.threeDService.doorAdded$.pipe(takeUntil(this.unsubscribe)).subscribe((door: DoorPosition) => {\n this.selectedDoor = this.configurationService.configuration.settings.doorSettings.find(d => d.id === door.id);\n if (door.side > -1) {\n this.threeDService.setCameraOnSide(door.side);\n }\n\n this.updateSelectedViewboxOption();\n this.updatePricesForDoorFinishes();\n this.updatePricesForDoorHandleTypes();\n this.updatePricesForHingeTypes();\n this.changeDetector.detectChanges();\n });\n this.threeDService.doorRemoved$.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n this.selectedDoor = null;\n this.changeDetector.detectChanges();\n });\n this.threeDService.doorReplaced$.pipe(takeUntil(this.unsubscribe)).subscribe((door: DoorPosition) => {\n this.selectedDoor.doorModel = door.doorModel;\n this.selectedDoor.left = door.left;\n\n if (this.slider) {\n this.slider.positionFromLeftLimit = this.calculateRemainingSpaceToLeft();\n this.slider.positionFromRightLimit = this.calculateRemainingSpaceToRight();\n this.slider.setViewPosition();\n }\n\n this.changeDetector.detectChanges();\n });\n\n this.threeDService.doorSelectionRemoved$.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n this.selectedDoor = null;\n this.changeDetector.detectChanges();\n });\n\n this.threeDService.doorDroppedOffWall$.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n this.selectedDoor = null;\n this.changeDetector.detectChanges();\n });\n\n this.threeDService.doorCollision$.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n this.collided$.emit(true);\n });\n\n this.threeDService.doorPositionSet$.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n this.selectedDoor = this.threeDService.selectedDoor;\n this.collided$.emit(false);\n });\n\n this.threeDService.selectFirstDoor();\n\n this.subscription = this.debouncer.pipe(debounceTime(300)).subscribe((mmFromLeft: number) => {\n if (this.selectedDoor) {\n this.selectedDoor.left = mmFromLeft;\n this.threeDService.setDoorPosition(this.selectedDoor.left);\n this.configurationService.updateDoorSettings();\n }\n });\n\n this.threeDService.wallSelectionChanged$.pipe(takeUntil(this.unsubscribe)).subscribe((side: WallSide) => {\n if (side > -1 && side < 5) {\n if (side < 5) {\n this.setCameraOnSide(side);\n }\n this.currentSide = side;\n this.choosingDoorType = true;\n } else {\n this.currentSide = undefined;\n this.choosingDoorType = false;\n }\n });\n\n this.threeDService.doorHeightChangedFailed$.subscribe(() => {\n if (this.selectedDoor) {\n this.doorHeight.value = this.selectedDoor.doorModel.openingHeight;\n }\n });\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.unsubscribe();\n\n this.priceService.updatePrice(this.configurationService.configuration);\n\n this.threeDService.wallSelectionEnabled = false;\n this.threeDService.doorSelectionEnabled = false;\n this.threeDService.deselect();\n this.subscription.unsubscribe();\n this.stepService.releaseBlockForwardUntilMoreThanOneDoorSelected();\n this.configurationService.registerNewDoors = false;\n }\n\n addDoorType(type: DoorType) {\n switch (type) {\n case DoorType.Turn: {\n if (!this.canUseTurnDoor) {\n break;\n }\n let height = this.configurationService.defaultTurnDoorheight;\n if (this.configurationService.height <= 1800) {\n height = this.configurationService.defaultTurnDoorheightUnder2m;\n }\n this.threeDService.addNewDoor(\n type as DoorType,\n this.currentSide,\n DoorDirection.left,\n this.configurationService.defaultTurnDoorWidth,\n height,\n 0,\n [\n '',\n this.threeDService.materialFromFinishType(FinishTypes.STEEL),\n this.threeDService.materialFromFinishType(FinishTypes.STEEL),\n ]\n );\n break;\n }\n case DoorType.Slide: {\n if (!this.canUseSlideDoor) {\n break;\n }\n this.threeDService.addNewDoor(\n type as DoorType,\n this.currentSide,\n DoorDirection.left,\n this.configurationService.defaultSlideDoorWidth,\n this.configurationService.defaultSlideDoorheight,\n 0,\n [\n '',\n this.threeDService.materialFromFinishType(FinishTypes.STEEL),\n this.threeDService.materialFromFinishType(FinishTypes.STEEL),\n ]\n );\n break;\n }\n }\n this.configurationService.updateDoorSettings();\n this.priceService.updatePrice(this.configurationService.configuration);\n }\n\n selectedDoorDescription(): string {\n return this.translateService.instant('STEP5.' + DoorType[this.selectedDoor.doorModel.type].toUpperCase());\n }\n\n setDirection(direction: number) {\n if (this.selectedDoor) {\n if (this.selectedDoor.doorModel.type === DoorType.Turn) {\n this.selectedDoor.doorModel.direction = direction;\n this.changeDetector.detectChanges();\n this.threeDService.setDoorRotationSide(direction);\n } else if (this.selectedDoor.doorModel.type === DoorType.Slide) {\n this.selectedDoor.doorModel.direction = direction;\n this.changeDetector.detectChanges();\n this.threeDService.setDoorSlidingDirection(direction);\n }\n\n this.configurationService.updateDoorSettings();\n }\n }\n\n getDoorImage(door: DoorPosition): string {\n if (door.doorModel.type === DoorType.Turn) {\n if (door.doorModel.direction === DoorDirection.left) {\n return 'assets/images/doors/turning_left.png';\n }\n return 'assets/images/doors/turning.png';\n } else if (door.doorModel.direction === DoorDirection.left) {\n return 'assets/images/doors/sliding_left.png';\n }\n return 'assets/images/doors/sliding.png';\n }\n\n calculateRemainingSpaceToLeft(): number {\n if (this.selectedDoor) {\n return Math.round(this.selectedDoor.left);\n } else {\n return null;\n }\n }\n\n calculateRemainingSpaceToRight(): number {\n if (this.selectedDoor) {\n const wallPlacedOn = this.threeDService.getWallBySide(this.selectedDoor.side, this.selectedDoor.innerWallId);\n this.gatherInnerWallsForSideOfDoor();\n return wallPlacedOn.wallLength * 1000 - this.selectedDoor.left - this.selectedDoor.doorModel.panelWidth;\n } else {\n return null;\n }\n }\n\n newDoorLeftPosition(mmFromLeft: number) {\n if (this.selectedDoor) {\n if (this.threeDService.isValidDoorPosition(mmFromLeft)) {\n this.debouncer.next(mmFromLeft);\n }\n } else {\n return null;\n }\n }\n\n removeSelectedDoor() {\n this.threeDService.removeSelectedDoor();\n this.selectedDoor = null;\n this.configurationService.updateDoorSettings();\n this.priceService.updatePrice(this.configurationService.configuration);\n }\n\n processSelectedExternalDoorFinish(doorFinish: ViewboxOptionWithPrice) {\n this.handleSelectionState(this.externalDoorFinishTypes, doorFinish);\n this.updateSelectedDoorFinish(this.selectedDoor, true, doorFinish.option);\n }\n\n processSelectedInternalDoorFinish(doorFinish: ViewboxOptionWithPrice) {\n this.handleSelectionState(this.internalDoorFinishTypes, doorFinish);\n this.updateSelectedDoorFinish(this.selectedDoor, false, doorFinish.option);\n }\n\n processSelectedDoorHandle(selection: ViewboxOptionWithPrice) {\n this.handleSelectionState(this.doorHandleTypes, selection);\n this.configurationService.changeSelectedDoorHandle(selection.option as DoorHandleType);\n this.updatePricesForDoorHandleTypes();\n }\n\n processSelectedDoorHinge(selection: ViewboxOptionWithPrice) {\n this.handleSelectionState(this.doorHingeTypes, selection);\n this.configurationService.changeSelectedDoorHinge(selection.option as HingeType);\n this.updatePricesForHingeTypes();\n }\n\n handleSelectionState(doorFinishOptions: ViewboxOption[], doorFinish: ViewboxOptionWithPrice) {\n doorFinishOptions.forEach(finish => {\n finish.selected = false;\n });\n\n const doorFinishToUpdate = doorFinishOptions.find(f => f === doorFinish);\n if (doorFinishToUpdate) {\n doorFinishToUpdate.selected = true;\n }\n }\n\n updateSelectedDoorFinish(door: DoorPosition, outside: boolean, finish: FinishTypes) {\n this.configurationService.updateSelectedDoorFinish(outside, finish);\n if (outside) {\n door.setLeafExteriorFinish(finish);\n } else {\n door.setLeafInteriorFinish(finish);\n }\n this.priceService.updatePrice(this.configurationService.configuration);\n this.updatePricesForDoorFinishes();\n }\n\n updatePricesForDoorFinishes() {\n if (!this.pricesVisible) {\n return;\n }\n this.internalDoorFinishTypes.forEach(wallFinish => {\n wallFinish.priceChange = '...';\n });\n this.externalDoorFinishTypes.forEach(wallFinish => {\n wallFinish.priceChange = '...';\n });\n this.changeDetector.detectChanges();\n this.internalDoorFinishTypes.forEach(async wallFinish => {\n wallFinish.priceChange = await this.computePriceDifferenceForDoorFinishes(\n wallFinish.option as FinishTypes,\n false\n );\n });\n\n this.externalDoorFinishTypes.forEach(async wallFinish => {\n wallFinish.priceChange = await this.computePriceDifferenceForDoorFinishes(wallFinish.option as FinishTypes, true);\n });\n setTimeout(() => this.changeDetector.detectChanges());\n }\n\n async updatePricesForHingeTypes() {\n if (!this.pricesVisible) {\n return;\n }\n this.doorHingeTypes.forEach(hingeType => {\n hingeType.priceChange = '...';\n });\n await Promise.all(this.doorHingeTypes.map(async hingeType => {\n hingeType.priceChange = await this.computePriceDifferenceForDoorHinges(hingeType.option as HingeType);\n }));\n setTimeout(() => this.changeDetector.detectChanges());\n }\n\n async updatePricesForDoorHandleTypes() {\n if (!this.pricesVisible) {\n return;\n }\n this.doorHandleTypes.forEach(handleType => {\n handleType.priceChange = '...';\n });\n await Promise.all(this.doorHandleTypes.map(async handleType => {\n handleType.priceChange = await this.computePriceDifferenceForDoorHandles(handleType.option as DoorHandleType);\n }));\n\n setTimeout(() => this.changeDetector.detectChanges());\n }\n\n async computePriceDifferenceForDoorFinishes(newFinish: FinishTypes, outside: boolean): Promise {\n if (!this.pricesVisible || !this.selectedDoor) {\n return false;\n }\n const clone = this.selectedDoor.clone();\n if (outside) {\n clone.setLeafExteriorFinish(newFinish);\n } else {\n clone.setLeafInteriorFinish(newFinish);\n }\n return await this.computePriceDifferenceBetweenDoors(this.selectedDoor, clone);\n }\n\n async computePriceDifferenceBetweenDoors(\n currentDoor: DoorPosition,\n afterChange: DoorPosition\n ): Promise {\n const freezing = this.configurationService.purpose !== Purpose.Cooling;\n const wallThickness = this.configurationService.wallThickness;\n const oldPrice = await this.priceService.getPriceOfDoor(currentDoor, wallThickness, freezing);\n const newPrice = await this.priceService.getPriceOfDoor(afterChange, wallThickness, freezing);\n if (oldPrice === false || oldPrice.Price === undefined || newPrice === false || newPrice.Price === undefined) {\n return false;\n }\n return newPrice.Price - oldPrice.Price;\n }\n\n async computePriceDifferenceForDoorHinges(newHinge: HingeType): Promise {\n if (!this.pricesVisible || !this.selectedDoor) {\n return false;\n }\n const clone = this.selectedDoor.clone();\n clone.hingeType = newHinge;\n return await this.computePriceDifferenceBetweenDoors(this.selectedDoor, clone);\n }\n\n async computePriceDifferenceForDoorHandles(newHandle: DoorHandleType): Promise {\n if (!this.pricesVisible || !this.selectedDoor) {\n return false;\n }\n const clone = this.selectedDoor.clone();\n clone.doorHandleType = newHandle;\n return await this.computePriceDifferenceBetweenDoors(this.selectedDoor, clone);\n }\n\n updateSelectedViewboxOption() {\n this._externalDoorFinishOptions.forEach(dfo => {\n dfo.selected = false;\n });\n this._internalDoorFinishOptions.forEach(dfo => {\n dfo.selected = false;\n });\n this._doorHandleTypes.forEach(dfo => {\n dfo.selected = false;\n });\n this._doorHingeTypes.forEach(dfo => {\n dfo.selected = false;\n });\n const door = this.configurationService.configuration.settings.doorSettings.find(d => d.id === this.selectedDoor.id);\n if (!door) {\n return;\n }\n\n const currentExternalDoorFinish = this._externalDoorFinishOptions.find(\n dfo => dfo.option === door.leafExteriorFinish\n );\n\n if (currentExternalDoorFinish !== undefined) {\n currentExternalDoorFinish.selected = true;\n }\n\n const currentInternalDoorFinish = this._internalDoorFinishOptions.find(\n dfo => dfo.option === door.leafInteriorFinish\n );\n\n if (currentInternalDoorFinish !== undefined) {\n currentInternalDoorFinish.selected = true;\n }\n\n const currentDoorHinge = this._doorHingeTypes.find(dfo => dfo.option === door.hingeType);\n\n if (currentDoorHinge !== undefined) {\n currentDoorHinge.selected = true;\n }\n\n const currentDoorHandle = this._doorHandleTypes.find(dfo => dfo.option === door.doorHandleType);\n\n if (currentDoorHandle !== undefined) {\n currentDoorHandle.selected = true;\n }\n }\n\n flipInnerWall() {\n const innerWall = this.configurationService.configuration.settings.innerWalls.find(\n iw => iw.id == this.selectedDoor.innerWallId\n );\n if (innerWall) {\n this.threeDService.flipInnerWall(innerWall);\n }\n }\n\n private setCameraOnSide(side: WallSide) {\n if (side > -1 && side < 4) {\n if (this.configurationService.wallsHidden) {\n side = (side + 2) % 4;\n }\n this.threeDService.setCameraOnSide(side);\n }\n }\n\n private gatherInnerWallsForSideOfDoor() {\n let innerWalls: InnerWall[] = [];\n switch (this.selectedDoor.side) {\n case WallSide.north:\n case WallSide.south:\n innerWalls = this.threeDService\n .getInnerWalls()\n .filter(t => t.placedOnSide == WallSide.north || t.placedOnSide == WallSide.south);\n break;\n case WallSide.east:\n case WallSide.west:\n innerWalls = this.threeDService\n .getInnerWalls()\n .filter(t => t.placedOnSide == WallSide.east || t.placedOnSide == WallSide.west);\n break;\n default:\n return [];\n }\n innerWalls.forEach(iw => {\n if (iw.placedOnSide !== this.selectedDoor.side) {\n const wall = this.threeDService.getWallBySide(this.selectedDoor.side);\n const innerWallCompensation =\n this.configurationService.wallThickness +\n (this.configurationService.wallThickness <= 80\n ? this.configurationService.roundedWallCorrectionThickness * 2\n : 0);\n iw = {\n left: wall.wallLength * 1000 - iw.left - innerWallCompensation,\n placedOnSide: iw.placedOnSide,\n } as InnerWall;\n }\n });\n return innerWalls;\n }\n}\n","

\n {{ 'STEP5.INSTRUCTIONSELECT' | translate }}\n

\n

\n {{ 'STEP5.INSTRUCTIONCHOOSEDOOR' | translate }}\n

\n
\n
\n
\n
\n \n
\n
{{ selectedDoorDescription() }}
\n
\n
\n
\n
\n
\n\n
\n {{ 'STEP5.CLEARWIDTH' | translate }}\n \n {{ 'STEP5.CLEARHEIGHT' | translate }}\n \n
\n\n
{{ 'STEP5.POSITION' | translate }}
\n \n\n
{{ 'STEP5.DIRECTION' | translate }}
\n
{{ 'STEP5.SLIDEDIRECTION' | translate }}
\n
\n \n
{{ 'STEP5.LEFT' | translate }}
\n
\n \n
{{ 'STEP5.RIGHT' | translate }}
\n
\n
\n \n \n
{{ 'STEPINNERWALL.FLIPWALL' | translate }}
\n
\n
\n \n
{{ 'STEP6.FINISH' | translate }} {{ 'STEP6.OUTSIDESMALL' | translate }}
\n \n
{{ 'STEP6.FINISH' | translate }} {{ 'STEP6.INSIDESMALL' | translate }}
\n \n
\n \n
\n {{ 'DOORHANDLE.HANDLE' | translate }}\n
\n \n
\n {{ 'DOORHINGE.HINGE' | translate }}\n
\n \n
\n
\n\n\n
\n
\n
\n \n
\n
\n
{{ doorInstructionTitle }}
\n
{{ doorInstructionText }}
\n
\n
\n
\n \n
\n \n
\n \n
\n \n
{{ 'STEP5.TURN' | translate }}
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n \n
{{ 'STEP5.SLIDE' | translate }}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { FloorType } from 'src/app/models/floorType.model';\nimport { FloorTypes } from 'src/app/enums/floorTypes.enum';\nimport { PriceService } from 'src/app/services/price.service';\nimport { LanguageService } from 'src/app/services/language.service';\nimport { StartupService } from 'src/app/services/startup.service';\nimport { ThreeDService } from 'src/app/services/three-d.service';\n\n@Component({\n selector: 'app-step-four',\n templateUrl: './step-four.component.html',\n styleUrls: ['./step-four.component.scss'],\n})\nexport class StepFourComponent implements OnInit, OnDestroy {\n floorTypes: FloorType[] = [];\n displayFloorTypes: FloorType[] = [];\n private _wantsFloor = true;\n private _strongFloor = false;\n plint = true;\n ventilationProfiles: boolean;\n sunkenFloor = false;\n plinthsInside: boolean;\n plinthsOutside: boolean;\n ceilingMoldings = false;\n pricesVisible: boolean;\n canHavePinths = false;\n constructor(\n private configurationService: ConfigurationService,\n private priceService: PriceService,\n private languageService: LanguageService,\n private startupService: StartupService,\n private threeDService: ThreeDService\n ) {}\n\n ngOnInit() {\n this.startupService.priceEnabledSetting$.subscribe((enabled: boolean) => {\n this.pricesVisible = enabled;\n });\n this.canHavePinths = this.configurationService.canHavePlinths;\n this._wantsFloor = this.configurationService.floorType !== FloorTypes.NONE;\n this._strongFloor = false;\n this.floorTypes = this.configurationService.allowedFloorTypes.filter(t => t.available);\n this.floorTypes.forEach(ft => (ft.selected$ = new EventEmitter()));\n this.sunkenFloor = this.configurationService.sunkenFloor;\n this.plinthsInside = this.configurationService.plinthsInside;\n this.plinthsOutside = this.configurationService.plinthsOutside;\n this.ceilingMoldings = this.configurationService.ceilingMoldings;\n\n if (this.configurationService.floorType !== undefined && this.configurationService.floorType !== null) {\n this.floorTypes.forEach(f => (f.selected = false));\n const floorTypeToUpdate = this.floorTypes.find(f => f.option === this.configurationService.floorType);\n if (floorTypeToUpdate) {\n floorTypeToUpdate.selected = true;\n }\n }\n if (this.floorTypes.some(f => f.selected && f.strong)) {\n this._strongFloor = true;\n }\n\n this.ventilationProfiles = this.configurationService.ventilationProfiles;\n\n this.displayFloorTypes = this.floorTypes.filter(\n f => f.strong === this._strongFloor && f.minimumWallThickness <= this.configurationService.wallThickness\n );\n this.updatePricesForFloorTypes();\n this.processSelectedFloorType(this.floorTypes.find(f => f.selected === true));\n\n this.configurationService.setHideFrontWalls(true);\n this.threeDService.setZoom(3.75);\n this.threeDService.resetDefaultCamera();\n }\n\n ngOnDestroy() {\n this.configurationService.setHideFrontWalls(false);\n }\n\n get canDisableFloor(): boolean {\n return !this.configurationService.mustHaveFloor;\n }\n\n get currentLocale() {\n return this.languageService.currentLanguage;\n }\n\n get wantsFloor(): boolean {\n return this._wantsFloor;\n }\n\n set wantsFloor(value: boolean) {\n if (this._wantsFloor !== value) {\n this._wantsFloor = value;\n\n if (!this._wantsFloor) {\n this.strongFloor = false;\n this.configurationService.floorType = FloorTypes.NONE;\n this.configurationService.plinthsInside = false;\n this.configurationService.plinthsOutside = false;\n this.configurationService.sunkenFloor = false;\n this.configurationService.ceilingMoldings = false;\n this.configurationService.ventilationProfiles = false;\n } else {\n this.setVentilationProfiles(true);\n this.setPlinthsInside(this.plinthsInside);\n if (this._strongFloor) {\n this.configurationService.floorType = FloorTypes.ALUMINUM25;\n } else {\n this.configurationService.floorType = FloorTypes.DURAFLOOR;\n }\n this.ventilationProfiles = this.configurationService.ventilationProfiles;\n this.updatePricesForFloorTypes();\n this.setSunkenFloor(false);\n }\n }\n }\n\n processSelectedFloorType(floorType: FloorType) {\n if (floorType) {\n this.configurationService.floorType = FloorTypes[floorType.option];\n this.floorTypes.forEach(ft => (ft.selected = false));\n this.floorTypes.find(a => a.option === floorType.option).selected = true;\n floorType.selected$.emit();\n this.updatePricesForFloorTypes();\n }\n }\n\n get strongFloor(): boolean {\n return this._strongFloor;\n }\n\n set strongFloor(value: boolean) {\n if (this._strongFloor !== value) {\n this._strongFloor = value;\n this.displayFloorTypes = this.floorTypes.filter(\n f => f.strong === this._strongFloor && f.minimumWallThickness <= this.configurationService.wallThickness\n );\n if (value) {\n this.configurationService.floorType = FloorTypes.ALUMINUM25;\n } else {\n this.configurationService.floorType = FloorTypes.DURAFLOOR;\n }\n this.updatePricesForFloorTypes();\n }\n }\n\n private updatePricesForFloorTypes() {\n this.displayFloorTypes.forEach(ft => {\n ft.priceChange = this.computePriceDifferenceForFloors(ft.option as FloorTypes);\n });\n }\n\n setVentilationProfiles(event: boolean) {\n this.configurationService.ventilationProfiles = event;\n }\n\n setSunkenFloor(value: boolean) {\n this.configurationService.sunkenFloor = value;\n this.sunkenFloor = value;\n }\n\n setPlinthsInside(value: boolean) {\n this.configurationService.plinthsInside = value;\n this.plinthsInside = value;\n }\n\n setPlinthsOutside(value: boolean) {\n this.configurationService.plinthsOutside = value;\n }\n\n setCeilingMoldings(value: boolean) {\n this.configurationService.ceilingMoldings = value;\n }\n\n computePriceDifferenceForFloors(newFloor: FloorTypes): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n\n newConfig.settings.floorType = newFloor;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForPlinthsInside(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n\n newConfig.settings.plinthsInside = !configuration.settings.plinthsInside;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForPlinthsOutside(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n\n newConfig.settings.plinthsOutside = !configuration.settings.plinthsOutside;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForVentilationProfiles(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n\n newConfig.settings.ventilationProfiles = !configuration.settings.ventilationProfiles;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForCeilingMoldings(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n\n newConfig.settings.ceilingMoldings = !configuration.settings.ceilingMoldings;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForYesFloor(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n if (this.wantsFloor) {\n return 0;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n newConfig.settings.floorType = FloorTypes.DURAFLOOR;\n newConfig.settings.ventilationProfiles = true;\n\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForNoFloor(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n if (!this.wantsFloor) {\n return 0;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n newConfig.settings.floorType = FloorTypes.NONE;\n newConfig.settings.plinthsInside = false;\n newConfig.settings.plinthsOutside = false;\n newConfig.settings.sunkenFloor = false;\n newConfig.settings.ceilingMoldings = false;\n newConfig.settings.ventilationProfiles = false;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForYesFloorReinforced(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n if (this.strongFloor) {\n return 0;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n newConfig.settings.floorType = FloorTypes.ALUMINUM25;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n get priceDifferenceForNoFloorReinforced(): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n if (!this.strongFloor) {\n return 0;\n }\n const configuration = this.configurationService.configuration;\n const newConfig = configuration.clone();\n newConfig.settings.floorType = FloorTypes.DURAFLOOR;\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n}\n","

\n {{ 'STEP4.INTRODUCTIONTEXT' | translate }}\n

\n
\n
{{ 'STEP4.FLOORCHOICE' | translate }}
\n
\n \n
\n \n {{ priceDifferenceForYesFloor | plusMinPrice }}\n \n  \n
\n
{{ 'YES' | translate }}
\n
\n \n
\n \n {{ priceDifferenceForNoFloor | plusMinPrice }}\n \n  \n
\n
{{ 'NO' | translate }}
\n
\n
\n
\n
\n
{{ 'STEP4.FLOORTYPE' | translate }}
\n \n
\n \n
{{ 'STEP4.PLINTHSINSIDE' | translate }}
\n
\n {{ priceDifferenceForPlinthsInside | plusMinPrice }}\n
\n \n \n
{{ 'STEP4.SUNKENFLOOR' | translate }}
\n
\n\n \n
{{ 'STEP4.PROFILES' | translate }}
\n
\n {{ priceDifferenceForVentilationProfiles | plusMinPrice }}\n
\n \n
\n
\n","import { ChangeDetectorRef, Component, EventEmitter, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { InnerWallType } from 'src/app/enums/innerWallType.enum';\nimport { WallSide } from 'src/app/enums/wallSide.enum';\nimport { IWall } from 'src/app/interfaces/wall.interface';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { StepService } from 'src/app/services/step.service';\nimport { ThreeDService } from 'src/app/services/three-d.service';\nimport { StepFiveSliderComponent } from '../step-five/step-five-slider/step-five-slider.component';\n\n@Component({\n selector: 'app-step-inner-walls',\n templateUrl: './step-inner-walls.component.html',\n styleUrls: ['./step-inner-walls.component.scss'],\n})\nexport class StepInnerWallsComponent implements OnInit, OnDestroy {\n subscription: Subscription;\n selectedWall: IWall;\n innerWallTypes = InnerWallType;\n openingQuestion = true;\n collided$: EventEmitter = new EventEmitter();\n @ViewChild('slider') slider: StepFiveSliderComponent;\n\n constructor(\n private configurationService: ConfigurationService,\n private threeDService: ThreeDService,\n private notificationService: NotificationService,\n private translateService: TranslateService,\n private stepService: StepService,\n private cd: ChangeDetectorRef\n ) {}\n\n get canUseInnerWalls() {\n return this.configurationService.canUseInnerWalls;\n }\n\n get selectedWallIsInner() {\n if (!this.selectedWall) {\n return false;\n }\n return this.selectedWall.side === WallSide.inner;\n }\n\n get mirrored() {\n if (!this.selectedWall || !this.selectedWallIsInner) {\n return false;\n }\n return this.selectedWall.innerWall.rotated;\n }\n\n get canUseThreeway() {\n return this.configurationService.wallThickness > 60;\n }\n\n ngOnInit(): void {\n if (this.configurationService.configuration.settings.innerWalls.length > 0) {\n this.openingQuestion = false;\n }\n this.configurationService.setHideFrontWalls(true);\n\n this.threeDService.wallSelectionEnabled = true;\n this.threeDService.innerWallSelectionEnabled = true;\n this.subscription = this.threeDService.wallSelectionChanged$.subscribe(() => {\n this.selectedWall = this.threeDService.wallSelection.getSelectedWall();\n this.cd.detectChanges();\n this.updateSlider();\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n this.threeDService.wallSelectionEnabled = false;\n this.threeDService.innerWallSelectionEnabled = false;\n }\n\n showInnerWallOption(type: InnerWallType) {\n if (this.configurationService.wallThickness === 80 && type === InnerWallType.lProfile) {\n return false;\n }\n\n if (\n !this.configurationService.configuration.settings.innerWalls ||\n this.configurationService.configuration.settings.innerWalls.length === 0\n ) {\n return true;\n }\n return this.configurationService.configuration.settings.innerWalls[0].type === type;\n }\n\n addInnerWall(type: InnerWallType) {\n if (\n !!this.configurationService.configuration.settings.innerWalls &&\n this.configurationService.configuration.settings.innerWalls.some(\n i => i.placedOnSide % 2 !== this.selectedWall.side % 2\n )\n ) {\n this.notificationService.showNotification(\n this.translateService.instant('STEPINNERWALL.ONLYONEDIRECTION'),\n NotificationService.DEFAULT_TIMEOUT\n );\n return;\n }\n\n if (!this.showInnerWallOption(type)) {\n return;\n }\n if (type === InnerWallType.threeway && !this.canUseThreeway) {\n return;\n }\n const left = 600;\n this.threeDService.addInnerWall(type, left);\n this.configurationService.updateInnerWalls();\n this.cd.detectChanges();\n }\n\n newLeftPosition(value: number) {\n if (value === undefined || value === null) {\n return;\n }\n if (this.selectedWallIsInner && this.selectedWall.innerWall.left != value) {\n this.threeDService.setInnerWallPosition(value);\n }\n this.configurationService.updateInnerWalls();\n }\n\n updateSlider() {\n if (this.slider) {\n this.slider.positionFromLeftLimit = this.calculateRemainingSpaceToLeft();\n this.slider.positionFromRightLimit = this.calculateRemainingSpaceToRight();\n this.slider.setViewPosition();\n this.slider.minimumValue = 600;\n this.slider.minimumStep = 300;\n }\n }\n\n calculateRemainingSpaceToLeft(): number {\n if (this.selectedWall && this.selectedWallIsInner) {\n return this.selectedWall.innerWall.left;\n } else {\n return null;\n }\n }\n\n calculateRemainingSpaceToRight(): number {\n if (this.selectedWall && this.selectedWallIsInner) {\n const wallPlacedOn = this.threeDService.getWallBySide(this.selectedWall.innerWall.placedOnSide);\n const innerWallCompensation =\n this.configurationService.wallThickness +\n (this.configurationService.wallThickness <= 80\n ? this.configurationService.roundedWallCorrectionThickness * 2\n : 0);\n const space = wallPlacedOn.wallLength * 1000 - innerWallCompensation - this.selectedWall.innerWall.left;\n return Math.round(space);\n } else {\n return null;\n }\n }\n\n getInnerWallImage(innerWallType: InnerWallType) {\n if (innerWallType == null) {\n return null;\n }\n switch (innerWallType) {\n case InnerWallType.lProfile:\n return 'assets/images/l-profiel.png';\n case InnerWallType.threeway:\n if (this.configurationService.wallThickness <= 80) {\n return 'assets/images/drieweg-rounded.png';\n }\n return 'assets/images/drieweg-profiel.png';\n }\n }\n\n removeWall() {\n this.threeDService.removeSelectedInnerWall();\n this.configurationService.updateInnerWalls();\n this.selectedWall = null;\n }\n\n hideOpeningQuestion() {\n this.openingQuestion = false;\n }\n\n nextStep() {\n this.stepService.nextStep();\n }\n}\n","\n
\n

\n {{ 'STEPINNERWALL.OPENINGTEXT' | translate }}\n

\n
{{ 'STEPINNERWALL.DOYOUWANT' | translate }}
\n \n
{{ 'YES' | translate }}
\n
\n \n
{{ 'NO' | translate }}
\n
\n
\n \n
\n
\n
\n \n
\n
\n
{{ 'STEPINNERWALL.INTRODUCTIONTEXTNOSELECTIONTITLE' | translate }}
\n
{{ 'STEPINNERWALL.INTRODUCTIONTEXTNOSELECTIONDESCRIPTION' | translate }}
\n
\n
\n
\n
\n

\n {{ 'STEPINNERWALL.INTRODUCTIONTEXTINNERWALLSELECTED' | translate }}\n

\n
\n
\n
\n \n
\n
\n {{ 'INNERWALL.' + innerWallTypes[selectedWall?.innerWall?.type] | uppercase | translate }}\n
\n
\n
\n
\n
\n
\n
\n {{ 'STEPINNERWALL.ONWALL' | translate }}:\n {{ 'WALL.' + selectedWall?.innerWall?.placedOnSide | translate }}\n
\n
{{ 'STEPINNERWALL.POSITION' | translate }}
\n \n
\n
\n

\n {{ 'STEPINNERWALL.INTRODUCTIONTEXTADDINNERWALL' | translate }}\n

\n
\n \n
\n \n
\n \n
{{ 'INNERWALL.LPROFILE' | translate }}
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n \n
\n \n
{{ 'INNERWALL.THREEWAY' | translate }}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n\n

\n {{ 'STEPINNERWALL.NO_INNER_WALL_AT_THIS_THICKNESS' | translate }}\n

\n
\n","import { Component, OnInit, AfterViewInit } from '@angular/core';\nimport { Purpose } from 'src/app/enums/purpose';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { StartupService } from 'src/app/services/startup.service';\nimport { ThreeDService } from 'src/app/services/three-d.service';\n\n@Component({\n selector: 'app-step-one',\n templateUrl: './step-one.component.html',\n styleUrls: ['./step-one.component.scss'],\n})\nexport class StepOneComponent implements OnInit, AfterViewInit {\n purpose: Purpose;\n constructor(\n private configurationService: ConfigurationService,\n private startUpService: StartupService,\n private threeDService: ThreeDService\n ) {}\n purposes = Purpose;\n ngOnInit() {\n this.threeDService.setZoom(5);\n this.threeDService.resetDefaultCamera(true);\n this.configurationService.furthestStepVisited = 1;\n\n this.startUpService.initialized$.subscribe(() => {\n this.purpose = this.configurationService.purpose;\n });\n }\n\n ngAfterViewInit() {\n this.configurationService.purpose = this.purpose;\n }\n\n setPurpose(purpose: Purpose) {\n this.purpose = purpose;\n this.configurationService.purpose = this.purpose;\n }\n}\n","

\n {{ 'STEP1.INTRODUCTIONTEXT' | translate }}\n

\n\n
\n\n
{{ 'STEP1.PURPOSE_COOLING' | translate }}
\n
\n\n
{{ 'STEP1.PURPOSE_FREEZING' | translate }}
\n
\n\n","import { Component, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { WallSide } from 'src/app/enums/wallSide.enum';\nimport { WallFinish } from 'src/app/models/wallFinish.model';\nimport { FinishTypes } from 'src/app/enums/finishTypes.enum';\nimport { WallFinishUpdate } from 'src/app/models/wallFinishUpdate.model';\nimport { ThreeDService } from 'src/app/services/three-d.service';\nimport { ViewboxOption } from 'src/app/models/viewboxOption.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PriceService } from 'src/app/services/price.service';\nimport { StartupService } from 'src/app/services/startup.service';\nimport { ViewboxOptionWithPrice } from 'src/app/models/wallFinishType.model';\nimport { Configuration } from 'src/app/models/configuration.model';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-step-six',\n templateUrl: './step-six.component.html',\n styleUrls: ['./step-six.component.scss'],\n})\nexport class StepSixComponent implements OnInit, OnDestroy {\n private _externalWallFinishOptions: ViewboxOptionWithPrice[];\n private _internalWallFinishOptions: ViewboxOptionWithPrice[];\n private unsubscribe: Subject = new Subject();\n selectedWall: WallSide = null;\n selectedInnerWallId: string;\n pricesVisible: boolean;\n\n constructor(\n private configurationService: ConfigurationService,\n private threeDService: ThreeDService,\n private translateService: TranslateService,\n private priceService: PriceService,\n private startupService: StartupService,\n private changeDetector: ChangeDetectorRef\n ) {\n this._externalWallFinishOptions = Object.values(this.configurationService.externalWallFinishViewboxOptions);\n this._internalWallFinishOptions = Object.values(this.configurationService.internalWallFinishViewboxOptions);\n }\n\n ngOnInit() {\n this.threeDService.setZoom(5);\n this.threeDService.resetDefaultCamera(true);\n\n this.updateSelectedViewboxOption();\n\n this.threeDService.wallSelectionEnabled = true;\n this.threeDService.ceilingSelectionEnabled = true;\n\n this.threeDService.wallSelectionChanged$.pipe(takeUntil(this.unsubscribe)).subscribe((side: WallSide) => {\n if (side > -1) {\n this.selectedWall = side;\n if (side !== WallSide.inner) {\n this.setCameraBasedOnInternalExternal(side);\n this.selectedInnerWallId = undefined;\n } else {\n this.selectedInnerWallId = this.threeDService.wallSelection.getSelectedWall().innerWall.id;\n }\n } else {\n this.selectedWall = null;\n }\n\n this.updatePricesForWallFinishes();\n this.updateSelectedViewboxOption();\n });\n\n this.startupService.priceEnabledSetting$.pipe(takeUntil(this.unsubscribe)).subscribe((enabled: boolean) => {\n this.pricesVisible = enabled;\n });\n\n this.updatePricesForWallFinishes();\n }\n\n ngOnDestroy() {\n this.threeDService.wallSelectionEnabled = false;\n this.threeDService.ceilingSelectionEnabled = false;\n\n this.unsubscribe.next();\n this.unsubscribe.unsubscribe();\n }\n\n updateSelectedViewboxOption() {\n this.externalWallFinishTypes.forEach(wfo => {\n wfo.selected = false;\n });\n this.internalWallFinishTypes.forEach(wfo => {\n wfo.selected = false;\n });\n if (this.selectedWall === null) {\n if (this.allWallsHaveTheSameFinish(true)) {\n const currentWallFinish = this.externalWallFinishTypes.find(\n ewf => ewf.option === this.configurationService.configuration.settings.wallFinishes[0].exterior\n );\n if (currentWallFinish !== undefined) {\n currentWallFinish.selected = true;\n }\n } else {\n this.externalWallFinishTypes.forEach(wfo => {\n wfo.selected = false;\n });\n }\n\n if (this.allWallsHaveTheSameFinish(false)) {\n const currentWallFinish = this.internalWallFinishTypes.find(\n ewf => ewf.option === this.configurationService.configuration.settings.wallFinishes[0].interior\n );\n\n if (currentWallFinish !== undefined) {\n currentWallFinish.selected = true;\n }\n } else {\n this.internalWallFinishTypes.forEach(wfo => {\n wfo.selected = false;\n });\n }\n } else {\n if (this.selectedWall !== WallSide.inner) {\n const currentExternalWallFinish = this.externalWallFinishTypes.find(\n ewf =>\n ewf.option === this.configurationService.configuration.settings.wallFinishes[this.selectedWall].exterior\n );\n\n if (currentExternalWallFinish !== undefined) {\n currentExternalWallFinish.selected = true;\n }\n\n const currentInternalWallFinish = this.internalWallFinishTypes.find(\n ewf =>\n ewf.option === this.configurationService.configuration.settings.wallFinishes[this.selectedWall].interior\n );\n\n if (currentInternalWallFinish !== undefined) {\n currentInternalWallFinish.selected = true;\n }\n } else {\n const selectedWall = this.threeDService.wallSelection.getSelectedWall();\n\n const currentExternalWallFinish = this.externalWallFinishTypes.find(\n ewf => ewf.option === selectedWall.innerWall.exteriorFinish\n );\n\n if (currentExternalWallFinish !== undefined) {\n currentExternalWallFinish.selected = true;\n }\n\n const currentInternalWallFinish = this.internalWallFinishTypes.find(\n ewf => ewf.option === selectedWall.innerWall.interiorFinish\n );\n if (currentInternalWallFinish !== undefined) {\n currentInternalWallFinish.selected = true;\n }\n }\n }\n\n this.changeDetector.detectChanges();\n }\n\n allWallsHaveTheSameFinish(exterior: boolean) {\n let equalFinish = true;\n let previousFinish: WallFinish = null;\n\n const currentExternalWallFinishes = this.getWallFinishesWithoutFloor();\n\n if (exterior) {\n for (const finish of currentExternalWallFinishes) {\n if (previousFinish !== null) {\n equalFinish = previousFinish.exterior === finish.exterior;\n }\n\n if (!equalFinish) {\n return equalFinish;\n }\n\n previousFinish = finish;\n }\n } else {\n for (const finish of currentExternalWallFinishes) {\n if (previousFinish !== null) {\n equalFinish = previousFinish.interior === finish.interior;\n }\n\n if (!equalFinish) {\n return equalFinish;\n }\n\n previousFinish = finish;\n }\n }\n\n return equalFinish;\n }\n\n getWallFinishesWithoutFloor(): WallFinish[] {\n return Object.values(this.configurationService.configuration.settings.wallFinishes)\n .slice(0, -1)\n .concat(\n this.configurationService.configuration.settings.innerWalls.map(\n iw => ({ exterior: iw.exteriorFinish, interior: iw.interiorFinish }) as WallFinish\n )\n );\n }\n\n setCameraBasedOnInternalExternal(side: WallSide) {\n if (!this.configurationService.wallsHidden) {\n this.threeDService.setCameraOnSide(side);\n } else {\n if (side > 1) {\n this.threeDService.setCameraOnSide(side - 2);\n } else {\n this.threeDService.setCameraOnSide(side + 2);\n }\n }\n }\n\n private updatePricesForWallFinishes() {\n this.internalWallFinishTypes.forEach(wallFinish => {\n wallFinish.priceChange = this.computePriceDifferenceForWallFinishes(wallFinish.option as FinishTypes, false);\n });\n\n this.externalWallFinishTypes.forEach(wallFinish => {\n wallFinish.priceChange = this.computePriceDifferenceForWallFinishes(wallFinish.option as FinishTypes, true);\n });\n }\n\n computePriceDifferenceForWallFinishes(newFinish: FinishTypes, outside: boolean): number | false {\n if (!this.pricesVisible) {\n return false;\n }\n\n const configuration = this.configurationService.configuration;\n let newConfig = configuration.clone();\n\n if (this.selectedWall === null) {\n newConfig = this.setupConfigForAllWalls(newFinish, outside, newConfig);\n } else {\n newConfig = this.setupConfig(newFinish, outside, this.selectedWall, newConfig, this.selectedInnerWallId);\n }\n\n const oldPrice = this.priceService.calculateTotalPriceExcludingDoors(configuration);\n const newPrice = this.priceService.calculateTotalPriceExcludingDoors(newConfig);\n if (oldPrice === false || newPrice === false) {\n return false;\n }\n return newPrice - oldPrice;\n }\n\n setupConfig(\n newFinish: FinishTypes,\n outside: boolean,\n wallSide: WallSide,\n newConfig: Configuration,\n innerWallid?: string\n ): Configuration {\n if (!innerWallid) {\n const doorsToUpdate = newConfig.settings.doorSettings.filter(d => d.side === wallSide);\n\n if (outside) {\n newConfig.settings.wallFinishes[wallSide].exterior = newFinish;\n doorsToUpdate.forEach(d => (d.frameExteriorFinish = newFinish));\n } else {\n newConfig.settings.wallFinishes[wallSide].interior = newFinish;\n doorsToUpdate.forEach(d => (d.frameInteriorFinish = newFinish));\n }\n } else {\n const doorsToUpdate = newConfig.settings.doorSettings.filter(\n d => d.side === wallSide && d.innerWallId == innerWallid\n );\n const innerWall = newConfig.settings.innerWalls.find(iw => iw.id == innerWallid);\n if (outside) {\n innerWall.exteriorFinish = newFinish;\n doorsToUpdate.forEach(d => (d.frameExteriorFinish = newFinish));\n } else {\n innerWall.interiorFinish = newFinish;\n doorsToUpdate.forEach(d => (d.frameInteriorFinish = newFinish));\n }\n }\n\n return newConfig;\n }\n\n setupConfigForAllWalls(newFinish: FinishTypes, outside: boolean, newConfig: Configuration): Configuration {\n newConfig = this.setupConfig(newFinish, outside, WallSide.north, newConfig);\n newConfig = this.setupConfig(newFinish, outside, WallSide.east, newConfig);\n newConfig = this.setupConfig(newFinish, outside, WallSide.south, newConfig);\n newConfig = this.setupConfig(newFinish, outside, WallSide.west, newConfig);\n if (!outside) {\n this.configurationService.configuration.settings.innerWalls.forEach(iw => {\n newConfig = this.setupConfig(newFinish, true, WallSide.inner, newConfig, iw.id);\n newConfig = this.setupConfig(newFinish, false, WallSide.inner, newConfig, iw.id);\n });\n }\n newConfig = this.setupConfig(newFinish, outside, WallSide.ceiling, newConfig);\n\n return newConfig;\n }\n\n get externalWallFinishTypes(): ViewboxOptionWithPrice[] {\n return this._externalWallFinishOptions;\n }\n\n get internalWallFinishTypes(): ViewboxOptionWithPrice[] {\n return this._internalWallFinishOptions;\n }\n\n get selectedWallCaption() {\n if (this.selectedWall !== null) {\n if (this.selectedWall === WallSide.inner) {\n if (this.selectedInnerWallId !== undefined) {\n return (\n (this.translateService.instant('WALL.' + this.selectedWall.toString()) as string).toLowerCase() +\n ' ' +\n this.getId(this.selectedInnerWallId)\n );\n }\n }\n return (this.translateService.instant('WALL.' + this.selectedWall.toString()) as string).toLowerCase();\n } else {\n return '';\n }\n }\n\n updateWallFinish(wallFinishUpdate: WallFinishUpdate) {\n if (wallFinishUpdate.wallSide === null) {\n this.configurationService.updateWallFinish(WallSide.east, wallFinishUpdate.exterior, wallFinishUpdate.finishType);\n this.configurationService.updateWallFinish(\n WallSide.north,\n wallFinishUpdate.exterior,\n wallFinishUpdate.finishType\n );\n this.configurationService.updateWallFinish(\n WallSide.south,\n wallFinishUpdate.exterior,\n wallFinishUpdate.finishType\n );\n this.configurationService.updateWallFinish(WallSide.west, wallFinishUpdate.exterior, wallFinishUpdate.finishType);\n this.configurationService.updateWallFinish(\n WallSide.ceiling,\n wallFinishUpdate.exterior,\n wallFinishUpdate.finishType\n );\n if (!wallFinishUpdate.exterior) {\n this.configurationService.configuration.settings.innerWalls.forEach(iw => {\n this.configurationService.updateWallFinish(WallSide.inner, false, wallFinishUpdate.finishType, iw.id);\n this.configurationService.updateWallFinish(WallSide.inner, true, wallFinishUpdate.finishType, iw.id);\n });\n }\n\n this.updatePricesForWallFinishes();\n return;\n }\n this.configurationService.updateWallFinish(\n wallFinishUpdate.wallSide,\n wallFinishUpdate.exterior,\n wallFinishUpdate.finishType,\n wallFinishUpdate.innerWallId\n );\n\n this.updatePricesForWallFinishes();\n }\n\n processSelectedExternalWallFinish(wallFinish: ViewboxOptionWithPrice) {\n this.handleSelectionState(this.externalWallFinishTypes, wallFinish);\n this.updateWallFinish(\n new WallFinishUpdate(this.selectedWall, wallFinish.option as FinishTypes, true, this.selectedInnerWallId)\n );\n }\n\n processSelectedInternalWallFinish(wallFinish: ViewboxOptionWithPrice) {\n this.handleSelectionState(this.internalWallFinishTypes, wallFinish);\n this.updateWallFinish(\n new WallFinishUpdate(this.selectedWall, wallFinish.option as FinishTypes, false, this.selectedInnerWallId)\n );\n }\n\n handleSelectionState(\n wallFinishOptions: ViewboxOption[],\n wallFinish: ViewboxOptionWithPrice\n ) {\n wallFinishOptions.forEach(finish => {\n finish.selected = false;\n });\n\n const wallFinishToUpdate = wallFinishOptions.find(f => f === wallFinish);\n if (wallFinishToUpdate) {\n wallFinishToUpdate.selected = true;\n }\n }\n getId(id: string) {\n if (!id) {\n return '';\n }\n const names = id.split('-');\n if (names.length > 1) {\n return +names[1] + 1;\n }\n return '';\n }\n}\n","

\n {{ 'STEP6.INTRODUCTIONTEXT' | translate }}\n

\n\n
\n
\n
\n {{ 'STEP6.FINISH' | translate }} {{ 'STEP6.OUTSIDESMALL' | translate }}\n
\n \n
\n {{ 'STEP6.FINISH' | translate }} {{ selectedWallCaption }} {{ 'STEP6.OUTSIDESMALL' | translate }}\n
\n
\n \n
\n\n
\n
\n {{ 'STEP6.FINISH' | translate }} {{ 'STEP6.INSIDESMALL' | translate }}\n
\n \n
\n {{ 'STEP6.FINISH' | translate }} {{ selectedWallCaption }} {{ 'STEP6.INSIDESMALL' | translate }}\n
\n
\n \n
\n
\n","import { Component, OnInit, Input, EventEmitter, Output, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'app-step-three-slider',\n templateUrl: './step-three-slider.component.html',\n styleUrls: ['./step-three-slider.component.scss'],\n})\nexport class StepThreeSliderComponent implements OnInit {\n @Input() max: number;\n @Input() min: number;\n @Input() value: number;\n @Output() valueChange = new EventEmitter();\n @Input() step: number;\n @Input() selectId: string;\n\n constructor(private host: ElementRef) {}\n\n ngOnInit() {\n (this.host.nativeElement as Element).id = this.selectId;\n }\n\n updateValue(event: number) {\n this.valueChange.emit(event);\n }\n}\n","
\n
\n \n
\n
\n \n
\n
mm
\n
\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { debounceTime } from 'rxjs/operators';\nimport { StepThreeSliderComponent } from './step-three-slider/step-three-slider.component';\nimport { ThreeDService } from 'src/app/services/three-d.service';\n\n@Component({\n selector: 'app-step-three',\n templateUrl: './step-three.component.html',\n styleUrls: ['./step-three.component.scss'],\n})\nexport class StepThreeComponent implements OnInit {\n length: number;\n width: number;\n height: number;\n\n @ViewChild('lengthSlider', { static: true }) lengthSlider: StepThreeSliderComponent;\n @ViewChild('widthSlider', { static: true }) widthSlider: StepThreeSliderComponent;\n @ViewChild('heightSlider', { static: true }) heightSlider: StepThreeSliderComponent;\n\n constructor(\n private configurationService: ConfigurationService,\n private threeDService: ThreeDService\n ) {}\n\n ngOnInit() {\n this.threeDService.setZoom(5);\n this.threeDService.resetDefaultCamera(true);\n this.configurationService.furthestStepVisited = 3;\n\n this.length = this.configurationService.length;\n this.width = this.configurationService.width;\n this.height = this.configurationService.height;\n\n this.lengthSlider.valueChange.pipe(debounceTime(500)).subscribe(length => this.updateLength(length));\n this.widthSlider.valueChange.pipe(debounceTime(500)).subscribe(width => this.updateWidth(width));\n\n this.heightSlider.valueChange.pipe(debounceTime(500)).subscribe(height => this.updateHeight(height));\n }\n\n updateLength(length: number) {\n this.configurationService.length = length;\n }\n updateWidth(width: number) {\n this.configurationService.width = width;\n }\n updateHeight(height: number) {\n this.configurationService.height = height;\n }\n\n get maxWidth(): number {\n if (this.configurationService.length > 3900) {\n return 3900;\n }\n return 12000;\n }\n\n get maxLength(): number {\n if (this.configurationService.width > 3900) {\n return 3900;\n }\n return 12000;\n }\n}\n","

\n {{ 'STEP3.INTRODUCTIONTEXT' | translate }}\n

\n\n\n\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { ConfigurationService } from 'src/app/services/configuration.service';\nimport { ThreeDService } from 'src/app/services/three-d.service';\n\n@Component({\n selector: 'app-step-two',\n templateUrl: './step-two.component.html',\n styleUrls: ['./step-two.component.scss'],\n})\nexport class StepTwoComponent implements OnInit {\n constructor(\n private configurationService: ConfigurationService,\n private threeDService: ThreeDService\n ) {}\n allowedWallThicknesses = [];\n selectedThickness = null;\n\n ngOnInit() {\n this.threeDService.setZoom(3.75);\n this.threeDService.resetDefaultCamera();\n\n this.configurationService.furthestStepVisited = 2;\n\n this.allowedWallThicknesses = this.configurationService.allowedWallThicknesses;\n this.selectedThickness =\n this.configurationService.wallThickness || this.configurationService.allowedWallThicknesses[0];\n }\n\n updateThickness(value: number) {\n this.selectedThickness = value;\n this.configurationService.wallThickness = value;\n }\n}\n","

\n {{ 'STEP2.INTRODUCTIONTEXT' | translate }}\n

\n
\n \n
\n {{ thickness }}\n mm\n
\n
\n
\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-summary-collisions',\n templateUrl: './summary-collisions.component.html',\n styleUrls: ['./summary-collisions.component.scss'],\n})\nexport class SummaryCollisionsComponent {\n @Input() stepTitle = 'CONFLICTS';\n}\n","
\n
\n
\n
\n {{ stepTitle | translate }}\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { StepService } from '../services/step.service';\nimport { StartupService } from '../services/startup.service';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { skip, take } from 'rxjs/operators';\nimport { ThreeDService } from '../services/three-d.service';\nimport { ErrorService } from '../services/error.service';\nimport { ErrorTypes } from '../enums/errorTypes.enum';\n\n@Component({\n selector: 'app-summary-container',\n templateUrl: './summary-container.component.html',\n styleUrls: ['./summary-container.component.scss'],\n})\nexport class SummaryContainerComponent implements OnInit {\n pricesVisible: boolean;\n screenshotsMade = false;\n loading = true;\n errorState = false;\n\n constructor(\n private stepService: StepService,\n private startupService: StartupService,\n private threeDService: ThreeDService,\n private errorService: ErrorService,\n private configurationService: ConfigurationService\n ) {}\n\n ngOnInit() {\n this.errorService.errorMessage$.pipe(skip(1)).subscribe(() => this.stepService.moveToStep(1));\n this.threeDService\n .createAllScreenshots()\n .then(() => {\n this.screenshotsMade = true;\n })\n .catch(() => this.errorService.throwError(ErrorTypes.Generic, 'Unable to make screenshots'));\n this.startupService.priceEnabledSetting$.subscribe((enabled: boolean) => {\n this.pricesVisible = enabled;\n if (!enabled) {\n this.loading = false;\n }\n });\n this.configurationService.configurationSaved$.pipe(take(1)).subscribe(\n () => {\n this.loading = false;\n },\n () => {\n this.loading = false;\n }\n );\n this.configurationService.saveConfiguration(this.configurationService.configuration, false);\n }\n\n gotoPreviousStep() {\n this.stepService.previousStep();\n }\n}\n","
\n
\n
\n \n
\n
\n \n
{{ 'PLEASE_WAIT' | translate }}
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { PriceService } from '../services/price.service';\nimport { LanguageService } from '../services/language.service';\nimport { environment } from '../../environments/environment';\nimport { NotificationService } from '../services/notification.service';\nimport { PriceInformation } from '../models/price-information';\nimport { ThreeDService } from '../services/three-d.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DoorPosition } from '../models/doorPosition.model';\nimport { DoorPrice } from '../models/doorPrice.model';\nimport { DoorType } from '../enums/doorType.enum';\nimport { DoorDirection } from '../enums/doorDirection.enum';\nimport { FinishTypes } from '../enums/finishTypes.enum';\nimport { CompletionService } from '../services/completion.service';\nimport { Configuration } from '../models/configuration.model';\nimport { Purpose } from '../enums/purpose';\nimport { InnerWall } from '../models/innerWall.model';\nimport { ModularGoogleAnalyticsService } from '../services/modular-google-analytics.service';\nimport { Conflicts } from '../models/conflicts.model';\n\n@Component({\n selector: 'app-summary-price-list',\n templateUrl: './summary-price-list.component.html',\n styleUrls: ['./summary-price-list.component.scss'],\n})\nexport class SummaryPriceListComponent implements OnInit {\n @Input() loading = false;\n _totalPrice: number;\n imageSrc: any;\n modularPrice: number | false;\n floorPrice: number | boolean;\n ventilationProfilesPrice: number | boolean;\n plinthsPrice: number | boolean;\n ceilingMoldingsPrice: number | boolean;\n doors: DoorPosition[];\n ready = false;\n wallFinishPrices: Record;\n addedToCart = false;\n airPressureEqualizerValvePrice: number | boolean;\n airPressureEqualizerValveCount: number | boolean;\n uProfilesPrice: number | boolean;\n imageSrcInside: string;\n conflicts: Conflicts;\n\n constructor(\n private configurationService: ConfigurationService,\n private priceService: PriceService,\n private languageService: LanguageService,\n private notificationService: NotificationService,\n private threeDService: ThreeDService,\n private translateService: TranslateService,\n private completionService: CompletionService,\n private modularGoogleAnalyticsService: ModularGoogleAnalyticsService\n ) {\n this.doors = this.configurationService.configuration.settings.doorSettings;\n if (this.doors.length > 0) {\n this.findPricesForEachDoor().then(() => (this.ready = true));\n } else {\n this.ready = true;\n }\n }\n\n get hasCollisions(): boolean {\n if (!this.conflicts) {\n return false;\n }\n return this.conflicts.collisions.length > 0 || this.conflicts.invalidPanels.length > 0;\n }\n\n async ngOnInit() {\n this.priceService.priceInformation$.subscribe((priceInformation: PriceInformation) => {\n this._totalPrice = priceInformation.price;\n });\n this.conflicts = this.threeDService.getConflicts();\n this.imageSrc = this.threeDService.getMainScreenshot();\n this.imageSrcInside = this.threeDService.getMainScreenshot(false, true);\n this.modularPrice = this.priceService.calculateModularBasicPrice(this.configurationService.configuration);\n this.floorPrice = this.priceService.calculateAdditionalCostsOfFloor(this.configurationService.configuration);\n this.ventilationProfilesPrice = this.priceService.calculateCostOfVentilationProfiles(\n this.configurationService.configuration\n );\n this.plinthsPrice = this.priceService.calculateCostOfPlinths(this.configurationService.configuration);\n this.ceilingMoldingsPrice = 0;\n this.airPressureEqualizerValvePrice = this.priceService.calculateCostOfAirPressureEqualizerValve(\n this.configurationService.configuration\n );\n this.airPressureEqualizerValveCount = this.priceService.calculateNumberOfAirPressureEqualizerValves(\n this.configurationService.configuration\n );\n this.getPricesForWallFinishes();\n this.uProfilesPrice = this.priceService.calculatePriceOfUProfiles(this.configurationService.configuration);\n this.configurationService.shoppingCartIdReady$.subscribe((configuration: Configuration) => {\n this.completionService.complete(configuration.configurationId, configuration.settings.itemId);\n });\n }\n\n async findPricesForEachDoor() {\n this.doors = this.doors.sort((a, b) => {\n if (a.side > b.side) {\n return 1;\n }\n if (a.side < b.side) {\n return -1;\n }\n if (a.left > b.left) {\n return 1;\n }\n if (a.left < b.left) {\n return -1;\n }\n return 0;\n });\n // tslint:disable-next-line: forin\n for (const door of this.doors) {\n const priceForDoor = await this.getDoorPrice(door);\n if (priceForDoor === false) {\n return;\n }\n door.salesPrice = priceForDoor.Price;\n }\n const price = await this.getDoorPrice(this.doors[0]);\n if (price === false) {\n return;\n }\n this.doors[0].salesPrice = price.Price;\n }\n\n getDoorPrice(door: DoorPosition): Promise {\n return this.priceService.getPriceOfDoor(\n door,\n this.configurationService.configuration.settings.wallThickness,\n this.configurationService.purpose !== Purpose.Cooling\n );\n }\n\n getDoorText(door: DoorPosition): string {\n let text = this.doorTypeToString(door.doorModel.type);\n text += ' ';\n text += this.translateService.instant('WALL.' + door.side);\n return text;\n }\n\n doorTypeToString(doorType: DoorType) {\n switch (doorType) {\n case DoorType.Slide:\n return this.translateService.instant('STEP5.SLIDE');\n case DoorType.Turn:\n return this.translateService.instant('STEP5.TURN');\n }\n }\n\n getDoorImage(door: DoorPosition): string {\n switch (door.doorModel.type) {\n case DoorType.Turn:\n if (door.doorModel.direction === DoorDirection.left) {\n return 'assets/images/doors/turning_left.png';\n }\n return 'assets/images/doors/turning.png';\n case DoorType.Slide:\n if (door.doorModel.direction === DoorDirection.left) {\n return 'assets/images/doors/sliding_left.png';\n }\n return 'assets/images/doors/sliding.png';\n }\n }\n\n get innerWalls(): InnerWall[] {\n return this.configurationService.configuration.settings.innerWalls;\n }\n\n get totalPrice(): number {\n return this._totalPrice;\n }\n\n get floorType(): string {\n return this.translateService.instant('FLOORTYPES.' + this.configurationService.floorType);\n }\n get floorImage(): string {\n const floorType = this.configurationService.allowedFloorTypesRecord[this.configurationService.floorType];\n if (!floorType) {\n return '';\n }\n return floorType.content;\n }\n\n get plinthsImage(): string {\n // if (this.configurationService.plinthsInside && this.configurationService.plinthsOutside) {\n // return '/assets/images/plinths_both.jpg';\n // }\n // if (this.configurationService.plinthsOutside) {\n // return '/assets/images/plinths_outside.jpg';\n // }\n return '/assets/svg/icoon-plinten.svg';\n }\n get currentLocale() {\n return this.languageService.currentLanguage;\n }\n\n async addToCart() {\n if (this.addedToCart || this.hasCollisions || this.loading) {\n return;\n }\n if (environment.demo) {\n this.notificationService.showNotification('NOTIFICATIONS.DEMO');\n return;\n }\n await this.configurationService.saveAndGetConfigurationId();\n this.addedToCart = true;\n this.notificationService.showNotification('NOTIFICATIONS.ADDEDTOCART', NotificationService.DEFAULT_TIMEOUT);\n this.modularGoogleAnalyticsService.sendEvent('AddToChart', 'add', this.totalPrice);\n }\n\n getPricesForWallFinishes() {\n this.wallFinishPrices = this.priceService.calculateCostOfWallFinishesForAllFinishes(\n this.configurationService.configuration\n );\n }\n\n getImageForWallFinish(finishType: FinishTypes) {\n switch (finishType) {\n case FinishTypes.RVS304_LINE_BRUSH:\n return '/assets/images/metal_turned.jpg';\n case FinishTypes.RVS304_COLLED_ROLLED:\n return '/assets/images/metal.jpg';\n case FinishTypes.RVS304_DESIGN_5WL:\n return '/assets/images/5WL.jpg';\n case FinishTypes.RVS304_LINEN:\n return '/assets/images/linen.jpg';\n case FinishTypes.RVS304_ROUND_BRUSH:\n case FinishTypes.RVS316_ROUND_BRUSH:\n return '/assets/images/circular.jpg';\n case FinishTypes.STEEL:\n return '/assets/images/white9010.jpg';\n case FinishTypes.STEEL_PET55:\n return '/assets/images/white9010PET.jpg';\n }\n }\n getId(id: string) {\n if (!id) {\n return '';\n }\n const names = id.split('-');\n if (names.length > 1) {\n return +names[1] + 1;\n }\n return '';\n }\n\n innerWallPrice(innerWall: InnerWall) {\n return this.priceService.calculatePriceOfInnerWall(innerWall, this.configurationService.configuration);\n }\n}\n","
\n
\n
\n
\n
{{ 'ORDERPRICELIST.TITLE' | translate }}
\n
{{ 'ORDERPRICELIST.DESCRIPTION' | translate }}
\n
\n
\n
\n
\n
\n {{ 'LOADING' | translate }}\n
\n\n
\n
\n
\n \n
\n
cold room
\n
\n
{{ modularPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n
\n \n
\n
{{ floorType | translate }}
\n
\n
{{ floorPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n
\n
\n \n
\n
\n {{ 'FINISHTYPES1.' + wallFinishPrice.key | translate }}\n
\n {{ 'FINISHTYPES2.' + wallFinishPrice.key | translate }}\n
\n
\n
{{ wallFinishPrice.value | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n
\n
\n \n
\n
\n {{ getDoorText(door) }}\n
\n
\n
{{ door.salesPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n
\n \n
\n
\n {{ 'STEP4.PROFILES' | translate }}\n
\n
\n
{{ ventilationProfilesPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n
\n \n
\n
\n {{ 'STEP4.PLINTHS' | translate }}\n
\n
\n
{{ plinthsPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n
\n \n
\n
{{ 'STEP4.CEILINGMOLDINGS' | translate }}
\n
\n
{{ ceilingMoldingsPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n
\n \n
\n
\n {{ 'SUMMARY.AIRPRESSUREEQUALIZERVALVE' | translate }} \n 1\">(x{{ airPressureEqualizerValveCount }})\n
\n
\n
\n {{ airPressureEqualizerValvePrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}\n
\n
\n
\n
\n \n
\n
{{ 'SUMMARY.UPROFILES' | translate }}
\n
\n
{{ uProfilesPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n \n
\n
\n \n
\n
{{ 'WALL.4' | translate }} {{ getId(innerWall.id) }}
\n
\n
\n {{ innerWallPrice(innerWall) | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}\n
\n
\n
\n
\n\n
\n
\n
\n
{{ 'STEPCONTAINER.GROSSPRICE' | translate }}
\n
\n
{{ totalPrice | currency: 'EUR' : 'symbol' : '1.2-2' : currentLocale }}
\n
\n
\n\n
{{ 'SUMMARY.NOORDERCONFLICTS' | translate }}
\n \n
\n {{ 'ORDERPRICELIST.ADDTOCARD' | translate }}\n \n
\n \n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { OrderEmailService } from '../services/order-email.service';\n\n@Component({\n selector: 'app-summary-share-demo',\n templateUrl: './summary-share-demo.component.html',\n styleUrls: ['./summary-share-demo.component.scss'],\n})\nexport class SummaryShareDemoComponent implements OnInit {\n @Input() loading = false;\n constructor(\n private configurationService: ConfigurationService,\n private translateService: TranslateService,\n private orderEmailService: OrderEmailService\n ) {}\n\n ngOnInit(): void {}\n\n get configurationId() {\n return this.configurationService.configuration.configurationId;\n }\n\n share() {\n let link = 'mailto:';\n const email = this.orderEmailService.getEmailAddressForOrder();\n if (email) {\n link += email;\n }\n link += `?subject=${encodeURIComponent(\n this.translateService.instant('REQUEST_QUOTE.EMAIL.SUBJECT')\n )}&body=${encodeURIComponent(\n this.translateService.instant('REQUEST_QUOTE.EMAIL.BODY').replace('[CODE]', this.configurationId)\n )}`;\n const mail = document.createElement('a');\n mail.href = link;\n mail.click();\n mail.remove();\n }\n}\n","
\n
\n
\n
\n
{{ 'REQUEST_QUOTE.TITLE' | translate }}
\n
{{ 'REQUEST_QUOTE.DESCRIPTION' | translate }}
\n
\n
\n
\n
\n
\n {{ 'LOADING' | translate }}\n
\n\n
\n
{{ 'REQUEST_QUOTE.ID' | translate }}
\n \n
\n\n \n
\n {{ 'REQUEST_QUOTE.BUTTON' | translate }}\n
\n
\n
\n","import { Component, Input } from '@angular/core';\nimport { StepService } from '../services/step.service';\n\n@Component({\n selector: 'app-summary-step',\n templateUrl: './summary-step.component.html',\n styleUrls: ['./summary-step.component.scss'],\n})\nexport class SummaryStepComponent {\n @Input() stepNumber: number;\n @Input() readOnly = false;\n\n constructor(private stepService: StepService) {}\n\n get translateString(): string {\n return this.stepService.stepName(this.stepNumber) + '.SUMMARYTITLE';\n }\n\n get stepDisplayNumber(): string {\n if (this.stepNumber >= 10) {\n return this.stepNumber.toString();\n }\n return '0' + this.stepNumber;\n }\n\n gotoStep() {\n this.stepService.moveToStep(this.stepNumber);\n }\n}\n","
\n
\n
\n
\n {{ stepDisplayNumber }}\n {{ translateString | translate }}\n \n {{ 'SUMMARY.EDIT' | translate }}\n \n
\n
\n \n
\n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ThreeDService } from '../services/three-d.service';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Purpose } from '../enums/purpose';\nimport { NotificationService } from '../services/notification.service';\nimport { FloorTypes } from '../enums/floorTypes.enum';\nimport { PdfGenerationService, StepItem } from '../services/pdf-generation.service';\nimport { DoorType } from '../enums/doorType.enum';\nimport { DoorDirection } from '../enums/doorDirection.enum';\nimport { WallFinish } from '../models/wallFinish.model';\nimport { WallSide } from '../enums/wallSide.enum';\nimport { LanguageService } from '../services/language.service';\nimport { DecimalPipe } from '@angular/common';\nimport { environment } from 'src/environments/environment';\nimport { ModularGoogleAnalyticsService } from '../services/modular-google-analytics.service';\nimport { InnerWall } from '../models/innerWall.model';\nimport { InnerWallType } from '../enums/innerWallType.enum';\nimport { HingeType } from '../enums/hingeType.enum';\nimport { DoorHandleType } from '../enums/doorHandleType.enum';\nimport { CollisionPoint } from '../models/collisionPoint.model';\nimport { StartupService } from '../services/startup.service';\nimport { Conflicts } from '../models/conflicts.model';\nimport { DoorPosition } from '../models/doorPosition.model';\n\n@Component({\n selector: 'app-summary',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n})\nexport class SummaryComponent implements OnInit {\n @Input() readOnly = true;\n @Input() loading = false;\n imageSrc: string;\n decimalPipe: DecimalPipe;\n innerWallTypes = InnerWallType;\n hingeType = HingeType;\n doorHandleType = DoorHandleType;\n doorType = DoorType;\n wallSide = WallSide;\n conflicts: Conflicts;\n loading2d = false;\n loadingPDF: boolean;\n\n constructor(\n private threeDService: ThreeDService,\n private configurationService: ConfigurationService,\n private translateService: TranslateService,\n private notificationService: NotificationService,\n private pdfGenerationService: PdfGenerationService,\n private languageService: LanguageService,\n private modularGoogleAnalyticsService: ModularGoogleAnalyticsService,\n private startupService: StartupService\n ) {\n this.decimalPipe = new DecimalPipe(this.currentLocale);\n }\n\n get hasToken() {\n return !!this.startupService.token;\n }\n\n get currentLocale() {\n return this.languageService.currentLanguage;\n }\n\n get width(): number {\n return this.configurationService.width;\n }\n\n get length(): number {\n return this.configurationService.length;\n }\n\n get height(): number {\n return this.configurationService.height;\n }\n\n get widthExternal(): number {\n return this.configurationService.widthExternal;\n }\n\n get lengthExternal(): number {\n return this.configurationService.lengthExternal;\n }\n\n get heightExternal(): number {\n return this.configurationService.heightExternal;\n }\n\n get purpose(): string {\n const purpose = this.configurationService.purpose;\n switch (purpose) {\n case Purpose.Both:\n return this.translateService.instant('STEP1.PURPOSE_COOLINGFREEZING');\n case Purpose.Cooling:\n return this.translateService.instant('STEP1.PURPOSE_COOLING');\n case Purpose.Freezing:\n return this.translateService.instant('STEP1.PURPOSE_FREEZING');\n default:\n return '?';\n }\n }\n\n get wallThickness(): string {\n return this.configurationService.wallThickness + ' mm';\n }\n\n get floorInCoolingCell() {\n return this.configurationService.floorType !== FloorTypes.NONE;\n }\n\n get floorInCell(): string {\n return this.translatedYesNo(this.floorInCoolingCell);\n }\n\n get floorReinforcement(): string {\n const floorType = this.configurationService.floorType;\n if (!this.configurationService.allowedFloorTypesRecord) {\n return '?';\n }\n const selectedFloor = this.configurationService.allowedFloorTypesRecord[floorType];\n return this.translatedYesNo(selectedFloor ? selectedFloor.strong : false);\n }\n\n get floorType(): string {\n return this.translateService.instant('FLOORTYPES.' + this.configurationService.floorType.toString());\n }\n\n get plinthsInside(): string {\n return this.translatedYesNo(this.configurationService.plinthsInside);\n }\n\n get plinthsOutside(): string {\n return this.translatedYesNo(this.configurationService.plinthsOutside);\n }\n\n get sunkenFloor(): string {\n return this.translatedYesNo(this.configurationService.sunkenFloor);\n }\n\n get ventilationProfiles(): string {\n return this.translatedYesNo(this.configurationService.ventilationProfiles);\n }\n\n get ceilingMoldings(): string {\n return this.translatedYesNo(this.configurationService.ceilingMoldings);\n }\n\n get configurationIdExists(): boolean {\n return !!this.configurationService.configuration.configurationId;\n }\n\n get innerWalls(): InnerWall[] {\n return this.configurationService.configuration.settings.innerWalls;\n }\n\n ngOnInit() {\n if (!this.readOnly) {\n this.imageSrc = this.threeDService.getMainScreenshot();\n }\n this.conflicts = this.threeDService.getConflicts();\n }\n\n doorTypeToString(doorType: DoorType) {\n switch (doorType) {\n case DoorType.Slide:\n return this.translateService.instant('STEP5.SLIDE');\n case DoorType.Turn:\n return this.translateService.instant('STEP5.TURN');\n }\n }\n\n doors() {\n const doorsettings = this.configurationService.configuration.settings.doorSettings.sort((a, b) => {\n if (a.side > b.side) {\n return 1;\n }\n if (a.side < b.side) {\n return -1;\n }\n if (a.left < b.left) {\n return -1;\n }\n if (a.left > b.left) {\n return 1;\n }\n return 0;\n });\n return doorsettings;\n }\n\n wallFinishes() {\n const wallAndCeilingFinishes = [\n this.configurationService.configuration.settings.wallFinishes[0],\n this.configurationService.configuration.settings.wallFinishes[1],\n this.configurationService.configuration.settings.wallFinishes[2],\n this.configurationService.configuration.settings.wallFinishes[3],\n this.configurationService.configuration.settings.wallFinishes[5],\n ];\n\n return wallAndCeilingFinishes;\n }\n\n directionToString(direction: DoorDirection) {\n if (direction === DoorDirection.left) {\n return 'LEFT';\n }\n return 'RIGHT';\n }\n\n translatedYesNo(value: boolean): string {\n if (value) {\n return this.translateService.instant('YES');\n }\n return this.translateService.instant('NO');\n }\n\n numberToString(value: number): string {\n return this.decimalPipe.transform(value, '1.0-0', this.currentLocale);\n }\n\n shareLink() {\n this.modularGoogleAnalyticsService.sendEvent('summary', 'shareLink');\n const link = environment.frontendUrl + '/?share=' + this.configurationService.configuration.configurationId;\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = link;\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n this.notificationService.showNotification('NOTIFICATIONS.LINKCOPIED', NotificationService.DEFAULT_TIMEOUT);\n }\n\n async createPDF() {\n this.loadingPDF = true;\n this.modularGoogleAnalyticsService.sendEvent('summary', 'pdf');\n const doc = await this.pdfGenerationService.createPDF();\n const image = this.threeDService.getMainScreenshot(true);\n const imageInside = this.threeDService.getMainScreenshot(true, true);\n const doorImages = this.threeDService.getScreenshotsForSidesWithDoors();\n this.pdfGenerationService.generateHeader(doc, image, !this.startupService.token);\n let height = 15;\n const marginBetweenSteps = 2;\n\n if (!!this.conflicts && (this.conflicts.collisions.length > 0 || this.conflicts.invalidPanels.length > 0)) {\n height = this.pdfGenerationService.generateStep(\n doc,\n null,\n this.getCollisionsForPdf(),\n height + marginBetweenSteps,\n 'CONFLICTS',\n true\n );\n }\n\n height = this.pdfGenerationService.generateStep(\n doc,\n null,\n [\n { title: 'STEP1.PURPOSE', value: this.purpose },\n { title: 'STEP2.WALLTHICKNESS', value: this.wallThickness },\n {\n title: 'STEP3.SIZEINTERNAL',\n value:\n this.numberToString(this.length) +\n ' mm x ' +\n this.numberToString(this.width) +\n ' mm x ' +\n this.numberToString(this.height) +\n ' mm',\n },\n {\n title: 'STEP3.SIZEEXTERNAL',\n value:\n this.numberToString(this.lengthExternal) +\n ' mm x ' +\n this.numberToString(this.widthExternal) +\n ' mm x ' +\n this.numberToString(this.heightExternal) +\n ' mm',\n },\n ],\n height + marginBetweenSteps,\n 'SUMMARY.CELLPROPERTIES'\n );\n\n if (this.floorInCoolingCell) {\n height = this.pdfGenerationService.generateStep(\n doc,\n null,\n [\n { title: 'SUMMARY.FLOORINCELL', value: this.floorInCell },\n { title: 'SUMMARY.FLOORTYPE', value: this.floorType },\n { title: 'STEP4.SUNKENFLOOR', value: this.sunkenFloor },\n { title: 'STEP4.PLINTHSINSIDE', value: this.plinthsInside },\n { title: 'STEP4.PROFILES', value: this.ventilationProfiles },\n ],\n height + marginBetweenSteps,\n 'STEP4.SUMMARYTITLE'\n );\n } else {\n height = this.pdfGenerationService.generateStep(\n doc,\n 4,\n [{ title: 'SUMMARY.FLOORINCELL', value: this.floorInCell }],\n height + marginBetweenSteps,\n 'STEP4.SUMMARYTITLE'\n );\n }\n const doorsInPDF = this.doors().map(door => {\n let value =\n this.doorTypeToString(door.doorModel.type) +\n ', ' +\n this.translateService.instant('STEP5.' + this.directionToString(door.direction)) +\n '\\n' +\n this.translateService.instant('SUMMARY.CLEAROPENING') +\n ': ' +\n this.numberToString(door.doorModel.openingWidth) +\n ' mm x ' +\n this.numberToString(door.doorModel.openingHeight) +\n ' mm\\n' +\n this.numberToString(door.left) +\n ' mm ' +\n this.translateService.instant('SUMMARY.FROMLEFTCORNER') +\n '\\n';\n if (door.doorModel.type === DoorType.Turn) {\n value +=\n this.translateService.instant('DOORHINGE.HINGE') +\n ': ' +\n this.translateService.instant(('DOORHINGE.' + door.hingeType).toUpperCase()) +\n ', ' +\n this.translateService.instant('DOORHANDLE.HANDLE') +\n ': ' +\n this.translateService.instant(('DOORHANDLE.' + door.doorHandleType).toUpperCase()) +\n '\\n';\n }\n value +=\n this.translateService.instant('STEP6.FINISH') +\n ' ' +\n this.translateService.instant('STEP6.OUTSIDESMALL') +\n ': ' +\n this.translateService.instant(('FINISHTYPES1.' + door.leafExteriorFinish).toUpperCase()) +\n ', ' +\n this.translateService.instant(('FINISHTYPES2.' + door.leafExteriorFinish).toUpperCase()) +\n '\\n';\n value +=\n this.translateService.instant('STEP6.FINISH') +\n ' ' +\n this.translateService.instant('STEP6.INSIDESMALL') +\n ': ' +\n this.translateService.instant(('FINISHTYPES1.' + door.leafInteriorFinish).toUpperCase()) +\n ', ' +\n this.translateService.instant(('FINISHTYPES2.' + door.leafInteriorFinish).toUpperCase());\n let title = this.translateService.instant('WALL.' + door.side);\n if (door.innerWallId != null) {\n title += ' ' + this.getId(door.innerWallId);\n }\n title += ' (' + this.numberToString(this.getWidthOfWall(door)) + ' mm)';\n return {\n title,\n value,\n } as StepItem;\n });\n height = this.pdfGenerationService.generateStep(\n doc,\n null,\n doorsInPDF,\n height + marginBetweenSteps,\n 'STEP5.SUMMARYTITLE'\n );\n\n if (this.innerWalls.length > 0) {\n const innerWallsInPdf = this.innerWalls.map((innerWall: InnerWall) => {\n const innerWallType = 'INNERWALL.' + InnerWallType[innerWall.type];\n return {\n title:\n this.translateService.instant('WALL.4') +\n ' ' +\n this.getId(innerWall.id) +\n ': ' +\n this.translateService.instant('WALL.' + innerWall.placedOnSide),\n value:\n this.translateService.instant(innerWallType.toUpperCase()) +\n '\\n' +\n this.numberToString(this.getLeft(innerWall)) +\n ' mm ' +\n this.translateService.instant('SUMMARY.FROMLEFTCORNER') +\n '\\n' +\n this.translateService.instant(innerWall.rotated ? 'STEPINNERWALL.MIRRORED' : 'STEPINNERWALL.NOTMIRRORED'),\n } as StepItem;\n });\n height = this.pdfGenerationService.generateStep(\n doc,\n null,\n innerWallsInPdf,\n height + marginBetweenSteps,\n 'STEPINNERWALL.SUMMARYTITLE'\n );\n }\n const wallFinishesForPdf: StepItem[] = [];\n\n this.wallFinishes().forEach(wallFinish => {\n wallFinishesForPdf.push({\n title: this.getFinishTitle(wallFinish, false),\n value:\n this.translateService.instant('FINISHTYPES1.' + wallFinish.exterior) +\n ', ' +\n this.translateService.instant('FINISHTYPES2.' + wallFinish.exterior),\n } as StepItem);\n\n wallFinishesForPdf.push({\n title: this.getFinishTitle(wallFinish, true),\n value:\n this.translateService.instant('FINISHTYPES1.' + wallFinish.interior) +\n ', ' +\n this.translateService.instant('FINISHTYPES2.' + wallFinish.interior),\n } as StepItem);\n });\n this.innerWalls.forEach(iw => {\n wallFinishesForPdf.push({\n title:\n this.translateService.instant('WALL.4') +\n ' ' +\n this.getId(iw.id) +\n ' ' +\n this.translateService.instant('WALL.EXTERIOR'),\n value:\n this.translateService.instant('FINISHTYPES1.' + iw.exteriorFinish) +\n ', ' +\n this.translateService.instant('FINISHTYPES2.' + iw.exteriorFinish),\n } as StepItem);\n\n wallFinishesForPdf.push({\n title:\n this.translateService.instant('WALL.4') +\n ' ' +\n this.getId(iw.id) +\n ' ' +\n this.translateService.instant('WALL.INTERIOR'),\n value:\n this.translateService.instant('FINISHTYPES1.' + iw.interiorFinish) +\n ', ' +\n this.translateService.instant('FINISHTYPES2.' + iw.interiorFinish),\n } as StepItem);\n });\n height = this.pdfGenerationService.generateStep(\n doc,\n null,\n wallFinishesForPdf,\n height + marginBetweenSteps,\n 'STEP6.SUMMARYTITLE'\n );\n\n this.pdfGenerationService.generateAdditionalImages(doc, imageInside, doorImages, height + marginBetweenSteps);\n\n this.pdfGenerationService.generateFooter(doc);\n const uri = doc.output('datauristring', {\n filename: this.translateService.instant('SUMMARY.YOURCONFIGURATION') + '.pdf',\n });\n\n const link = document.createElement('a');\n link.href = uri;\n link.download = this.translateService.instant('SUMMARY.YOURCONFIGURATION') + '.pdf';\n link.click();\n this.loadingPDF = false;\n return doc;\n }\n\n getCollisionsForPdf(): StepItem[] {\n const list = this.conflicts.invalidPanels.map(ip => {\n return {\n title: this.translateService.instant('INVALID_PANEL.TITLE').replace('[SIZE]', ip.size),\n value: null,\n };\n });\n list.push(\n ...this.conflicts.collisions.map(cp => {\n return {\n title: this.getTitleForCollision(cp),\n value: this.getATextForCollision(cp) + '\\n' + this.getBTextForCollision(cp),\n };\n })\n );\n return list;\n }\n\n getTitleForCollision(collisionPoint: CollisionPoint): string {\n return (\n this.getADescriptionForCollision(collisionPoint) +\n ' ' +\n this.translateService.instant('AND') +\n ' ' +\n this.getBDescriptionForCollision(collisionPoint)\n );\n }\n\n getADescriptionForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshAIsDoor) {\n text +=\n this.translateService.instant('DOOR') +\n ' ' +\n this.translateService.instant('WALL.' + collisionPoint.doorA.side);\n if (collisionPoint.doorA.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.doorA.innerWallId)}`;\n }\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallA.side);\n if (collisionPoint.wallA.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallA.innerWall.id)}`;\n }\n }\n return text;\n }\n\n getBDescriptionForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshBIsDoor) {\n text +=\n this.translateService.instant('DOOR') +\n ' ' +\n this.translateService.instant('WALL.' + collisionPoint.doorB.side);\n if (collisionPoint.doorB.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.doorB.innerWallId)}`;\n }\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallB.side);\n if (collisionPoint.wallB.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallB.innerWall.id)}\\n`;\n text += `${this.translateService.instant('WALL.' + collisionPoint.wallB.innerWall.placedOnSide)}`;\n }\n }\n return text;\n }\n\n getATextForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshAIsDoor) {\n text += this.translateService.instant('DOOR');\n text += ` ${this.numberToString(collisionPoint.doorA.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallA.side);\n if (collisionPoint.wallA.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallA.innerWall.id)}`;\n text += '\\n';\n text += `${this.translateService.instant(\n 'WALL.' + collisionPoint.wallA.innerWall.placedOnSide\n )} ${this.numberToString(collisionPoint.wallA.innerWall.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n }\n }\n return text;\n }\n\n getBTextForCollision(collisionPoint: CollisionPoint): string {\n let text = '';\n if (collisionPoint.meshBIsDoor) {\n text += this.translateService.instant('DOOR');\n text += ` ${this.numberToString(collisionPoint.doorB.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n } else {\n text += this.translateService.instant('WALL.' + collisionPoint.wallB.side);\n if (collisionPoint.wallB.side === WallSide.inner) {\n text += ` ${this.getId(collisionPoint.wallB.innerWall.id)}\\n`;\n text += `${this.translateService.instant(\n 'WALL.' + collisionPoint.wallB.innerWall.placedOnSide\n )} ${this.numberToString(collisionPoint.wallB.innerWall.left)} mm ${this.translateService.instant(\n 'SUMMARY.FROMLEFTCORNER'\n )}`;\n }\n }\n return text;\n }\n\n getFinishTitle(wallFinish: WallFinish, interior: boolean): string {\n let text = '';\n if (wallFinish.side === WallSide.ceiling) {\n text = this.translateService.instant('WALL.' + wallFinish.side) + ' ';\n } else {\n text =\n this.translateService.instant('SUMMARY.WALL') +\n ' ' +\n this.translateService.instant('WALL.' + wallFinish.side) +\n ' ';\n }\n if (interior) {\n text += this.translateService.instant('WALL.INTERIOR');\n } else {\n text += this.translateService.instant('WALL.EXTERIOR');\n }\n return text;\n }\n\n getId(id: string) {\n if (!id) {\n return '';\n }\n const names = id.split('-');\n if (names.length > 1) {\n return +names[1] + 1;\n }\n return '';\n }\n\n getLeft(iw: InnerWall) {\n return iw.left;\n }\n\n async create2dPlan() {\n if (this.loading2d) {\n return;\n }\n this.loading2d = true;\n this.configurationService.generate2dPlan(this.configurationService.configuration).subscribe(\n blob => {\n try {\n const downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(blob.body);\n downloadLink.setAttribute('download', `${this.translateService.instant('SUMMARY.YOUR2DPLAN')}.pdf`);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n setTimeout(() => downloadLink.parentNode.removeChild(downloadLink));\n } catch {\n this.notificationService.showNotification('SUMMARY.2DPLANNOTGENERATED', NotificationService.DEFAULT_TIMEOUT);\n } finally {\n this.loading2d = false;\n }\n },\n () => {\n this.notificationService.showNotification('SUMMARY.2DPLANNOTGENERATED', NotificationService.DEFAULT_TIMEOUT);\n this.loading2d = false;\n }\n );\n }\n\n getWidthOfWall(door: DoorPosition) {\n return this.threeDService.getWallBySide(door.side, door.innerWallId)?.wallLength * 1000;\n }\n}\n","
\n
\n
\n \n
\n
{{ 'SUMMARY.TITLE' | translate }}
\n
{{ 'SUMMARY.DESCRIPTION' | translate }}
\n
\n
\n \n \n
\n \n {{ 'SUMMARY.CREATEPDF' | translate }}\n
\n
\n \n
\n \n {{ 'SUMMARY.CREATE2DPLAN' | translate }}\n
\n \n \n
\n \n {{ 'SUMMARY.SHARELINK' | translate }}\n
\n \n
\n
\n
\n\n
\n 0 || conflicts.invalidPanels.length > 0)\">\n
\n
\n {{ 'INVALID_PANEL.TITLE' | translate | replace: '[SIZE]' : invalidPanel.size }}\n
\n
\n
\n
{{ getTitleForCollision(collision) }}
\n
{{ getATextForCollision(collision) }}
\n
{{ getBTextForCollision(collision) }}
\n
\n \n\n \n
\n
{{ 'STEP1.PURPOSE' | translate }}
\n
\n
{{ purpose }}
\n
\n
\n \n
\n
{{ 'STEP2.WALLTHICKNESS' | translate }}
\n
\n
{{ wallThickness }}
\n
\n
\n \n
\n
{{ 'STEP3.SIZEINTERNAL' | translate }}
\n
\n
\n {{ length | number: '1.0-0' : currentLocale }} mm x {{ width | number: '1.0-0' : currentLocale }} mm x\n {{ height | number: '1.0-0' : currentLocale }} mm\n
\n
\n
\n
{{ 'STEP3.SIZEEXTERNAL' | translate }}
\n
\n
\n {{ lengthExternal | number: '1.0-0' : currentLocale }} mm x\n {{ widthExternal | number: '1.0-0' : currentLocale }} mm x\n {{ heightExternal | number: '1.0-0' : currentLocale }}\n mm\n
\n
\n
\n \n
\n
{{ 'SUMMARY.FLOORINCELL' | translate }}
\n
\n
{{ floorInCell }}
\n
\n
\n
{{ 'SUMMARY.FLOORTYPE' | translate }}
\n
\n
{{ floorType }}
\n
\n
\n
{{ 'STEP4.SUNKENFLOOR' | translate }}
\n
\n
{{ sunkenFloor }}
\n
\n
\n
{{ 'STEP4.PLINTHSINSIDE' | translate }}
\n
\n
{{ plinthsInside }}
\n
\n \n
\n
{{ 'STEP4.PROFILES' | translate }}
\n
\n
{{ ventilationProfiles }}
\n
\n \n
\n \n
0; else noInnerWalls\">\n
\n
\n
\n {{ 'WALL.4' | translate }} {{ getId(innerWall.id) }}: {{ 'WALL.' + innerWall.placedOnSide | translate }}\n
\n
\n
\n {{ 'INNERWALL.' + innerWallTypes[innerWall.type] | uppercase | translate }}\n
\n {{ getLeft(innerWall) | number: '1.0-0' : currentLocale }} mm {{ 'SUMMARY.FROMLEFTCORNER' | translate }}\n \n
\n {{ 'STEPINNERWALL.MIRRORED' | translate }}\n
\n
\n
\n
\n
\n
\n \n
\n
\n {{ 'WALL.' + door.side | translate }}\n {{ getId(door.innerWallId) }}\n ({{ getWidthOfWall(door) | number: '1.0-0' : currentLocale }} mm)\n
\n
\n
\n {{ doorTypeToString(door.doorModel.type) }}, {{ 'STEP5.' + directionToString(door.direction) | translate }}\n
\n {{ 'SUMMARY.CLEAROPENING' | translate }}:\n {{ door.doorModel.openingWidth | number: '1.0-0' : currentLocale }} mm x\n {{ door.doorModel.openingHeight | number: '1.0-0' : currentLocale }}\n mm\n
\n {{ door.left | number: '1.0-0' : currentLocale }} mm {{ 'SUMMARY.FROMLEFTCORNER' | translate }}\n \n
\n {{ 'DOORHINGE.HINGE' | translate }}: {{ 'DOORHINGE.' + door.hingeType | uppercase | translate }},\n {{ 'DOORHANDLE.HANDLE' | translate }}: {{ 'DOORHANDLE.' + door.doorHandleType | uppercase | translate }}\n
\n
\n {{ 'STEP6.FINISH' | translate }} {{ 'STEP6.OUTSIDESMALL' | translate }}:\n {{ 'FINISHTYPES1.' + door.leafExteriorFinish | uppercase | translate }},\n {{ 'FINISHTYPES2.' + door.leafExteriorFinish | uppercase | translate }}\n
\n {{ 'STEP6.FINISH' | translate }} {{ 'STEP6.INSIDESMALL' | translate }}:\n {{ 'FINISHTYPES1.' + door.leafInteriorFinish | uppercase | translate }},\n {{ 'FINISHTYPES2.' + door.leafInteriorFinish | uppercase | translate }}\n
\n
\n
\n\n \n
\n
\n
\n {{ 'WALL.' + wallFinish.side | translate }}\n {{ 'WALL.EXTERIOR' | translate }}\n
\n
\n
\n {{ 'FINISHTYPES1.' + wallFinish.exterior | translate }},\n {{ 'FINISHTYPES2.' + wallFinish.exterior | translate }}\n
\n
\n
\n
\n {{ 'WALL.' + wallFinish.side | translate }}\n {{ 'WALL.INTERIOR' | translate }}\n
\n
\n
\n {{ 'FINISHTYPES1.' + wallFinish.interior | translate }},\n {{ 'FINISHTYPES2.' + wallFinish.interior | translate }}\n
\n
\n
\n
\n
\n
\n {{ 'WALL.' + wallSide.inner | translate }} {{ getId(innerWall.id) }}\n {{ 'WALL.EXTERIOR' | translate }}\n
\n
\n
\n {{ 'FINISHTYPES1.' + innerWall.exteriorFinish | translate }},\n {{ 'FINISHTYPES2.' + innerWall.exteriorFinish | translate }}\n
\n
\n
\n
\n {{ 'WALL.' + wallSide.inner | translate }} {{ getId(innerWall.id) }}\n {{ 'WALL.INTERIOR' | translate }}\n
\n
\n
\n {{ 'FINISHTYPES1.' + innerWall.interiorFinish | translate }},\n {{ 'FINISHTYPES2.' + innerWall.interiorFinish | translate }}\n
\n
\n
\n
\n
\n
\n\n\n
{{ 'STEPINNERWALL.NOINNERWALLS' | translate }}
\n
\n\n
\n {{ 'STEPINNERWALL.NOTMIRRORED' | translate }}\n
\n","export const environment = {\n production: true,\n demo: false,\n backendUrl: 'https://app-isomasters-modular-backend-tst.azurewebsites.net/',\n environment: 'test',\n color: '#FF0000',\n applicationInsightsInstrumentationKey: '210dfabd-952b-4069-b43f-8245a319690c',\n webshopUrl: 'https://webshop-test.isomasters.com',\n frontendUrl: 'https://configurator-test.isomasters.com',\n googleAnalyticsTrackingCode: 'G-MZ7CFJ7K7D',\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","// Please also update in `order-email.service.ts` when adding new email addresses.\nexport const settings = {\n frost: 'sales@frost.is',\n gosens: 'info@gosens-koeltechniek.nl',\n koledanmark: 'info@koledanmark.dk',\n coldroomdk: 'sales@coldroom.dk',\n koelcelwinkel: 'info@koelcelwinkel.nl',\n kingspan: 'admin@kingspan.com',\n kingspangroup: 'admin@kingspan.com',\n};\n","var map = {\n\t\"./da.json\": [\n\t\t73705,\n\t\t\"src_assets_i18n_da_json\"\n\t],\n\t\"./de.json\": [\n\t\t91229,\n\t\t\"src_assets_i18n_de_json\"\n\t],\n\t\"./en.json\": [\n\t\t27473,\n\t\t\"src_assets_i18n_en_json\"\n\t],\n\t\"./fr.json\": [\n\t\t47946,\n\t\t\"src_assets_i18n_fr_json\"\n\t],\n\t\"./nl.json\": [\n\t\t34340,\n\t\t\"src_assets_i18n_nl_json\"\n\t],\n\t\"./pl.json\": [\n\t\t28966,\n\t\t\"src_assets_i18n_pl_json\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 57995;\nmodule.exports = webpackAsyncContext;"],"names":["RouterModule","ErrorComponent","ConfiguratorComponent","LoadConfigurationComponent","routes","path","component","pathMatch","AppRoutingModule","_","_2","_3","forRoot","imports","i1","exports","debounceTime","i0","ɵɵelement","AppComponent","constructor","translate","activatedRoute","startupService","stepService","threeDService","appInsights","sharedLinkVersion","hideUI","setDefaultLang","use","document","documentElement","style","setProperty","clientHeight","toString","ngOnInit","finishedBuilding$","subscribe","setZoom","Array","from","getElementsByClassName","forEach","el","transition","opacity","stepChange$","step","sharedLinkConfiguration$","data","queryParamMap","pipe","queryMap","initialized$","next","readInput","hasToken","token","ɵɵdirectiveInject","TranslateService","i2","ActivatedRoute","i3","StartupService","i4","StepService","i5","ThreeDService","i6","AppInsightsService","selectors","decls","vars","consts","template","AppComponent_Template","rf","ctx","ɵɵtemplate","AppComponent_app_close_4_Template","AppComponent_app_isomasters_logo_5_Template","AppComponent_app_language_selector_6_Template","AppComponent_app_watermark_7_Template","ɵɵelementStart","ɵɵelementEnd","AppComponent_app_summary_container_11_Template","ɵɵadvance","ɵɵproperty","maxStep","BrowserModule","FlexLayoutModule","ModelViewComponent","StepContainerComponent","StepOneComponent","StepTwoComponent","StepThreeComponent","StepFourComponent","StepFiveComponent","StepSixComponent","HttpClient","HttpClientModule","TranslateLoader","TranslateModule","LanguageSelectorComponent","ProgressbarComponent","HelpComponent","CloseComponent","WatermarkComponent","InlineSVGModule","HelpstepComponent","IsomastersUiModule","localeEn","localeFr","localeNl","localeDe","localeDa","localePl","DatePipe","registerLocaleData","PriceInformationComponent","StepThreeSliderComponent","InternalExternalSwitchComponent","SummaryComponent","SummaryDialogComponent","NotificationComponent","StepFiveSliderComponent","IsomastersLogoComponent","environment","StepButtonsComponent","SummaryPriceListComponent","SummaryContainerComponent","SummaryStepComponent","BalloonNotificationComponent","InputAlternativesComponent","DoorDimensionSliderComponent","PlusMinPricePipeModule","NgxGoogleAnalyticsModule","StepInnerWallsComponent","SummaryCollisionsComponent","IsomasterRedLoadingComponent","LoadingComponent","SummaryShareDemoComponent","LoadingIndicatorComponent","ConflictsPanelComponent","ReplacePipe","LazyTranslateLoader","AppModule","bootstrap","googleAnalyticsTrackingCode","loader","provide","useClass","declarations","loading","loading$","setTimeout","visibility","viewQuery","ConfiguratorComponent_Query","ConfiguratorComponent_app_help_2_Template","ConfiguratorComponent_app_summary_dialog_3_Template","ConfiguratorComponent_app_step_container_4_Template","ConfiguratorComponent_app_close_5_Template","ɵɵclassProp","DecimalPipe","WallSide","ɵɵtext","ɵɵtextInterpolate1","invalidPanel_r1","count","ConflictsPanelComponent_div_4_span_7_Template","ɵɵpipeBind3","ɵɵpipeBind1","size","ɵɵtextInterpolate","ctx_r2","getTitleForCollision","collision_r2","getATextForCollision","getBTextForCollision","cd","translateService","languageService","conflicts","decimalPipe","currentLocale","currentLanguage","hasAny","collisions","length","invalidPanels","conflicts$","detectChanges","totalInstanceCount","reduce","a","b","collisionPoint","getADescriptionForCollision","instant","getBDescriptionForCollision","text","meshAIsDoor","doorA","side","inner","getId","innerWallId","wallA","innerWall","id","meshBIsDoor","doorB","wallB","placedOnSide","numberToString","left","value","transform","names","split","getLeft","iw","ChangeDetectorRef","LanguageService","ConflictsPanelComponent_Template","ConflictsPanelComponent_div_4_Template","ConflictsPanelComponent_div_5_Template","ɵɵtextInterpolate2","CompletionType","DoorDirection","DoorHandleType","DoorType","ErrorTypes","FinishTypes","FloorTypes","HingeType","InnerWallType","Purpose","SiliconeColours","setLanguage","language","LanguageSelectorComponent_Template","ɵɵlistener","LanguageSelectorComponent_Template_select_change_1_listener","$event","target","getTranslation","lang","configurationService","router","errorService","configurationId","exists","invalidGuid","snapshot","has","navigate","updateConfiguration","load","doesConfigurationExist","result","loadConfiguration","queryParamsHandling","err","throwError","BackendNotFound","status","ConfigurationService","Router","ErrorService","LoadConfigurationComponent_Template","LoadConfigurationComponent_Template_app_isomasters_input_valueChange_14_listener","LoadConfigurationComponent_Template_app_isomasters_button_modularClick_17_listener","LoadConfigurationComponent_div_21_Template","LoadConfigurationComponent_div_22_Template","LoadingIndicatorComponent_Template","LoadingComponent_Template","configurationReady","iframe","iframeElement","nativeElement","startUpService","domSanitizer","init","timeOutCounter","ready","url","safeResourceUrl","bypassSecurityTrustResourceUrl","setVisibilityEvents","addEventListener","handleVisibilityChange","hidden","runRecursiveLoader","ngAfterViewInit","contentWindow","setIframeResetModel","errorThrown","IframeNotConnected","readyState","setIframe","updatePrice$","emit","configuration","hasIt","DomSanitizer","ModelViewComponent_Query","ɵɵstyleProp","ɵɵsanitizeResourceUrl","OptionPage","active","Settings","Configuration","settings","completionType","None","clone","newConfig","doorSettings","d","push","innerWalls","Object","assign","DoorModel","type","openingWidth","openingHeight","panelWidth","panelHeight","direction","doorHandleType","euro2015","hingeType","normal","Turn","handleType","getPanelHeight","setPanelHeight","getOpeningWidth","getOpeningHeight","getType","getHingeType","getHandleType","getDoorDirection","DoorPosition","frameInteriorFinish","frameExteriorFinish","leafInteriorFinish","leafExteriorFinish","image","STEEL","doorModel","undefined","south","setLeafExteriorFinish","setLeafInteriorFinish","backPanelMaterial","materialFromFinishType","frontPanelMaterial","finishType","STEEL_PET55","RVS304_ROUND_BRUSH","RVS316_ROUND_BRUSH","RVS304_DESIGN_5WL","RVS304_LINEN","RVS304_COLLED_ROLLED","RVS304_LINE_BRUSH","equals","door","ErrorMessage","errorType","message","Language","_language","twoLetterCountryCodeLength","lcidDecimal","lcidString","toLowerCase","substring","isNaN","WallFinish","purpose","Cooling","wallThickness","lengthInMM","widthInMM","heightInMM","floorType","DURAFLOOR","sunkenFloor","ventilationProfiles","ceilingMoldings","_doorSettings","plinthsInside","plinthsOutside","itemId","wallFinishes","north","east","west","ceiling","floor","ds","newSetting","valueOf","salesPrice","salesTotal","i","values","StartupConfiguration","EventEmitter","ViewboxOption","selected","_selected","selected$","description","content","option","link","exterior","interior","ViewboxOptionWithPrice","WallFinishUpdate","wallSide","to","replace","pure","Subject","takeUntil","ɵɵpipeBindV","ɵɵpureFunction2","_c0","ctx_r0","price","PriceInformationComponent_div_0_div_6_Template","PriceInformationComponent_div_0_div_7_Template","PriceInformationComponent_div_0_div_8_Template","invalid","priceLoading","priceService","changeDetector","unsubscribe","priceEnabledSetting$","enabled","showPrices","priceInformation$","priceInformation","updatePrice","furthestStepVisitedUpdated$","visible","furthestStepVisited","ngOnDestroy","PriceService","PriceInformationComponent_Template","PriceInformationComponent_div_0_Template","HttpHeaders","ApiService","httpClient","_apiPrefix","backendUrl","_customHeaders","getUrlPrefix","getOptions","responseType","observe","headers","post","partialUrl","body","get","getDoorPrice","height","width","isFreezer","interiorFinish","exteriorFinish","request","ɵɵinject","factory","ɵfac","providedIn","ApplicationInsights","config","instrumentationKey","applicationInsightsInstrumentationKey","enableAutoRouteTracking","loadAppInsights","logPageView","name","trackPageView","uri","startPageTrack","startTrackPage","stopPageTrack","properties","stopTrackPage","logEvent","trackEvent","logMetric","average","trackMetric","logException","exception","severityLevel","trackException","logTrace","trackTrace","CompletionService","terminated$","completed$","terminate","parent","postMessage","webshopUrl","complete","configId","filter","NotificationService","stepSizeLengthWidth","COOLING_CELL_TIMER_LOAD_CONFIGURATION","apiService","notificationService","completionService","_this","_minimumFreezingThickness","_defaultWallThicknessFreezing","_defaultWallThicknessCooling","_wallThicknesses","_heights","_furthestStepVisited","_wallsHidden","shoppingCartIdReady$","configurationChanged$","configurationSaved$","hideFrontWallsChanged$","updateBlockingValues$","saveConfigurationEndpoint","generate2dPlanEndpoint","getConfigurationEndpoint","externalWallFinishViewboxOptions","internalWallFinishViewboxOptions","externalDoorFinishViewboxOptions","internalDoorFinishViewboxOptions","doorHandleTypes","euro2000","euro2016","null","doorHingeTypes","normalNotRising","chrome","_allowedFloorTypes","NONE","available","strong","minimumWallThickness","ANTISLIP","REINFORCEDANTISLIP","ALUMINUM25","ALUMINUM35","STEELSMOOTH3","STEELANTISLIP5","RVSANTISLIPR13","registerNewDoors","defaultTurnDoorWidth","defaultTurnDoorheight","defaultTurnDoorheightUnder2m","defaultSlideDoorWidth","defaultSlideDoorheight","roundedWallCorrectionThickness","Cancelled","saveConfiguration","readyReceived$","reset3dModel","doorAdded$","updateDoorSettings","doorDroppedOffWall$","doorRemoved$","updateDoors$","pricesEnabled","priceEnabled","configurationReceived$","_ref","_asyncToGenerator","getConfiguration","ConfigurationNotFound","coolingCellTimer","makeCopy","handleExistingConfiguration","languageOverride","e","Generic","_x","apply","arguments","_ref2","_configuration","showNotification","DEFAULT_TIMEOUT","_x2","_ref3","_x3","pricesLoaded$","configSavedSuccessfully","_ref4","_x4","useValuesOrDefault","resetDefaultCamera","includes","Math","max","splice","doorSetting","saveAndGetConfigurationId","_this2","generate2dPlan","currentLang","configurationForBackend","removeExcessProperties","shoppingCartTime","_this3","hasPrices","addPricesToConfiguration","Completed","response","console","log","error","InvalidAxToken","_this4","totalPricesExcludingDoors","calculateTotalPriceExcludingDoors","calculateDoorPrice","getPricesOfDoors","getPriceOfDoor","Price","cleanConfig","mesh","_this5","toPromise","checkForIncompatibleDoorHandles","Freezing","update","changeDoorHandle","checkForIncompatibleWalls","wall","lProfile","removeInnerWall","mustHaveFloor","minimumFreezingThickness","defaultWallThicknessFreezing","defaultWallThicknessCooling","canUseInnerWalls","checkForInvalidPlinths","setWallThickness","allowedFloorTypesRecord","ceil","setLength","getInnerWalls","innerWallsNoLongerFeasible","threeway","updateInnerWalls","setWidth","setHeight","removeDoorsOnInnerWalls","allowedWallThicknesses","v","wallsHidden","allowedFloorTypes","f","floorTypeToUpdate","find","setFloorTypeIn3D","setFloorVisible","getFloorVisible","finish","floorTypeToMaterial","setFloorMaterial","coolingCellCounterOverride","recreateCoolingCell","plinths","setHideFrontWalls","hide","setWallsHidden","getSelectedDoorSettings","selectedDoor","threeDDoors","getDoors","newList","some","td","doorToUpdate","setVentilationProfiles","setSunkenFloor","setPlinthsOnSide","setCeilingMoldings","updateWallFinish","outside","wallFinish","doorsToUpdate","updateSelectedDoorFinish","widthExternal","lengthExternal","heightExternal","changeSelectedDoorHandle","changeSelectedDoorHinge","doorHingeType","canHavePlinths","i7","i8","BehaviorSubject","errorMessage$","JsPDFFontService","AddFonts","doc","bold","light","medium","regular","semiBold","addFileToVFS","addFont","setFont","allowedLanguages","languageReceived$","COOKIE_FLAGS","ModularGoogleAnalyticsService","googleAnalyticsService","val","setWithCookies","sendEvent","sendPageView","labelName","category","getCategory","pageViewWithCookies","action","eventWithCookies","pagePath","pageTitle","gtag","cookieFlags","page_title","page_path","eventName","label","event_label","event_category","event_value","key","options","GoogleAnalyticsService","notification$","balloonNotification$","hideBalloonNotification$","timeout","showBalloonNotification","alternatives","hideBalloonNotification","OnresizeService","windowResized$","window","onresize","clientWidth","OrderEmailService","getEmailAddressForOrder","domain","frost","gosens","koledanmark","coldroomdk","koelcelwinkel","kingspan","kingspangroup","jsPDF","PdfGenerationService","jsPDFFontService","datePipe","modularBlue","introTextColor","modularBorder","modularGreen","numberOfPages","spaceBetweenLinesInValue","spaceBetweenValues","createPDF","orientation","unit","format","x","y","flags","angle","align","String","fromCharCode","join","getTextWidth","generateHeader","imageSrc","demoMode","setTextColor","setFontSize","setDrawColor","isomastersLogo","Image","src","addImage","line","setFillColor","roundedRect","frontendUrl","introText","textWithLink","addPage","generateAdditionalImages","imageInside","imagesWithDoors","right","rowHeight","doorSides","keys","sort","generateStep","stepNumber","stepContent","stepTitle","getBoxHeight","generateStepHeader","generateStepTitle","generateStepItems","generateConflictItems","startingHeight","stepToDisplayNumber","title","boxHeight","extraLinesInValue","getBoxHeightAllOnleft","numberOfLines","map","s","generateFooter","page","setPage","Date","pageNumberText","StepItem","firstValueFrom","PriceSettings","pricesAreBeingLoaded","doorPricesCalculated","doorPrices","prices","doorPriceCache","returnInvalidPrice","generateIdentifierForDoors","getIDForDoorPrice","basePrice","calculateModularBasicPrice","additionalCostOfFloor","calculateAdditionalCostsOfFloor","costOfVentilationProfiles","calculateCostOfVentilationProfiles","costOfPlinths","calculateCostOfPlinths","costOfFinishes","calculateCostOfWallFinishes","costOfValve","calculateCostOfAirPressureEqualizerValve","costOfUProfiles","calculatePriceOfUProfiles","costOfInnerWall","calculatePriceOfInnerWall","articleItemId","airPressureEqualizerValve","calculateNumberOfAirPressureEqualizerValves","costOfPoles","calculateCostOfCornerBeams","costOfWalls","calculateCostOfWalls","costOfStandardFloor","calculateCostOfStandardFloor","costOfSilicone","calculateCostsOfAllSilicone","totalCost","index","getWallByWallSide","wallPrice","calculateCostOfWall","ceilingCost","calculateCostOfCeiling","insidePrice","calculateCostOfWallInsideFinish","outsidePrice","calculateCostOfWallOutsideFinish","ceilingInsidePrice","calculateCostOfCeilingInsideFinish","ceilingOutsidePrice","calculateCostOfCeilingOutsideFinish","depth","wallLength","ceilingSurface","wallThicknessPrice","wallCoresToArticleNumbers","coreCost","interiorPrice","wallFinishToArticleNumbers","finishCost","exteriorPrice","squareMetersOfWall","getWallSurfaceArea","calculateCostOfWallFinishesForAllFinishes","calculateCostOfWallFinishesByFinish","finishTypeToFilter","priceInside","priceOutside","ceilingFinish","verticalCornersLengthInM","calculateVerticalCornerBeams","horizontalCornersLengthInM","calculateHorizontalCornerBeams","cornerBeamThicknessToArticles","calculateInsidePerimeter","panelThickness","floorSurfaceInSqM","floorSurface","internalFinishArticleItemId","floorTypesToArticleNumbers","externalFinishArticleItemId","coreArticleItemId","pricePerSqM","longSide","shortSide","min","totalLength","ventilationProfileArticleItemId","factorForOutside","totalDoorLength","sum","current","insideLengthInMM","outsideLengthInMM","lengthInM","quantity","plinthsArticleItemId","plinthsScrewsArticleItemId","plinthsScrews","totalPrice","Slide","getSiliconeColourForFinish","White","Transparent","Bronze","priceBronze","calculateCostOfSilicone","priceTransparent","priceWhite","siliconeColour","getQuantityOfSiliconeByColour","siliconeToArticleNumbers","colour","widthInM","calculatePriceOfUProfilesUpTo10","wallThicknessInMM","pvcProfileArticleId","uProfiles","pvcProfileCornerArticleId","uProfilesCorners","butyl","strokePlug","washer","surface","innerWallLength","innerWallHeight","amount","threeWayCornerItemId","threeWayCornerByThickness","lProfileItemId","lProfileByThickness","take","_languageReceived$","appInsightsService","moveToSummaryForLoadedConfiguration$","_startupInput","startupInput","queryParams","setUpSharedLink","shareId","modelFinishedConstructing$","modularGoogleAnalyticsService","minStep","newStep$","stepName","stepDescriptionEnglish","actuallyMoveStep","forwardBlocked","blockOnDoorCount","modelIsReady","forwardBlockedMessage","blockForwardUntilMoreThanOneDoorSelected","releaseBlockForwardUntilMoreThanOneDoorSelected","nextStep","previousStep","moveToStep","getActiveStep","getMinStep","getMaxStep","_logStepChange","newStep","location","href","doorReplaced$","doorAddedFailed$","doorCollision$","doorDropsOffWall$","doorPositionSet$","doorSelected$","doorSelectionRemoved$","wallSelectionChanged$","doorHeightChangedFailed$","doorWidthChangedFailed$","readyForInput$","readyReceived","doorPositionSetEventHandler","collided","doorDropsOffWall","doorPositionAdjustedEventHandler","doorCollisionEventHandler","doorDropsOffWallEventHandler","doorDroppedOffWallEventHandler","doorHeightChangedEventHandler","doorSelectionRemovedEventHandler","doorRemovedEventHandler","doorAddedEventHandler","createDoorPosition","detail","doorReplacedEventHandler","doorAddedFailedEventHandler","readyInputEventHandler","removeEventListener","doorSelectedEventHandler","doorHeightDoesNotFitEventHandler","doorWidthDoesNotFitEventHandler","doorCantOpenEventHandler","newInnerWallNotPossibleEventHandler","innerWallRemovedEventHandler","wallSelectionChangedEventHandler","wallEvent","wallSelectionEnabled","isomasters3d","innerWallSelectionEnabled","doorSelectionEnabled","doorManager","deselectDoor","ceilingSelectionEnabled","coolingCell","readyForInput","getSelectedIDoor","getDoorManager","wallSelection","getWallSelection","getCoolingCell","event","updateConflicts","floorMaterial","floorVisible","ceilingMaterial","moldingsEnabled","doors","coolingCellCounter","nextCoolingCellCounter","wallMaterialsPerSide","wf","wallMaterials","front","back","createCoolingCell","getIframe","thickness","valueInMeters","setDepth","setHideWalls","setDoorPosition","newDoorPosition","setSelectedDoorPosition","removeSelectedDoor","getWallBySide","setDoors","setDoorsByUsefullDimensions","getDoorsBySide","setDoorRotationSide","setDoorSlidingDirection","createAllScreenshots","getCameraControls","repositionCameraTarget","getMainScreenshot","big","inside","createMainScreenshot","getScreenshotsForSidesWithDoors","setColoringOfCollision","screenShots","createScreenshotsForSidesWithDoors","isValidDoorPosition","newLeftPosition","isValidSelectedDoorPosition","isValidDoorWidth","newDoorWidth","isValidSelectedDoorWidth","isValidDoorHeight","newDoorHeight","isValidSelectedDoorHeight","setCeilingColor","wallMaterial","setWallMaterial","setCameraOnSide","addNewDoor","materials","getSelectedWall","selectFirstDoor","setSelectedDoorHeight","setSelectedDoorWidth","setSelectedDoorPanelOutsideMaterial","setSelectedDoorPanelInsideMaterial","deselect","deselectAll","zoom","setCameraDistance","low","addToCameraMoveList","removeDoorsOnSide","prepareCoolingCell","addInnerWall","innerWallType","setInnerWallPosition","newPosition","removeSelectedInnerWall","flipInnerWall","doesDoorHeightFit","getConflicts","list","ip","w","on","cornerBeamsThreeSidesToArticleNumbers","_4","_5","_6","_7","caps","white","black","_8","_9","_10","_11","_12","_13","_14","_15","_16","_17","allowedDoorFinishes","_18","_19","tProfileByThickness","_20","CloseComponent_div_0_Template_div_click_0_listener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","close","inIframe","self","top","CloseComponent_Template","CloseComponent_div_0_Template","errorText","translatedText","showError","errorMessage","extraMessage","ErrorComponent_Template","step_r3","HelpComponent_div_5_Template_div_click_0_listener","closeHelp","HelpComponent_div_5_Template_div_click_1_listener","eventNinja","HelpComponent_div_5_Template_div_click_2_listener","HelpComponent_div_5_app_helpstep_8_Template","steps","fill","openHelp","stopPropagation","HelpComponent_Template","HelpComponent_Template_div_click_0_listener","HelpComponent_div_5_Template","ɵɵpropertyInterpolate","toggleInternal","internal","InternalExternalSwitchComponent_Template","InternalExternalSwitchComponent_Template_button_click_0_listener","InternalExternalSwitchComponent_Template_button_click_4_listener","ɵɵpureFunction1","IsomasterRedLoadingComponent_Template","IsomastersLogoComponent_Template","IsomastersButtonComponent","disabled","blockCheckMark","modularClick","showCheckmark","getClasses","clickButton","inputs","outputs","ngContentSelectors","_c1","IsomastersButtonComponent_Template","IsomastersButtonComponent_Template_button_click_0_listener","ɵɵprojection","IsomastersButtonComponent_div_7_Template","_c2","option_r3","priceChange","ɵɵsanitizeUrl","IsomastersHorizontalViewboxComponent_div_3_div_15_Template_div_click_0_listener","_r6","$implicit","ctx_r3","openLink","ɵɵpureFunction0","_c3","IsomastersHorizontalViewboxComponent_div_3_Template_app_isomasters_button_modularClick_1_listener","_r2","selectButton","IsomastersHorizontalViewboxComponent_div_3_span_6_Template","IsomastersHorizontalViewboxComponent_div_3_span_7_Template","IsomastersHorizontalViewboxComponent_div_3_div_9_Template","IsomastersHorizontalViewboxComponent_div_3_img_10_Template","IsomastersHorizontalViewboxComponent_div_3_Template_div_mouseenter_11_listener","description_r5","ɵɵreference","IsomastersHorizontalViewboxComponent_div_3_Template_div_mouseleave_11_listener","hideNotification","IsomastersHorizontalViewboxComponent_div_3_div_15_Template","isNumber","needsBorderedFlaredImage","bigImagesNoBorders","IsomastersHorizontalViewboxComponent","hasOnlyOnePage","displayOptions","host","optionSelected$","pagedOptions","element","getGoodLocation","offsetLeft","open","preventDefault","pageChanged","pageItems","ElementRef","IsomastersHorizontalViewboxComponent_Query","IsomastersHorizontalViewboxComponent_div_3_Template","IsomastersHorizontalViewboxComponent_Template_app_isomasters_paging_pageActivated__4_listener","hostElement_r7","ɵɵtwoWayListener","IsomastersInputComponent_input_0_Template_input_valueChange_0_listener","ɵɵtwoWayBindingSet","IsomastersInputComponent_input_0_Template_input_input_0_listener","IsomastersInputComponent_input_0_Template_input_focusin_0_listener","gotFocus","ɵɵtwoWayProperty","placeholder","autocomplete","IsomastersInputComponent_label_1_Template_input_checkedChange_1_listener","_r3","IsomastersInputComponent_label_1_Template_input_input_1_listener","emitCheckbox","ɵɵclassMap","errorStyle","IsomastersInputComponent","_val","input","processNewInput","currentTarget","selectId","valueChange","closest","lostFocus","validity","valid","getErrorMessage","checked","IsomastersInputComponent_Query","IsomastersInputComponent_input_0_Template","IsomastersInputComponent_label_1_Template","IsomastersPagingComponent_div_4_Template_div_click_0_listener","page_r2","gotoPage","IsomastersPagingComponent","_options","pageArray","optionPage","j","o","pages","p","pi","pageActivated$","currentPage","currentPageOptions","goBack","previousPage","gotoLastPage","gotoFirstPage","goForward","nextPage","elementIHaveToPage","IsomastersPagingComponent_Template","IsomastersPagingComponent_Template_div_click_1_listener","IsomastersPagingComponent_div_4_Template","IsomastersPagingComponent_Template_div_click_5_listener","IsomastersPopupComponent","IsomastersPopupComponent_Template","IsomastersScrollbarComponent","onresizeService","scrolled","scrollOffset","getThumbOffset","relativeX","thumb","getBoundingClientRect","calculateRelativeScrollPosition","elementIHaveToscroll","scrollWidth","scrollLeft","positionClicked","scrollTo","offsetX","scrollTop","behavior","mouseDown","dragEnabled","mouseLeave","mouseUp","mouseMove","setViewPosition","clientX","scrolling","shiftKey","deltaY","IsomastersScrollbarComponent_Query","IsomastersScrollbarComponent_Template_div_click_0_listener","IsomastersScrollbarComponent_Template_div_mousemove_0_listener","IsomastersScrollbarComponent_Template_div_mouseup_0_listener","IsomastersScrollbarComponent_Template_div_mouseleave_0_listener","IsomastersScrollbarComponent_Template_div_wheel_0_listener","IsomastersScrollbarComponent_Template_div_mousedown_2_listener","IsomastersSliderComponent","domSanatizer","styleString","bypassSecurityTrustStyle","setProgress","IsomastersSliderComponent_Template","IsomastersSliderComponent_Template_input_input_1_listener","ɵɵstyleMap","IsomastersTextCopyComponent","buttonClicked","click","IsomastersTextCopyComponent_Template","IsomastersTextCopyComponent_Template_div_click_2_listener","CommonModule","TranslateHttpLoader","ClipboardModule","HttpLoaderFactory","http","forChild","useAlternatives","alternativesAvailable","rightside","notification","reset","fitsInParent","setBalloonLocation","measureSpan","createElement","appendChild","position","innerText","setAttribute","removeChild","cancelTimout","timer","clearTimeout","getBalloonLocationForTop","getBalloonLocationForRight","rect","hostRect","middle","BalloonNotificationComponent_Query","BalloonNotificationComponent_span_4_Template","InputAlternativesComponent_div_4_Template_div_click_1_listener","alt_r2","setAlternativeValue","InputAlternativesComponent_div_4_span_3_Template","i_r4","source","getClosestPossibleValues","suggestion","dispatchEvent","Event","lower","higher","InputAlternativesComponent_Template","InputAlternativesComponent_div_4_Template","NotificationComponent_div_2_Template_div_click_4_listener","message_r2","displayText","messages","Map","set","delete","NotificationComponent_Template","NotificationComponent_div_2_Template","PlusMinPricePipe","CurrencyPipe","currenyPipe","args","styledValue","insertIntoString","string","renderer2","processStepChangeEvent","progressPercentage","progressBar","setStyle","totalBar","Renderer2","ProgressbarComponent_Query","SummaryDialogComponent_div_2_Template_div_click_0_listener","closeSummaryDialog","SummaryDialogComponent_div_2_Template_div_click_1_listener","SummaryDialogComponent_div_2_Template_div_click_2_listener","openSummaryDialog","SummaryDialogComponent_Template","SummaryDialogComponent_Template_div_click_0_listener","SummaryDialogComponent_div_2_Template","WatermarkComponent_Template","hasScrollbar","scrollHelpers","_step","scrollableElement","scrollShadowElement","scrollShadow","round","scrollHeight","shadowOffset","StepContainerComponent_Query","StepContainerComponent_Template_div_scroll_6_listener","StepContainerComponent_Template_div_resize_6_listener","ɵɵresolveWindow","StepContainerComponent_app_step_one_12_Template","StepContainerComponent_app_step_two_13_Template","StepContainerComponent_app_step_three_14_Template","StepContainerComponent_app_step_four_15_Template","StepContainerComponent_app_step_inner_walls_16_Template","StepContainerComponent_app_step_five_17_Template","StepContainerComponent_app_step_six_18_Template","stepnumber","steptitle","stepintro","currentStep","HelpstepComponent_Template","destroyed","blocked","blockedText","previous","goToStep","showNotificationIfNeeded","nextButton","StepButtonsComponent_Query","StepButtonsComponent_Template_div_click_3_listener","StepButtonsComponent_Template_div_click_10_listener","StepButtonsComponent_Template_div_mouseenter_10_listener","StepButtonsComponent_Template_div_mouseleave_10_listener","StepButtonsComponent_div_12_Template","StepButtonsComponent_div_13_Template","valueChanged","sliderValue","slider","range","_range","isEditingEnabled","setProgressSlider","prev","curr","abs","valueAsNumber","sliderMouseUp","inputChanged","DoorDimensionSliderComponent_Query","DoorDimensionSliderComponent_Template_input_change_2_listener","DoorDimensionSliderComponent_Template_input_input_2_listener","DoorDimensionSliderComponent_Template_input_mouseup_2_listener","DoorDimensionSliderComponent_Template_input_touchend_2_listener","DoorDimensionSliderComponent_Template_input_valueChange_5_listener","DoorDimensionSliderComponent_Template_input_input_5_listener","minimumSpacePercentage","minimumSpaceSize","newPositionFromLeft$","collided$","minimumStep","minimumValue","sliderSize","container","positionFromLeftLimit","_positionFromLeftLimit","sliderSteps","totalWallWidth","positionFromRightLimit","_positionFromRightLimit","leftContainerSize","rightContainersize","moveStartReference","stepSize","moveSliderRight","moveSliderLeft","stopDragBubble","moveSteps","mmFromCenter","layerX","centerOfThumb","pixelsToMillimetersFactor","StepFiveSliderComponent_Query","StepFiveSliderComponent_Template_div_click_7_listener","StepFiveSliderComponent_Template_div_dragstart_9_listener","StepFiveSliderComponent_Template_div_mousemove_9_listener","StepFiveSliderComponent_Template_div_mouseup_9_listener","StepFiveSliderComponent_Template_div_mouseleave_9_listener","StepFiveSliderComponent_Template_div_click_9_listener","StepFiveSliderComponent_Template_div_wheel_9_listener","StepFiveSliderComponent_Template_div_dragstart_11_listener","StepFiveSliderComponent_Template_div_mousedown_12_listener","StepFiveSliderComponent_Template_div_dragstart_16_listener","StepFiveSliderComponent_Template_div_click_17_listener","ɵɵelementContainerStart","StepFiveComponent_div_2_ng_container_34_Template_app_isomasters_button_modularClick_1_listener","StepFiveComponent_div_2_ng_container_46_Template_app_isomasters_horizontal_viewbox_optionSelected__4_listener","_r4","processSelectedDoorHandle","StepFiveComponent_div_2_ng_container_46_Template_app_isomasters_horizontal_viewbox_optionSelected__8_listener","processSelectedDoorHinge","StepFiveComponent_div_2_Template_div_click_7_listener","StepFiveComponent_div_2_Template_app_step_five_slider_newPositionFromLeft__21_listener","newDoorLeftPosition","StepFiveComponent_div_2_div_23_Template","StepFiveComponent_div_2_div_24_Template","StepFiveComponent_div_2_Template_app_isomasters_button_modularClick_26_listener","setDirection","StepFiveComponent_div_2_Template_app_isomasters_button_modularClick_30_listener","StepFiveComponent_div_2_ng_container_34_Template","StepFiveComponent_div_2_Template_app_isomasters_horizontal_viewbox_optionSelected__40_listener","processSelectedExternalDoorFinish","StepFiveComponent_div_2_Template_app_isomasters_horizontal_viewbox_optionSelected__45_listener","processSelectedInternalDoorFinish","StepFiveComponent_div_2_ng_container_46_Template","getDoorImage","selectedDoorDescription","widthRange","doorOpeningWidth","heightRange","doorOpeningHeight","isSlideType","turnLeft","externalDoorFinishTypes","internalDoorFinishTypes","isTurnType","noDoorImage","doorInstructionTitle","doorInstructionText","StepFiveComponent_ng_template_3_ng_template_1_Template_app_isomasters_button_modularClick_1_listener","_r5","addDoorType","StepFiveComponent_ng_template_3_ng_template_1_Template_div_click_7_listener","StepFiveComponent_ng_template_3_ng_template_1_Template_app_isomasters_button_modularClick_12_listener","StepFiveComponent_ng_template_3_ng_template_1_Template_div_click_18_listener","canUseTurnDoor","canUseSlideDoor","StepFiveComponent_ng_template_3_div_0_Template","StepFiveComponent_ng_template_3_ng_template_1_Template","ɵɵtemplateRefExtractor","choosingDoorType","chooseDoorType_r6","widthHeightRangeTurnDoor","widthHeightRangeSlideDoor","debouncer","_selectedDoor","calculateRemainingSpaceToLeft","calculateRemainingSpaceToRight","doorWidth","updatePricesForDoorFinishes","updatePricesForDoorHandleTypes","updatePricesForHingeTypes","doorHeight","_choosingDoorType","_doorHandleTypes","_doorHingeTypes","wh","_externalDoorFinishOptions","_internalDoorFinishOptions","currentSide","anyDoors","t","pricesVisible","updateSelectedViewboxOption","subscription","mmFromLeft","toUpperCase","wallPlacedOn","gatherInnerWallsForSideOfDoor","doorFinish","handleSelectionState","selection","doorFinishOptions","doorFinishToUpdate","computePriceDifferenceForDoorFinishes","Promise","all","computePriceDifferenceForDoorHinges","_ref5","computePriceDifferenceForDoorHandles","_x5","newFinish","computePriceDifferenceBetweenDoors","currentDoor","afterChange","_this6","freezing","oldPrice","newPrice","newHinge","_this7","newHandle","_this8","dfo","currentExternalDoorFinish","currentInternalDoorFinish","currentDoorHinge","currentDoorHandle","innerWallCompensation","StepFiveComponent_Query","StepFiveComponent_p_0_Template","StepFiveComponent_p_1_Template","StepFiveComponent_div_2_Template","StepFiveComponent_ng_template_3_Template","showNoDoorState_r7","priceDifferenceForYesFloor","priceDifferenceForNoFloor","StepFourComponent_div_3_Template_app_isomasters_button_modularClick_5_listener","wantsFloor","StepFourComponent_div_3_span_7_Template","StepFourComponent_div_3_Template_app_isomasters_button_modularClick_12_listener","StepFourComponent_div_3_span_14_Template","priceDifferenceForPlinthsInside","StepFourComponent_app_isomasters_input_10_Template_app_isomasters_input_valueChange_0_listener","setPlinthsInside","StepFourComponent_app_isomasters_input_10_div_4_Template","priceDifferenceForVentilationProfiles","floorTypes","displayFloorTypes","_wantsFloor","_strongFloor","plint","canHavePinths","ft","updatePricesForFloorTypes","processSelectedFloorType","canDisableFloor","strongFloor","computePriceDifferenceForFloors","setPlinthsOutside","newFloor","priceDifferenceForPlinthsOutside","priceDifferenceForCeilingMoldings","priceDifferenceForYesFloorReinforced","priceDifferenceForNoFloorReinforced","StepFourComponent_Template","StepFourComponent_div_3_Template","StepFourComponent_Template_app_isomasters_horizontal_viewbox_optionSelected__8_listener","StepFourComponent_app_isomasters_input_10_Template","StepFourComponent_Template_app_isomasters_input_valueChange_11_listener","StepFourComponent_Template_app_isomasters_input_valueChange_15_listener","StepFourComponent_div_19_Template","StepInnerWallsComponent_ng_container_0_div_1_Template_app_isomasters_button_modularClick_7_listener","hideOpeningQuestion","StepInnerWallsComponent_ng_container_0_div_1_Template_app_isomasters_button_modularClick_11_listener","StepInnerWallsComponent_ng_container_0_ng_container_2_div_2_Template_div_click_12_listener","removeWall","StepInnerWallsComponent_ng_container_0_ng_container_2_div_2_Template_app_step_five_slider_newPositionFromLeft__21_listener","getInnerWallImage","selectedWall","innerWallTypes","StepInnerWallsComponent_ng_container_0_ng_container_2_div_3_div_4_Template_app_isomasters_button_modularClick_1_listener","StepInnerWallsComponent_ng_container_0_ng_container_2_div_3_div_4_Template_div_click_7_listener","StepInnerWallsComponent_ng_container_0_ng_container_2_div_3_div_5_Template_app_isomasters_button_modularClick_1_listener","StepInnerWallsComponent_ng_container_0_ng_container_2_div_3_div_5_Template_div_click_7_listener","canUseThreeway","StepInnerWallsComponent_ng_container_0_ng_container_2_div_3_div_4_Template","StepInnerWallsComponent_ng_container_0_ng_container_2_div_3_div_5_Template","showInnerWallOption","StepInnerWallsComponent_ng_container_0_ng_container_2_div_1_Template","StepInnerWallsComponent_ng_container_0_ng_container_2_div_2_Template","StepInnerWallsComponent_ng_container_0_ng_container_2_div_3_Template","selectedWallIsInner","StepInnerWallsComponent_ng_container_0_div_1_Template","StepInnerWallsComponent_ng_container_0_ng_container_2_Template","openingQuestion","mirrored","rotated","updateSlider","space","StepInnerWallsComponent_Query","StepInnerWallsComponent_ng_container_0_Template","StepInnerWallsComponent_ng_template_1_Template","noInnerWallsAllowed_r6","purposes","setPurpose","StepOneComponent_Template","StepOneComponent_Template_app_isomasters_button_modularClick_4_listener","StepOneComponent_Template_app_isomasters_button_modularClick_8_listener","ɵɵtextInterpolate3","selectedWallCaption","_externalWallFinishOptions","_internalWallFinishOptions","setCameraBasedOnInternalExternal","selectedInnerWallId","updatePricesForWallFinishes","externalWallFinishTypes","wfo","internalWallFinishTypes","allWallsHaveTheSameFinish","currentWallFinish","ewf","currentExternalWallFinish","currentInternalWallFinish","equalFinish","previousFinish","currentExternalWallFinishes","getWallFinishesWithoutFloor","slice","concat","computePriceDifferenceForWallFinishes","setupConfigForAllWalls","setupConfig","innerWallid","wallFinishUpdate","processSelectedExternalWallFinish","processSelectedInternalWallFinish","wallFinishOptions","wallFinishToUpdate","StepSixComponent_Template","StepSixComponent_div_5_Template","StepSixComponent_ng_template_6_Template","StepSixComponent_Template_app_isomasters_horizontal_viewbox_optionSelected__8_listener","StepSixComponent_div_10_Template","StepSixComponent_ng_template_11_Template","StepSixComponent_Template_app_isomasters_horizontal_viewbox_optionSelected__13_listener","specificExternalWall_r3","specificInternalWall_r4","updateValue","StepThreeSliderComponent_Template","StepThreeSliderComponent_Template_app_isomasters_slider_valueChange_2_listener","StepThreeSliderComponent_Template_app_isomasters_input_valueChange_4_listener","lengthSlider","updateLength","widthSlider","updateWidth","heightSlider","updateHeight","maxWidth","maxLength","StepThreeComponent_Query","StepThreeComponent_Template_app_step_three_slider_valueChange_6_listener","StepThreeComponent_Template_app_step_three_slider_valueChange_11_listener","StepThreeComponent_Template_app_step_three_slider_valueChange_16_listener","StepTwoComponent_div_3_Template_app_isomasters_button_modularClick_1_listener","thickness_r2","updateThickness","selectedThickness","StepTwoComponent_Template","StepTwoComponent_div_3_Template","SummaryCollisionsComponent_Template","skip","screenshotsMade","errorState","then","catch","gotoPreviousStep","SummaryContainerComponent_Template","SummaryContainerComponent_div_2_Template","SummaryContainerComponent_app_summary_price_list_8_Template","SummaryContainerComponent_app_summary_share_demo_9_Template","SummaryContainerComponent_Template_div_click_10_listener","SummaryPriceListComponent_div_12_div_1_img_2_Template","modularPrice","floorImage","SummaryPriceListComponent_div_12_div_2_img_2_Template","floorPrice","getImageForWallFinish","wallFinishPrice_r2","SummaryPriceListComponent_div_12_div_3_div_1_Template","door_r3","getDoorText","ventilationProfilesPrice","plinthsImage","SummaryPriceListComponent_div_12_div_7_img_2_Template","plinthsPrice","ceilingMoldingsPrice","airPressureEqualizerValveCount","SummaryPriceListComponent_div_12_div_9_span_6_Template","airPressureEqualizerValvePrice","uProfilesPrice","imageSrcInside","SummaryPriceListComponent_div_12_ng_container_11_img_3_Template","innerWall_r4","innerWallPrice","SummaryPriceListComponent_div_12_div_1_Template","SummaryPriceListComponent_div_12_div_2_Template","SummaryPriceListComponent_div_12_div_3_Template","SummaryPriceListComponent_div_12_div_5_Template","SummaryPriceListComponent_div_12_div_6_Template","SummaryPriceListComponent_div_12_div_7_Template","SummaryPriceListComponent_div_12_div_8_Template","SummaryPriceListComponent_div_12_div_9_Template","SummaryPriceListComponent_div_12_div_10_Template","SummaryPriceListComponent_div_12_ng_container_11_Template","wallFinishPrices","addedToCart","findPricesForEachDoor","hasCollisions","_totalPrice","getPricesForWallFinishes","priceForDoor","doorTypeToString","doorType","addToCart","demo","SummaryPriceListComponent_Template","SummaryPriceListComponent_div_11_Template","SummaryPriceListComponent_div_12_Template","SummaryPriceListComponent_div_23_Template","SummaryPriceListComponent_Template_app_isomasters_button_modularClick_24_listener","orderEmailService","share","email","encodeURIComponent","mail","remove","SummaryShareDemoComponent_Template","SummaryShareDemoComponent_div_11_Template","SummaryShareDemoComponent_div_12_Template","SummaryShareDemoComponent_Template_app_isomasters_button_modularClick_13_listener","SummaryStepComponent_a_9_Template_a_click_0_listener","gotoStep","readOnly","translateString","stepDisplayNumber","SummaryStepComponent_Template","SummaryStepComponent_a_9_Template","SummaryComponent_app_isomasters_button_13_Template_app_isomasters_button_modularClick_0_listener","loadingPDF","SummaryComponent_app_isomasters_button_14_Template_app_isomasters_button_modularClick_0_listener","create2dPlan","loading2d","SummaryComponent_app_isomasters_button_15_Template_app_isomasters_button_modularClick_0_listener","shareLink","invalidPanel_r5","collision_r6","SummaryComponent_app_summary_collisions_18_div_1_Template","SummaryComponent_app_summary_collisions_18_div_2_Template","SummaryComponent_div_69_div_1_span_15_Template","innerWall_r7","notMirrored_r8","SummaryComponent_div_69_div_1_Template","door_r9","ɵɵtextInterpolate4","SummaryComponent_div_71_span_4_Template","SummaryComponent_div_71_ng_container_20_Template","getWidthOfWall","directionToString","wallFinish_r10","innerWall_r11","pdfGenerationService","Both","floorInCoolingCell","floorInCell","translatedYesNo","floorReinforcement","selectedFloor","configurationIdExists","doorsettings","wallAndCeilingFinishes","selBox","focus","select","execCommand","doorImages","marginBetweenSteps","getCollisionsForPdf","doorsInPDF","innerWallsInPdf","wallFinishesForPdf","getFinishTitle","output","filename","download","cp","blob","downloadLink","URL","createObjectURL","parentNode","SummaryComponent_Template","SummaryComponent_img_3_Template","SummaryComponent_app_isomaster_red_loading_12_Template","SummaryComponent_app_isomasters_button_13_Template","SummaryComponent_app_isomasters_button_14_Template","SummaryComponent_app_isomasters_button_15_Template","SummaryComponent_app_summary_collisions_18_Template","SummaryComponent_div_64_Template","SummaryComponent_div_65_Template","SummaryComponent_div_66_Template","SummaryComponent_div_67_Template","SummaryComponent_div_69_Template","SummaryComponent_div_71_Template","SummaryComponent_div_73_Template","SummaryComponent_div_74_Template","SummaryComponent_ng_template_75_Template","SummaryComponent_ng_template_77_Template","noInnerWalls_r12","production","color","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}