{"version":3,"file":"main.js","mappings":"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d;AAC+D;AAChF;AACiC;;;AAqB5G,MAAM,QAAQ;;gEAAR,QAAQ;sGAAR,QAAQ;0GARR;YACL,0DAAY;YACZ,+DAAY;YACZ,+DAAe;YACf,0EAAiB;YACjB,0EAAiB;SACpB;oIAEQ,QAAQ,mBAjBjB,wEAAY;QACZ,wEAAY;QACZ,wFAAmB;QACnB,0HAA0B;QAC1B,0HAA0B;QAC1B,4GAAyB;QACzB,2KAAyC;QACzC,4HAA0B,aAGtB,0DAAY;QACZ,+DAAY,8DAEZ,0EAAiB;QACjB,0EAAiB;;;;;;;;;;;;;;;;AC9BzB,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACnD,CAAC;AAEF;;;;;;GAMG;AACH,sEAAsE;;;;;;;;;;;;;;;;;;ACjBvB;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/localization/default-missing-translation-handler.ts","./src/app/localization/localization.component.ts","./src/app/localization/localization.component.html","./src/app/shared/country-select/country-select.component.ts","./src/app/shared/country-select/country-select.component.html","./src/app/shared/pipes/mu.pipe.ts","./src/app/shared/shared.module.ts","./src/app/v2/forms/default-brochure-form/default-brochure-form.component.ts","./src/app/v2/forms/default-brochure-form/default-brochure-form.component.html","./src/app/v2/forms/default-consultation-form/default-consultation-form.component.ts","./src/app/v2/forms/default-consultation-form/default-consultation-form.component.html","./src/app/v2/forms/form-endpoint.service.ts","./src/app/v2/forms/iu-brochure-form/iu-brochure-form.component.ts","./src/app/v2/forms/iu-brochure-form/iu-brochure-form.component.html","./src/app/v2/forms/iu-consultant-form/iu-consultant-form.component.ts","./src/app/v2/forms/iu-consultant-form/iu-consultant-form.component.html","./src/app/v2/forms/lec2-brochure-form/lec2-brochure-form.component.ts","./src/app/v2/forms/lec2-brochure-form/lec2-brochure-form.component.html","./src/app/v2/forms/lec2-consultant-form/lec2-consultant-form.component.ts","./src/app/v2/forms/lec2-consultant-form/lec2-consultant-form.component.html","./src/app/v2/forms/lec2-s-series-brochure-form/lec2-s-series-brochure-form.component.ts","./src/app/v2/forms/lec2-s-series-brochure-form/lec2-s-series-brochure-form.component.html","./src/app/v2/forms/lec2-s-series-consultant-form/lec2-s-series-consultant-form.component.ts","./src/app/v2/forms/lec2-s-series-consultant-form/lec2-s-series-consultant-form.component.html","./src/app/v2/forms/lef-brochure-form/lef-brochure-form.component.ts","./src/app/v2/forms/lef-brochure-form/lef-brochure-form.component.html","./src/app/v2/forms/lef-consultant-form/lef-consultant-form.component.ts","./src/app/v2/forms/lef-consultant-form/lef-consultant-form.component.html","./src/app/v2/forms/sg2-brochure-form/sg2-brochure-form.component.ts","./src/app/v2/forms/sg2-brochure-form/sg2-brochure-form.component.html","./src/app/v2/forms/sg2-consultant-form/sg2-consultant-form.component.ts","./src/app/v2/forms/sg2-consultant-form/sg2-consultant-form.component.html","./src/app/v2/forms/success/success.component.ts","./src/app/v2/forms/success/success.component.html","./src/app/v2/forms/vf2-brochure-form/vf2-brochure-form.component.ts","./src/app/v2/forms/vf2-brochure-form/vf2-brochure-form.component.html","./src/app/v2/forms/vf2-consultant-form/vf2-consultant-form.component.ts","./src/app/v2/forms/vf2-consultant-form/vf2-consultant-form.component.html","./src/app/v2/forms/vg2-brochure-form/vg2-brochure-form.component.ts","./src/app/v2/forms/vg2-brochure-form/vg2-brochure-form.component.html","./src/app/v2/forms/vg2-consultant-form/vg2-consultant-form.component.ts","./src/app/v2/forms/vg2-consultant-form/vg2-consultant-form.component.html","./src/app/v2/forms/xt-brochure-form/xt-brochure-form.component.ts","./src/app/v2/forms/xt-brochure-form/xt-brochure-form.component.html","./src/app/v2/forms/xt-consultant-form/xt-consultant-form.component.ts","./src/app/v2/forms/xt-consultant-form/xt-consultant-form.component.html","./src/app/v2/iu-1000f/iu1000f.component.ts","./src/app/v2/iu-1000f/iu1000f.component.html","./src/app/v2/lec2-640/lec2640.component.ts","./src/app/v2/lec2-640/lec2640.component.html","./src/app/v2/lec2-s-series/lec2-s-series.component.ts","./src/app/v2/lec2-s-series/lec2-s-series.component.html","./src/app/v2/lef2-300/lef2300.component.ts","./src/app/v2/lef2-300/lef2300.component.html","./src/app/v2/sg2/sg2.component.ts","./src/app/v2/sg2/sg2.component.html","./src/app/v2/truevis-vg2/truevis-vg2.component.ts","./src/app/v2/truevis-vg2/truevis-vg2.component.html","./src/app/v2/unity-loader/unity-loader.component.ts","./src/app/v2/unity-loader/unity-loader.component.html","./src/app/v2/v2-routing.module.ts","./src/app/v2/v2.module.ts","./src/app/v2/vf2-640/vf2640.component.ts","./src/app/v2/vf2-640/vf2640.component.html","./src/app/v2/xt-640s/xt640s.component.ts","./src/app/v2/xt-640s/xt640s.component.html","./src/app/v3/experiences/sg3/sg3.component.ts","./src/app/v3/experiences/sg3/sg3.component.html","./src/app/v3/experiences/vg3/vg3.component.ts","./src/app/v3/experiences/vg3/vg3.component.html","./src/app/v3/shared/augmented-reality/augmented-reality.component.ts","./src/app/v3/shared/augmented-reality/augmented-reality.component.html","./src/app/v3/shared/dimensions/dimension.ts","./src/app/v3/shared/dimensions/dimensions.service.ts","./src/app/v3/shared/effects/screen-door-shader.service.ts","./src/app/v3/shared/experience/experience-augmented-reality-button/augmented-reality.service.ts","./src/app/v3/shared/experience/experience-augmented-reality-button/experience-augmented-reality-button.component.ts","./src/app/v3/shared/experience/experience-augmented-reality-button/experience-augmented-reality-button.component.html","./src/app/v3/shared/experience/experience-content/experience-content.component.ts","./src/app/v3/shared/experience/experience-content/experience-content.component.html","./src/app/v3/shared/experience/experience-loading/experience-loading.component.ts","./src/app/v3/shared/experience/experience-loading/experience-loading.component.html","./src/app/v3/shared/experience/experience-manager.service.ts","./src/app/v3/shared/experience/experience-nav-item/experience-nav-item.component.ts","./src/app/v3/shared/experience/experience-nav-item/experience-nav-item.component.html","./src/app/v3/shared/experience/experience-nav.service.ts","./src/app/v3/shared/experience/experience.component.ts","./src/app/v3/shared/experience/experience.component.html","./src/app/v3/shared/experience/models/experience-animation.ts","./src/app/v3/shared/experience/models/experience-content-type.ts","./src/app/v3/shared/experience/models/experience-content.ts","./src/app/v3/shared/experience/models/experience-hotspot.ts","./src/app/v3/shared/experience/models/experience-light-type.ts","./src/app/v3/shared/experience/models/experience-light.ts","./src/app/v3/shared/experience/models/experience-model.ts","./src/app/v3/shared/experience/models/experience-page.ts","./src/app/v3/shared/experience/models/experience-panel-type.ts","./src/app/v3/shared/experience/models/experience-texture-swap.ts","./src/app/v3/shared/experience/models/experience.ts","./src/app/v3/shared/file-loader.service.ts","./src/app/v3/shared/model-animation.ts","./src/app/v3/shared/model-loader.service.ts","./src/app/v3/shared/scene.service.ts","./src/app/v3/shared/texture-data.ts","./src/app/v3/shared/texture-loader.service.ts","./src/app/v3/v3-routing.module.ts","./src/app/v3/v3.module.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/i18n-iso-countries/langs|lazy|/^/.*/.json$/|groupOptions: {}|strict namespace object","./node_modules/i18n-iso-countries/langs|sync|/^/.*/.json$"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nconst routes: Routes = [\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n})\r\nexport class AppComponent {\r\n title = 'roland-dg-printers';\r\n}\r\n","\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { V2Module } from './v2/v2.module';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { V3Module } from './v3/v3.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n SharedModule,\r\n V2Module,\r\n V3Module,\r\n BrowserAnimationsModule,\r\n NgbModule\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\r\n\r\n","import {MissingTranslationHandler, MissingTranslationHandlerParams} from '@ngx-translate/core';\r\n\r\nexport class DefaultMissingTranslationHandler implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n return `***Missing Translation : ${params.key}****`;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-localization',\r\n templateUrl: './localization.component.html',\r\n styleUrls: ['./localization.component.sass']\r\n})\r\nexport class LocalizationComponent {\r\n\r\n selectedLanguage: string;\r\n languages: string[] = [\r\n 'en',\r\n 'fr',\r\n 'de'\r\n ];\r\n private translateService: TranslateService;\r\n\r\n selectedLanguageChanged(value: string): void {\r\n console.log(value);\r\n this.selectedLanguage = value;\r\n this.translateService.use(value);\r\n }\r\n\r\n constructor(translateService: TranslateService) {\r\n this.translateService = translateService;\r\n this.selectedLanguage = this.translateService.currentLang;\r\n }\r\n}\r\n\r\n","
\r\n \r\n
\r\n","import { AfterViewInit, Component, forwardRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { I18nCountrySelectComponent } from \"ngx-i18n-country-select\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { environment } from \"../../../environments/environment\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\nconst CUSTOM_VALUE_ACCESSOR: any = {\r\n provide : NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CountrySelectComponent),\r\n multi : true,\r\n};\r\n@Component({\r\n selector: 'app-country-select',\r\n templateUrl: './country-select.component.html',\r\n styleUrls: ['./country-select.component.sass'],\r\n providers: [CUSTOM_VALUE_ACCESSOR]\r\n})\r\nexport class CountrySelectComponent implements ControlValueAccessor, AfterViewInit {\r\n\r\n @ViewChild('input') input: I18nCountrySelectComponent;\r\n\r\n public enCountry: string;\r\n public country: string;\r\n private disabled: boolean;\r\n private onChange: Function;\r\n private onTouched: Function;\r\n\r\n constructor(private translateService: TranslateService, private http: HttpClient) {\r\n this.onChange = (_: any) => {};\r\n this.onTouched = () => {};\r\n this.disabled = false;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.translateService.get('Please Select').subscribe(val => {\r\n this.input.defaultLabel = val;\r\n });\r\n this.input.editable = false;\r\n\r\n this.http.get('/api/v1/configure-form/countries')\r\n .subscribe((response: string[]) =>\r\n {\r\n if (!response) {\r\n this.input.editable = false;\r\n return;\r\n }\r\n this.input.editable = true;\r\n this.input.items = this.input.items.filter(y => response.includes(y.value));\r\n });\r\n }\r\n\r\n public isActive(value: string): boolean {\r\n return value === this.country;\r\n }\r\n\r\n public setCountry(value: string): void {\r\n this.country = value;\r\n this.onChange(this.country);\r\n this.onTouched();\r\n }\r\n\r\n registerOnChange(fn: any): void{\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n change(value: string) {\r\n if (value === null)\r\n {\r\n value = undefined;\r\n this.input.iso3166Alpha2 = undefined;\r\n }\r\n this.country = value;\r\n this.onChange(this.country);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n }\r\n}\r\n","\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'mu' })\r\nexport class MuPipe implements PipeTransform {\r\n transform(input: string): string {\r\n return input\r\n .replace(/Μ/, 'μ'); // Replace the Greek capital Μ with the Greek lower case μ\r\n }\r\n}\r\n","import { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, LOCALE_ID, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MissingTranslationHandler, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { DefaultMissingTranslationHandler } from '../localization/default-missing-translation-handler';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { LocalizationComponent } from '../localization/localization.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { QRCodeModule } from 'angularx-qrcode';\r\nimport { I18nCountrySelectModule, I18nCountrySelectService } from \"ngx-i18n-country-select\";\r\nimport { CountrySelectComponent } from './country-select/country-select.component';\r\nimport { MuPipe } from './pipes/mu.pipe';\r\n\r\nvar countries = require(\"i18n-iso-countries\");\r\n\r\n@NgModule({\r\n declarations: [LocalizationComponent, CountrySelectComponent, MuPipe],\r\n exports: [\r\n FormsModule,\r\n TranslateModule,\r\n LocalizationComponent,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n RouterModule,\r\n QRCodeModule,\r\n ReactiveFormsModule,\r\n I18nCountrySelectModule,\r\n CountrySelectComponent,\r\n MuPipe\r\n ],\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n BrowserAnimationsModule,\r\n TranslateModule.forRoot({\r\n defaultLanguage: 'en',\r\n missingTranslationHandler: { provide: MissingTranslationHandler, useClass: DefaultMissingTranslationHandler },\r\n useDefaultLang: false,\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n }\r\n }),\r\n I18nCountrySelectModule,\r\n RouterModule,\r\n QRCodeModule,\r\n ReactiveFormsModule\r\n ],\r\n providers: [\r\n { provide: LOCALE_ID, useValue: 'en-GB' },\r\n I18nCountrySelectService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: setUpI18nCountrySelect,\r\n deps: [TranslateService, I18nCountrySelectService],\r\n multi: true\r\n }\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SharedModule {\r\n constructor(translateService: TranslateService, countrySelectService: I18nCountrySelectService) {\r\n const browserLang = translateService.getBrowserLang();\r\n console.log(`Browser Language: ${browserLang}`);\r\n countries.registerLocale(require(`i18n-iso-countries/langs/${browserLang.match(/en|fr|de|es|it|hu|nl|pl|pt|ru|tr/) ? browserLang : 'en'}.json`))\r\n translateService.use(browserLang.match(/en|fr|de|es|it|hu|nl|pl|pt|ru|tr/) ? browserLang : 'en');\r\n countrySelectService.use([browserLang.match(/en|fr|de|es|it|hu|nl|pl|pt|ru|tr/) ? browserLang : 'en']);\r\n }\r\n\r\n}\r\n\r\nexport function setUpI18nCountrySelect(translateService: TranslateService, countrySelectService: I18nCountrySelectService) {\r\n return () => {\r\n const browserLang = translateService.getBrowserLang();\r\n countrySelectService.use([browserLang.match(/en|fr|de|es|it|hu|nl|pl|pt|ru|tr/) ? browserLang : 'en'])\r\n };\r\n}\r\n\r\nexport function createTranslateLoader(http: HttpClient): TranslateHttpLoader {\r\n console.log('in createTranslateLoader');\r\n return new TranslateHttpLoader(http, '/assets/i18n/', '.json');\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nconst countries = require(\"i18n-iso-countries\");\r\n\r\n@Component({\r\n selector: 'app-default-brochure-form',\r\n templateUrl: './default-brochure-form.component.html',\r\n styleUrls: ['./default-brochure-form.component.sass']\r\n})\r\nexport class DefaultBrochureFormComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n public brochureForm: FormGroup;\r\n\r\n @ViewChild('form') form: ElementRef;\r\n\r\n\r\n public get firstName() : AbstractControl {\r\n return this.brochureForm.get('firstName');\r\n }\r\n public get lastName() : AbstractControl {\r\n return this.brochureForm.get('lastName');\r\n }\r\n public get email() : AbstractControl {\r\n return this.brochureForm.get('email');\r\n }\r\n public get company() : AbstractControl {\r\n return this.brochureForm.get('company');\r\n }\r\n public get country() : AbstractControl {\r\n return this.brochureForm.get('country');\r\n }\r\n\r\n\r\n constructor(private activatedRoute: ActivatedRoute, public formEndpointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n const htmlTag = document.getElementById('root-html');\r\n htmlTag.className = 'v2';\r\n\r\n this.brochureForm = new FormGroup({\r\n firstName: new FormControl('', [\r\n Validators.required\r\n ]),\r\n lastName: new FormControl('', [\r\n Validators.required\r\n ]),\r\n email: new FormControl('', [\r\n Validators.required,\r\n Validators.email\r\n ]),\r\n company: new FormControl('', [\r\n Validators.required\r\n ]),\r\n country: new FormControl('', [\r\n Validators.required\r\n ]),\r\n\r\n })\r\n countries.registerLocale(require(\"i18n-iso-countries/langs/en.json\"));\r\n\r\n if (this.activatedRoute.snapshot.queryParams['errors'])\r\n {\r\n //Pardot's error messaging is nigh on useless, so we validate locally and if we get this, just display an error page\r\n console.log('error!');\r\n }\r\n }\r\n\r\n getCountry(country: string): string {\r\n const result = countries.getName(country, 'en', {select: \"official\"});\r\n this.country.setValue(result);\r\n if (result === undefined) return null;\r\n\r\n return result;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n console.log(this.formEndpointService.formEndpoint.value);\r\n }\r\n\r\n submit(): void {\r\n if (this.brochureForm.valid)\r\n {\r\n this.form.nativeElement.submit();\r\n }\r\n else {\r\n this.validateAllFormFields(this.brochureForm);\r\n }\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup): void {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n

{{'First Name is required' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'Last Name is required' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'Email is required' | translate}}

\r\n

{{'Email must be a valid email address' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'Company is required' | translate}}

\r\n
\r\n
\r\n \r\n \r\n \r\n

{{'Country is required' | translate}}

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nconst countries = require(\"i18n-iso-countries\");\r\n\r\n@Component({\r\n selector: 'app-default-consultation-form',\r\n templateUrl: './default-consultation-form.component.html',\r\n styleUrls: ['./default-consultation-form.component.sass']\r\n})\r\nexport class DefaultConsultationFormComponent implements OnInit {\r\n public consultationForm: FormGroup;\r\n @ViewChild('form') form: ElementRef;\r\n\r\n constructor(private activatedRoute: ActivatedRoute, public formEndpointService: FormEndpointService) {\r\n }\r\n\r\n public get firstName() : AbstractControl {\r\n return this.consultationForm.get('firstName');\r\n }\r\n public get lastName() : AbstractControl {\r\n return this.consultationForm.get('lastName');\r\n }\r\n public get email() : AbstractControl {\r\n return this.consultationForm.get('email');\r\n }\r\n public get phoneNumber() : AbstractControl {\r\n return this.consultationForm.get('phoneNumber');\r\n }\r\n public get company() : AbstractControl {\r\n return this.consultationForm.get('company');\r\n }\r\n public get country() : AbstractControl {\r\n return this.consultationForm.get('country');\r\n }\r\n public get address() : AbstractControl {\r\n return this.consultationForm.get('address');\r\n }\r\n public get postcode() : AbstractControl {\r\n return this.consultationForm.get('postcode');\r\n }\r\n public get jobPosition() : AbstractControl {\r\n return this.consultationForm.get('jobPosition');\r\n }\r\n public get industry() : AbstractControl {\r\n return this.consultationForm.get('industry');\r\n }\r\n ngOnInit(): void {\r\n const htmlTag = document.getElementById('root-html');\r\n htmlTag.className = 'v2';\r\n\r\n countries.registerLocale(require(\"i18n-iso-countries/langs/en.json\"));\r\n\r\n if (this.activatedRoute.snapshot.queryParams['errors']) {\r\n //Pardot's error messaging is nigh on useless, so we validate locally and if we get this, just display an error page\r\n console.log('error!');\r\n }\r\n\r\n this.consultationForm = new FormGroup({\r\n firstName: new FormControl('', [\r\n Validators.required\r\n ]),\r\n lastName: new FormControl('', [\r\n Validators.required\r\n ]),\r\n email: new FormControl('', [\r\n Validators.required,\r\n Validators.email\r\n ]),\r\n phoneNumber: new FormControl('', [\r\n Validators.required,\r\n Validators.min(6),\r\n Validators.pattern('[- +()0-9]+')\r\n ]),\r\n company: new FormControl('', [\r\n Validators.required\r\n ]),\r\n country: new FormControl('', [\r\n Validators.required\r\n ]),\r\n address: new FormControl('', [\r\n Validators.required\r\n ]),\r\n postcode: new FormControl('', [\r\n Validators.required\r\n ]),\r\n jobPosition: new FormControl('', [\r\n Validators.required\r\n ]),\r\n industry: new FormControl('', [\r\n Validators.required\r\n ]),\r\n })\r\n }\r\n\r\n getCountry(country: string): string {\r\n const result = countries.getName(country, 'en', {select: \"official\"});\r\n this.country.setValue(result);\r\n if (result === undefined) return null;\r\n\r\n return result;\r\n }\r\n\r\n submit(): void {\r\n if (this.consultationForm.valid)\r\n {\r\n this.form.nativeElement.submit();\r\n }\r\n else {\r\n this.validateAllFormFields(this.consultationForm);\r\n }\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup): void {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n onIndustryChange(): void {\r\n\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n \r\n

{{'First Name is required' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'Last Name is required' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'Email is required' | translate}}

\r\n

{{'Email must be a valid email address' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'Phone Number is required' | translate}}

\r\n

{{'Phone Number must be a valid phone number' | translate}}

\r\n

{{'Phone Number must be a valid phone number' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'Company is required' | translate}}

\r\n
\r\n
\r\n \r\n \r\n \r\n

{{'Country is required' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'Address is required' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'Postcode is required' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'Job Position is required' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'Industry is required' | translate}}

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormEndpointService {\r\n\r\n public formEndpoint = new BehaviorSubject('');\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-iu-brochure-form',\r\n templateUrl: './iu-brochure-form.component.html',\r\n styleUrls: ['./iu-brochure-form.component.sass']\r\n})\r\nexport class IuBrochureFormComponent implements OnInit {\r\n\r\n constructor(private formEndPointService: FormEndpointService) { }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-05-28/rrr76');\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-iu-consultant-form',\r\n templateUrl: './iu-consultant-form.component.html',\r\n styleUrls: ['./iu-consultant-form.component.sass']\r\n})\r\nexport class IuConsultantFormComponent implements OnInit {\r\n\r\n constructor(private formEndPointService: FormEndpointService) { }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-05-28/rrr6v');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-lec2-brochure-form',\r\n templateUrl: './lec2-brochure-form.component.html',\r\n styleUrls: ['./lec2-brochure-form.component.sass']\r\n})\r\nexport class Lec2BrochureFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-24/sc9ht');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-lec2-consultant-form',\r\n templateUrl: './lec2-consultant-form.component.html',\r\n styleUrls: ['./lec2-consultant-form.component.sass']\r\n})\r\nexport class Lec2ConsultantFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-24/sc9hr');\r\n }\r\n}\r\n\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-lec2-s-series-brochure-form',\r\n templateUrl: './lec2-s-series-brochure-form.component.html',\r\n styleUrls: ['./lec2-s-series-brochure-form.component.sass']\r\n})\r\nexport class Lec2SSeriesBrochureFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-05-28/rrr7b');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-lec2-s-series-consultant-form',\r\n templateUrl: './lec2-s-series-consultant-form.component.html',\r\n styleUrls: ['./lec2-s-series-consultant-form.component.sass']\r\n})\r\nexport class Lec2SSeriesConsultantFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-02/rsk8g');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\nvar countries = require(\"i18n-iso-countries\");\r\n\r\n@Component({\r\n selector: 'app-lef-form',\r\n templateUrl: './lef-brochure-form.component.html',\r\n styleUrls: ['./lef-brochure-form.component.sass']\r\n})\r\nexport class LefBrochureFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-03/rtmmq');\r\n }\r\n}\r\n","\r\n","import {\r\n AfterContentChecked,\r\n AfterViewChecked,\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\nconst countries = require(\"i18n-iso-countries\");\r\n\r\n@Component({\r\n selector: 'app-lef-consultant-form',\r\n templateUrl: './lef-consultant-form.component.html',\r\n styleUrls: ['./lef-consultant-form.component.sass']\r\n})\r\nexport class LefConsultantFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-03-23/qgjk2');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-sg2-brochure-form',\r\n templateUrl: './sg2-brochure-form.component.html',\r\n styleUrls: ['./sg2-brochure-form.component.sass']\r\n})\r\nexport class Sg2BrochureFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-02/rsjzz');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-sg2-consultant-form',\r\n templateUrl: './sg2-consultant-form.component.html',\r\n styleUrls: ['./sg2-consultant-form.component.sass']\r\n})\r\nexport class Sg2ConsultantFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-02/rsk14');\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-success',\r\n templateUrl: './success.component.html',\r\n styleUrls: ['./success.component.sass']\r\n})\r\nexport class SuccessComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n const htmlTag = document.getElementById('root-html');\r\n htmlTag.className = 'v2';\r\n }\r\n\r\n}\r\n","
\r\n

{{'Thank-you!' | translate}}

\r\n

{{'Your request has been submitted' | translate}}

\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-vf2-brochure-form',\r\n templateUrl: './vf2-brochure-form.component.html',\r\n styleUrls: ['./vf2-brochure-form.component.sass']\r\n})\r\nexport class Vf2BrochureFormComponent implements OnInit {\r\n\r\n constructor(private formEndPointService: FormEndpointService) { }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-02/rsk3g');\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-vf2-consultant-form',\r\n templateUrl: './vf2-consultant-form.component.html',\r\n styleUrls: ['./vf2-consultant-form.component.sass']\r\n})\r\nexport class Vf2ConsultantFormComponent implements OnInit {\r\n\r\n constructor(private formEndPointService: FormEndpointService) { }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-01/rsd76');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-vg2-brochure-form',\r\n templateUrl: './vg2-brochure-form.component.html',\r\n styleUrls: ['./vg2-brochure-form.component.sass']\r\n})\r\nexport class Vg2BrochureFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-01/rs8kl');\r\n }\r\n}\r\n","\r\n","import { AfterContentChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-vg2-consultant-form',\r\n templateUrl: './vg2-consultant-form.component.html',\r\n styleUrls: ['./vg2-consultant-form.component.sass']\r\n})\r\nexport class Vg2ConsultantFormComponent implements OnInit {\r\n\r\n @ViewChild('printerModel') printerModel: ElementRef\r\n\r\n constructor(private formEndPointService: FormEndpointService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-01/rs888');\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-xt-brochure-form',\r\n templateUrl: './xt-brochure-form.component.html',\r\n styleUrls: ['./xt-brochure-form.component.sass']\r\n})\r\nexport class XtBrochureFormComponent implements OnInit {\r\n\r\n constructor(private formEndPointService: FormEndpointService) { }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-01/rs85x');\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormEndpointService } from '../form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-xt-consultant-form',\r\n templateUrl: './xt-consultant-form.component.html',\r\n styleUrls: ['./xt-consultant-form.component.sass']\r\n})\r\nexport class XtConsultantFormComponent implements OnInit {\r\n\r\n constructor(private formEndPointService: FormEndpointService) { }\r\n\r\n ngOnInit(): void {\r\n this.formEndPointService.formEndpoint.next('https://go.rolanddg.eu/l/181922/2021-06-01/rs87d');\r\n }\r\n}\r\n","\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-iu-1000f',\r\n templateUrl: './iu1000f.component.html',\r\n styleUrls: ['./iu1000f.component.sass']\r\n})\r\nexport class Iu1000fComponent implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-lec2640',\r\n templateUrl: './lec2640.component.html',\r\n styleUrls: ['./lec2640.component.sass']\r\n})\r\nexport class Lec2640Component implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-lec2-s-series',\r\n templateUrl: './lec2-s-series.component.html',\r\n styleUrls: ['./lec2-s-series.component.sass']\r\n})\r\nexport class Lec2SSeriesComponent implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-lef',\r\n templateUrl: './lef2300.component.html',\r\n styleUrls: ['./lef2300.component.sass']\r\n})\r\nexport class LefComponent implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-sg2',\r\n templateUrl: './sg2.component.html',\r\n styleUrls: ['./sg2.component.sass']\r\n})\r\nexport class Sg2Component implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-truevis-vg2',\r\n templateUrl: './truevis-vg2.component.html',\r\n styleUrls: ['./truevis-vg2.component.sass']\r\n})\r\nexport class TruevisVg2Component implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, HostListener, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\ndeclare var createUnityInstance: any;\r\n\r\n@Component({\r\n selector: 'app-unity-loader',\r\n templateUrl: './unity-loader.component.html',\r\n styleUrls: ['./unity-loader.component.sass']\r\n})\r\nexport class UnityLoaderComponent implements OnInit, AfterViewInit {\r\n\r\n @Input('iosARModel') public iosArModel: string;\r\n @Input('androidARModel') public androidARModel: string;\r\n @Input('modelName') public modelName: string;\r\n @Input('sceneName') public sceneName: string;\r\n @ViewChild('loadingCover') public loadingCover: ElementRef;\r\n @ViewChild('iosARLink') public iosARLink: ElementRef;\r\n @ViewChild('androidARLink') public androidARLink: ElementRef;\r\n\r\n private gameObjectName: string = 'ExternalSettingsHandler'\r\n private startingY: number;\r\n\r\n\r\n\r\n constructor(private activatedRoute: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private httpClient: HttpClient,\r\n private renderer: Renderer2,\r\n private sanitizer: DomSanitizer) {\r\n }\r\n\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: Event) {\r\n const canvas = document.querySelector(\"#unity-canvas\") as HTMLCanvasElement;\r\n this.resizeUnity(canvas);\r\n }\r\n\r\n ngOnInit(): void {\r\n const htmlTag = document.getElementById('root-html');\r\n htmlTag.className = 'v2';\r\n\r\n if (this.activatedRoute.snapshot.data.ar === true) {\r\n return;\r\n }\r\n\r\n (window as any).sendLoadProgress = (progress: number) => this.sendLoadProgress(progress);\r\n (window as any).unityLoadComplete = () => this.unityLoadComplete();\r\n (window as any).openAr = () => this.openAr();\r\n (window as any).redirectToProductPage = () => this.redirectToProductPage();\r\n //Fetch the config, then load\r\n this.httpClient.get(\"/api/v1/configuration\").subscribe((result: any) => {\r\n const hideFullScreenButton = \"TRUE\";\r\n const buildUrl = `${result.blobStorageLocation}/unity`;\r\n const loaderUrl = buildUrl + \"/roland-unity-web-experience.loader.js\";\r\n const config = {\r\n dataUrl: buildUrl + \"/roland-unity-web-experience.data.unityweb\",\r\n frameworkUrl: buildUrl + \"/roland-unity-web-experience.framework.js.unityweb\",\r\n codeUrl: buildUrl + \"/roland-unity-web-experience.wasm.unityweb\",\r\n streamingAssetsUrl: buildUrl + \"/StreamingAssets\",\r\n companyName: \"Phygital Ltd\",\r\n productName: \"Roland Web Experience\",\r\n productVersion: \"0.6.4\",\r\n devicePixelRatio: undefined\r\n };\r\n\r\n const container = document.querySelector(\"#unity-container\") as HTMLDivElement;\r\n const canvas = document.querySelector(\"#unity-canvas\") as HTMLCanvasElement;\r\n const fullscreenButton = document.querySelector(\"#unity-fullscreen-button\") as HTMLButtonElement;\r\n\r\n const canFullscreen = (function () {\r\n for (const key of [\r\n 'exitFullscreen',\r\n 'webkitExitFullscreen',\r\n 'webkitCancelFullScreen',\r\n 'mozCancelFullScreen',\r\n 'msExitFullscreen',\r\n ]) {\r\n if (key in document) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }());\r\n\r\n if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {\r\n container.className = \"unity-mobile\";\r\n config.devicePixelRatio = 1;\r\n }\r\n\r\n const script = document.createElement(\"script\");\r\n script.src = loaderUrl;\r\n script.onload = () => {\r\n const fill = document.querySelector(\".fill\") as SVGRectElement;\r\n const fillHeight = fill.height.baseVal.value;\r\n this.startingY = fill.y.baseVal.value;\r\n if (this.startingY == 0) this.startingY = 58;\r\n this.startingY = this.startingY + fillHeight;\r\n createUnityInstance(canvas, config, (progress) => {\r\n console.log(progress);\r\n\r\n if (progress === 1) {\r\n this.resizeUnity(canvas);\r\n const newY = this.startingY - (fillHeight * (progress * 0.25));\r\n fill.setAttribute(\"y\", newY.toString());\r\n } else {\r\n const newY = this.startingY - (fillHeight * (progress * 0.25));\r\n fill.setAttribute(\"y\", newY.toString());\r\n }\r\n\r\n }).then((unityInstance) => {\r\n\r\n if (canFullscreen) {\r\n if (!hideFullScreenButton) {\r\n fullscreenButton.style.display = \"\";\r\n }\r\n fullscreenButton.onclick = () => {\r\n unityInstance.SetFullscreen(1);\r\n };\r\n }\r\n\r\n let lang = this.translateService.currentLang;\r\n if (lang.length > 2) lang = lang.substring(0, 2);\r\n\r\n const isMobile = (/Mobi|Android/i.test(navigator.userAgent));\r\n console.log(`Sending Message ImportCultureCode ${lang}`);\r\n unityInstance.SendMessage(this.gameObjectName, 'ImportCultureCode', lang);\r\n console.log(`Sending Message ImportMobileStatus ${isMobile}`);\r\n unityInstance.SendMessage(this.gameObjectName, 'ImportMobileStatus', isMobile.toString());\r\n console.log(`Sending Message ImportExperienceName ${this.sceneName}`);\r\n unityInstance.SendMessage(this.gameObjectName, 'ImportExperienceName', this.sceneName);\r\n\r\n const arUrl = encodeURIComponent(`${window.location}/ar`);\r\n const importArUrl = `${this.getRootDomain()}/api/v1.0/qrcode?url=${arUrl}`;\r\n console.log(`Sending Message ImportARUrl ${importArUrl}`);\r\n\r\n unityInstance.SendMessage(this.gameObjectName, 'ImportARUrl', importArUrl);\r\n\r\n }).catch((message) => {\r\n alert(message);\r\n });\r\n };\r\n document.body.appendChild(script);\r\n })\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.activatedRoute.snapshot.data.ar === true) {\r\n this.openAr();\r\n if (/Android/i.test(navigator.userAgent)) {\r\n this.renderer.addClass(this.loadingCover.nativeElement, 'hide');\r\n const canvas = document.querySelector(\"#unity-canvas\") as HTMLCanvasElement;\r\n this.renderer.addClass(canvas, 'hide');\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n private sendLoadProgress(progress: number): void {\r\n console.log(progress);\r\n const fill = document.querySelector(\".fill\") as SVGRectElement;\r\n const fillHeight = fill.height.baseVal.value;\r\n const newY = this.startingY - (fillHeight * 0.25) - (fillHeight * (progress * 0.75));\r\n fill.setAttribute(\"y\", newY.toString());\r\n }\r\n\r\n private unityLoadComplete(): void {\r\n console.log('done!');\r\n this.renderer.addClass(this.loadingCover.nativeElement, 'hide');\r\n const fill = document.querySelector(\".fill\") as SVGRectElement;\r\n const fillHeight = fill.height.baseVal.value;\r\n const newY = this.startingY - fillHeight;\r\n fill.setAttribute(\"y\", newY.toString());\r\n }\r\n\r\n\r\n private resizeUnity(canvas: HTMLCanvasElement): void {\r\n let w = (window as any);\r\n if (w.visualViewport !== undefined) {\r\n canvas.width = w.visualViewport.width;\r\n canvas.height = w.visualViewport.height;\r\n console.log(`resized VVP ${canvas.width} ${canvas.height}`);\r\n } else {\r\n canvas.width = window.innerWidth;\r\n canvas.height = window.innerHeight;\r\n console.log(`resized ${canvas.width} ${canvas.height}`);\r\n }\r\n }\r\n\r\n private redirectToProductPage(): void {\r\n this.translateService.get(`${this.sceneName} Product Page`).subscribe(y =>\r\n {\r\n window.top.location.href = y;\r\n })\r\n }\r\n\r\n public getRootDomain(): string {\r\n return window.location.origin;\r\n }\r\n\r\n public getIoSModelUrl(): string {\r\n return `${this.getRootDomain()}/assets/models/${this.iosArModel}#allowsContentScaling=0#canonicalWebPageURL=${window.location.href.replace('/ar', '')}`;\r\n }\r\n\r\n public getAndroidModelIntentUrl(): SafeResourceUrl {\r\n const fileUrl = `${this.getRootDomain()}/assets/models/${this.androidARModel}`\r\n const fallbackUrl = `https://arvr.google.com/scene-viewer?file=${encodeURIComponent(fileUrl)}&mode=ar_only&resizable=false&link=${window.location.href.replace('/ar', '')}`\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(`intent://arvr.google.com/scene-viewer/1.0?file=${fileUrl}&mode=ar_only&resizable=false&link=${window.location.href.replace('/ar', '')}#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;S.browser_fallback_url=${fallbackUrl};end;`);\r\n //return `intent://arvr.google.com/scene-viewer/1.0?file=${fileUrl}&mode=ar_only&title=${this.modelName}&resizable=false#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;S.browser_fallback_url=https://developers.google.com/ar;end;`;\r\n }\r\n\r\n public openAr() {\r\n if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {\r\n if (this.iosARLink.nativeElement.relList.supports('ar')) {\r\n this.iosARLink.nativeElement.click();\r\n } else {\r\n this.androidARLink.nativeElement.click();\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\"Roland\"
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'StickerShop' | translate}}

\r\n

{{'Peak UK' | translate}}

\r\n

{{'Taymory' | translate}}

\r\n

{{'The Binary Box' | translate}}

\r\n
\r\n
\r\n

\"{{'Because we deal with such high volumes, the reliability and build quality of the Roland printers is just what we need' | translate}}\"

\r\n

\"{{'the best thing about the Roland DG machine is that it offers complete flexibility' | translate}}\"

\r\n

\"{{'Working with Roland gives us great flexibility' | translate}}\"

\r\n

\"{{'It offers vibrancy and quality of print, great reliability and sleek design and build quality Its a workhorse that always delivers' | translate}}\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n\r\n","import { RouterModule } from '@angular/router';\r\nimport { TruevisVg2Component } from './truevis-vg2/truevis-vg2.component';\r\nimport { SuccessComponent } from './forms/success/success.component';\r\nimport { LefBrochureFormComponent } from './forms/lef-brochure-form/lef-brochure-form.component';\r\nimport { LefConsultantFormComponent } from './forms/lef-consultant-form/lef-consultant-form.component';\r\nimport { Iu1000fComponent } from './iu-1000f/iu1000f.component';\r\nimport { Lec2640Component } from './lec2-640/lec2640.component';\r\nimport { Lec2SSeriesComponent } from './lec2-s-series/lec2-s-series.component';\r\nimport { Sg2Component } from './sg2/sg2.component';\r\nimport { Vf2640Component } from './vf2-640/vf2640.component';\r\nimport { Xt640sComponent } from './xt-640s/xt640s.component';\r\nimport { LefComponent } from './lef2-300/lef2300.component';\r\nimport { Vg2BrochureFormComponent } from './forms/vg2-brochure-form/vg2-brochure-form.component';\r\nimport { Vg2ConsultantFormComponent } from './forms/vg2-consultant-form/vg2-consultant-form.component';\r\nimport { Vf2BrochureFormComponent } from './forms/vf2-brochure-form/vf2-brochure-form.component';\r\nimport { Vf2ConsultantFormComponent } from './forms/vf2-consultant-form/vf2-consultant-form.component';\r\nimport { XtConsultantFormComponent } from './forms/xt-consultant-form/xt-consultant-form.component';\r\nimport { XtBrochureFormComponent } from './forms/xt-brochure-form/xt-brochure-form.component';\r\nimport { Sg2BrochureFormComponent } from './forms/sg2-brochure-form/sg2-brochure-form.component';\r\nimport { Sg2ConsultantFormComponent } from './forms/sg2-consultant-form/sg2-consultant-form.component';\r\nimport { Lec2BrochureFormComponent } from './forms/lec2-brochure-form/lec2-brochure-form.component';\r\nimport { Lec2ConsultantFormComponent } from './forms/lec2-consultant-form/lec2-consultant-form.component';\r\nimport { IuBrochureFormComponent } from './forms/iu-brochure-form/iu-brochure-form.component';\r\nimport { IuConsultantFormComponent } from './forms/iu-consultant-form/iu-consultant-form.component';\r\nimport { Lec2SSeriesConsultantFormComponent } from './forms/lec2-s-series-consultant-form/lec2-s-series-consultant-form.component';\r\nimport { Lec2SSeriesBrochureFormComponent } from './forms/lec2-s-series-brochure-form/lec2-s-series-brochure-form.component';\r\n\r\n\r\nconst routes = [\r\n {\r\n path: 'v2/iu-1000f',\r\n component: Iu1000fComponent\r\n },\r\n {\r\n path: 'v2/iu-1000f/ar',\r\n component: Iu1000fComponent,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/lec2',\r\n component: Lec2640Component\r\n },\r\n {\r\n path: 'v2/lec2/ar',\r\n component: Lec2640Component,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/lec2-s-series',\r\n component: Lec2SSeriesComponent\r\n },\r\n {\r\n path: 'v2/lec2-s-series/ar',\r\n component: Lec2SSeriesComponent,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/versa-object-co-300',\r\n component: Lec2SSeriesComponent\r\n },\r\n {\r\n path: 'v2/versa-object-co-300/ar',\r\n component: Lec2SSeriesComponent,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/lef2',\r\n component: LefComponent,\r\n },\r\n {\r\n path: 'v2/lef2/ar',\r\n component: LefComponent,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/sg2',\r\n component: Sg2Component\r\n },\r\n {\r\n path: 'v2/sg2/ar',\r\n component: Sg2Component,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/truevis-vg2',\r\n component: TruevisVg2Component,\r\n },\r\n {\r\n path: 'v2/truevis-vg2/ar',\r\n component: TruevisVg2Component,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/vf2',\r\n component: Vf2640Component,\r\n },\r\n {\r\n path: 'v2/vf2/ar',\r\n component: Vf2640Component,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/xt-640s',\r\n component: Xt640sComponent,\r\n },\r\n {\r\n path: 'v2/xt-640s/ar',\r\n component: Xt640sComponent,\r\n data: { ar: true }\r\n },\r\n {\r\n path: 'v2/lef2/brochure',\r\n component: LefBrochureFormComponent\r\n },\r\n {\r\n path: 'v2/lef2/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/lef2/consultation',\r\n component: LefConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/lef2/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/xt-640s/brochure',\r\n component: XtBrochureFormComponent\r\n },\r\n {\r\n path: 'v2/xt-640s/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/xt-640s/consultation',\r\n component: XtConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/xt-640s/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/vf2/brochure',\r\n component: Vf2BrochureFormComponent\r\n },\r\n {\r\n path: 'v2/vf2/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/vf2/consultation',\r\n component: Vf2ConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/vf2/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/truevis-vg2/brochure',\r\n component: Vg2BrochureFormComponent\r\n },\r\n {\r\n path: 'v2/truevis-vg2/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/truevis-vg2/consultation',\r\n component: Vg2ConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/truevis-vg2/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/sg2/brochure',\r\n component: Sg2BrochureFormComponent\r\n },\r\n {\r\n path: 'v2/sg2/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/sg2/consultation',\r\n component: Sg2ConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/sg2/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/lec2-s-series/brochure',\r\n component: Lec2SSeriesBrochureFormComponent\r\n },\r\n {\r\n path: 'v2/lec2-s-series/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/lec2-s-series/consultation',\r\n component: Lec2SSeriesConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/lec2-s-series/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/versa-object-co-300/brochure',\r\n component: Lec2SSeriesBrochureFormComponent\r\n },\r\n {\r\n path: 'v2/versa-object-co-300/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/versa-object-co-300/consultation',\r\n component: Lec2SSeriesConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/lversa-object-co-300/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/lec2/brochure',\r\n component: Lec2BrochureFormComponent\r\n },\r\n {\r\n path: 'v2/lec2/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/lec2/consultation',\r\n component: Lec2ConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/lec2/consultation/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/iu-1000f/brochure',\r\n component: IuBrochureFormComponent\r\n },\r\n {\r\n path: 'v2/iu-1000f/brochure/success',\r\n component: SuccessComponent\r\n },\r\n {\r\n path: 'v2/iu-1000f/consultation',\r\n component: IuConsultantFormComponent\r\n },\r\n {\r\n path: 'v2/iu-1000f/consultation/success',\r\n component: SuccessComponent\r\n }\r\n ]\r\n;\r\nexport const v2TruevisVg2RoutingModule = RouterModule.forChild(routes);\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TruevisVg2Component } from './truevis-vg2/truevis-vg2.component';\r\nimport { v2TruevisVg2RoutingModule } from './v2-routing.module';\r\nimport { UnityLoaderComponent } from './unity-loader/unity-loader.component';\r\nimport { LefBrochureFormComponent } from './forms/lef-brochure-form/lef-brochure-form.component';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { SuccessComponent } from './forms/success/success.component';\r\nimport { LefConsultantFormComponent } from './forms/lef-consultant-form/lef-consultant-form.component';\r\nimport { Lec2SSeriesComponent } from './lec2-s-series/lec2-s-series.component';\r\nimport { Sg2Component } from './sg2/sg2.component';\r\nimport { LefComponent } from './lef2-300/lef2300.component';\r\nimport { Vf2640Component } from './vf2-640/vf2640.component';\r\nimport { Iu1000fComponent } from './iu-1000f/iu1000f.component';\r\nimport { Lec2640Component } from './lec2-640/lec2640.component';\r\nimport { Xt640sComponent } from './xt-640s/xt640s.component';\r\nimport { DefaultBrochureFormComponent } from './forms/default-brochure-form/default-brochure-form.component';\r\nimport { DefaultConsultationFormComponent } from './forms/default-consultation-form/default-consultation-form.component';\r\nimport { Vg2BrochureFormComponent } from './forms/vg2-brochure-form/vg2-brochure-form.component';\r\nimport { Vg2ConsultantFormComponent } from './forms/vg2-consultant-form/vg2-consultant-form.component';\r\nimport { XtBrochureFormComponent } from './forms/xt-brochure-form/xt-brochure-form.component';\r\nimport { XtConsultantFormComponent } from './forms/xt-consultant-form/xt-consultant-form.component';\r\nimport { Lec2BrochureFormComponent } from './forms/lec2-brochure-form/lec2-brochure-form.component';\r\nimport { Lec2ConsultantFormComponent } from './forms/lec2-consultant-form/lec2-consultant-form.component';\r\nimport { Vf2BrochureFormComponent } from './forms/vf2-brochure-form/vf2-brochure-form.component';\r\nimport { Vf2ConsultantFormComponent } from './forms/vf2-consultant-form/vf2-consultant-form.component';\r\nimport { IuBrochureFormComponent } from './forms/iu-brochure-form/iu-brochure-form.component';\r\nimport { IuConsultantFormComponent } from './forms/iu-consultant-form/iu-consultant-form.component';\r\nimport { Sg2BrochureFormComponent } from './forms/sg2-brochure-form/sg2-brochure-form.component';\r\nimport { Sg2ConsultantFormComponent } from './forms/sg2-consultant-form/sg2-consultant-form.component';\r\nimport { Lec2SSeriesBrochureFormComponent } from './forms/lec2-s-series-brochure-form/lec2-s-series-brochure-form.component';\r\nimport { Lec2SSeriesConsultantFormComponent } from './forms/lec2-s-series-consultant-form/lec2-s-series-consultant-form.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TruevisVg2Component,\r\n UnityLoaderComponent,\r\n LefComponent,\r\n LefBrochureFormComponent,\r\n SuccessComponent,\r\n LefConsultantFormComponent,\r\n Iu1000fComponent,\r\n Lec2640Component,\r\n Lec2SSeriesComponent,\r\n Sg2Component,\r\n Vf2640Component,\r\n Xt640sComponent,\r\n DefaultBrochureFormComponent,\r\n DefaultConsultationFormComponent,\r\n Vg2BrochureFormComponent,\r\n Vg2ConsultantFormComponent,\r\n XtBrochureFormComponent,\r\n XtConsultantFormComponent,\r\n Lec2BrochureFormComponent,\r\n Lec2ConsultantFormComponent,\r\n Vf2BrochureFormComponent,\r\n Vf2ConsultantFormComponent,\r\n IuBrochureFormComponent,\r\n IuConsultantFormComponent,\r\n Sg2BrochureFormComponent,\r\n Sg2ConsultantFormComponent,\r\n Lec2SSeriesBrochureFormComponent,\r\n Lec2SSeriesConsultantFormComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n v2TruevisVg2RoutingModule\r\n ]\r\n})\r\nexport class V2Module {\r\n}\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-vf2640',\r\n templateUrl: './vf2640.component.html',\r\n styleUrls: ['./vf2640.component.sass']\r\n})\r\nexport class Vf2640Component implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FormEndpointService } from '../forms/form-endpoint.service';\r\n\r\n@Component({\r\n selector: 'app-xt640s',\r\n templateUrl: './xt640s.component.html',\r\n styleUrls: ['./xt640s.component.sass']\r\n})\r\nexport class Xt640sComponent implements AfterViewInit {\r\n\r\n @ViewChild('consultation') consultation: ElementRef;\r\n @ViewChild('brochure') brochure: ElementRef;\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngAfterViewInit(): void {\r\n (window as any).openBrochureForm = () => this.openBrochure();\r\n (window as any).openMainForm = () => this.openConsultation();\r\n }\r\n\r\n private openBrochure() {\r\n this.modalService.open(this.brochure, {ariaLabelledBy: 'brochure-title', size: 'lg', scrollable: true});\r\n }\r\n\r\n private openConsultation() {\r\n this.modalService.open(this.consultation, {ariaLabelledBy: 'consultation-title', size: 'lg', scrollable: true});\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{'Request Brochure' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'Request Consultation' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { ExperienceManagerService } from '../../shared/experience/experience-manager.service';\r\nimport { ViewportRuler } from '@angular/cdk/overlay';\r\nimport { Subscription } from 'rxjs';\r\nimport { plainToInstance } from 'class-transformer';\r\nimport { Experience } from '../../shared/experience/models/experience';\r\nimport * as experience from '../../../../assets/v3/experiences/sg3.json';\r\n\r\n@Component({\r\n selector: 'app-sg3',\r\n templateUrl: './sg3.component.html',\r\n styleUrls: ['./sg3.component.sass']\r\n})\r\nexport class Sg3Component implements AfterViewInit {\r\n\r\n @ViewChild('video') video: ElementRef;\r\n\r\n constructor(private experienceService: ExperienceManagerService) { }\r\n\r\n private subscription: Subscription = new Subscription();\r\n\r\n async ngAfterViewInit(): Promise {\r\n let experienceCast = plainToInstance(Experience, experience);\r\n await this.experienceService.loadExperience(experienceCast, this.video.nativeElement);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.experienceService.onDestroy();\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n","import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport * as experience from 'src/assets/v3/experiences/vg3.json';\r\nimport { ExperienceManagerService } from '../../shared/experience/experience-manager.service';\r\nimport { Experience } from '../../shared/experience/models/experience';\r\nimport { Subscription } from 'rxjs';\r\nimport { ViewportRuler } from '@angular/cdk/overlay';\r\nimport { plainToInstance } from 'class-transformer';\r\n\r\n@Component({\r\n selector: 'app-vg3',\r\n templateUrl: './vg3.component.html',\r\n styleUrls: ['./vg3.component.sass']\r\n})\r\nexport class Vg3Component implements AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('video') video: ElementRef;\r\n\r\n constructor(private experienceService: ExperienceManagerService) { }\r\n\r\n ngOnDestroy(): void {\r\n this.experienceService.onDestroy();\r\n }\r\n\r\n async ngAfterViewInit(): Promise {\r\n let experienceCast = plainToInstance(Experience, experience);\r\n await this.experienceService.loadExperience(experienceCast, this.video.nativeElement);\r\n }\r\n}\r\n","\r\n\r\n","import { AfterViewInit, Component, ElementRef, Renderer2, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-augmented-reality',\r\n templateUrl: './augmented-reality.component.html',\r\n styleUrls: ['./augmented-reality.component.sass']\r\n})\r\nexport class AugmentedRealityComponent implements AfterViewInit {\r\n\r\n @ViewChild('iosARLink') public iosARLink: ElementRef;\r\n @ViewChild('androidARLink') public androidARLink: ElementRef;\r\n\r\n constructor(private renderer: Renderer2,\r\n private sanitizer: DomSanitizer,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute) {\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.openAr();\r\n }\r\n\r\n public getRootDomain(): string {\r\n return window.location.origin;\r\n }\r\n\r\n public getIoSModelUrl(): string {\r\n return `${this.getRootDomain()}${this.activatedRoute.snapshot.data.iosModel}#allowsContentScaling=0#canonicalWebPageURL=${window.location.href.replace('/ar', '')}`;\r\n }\r\n\r\n public getAndroidModelIntentUrl(): SafeResourceUrl {\r\n const fileUrl = `${this.getRootDomain()}${this.activatedRoute.snapshot.data.androidModel}`\r\n const fallbackUrl = `https://arvr.google.com/scene-viewer?file=${encodeURIComponent(fileUrl)}&mode=ar_only&resizable=false&link=${window.location.href.replace('/ar', '')}`\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(`intent://arvr.google.com/scene-viewer/1.0?file=${fileUrl}&mode=ar_only&resizable=false&link=${window.location.href.replace('/ar', '')}#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;S.browser_fallback_url=${fallbackUrl};end;`);\r\n }\r\n\r\n public async openAr(): Promise {\r\n if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {\r\n if (this.iosARLink.nativeElement.relList.supports('ar')) {\r\n this.iosARLink.nativeElement.click();\r\n } else {\r\n this.androidARLink.nativeElement.click();\r\n }\r\n }\r\n else {\r\n console.warn('Your device is not supported for AR');\r\n await this.router.navigateByUrl(this.activatedRoute.snapshot.data.returnUrl);\r\n }\r\n }\r\n}\r\n","\r\n \r\n\r\n\r\n","export class Dimension {\r\n public constructor(public width: number, public height: number) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Dimension } from './dimension';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DimensionsService {\r\n\r\n constructor() { }\r\n\r\n public getWindowDimensions(): Dimension {\r\n const useScreen = window.screen.width < window.innerWidth;\r\n if (useScreen) {\r\n return new Dimension(window.screen.width, window.screen.height);\r\n }\r\n return new Dimension(window.innerWidth, window.innerHeight);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {DataTexture, FloatType, LuminanceFormat, NearestFilter, RepeatWrapping, Shader, UniformsUtils} from \"three\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScreenDoorShaderService {\r\n\r\n constructor() { }\r\n\r\n public createDitherTexture() : DataTexture {\r\n const data = new Float32Array( 16 );\r\n data[ 0 ] = 0.0 / 16.0;\r\n data[ 1 ] = 8.0 / 16.0;\r\n data[ 2 ] = 2.0 / 16.0;\r\n data[ 3 ] = 10.0 / 16.0;\r\n\r\n data[ 4 ] = 12.0 / 16.0;\r\n data[ 5 ] = 4.0 / 16.0;\r\n data[ 6 ] = 14.0 / 16.0;\r\n data[ 7 ] = 6.0 / 16.0;\r\n\r\n data[ 8 ] = 3.0 / 16.0;\r\n data[ 9 ] = 11.0 / 16.0;\r\n data[ 10 ] = 1.0 / 16.0;\r\n data[ 11 ] = 9.0 / 16.0;\r\n\r\n data[ 12 ] = 15.0 / 16.0;\r\n data[ 13 ] = 9.0 / 16.0;\r\n data[ 14 ] = 13.0 / 16.0;\r\n data[ 15 ] = 5.0 / 16.0;\r\n\r\n const ditherTex = new DataTexture( data, 4, 4, LuminanceFormat, FloatType );\r\n ditherTex.minFilter = NearestFilter;\r\n ditherTex.magFilter = NearestFilter;\r\n ditherTex.anisotropy = 1;\r\n ditherTex.wrapS = RepeatWrapping;\r\n ditherTex.wrapT = RepeatWrapping;\r\n\r\n ditherTex.needsUpdate = true;\r\n\r\n return ditherTex;\r\n }\r\n\r\n private static cloneShader(shader, uniforms, defines) {\r\n const newShader = Object.assign( {}, shader );\r\n newShader.uniforms = UniformsUtils.merge( [\r\n newShader.uniforms,\r\n uniforms\r\n ] );\r\n newShader.defines = Object.assign( {}, defines );\r\n\r\n return newShader;\r\n }\r\n\r\n public updateShader(shader: Shader): Shader {\r\n const defineKeyword = 'ENABLE_DITHER_TRANSPARENCY';\r\n const newShader = ScreenDoorShaderService.cloneShader(\r\n shader,\r\n {\r\n ditherTex: { value: null },\r\n },\r\n {\r\n [ defineKeyword ]: 1,\r\n }\r\n );\r\n\r\n newShader.fragmentShader = `\r\n\t\t \t// adapted from https://www.shadertoy.com/view/Mlt3z8\r\n\t\t\tfloat bayerDither2x2( vec2 v ) {\r\n\t\t\t\treturn mod( 3.0 * v.y + 2.0 * v.x, 4.0 );\r\n\t\t\t}\r\n\r\n\t\t\tfloat bayerDither4x4( vec2 v ) {\r\n\t\t\t\tvec2 P1 = mod( v, 2.0 );\r\n\t\t\t\tvec2 P2 = mod( floor( 0.5 * v ), 2.0 );\r\n\t\t\t\treturn 4.0 * bayerDither2x2( P1 ) + bayerDither2x2( P2 );\r\n\t\t\t}\r\n\r\n\r\n\t\t\tuniform sampler2D ditherTex;\r\n\t\t\t${newShader.fragmentShader}\r\n\t`.replace(\r\n /main\\(\\) {/,\r\n v => `\r\n\t\t\t${v}\r\n\t\t\t#if ${defineKeyword}\r\n\t\t\t//if( texture2D( ditherTex, gl_FragCoord.xy / 4.0 ).r > opacity ) discard;\r\n\t\t\tif( ( bayerDither4x4( floor( mod( gl_FragCoord.xy, 4.0 ) ) ) ) / 16.0 >= opacity ) discard;\r\n\r\n\t\t\t#endif\r\n\t\t`\r\n );\r\n\r\n return newShader;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AugmentedRealityService {\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n async showAr(arUrl: string): Promise {\r\n if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent) && arUrl !== undefined && arUrl !== null && arUrl !== '') {\r\n await this.router.navigateByUrl(arUrl);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AugmentedRealityService } from './augmented-reality.service';\r\n\r\n@Component({\r\n selector: 'app-experience-augmented-reality-button',\r\n templateUrl: './experience-augmented-reality-button.component.html',\r\n styleUrls: ['./experience-augmented-reality-button.component.sass']\r\n})\r\nexport class ExperienceAugmentedRealityButtonComponent implements OnInit {\r\n\r\n @Input() arUrl: string = '';\r\n @Input() arTextKey: string = '';\r\n\r\n constructor(private arService: AugmentedRealityService) {\r\n }\r\n\r\n public isShown: boolean = false;\r\n public fullARUrl: string = '';\r\n\r\n ngOnInit(): void {\r\n const url = (new URL(document.URL));\r\n this.fullARUrl = url.origin + this.arUrl;\r\n }\r\n\r\n async showAr(): Promise {\r\n let result = await this.arService.showAr(this.arUrl);\r\n if (!result)\r\n {\r\n if (this.arUrl !== undefined && this.arUrl !== null && this.arUrl !== '') {\r\n this.isShown = !this.isShown;\r\n } else {\r\n this.isShown = false;\r\n }\r\n }\r\n }\r\n\r\n\r\n closeAr() {\r\n this.isShown = false;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n

{{'AugmentedReality' | translate}}

\r\n \r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { ExperienceContent } from '../models/experience-content';\r\nimport { ExperienceContentType } from '../models/experience-content-type';\r\nimport { ExperiencePage } from '../models/experience-page';\r\nimport { ExperienceManagerService } from '../experience-manager.service';\r\n\r\n@Component({\r\n selector: 'app-experience-content',\r\n templateUrl: './experience-content.component.html',\r\n styleUrls: ['./experience-content.component.sass']\r\n})\r\nexport class ExperienceContentComponent {\r\n\r\n public contentType: typeof ExperienceContentType = ExperienceContentType;\r\n\r\n @Input() public currentPage: ExperiencePage;\r\n @Input() public content!: ExperienceContent;\r\n\r\n constructor(private experienceManager: ExperienceManagerService) { }\r\n\r\n switchPage(newPage: ExperiencePage): void {\r\n this.experienceManager.switchPage(newPage);\r\n }\r\n\r\n switchPageByName(name: string): void {\r\n if (name === undefined || name === null || name === '') return;\r\n this.experienceManager.switchPageByName(name);\r\n }\r\n\r\n toggleAccordion(content: ExperienceContent, child: ExperienceContent) {\r\n content.children.forEach(x => {\r\n if (x === child)\r\n {\r\n x.isExpanded = !x.isExpanded;\r\n }\r\n else\r\n {\r\n x.isExpanded = false;\r\n }\r\n })\r\n }\r\n}\r\n","

{{content.textKey | translate}}

\r\n

{{content.textKey | translate}}

\r\n\r\n\r\n
0\" [class]=\"content.className\">\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { ExperienceManagerService } from '../experience-manager.service';\r\n\r\n@Component({\r\n selector: 'app-experience-loading',\r\n templateUrl: './experience-loading.component.html',\r\n styleUrls: ['./experience-loading.component.sass']\r\n})\r\nexport class ExperienceLoadingComponent implements AfterViewInit, OnDestroy {\r\n\r\n public cssClass: string;\r\n public headerLoadingText: string;\r\n public subHeaderLoadingText: string;\r\n public loadingBannerImage: string;\r\n public percentLoaded: number = 0;\r\n public name: string;\r\n public sub: Subscription = new Subscription();\r\n\r\n constructor(public experienceManager: ExperienceManagerService) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.percentLoaded = 0;\r\n this.sub.add(this.experienceManager.onLoadProgress.subscribe(x => {\r\n this.percentLoaded = x;\r\n }));\r\n this.sub.add(this.experienceManager.experienceName.subscribe(x => {\r\n setTimeout(() => {\r\n this.name = x;\r\n this.cssClass = `${this.name}-loading`;\r\n this.loadingBannerImage = `/assets/images/v3/content-images/${this.name}-loading.svg`;\r\n this.headerLoadingText = `${this.name}`;\r\n this.subHeaderLoadingText = `${this.name}-Home-Tagline`;\r\n }, 1);\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n hide() {\r\n if (this.percentLoaded < 100) return;\r\n this.experienceManager.hideLoading.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \"{{this.headerLoadingText\r\n

{{this.subHeaderLoadingText | translate}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { Experience } from './models/experience';\r\nimport { SceneService } from '../scene.service';\r\nimport { Color, LoadingManager, PerspectiveCamera, Quaternion, Vector3 } from 'three';\r\nimport { ExperienceLightType } from './models/experience-light-type';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { ExperiencePage } from './models/experience-page';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ExperienceHotspot } from './models/experience-hotspot';\r\nimport { DimensionsService } from '../dimensions/dimensions.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExperienceManagerService {\r\n\r\n constructor(private sceneService: SceneService,\r\n private dimensionsService: DimensionsService) {\r\n }\r\n\r\n private flattenedPages: ExperiencePage[];\r\n private loadingManager: LoadingManager = new LoadingManager();\r\n\r\n public hideLoading = new EventEmitter();\r\n public experienceName: BehaviorSubject = new BehaviorSubject(null);\r\n public experience: Subject = new Subject();\r\n public pageSwitched: Subject = new Subject();\r\n public pageNameSwitch: Subject = new Subject(); //Used when the actual page can't be provided\r\n public isLoaded: boolean = false;\r\n\r\n public onLoadProgress: Subject = new Subject();\r\n\r\n public async loadExperience(experience: Experience, videoElement: HTMLVideoElement): Promise {\r\n console.log(experience.name);\r\n\r\n this.loadingManager.onProgress = (url: string, itemsLoaded: number, itemsTotal: number) => this.onLoadProgressInternal(url, itemsLoaded, itemsTotal);\r\n this.isLoaded = false;\r\n this.experienceName.next(experience.name);\r\n\r\n this.sceneService.init(experience.startingPage.cameraPosition, experience.startingPage.cameraRotation, new Color(experience.sceneColor), videoElement, experience.startingPage.allowUserCameraRotate);\r\n this.sceneService.addFloorPlane();\r\n\r\n await this.loadLights(experience);\r\n await this.loadModels(experience);\r\n\r\n\r\n this.sceneService.start();\r\n this.isLoaded = true;\r\n\r\n this.flattenedPages = this.buildFlattenedPages(experience.startingPage);\r\n console.log(`loaded ${this.flattenedPages.length} pages`);\r\n this.experience.next(experience);\r\n }\r\n\r\n private onLoadProgressInternal(url: string, itemsLoaded: number, itemsTotal: number): void {\r\n this.onLoadProgress.next(itemsLoaded / itemsTotal * 100);\r\n }\r\n\r\n private buildFlattenedPages(experiencePage: ExperiencePage): ExperiencePage[] {\r\n let pages = [experiencePage];\r\n if (experiencePage.children.length > 0) {\r\n experiencePage.children.forEach(y => this.buildFlattenedPages(y).forEach(z => pages.push(z)));\r\n }\r\n return pages;\r\n }\r\n\r\n private async loadModels(experience: Experience): Promise {\r\n await Promise.all(experience.models.map(async (x) => {\r\n const modelQuaternion = new Quaternion();\r\n\r\n const isHidden = experience.startingPage.hiddenModels.some(y => y == x.name);\r\n await this.sceneService.addModel(\r\n x.name,\r\n x.path,\r\n x.position,\r\n modelQuaternion.setFromEuler(this.sceneService.toEuler(new Vector3(x.rotation.x * (Math.PI / 180), x.rotation.y * (Math.PI / 180), x.rotation.z * (Math.PI / 180)))),\r\n x.scale,\r\n x.castShadows,\r\n x.receiveShadows,\r\n this.loadingManager,\r\n !isHidden);\r\n\r\n if (x.textureSwapData) {\r\n await Promise.all(x.textureSwapData.map(async (y) => {\r\n if (y.isVideo)\r\n {\r\n await this.sceneService.loadModelVideoTexture(y.path, y.name, y.rotation, y.flipY, y.targetMeshName, this.loadingManager);\r\n }\r\n else {\r\n await this.sceneService.loadModelTexture(y.path, y.name, y.rotation, y.flipY, y.targetMeshName, this.loadingManager);\r\n }\r\n }))\r\n }\r\n }));\r\n }\r\n\r\n private async loadLights(experience: Experience): Promise {\r\n await Promise.all(experience.lights.map(async (x) => {\r\n switch (x.lightType) {\r\n case ExperienceLightType.Ambient:\r\n this.sceneService.addAmbientLight(x.color, x.intensity);\r\n break;\r\n case ExperienceLightType.Directional:\r\n if (x.lookAt === undefined || x.position === undefined) return;\r\n this.sceneService.addDirectionalLightLookAt(x.position, x.lookAt, x.color, x.intensity, x.castsShadow);\r\n break;\r\n case ExperienceLightType.Hemisphere:\r\n this.sceneService.addHemisphereLight(x.skyColor, x.groundColor, x.intensity);\r\n break;\r\n }\r\n }))\r\n }\r\n\r\n public switchPage(newPage: ExperiencePage): void {\r\n if (!newPage.allowUserCameraRotate)\r\n {\r\n this.sceneService.tweenCameraGroupToZero();\r\n }\r\n\r\n this.sceneService.tweenCameraTo(newPage.cameraPosition, newPage.cameraRotation, environment.transitionSpeed, newPage.allowUserCameraRotate);\r\n this.sceneService.playAnimationForPage(newPage);\r\n this.sceneService.fadeElementsForPage(newPage);\r\n this.pageSwitched.next(newPage);\r\n }\r\n\r\n public switchPageByName(name: string): void {\r\n const page = this.flattenedPages.find(y => y.name === name);\r\n if (page === undefined) {\r\n console.warn(`Could not find page with name ${name}`);\r\n return;\r\n }\r\n this.switchPage(page);\r\n }\r\n\r\n updateHotspots(currentPage: ExperiencePage, transitioningPage: ExperiencePage): void {\r\n transitioningPage?.hotspots.forEach((hotspot) => {\r\n this.updateHotSpot(hotspot);\r\n });\r\n currentPage?.hotspots.forEach((hotspot) => {\r\n this.updateHotSpot(hotspot);\r\n });\r\n }\r\n\r\n updateHotSpot(hotspot: ExperienceHotspot): void {\r\n const tempPos = new Vector3();\r\n tempPos.copy(hotspot.position);\r\n tempPos.project(this.sceneService.camera);\r\n\r\n let canvas = this.sceneService.getCanvas();\r\n //const dimensions = this.dimensionsService.getWindowDimensions();\r\n const x = (tempPos.x * 0.5 + 0.5) * canvas.clientWidth;\r\n const y = (tempPos.y * -0.5 + 0.5) * canvas.clientHeight;\r\n\r\n hotspot.position2D.set(x, y);\r\n }\r\n\r\n public onWindowResize(currentPage: ExperiencePage, transitioningPage: ExperiencePage): void {\r\n this.sceneService.onWindowResize();\r\n this.updateHotspots(currentPage, transitioningPage);\r\n }\r\n\r\n public onDestroy(): void {\r\n this.sceneService.onDestroy();\r\n }\r\n\r\n rotateCamera(mouseX: number) {\r\n this.sceneService.rotateCamera(mouseX);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ExperiencePage } from '../models/experience-page';\r\nimport { ExperienceNavService } from '../experience-nav.service';\r\n\r\n@Component({\r\n selector: 'app-experience-nav-item',\r\n templateUrl: './experience-nav-item.component.html',\r\n styleUrls: ['./experience-nav-item.component.sass']\r\n})\r\nexport class ExperienceNavItemComponent implements OnInit {\r\n\r\n @Input() public currentPage!: ExperiencePage;\r\n @Input() public page!: ExperiencePage;\r\n @Input() public isFirst: boolean = false;\r\n @Input() public level: number = 0;\r\n public levelClass: string;\r\n\r\n constructor(public experienceNavService: ExperienceNavService) { }\r\n\r\n ngOnInit(): void {\r\n this.levelClass = `level-${this.level}`;\r\n }\r\n\r\n switchPage(page: ExperiencePage): void {\r\n this.experienceNavService.switchPage.next(page);\r\n }\r\n}\r\n","
  • 0}\">\r\n \r\n
  • \r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ExperiencePage } from './models/experience-page';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExperienceNavService {\r\n\r\n public switchPage: Subject = new Subject();\r\n\r\n constructor() { }\r\n\r\n}\r\n","import { Component, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Experience } from './models/experience';\r\nimport { ExperienceManagerService } from './experience-manager.service';\r\nimport { ExperiencePage } from './models/experience-page';\r\nimport { ExperiencePanelType } from './models/experience-panel-type';\r\nimport { delay, Subscription } from 'rxjs';\r\nimport { SceneService } from \"../scene.service\";\r\nimport { ExperienceHotspot } from \"./models/experience-hotspot\";\r\nimport { animate, keyframes, state, style, transition, trigger } from '@angular/animations';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Euler, Quaternion, Vector2 } from \"three\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ViewportRuler } from '@angular/cdk/overlay';\r\nimport { ExperienceNavService } from './experience-nav.service';\r\nimport { AugmentedRealityService } from './experience-augmented-reality-button/augmented-reality.service';\r\nimport TouchMoveEvent = JQuery.TouchMoveEvent;\r\n\r\n@Component({\r\n selector: 'app-experience',\r\n templateUrl: './experience.component.html',\r\n styleUrls: ['./experience.component.sass'],\r\n animations: [\r\n trigger('fadeAnimation', [\r\n state('out', style({ opacity: 0 })),\r\n state('in', style({ opacity: 1 })),\r\n\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(environment.transitionSpeed / 4)\r\n ]),\r\n\r\n transition(':leave',\r\n animate(environment.transitionSpeed / 4, style({ opacity: 0 })))\r\n ]),\r\n trigger('fastFadeAnimation', [\r\n state('out', style({ opacity: 0 })),\r\n state('in', style({ opacity: 1 })),\r\n\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(environment.transitionSpeed / 4)\r\n ]),\r\n\r\n transition(':leave',\r\n animate(environment.transitionSpeed / 8, style({ opacity: 0 })))\r\n ]),\r\n trigger('delayedFadeAnimation', [\r\n state('out', style({ opacity: 0 })),\r\n state('in', style({ opacity: 1 })),\r\n\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate( `${environment.transitionSpeed / 8}ms ${environment.transitionSpeed}ms`)\r\n ]),\r\n\r\n transition(':leave',\r\n animate(environment.transitionSpeed / 8, style({ opacity: 0 })))\r\n ]),\r\n trigger('slideDownAnimation', [\r\n\r\n state('out', style({ opacity: 0, position: 'relative', transform: 'translateY(-150vh)' })),\r\n\r\n transition(':enter', [\r\n\r\n style({ transform: 'translateY(-150vh)', opacity: 0, position: 'absolute' }),\r\n animate(`${environment.transitionSpeed / 2}ms ${environment.transitionSpeed / 4}ms`, keyframes([\r\n style({ transform: 'translateY(-150vh)', opacity: 0, offset: 0, position: 'absolute' }), //What a total bastard... seems the object needs time to 'appear' in the browser, removing this will cause scrollbars to jump in and out\r\n style({ transform: 'translateY(-150vh)', opacity: 0, offset: 0.3, position: 'relative' }),\r\n style({ transform: 'translateY(0px)', opacity: 1, offset: 0.66, position: 'relative' }),\r\n style({ transform: 'translateY(-11px)', offset: 0.68, position: 'relative' }),\r\n style({ transform: 'translateY(-15px)', offset: 0.72, position: 'relative' }),\r\n style({ transform: 'translateY(-17px)', offset: 0.75, position: 'relative' }),\r\n style({ transform: 'translateY(-15px)', offset: 0.78, position: 'relative' }),\r\n style({ transform: 'translateY(-11px)', offset: 0.81, position: 'relative' }),\r\n style({ transform: 'translateY(0px)', offset: 0.83, position: 'relative' }),\r\n style({ transform: 'translateY(-5px)', offset: 0.85, position: 'relative' }),\r\n style({ transform: 'translateY(-7px)', offset: 0.88, position: 'relative' }),\r\n style({ transform: 'translateY(-8px)', offset: 0.91, position: 'relative' }),\r\n style({ transform: 'translateY(-7px)', offset: 0.93, position: 'relative' }),\r\n style({ transform: 'translateY(-5px)', offset: 0.95, position: 'relative' }),\r\n style({ transform: 'translateY(0px)', offset: 0.97, position: 'relative' }),\r\n style({ transform: 'translateY(0px)', offset: 1, position: 'relative' }),\r\n ], )),\r\n ]),\r\n\r\n state('in', style({ opacity: 1, position: 'relative', transform: 'translateY(0)' })),\r\n\r\n transition(':leave',\r\n animate(environment.transitionSpeed / 4, style({ transform: 'translateY(-150vh)', position: 'relative' })))\r\n ])]\r\n})\r\nexport class ExperienceComponent implements OnInit, OnDestroy {\r\n\r\n private currentMousePosition = new Vector2(0, 0);\r\n\r\n public currentLanguage: string;\r\n public showLoading: boolean = true;\r\n public supportedLanguages: string[] = environment.supportedLanguages;\r\n\r\n constructor(private experienceManager: ExperienceManagerService,\r\n private experienceNavService: ExperienceNavService,\r\n public sceneService: SceneService,\r\n public translateService: TranslateService,\r\n private viewPort: ViewportRuler,\r\n private arService: AugmentedRealityService) {\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n onKeypressEvent(event: KeyboardEvent) {\r\n if (environment.production) return;\r\n if (event.key === 'm') {\r\n this.sceneService.inSceneViewMode = !this.sceneService.inSceneViewMode;\r\n if (this.showUI == false && !this.sceneService.inSceneViewMode) {\r\n this.showUI = true;\r\n }\r\n }\r\n if (event.key === 'u') {\r\n this.showUI = !this.showUI;\r\n }\r\n if (event.key === 'h') {\r\n this.worldPos = `${JSON.stringify(this.sceneService.getWorldPointFromClick(this.currentMousePosition.x, this.currentMousePosition.y))}`;\r\n }\r\n if (event.key === 'j') {\r\n this.sceneService.camera.quaternion.copy(new Quaternion().setFromEuler(new Euler(0, 0, 0, 'XYZ')));\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onMouseClickEvent(event: MouseEvent) {\r\n if (environment.production) return;\r\n this.currentMousePosition = new Vector2(event.clientX, event.clientY);\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n onMouseMoveEvent(event: MouseEvent) {\r\n this.experienceManager.rotateCamera(event.clientX);\r\n }\r\n\r\n @HostListener('document:touchmove', ['$event'])\r\n onTouchMoveEvent(event: TouchMoveEvent) {\r\n this.experienceManager.rotateCamera(event.targetTouches[0].clientX);\r\n }\r\n public experienceBreadcrumbs: ExperiencePage[] = [];\r\n\r\n public showUI: boolean = true;\r\n public experience: Experience;\r\n public parentPage?: ExperiencePage;\r\n public currentPage?: ExperiencePage;\r\n public transitioningPage?: ExperiencePage;\r\n public fade: boolean = false;\r\n public panelFade: boolean = false;\r\n public navbarExpanded: boolean = false;\r\n\r\n private experienceSub: Subscription = new Subscription();\r\n private updateSub: Subscription = new Subscription();\r\n private pageChangedSub: Subscription = new Subscription();\r\n private progressSub: Subscription = new Subscription();\r\n private langChangedSub: Subscription = new Subscription();\r\n private hideLoadingSub: Subscription = new Subscription();\r\n private windowResizedSub: Subscription = new Subscription();\r\n private navServiceSub: Subscription = new Subscription();\r\n private supportedLangs = /en|fr|de|es|it/; //TODO - add to this when adding a new language\r\n\r\n public worldPos: string;\r\n public loadProgress: number = 0;\r\n public isContentPanelCollapsed: boolean = false;\r\n\r\n switchPage(newPage: ExperiencePage): void {\r\n this.isContentPanelCollapsed = false;\r\n this.experienceManager.switchPage(newPage);\r\n }\r\n\r\n private onSwitchPage(newPage: ExperiencePage): void\r\n {\r\n this.navbarExpanded = false;\r\n this.currentPage.hotspots.forEach(x => x.hovering = false);\r\n this.fade = true;\r\n this.panelFade = false;\r\n this.transitioningPage = newPage;\r\n this.parentPage = this.getCurrentOrParentPageForTransition();\r\n this.experienceBreadcrumbs = this.buildBreadcrumbs(this.transitioningPage);\r\n\r\n // check whether we need to swap texture or restore default.\r\n this.currentPage.textureSwaps.forEach((swap) => {\r\n const match = newPage.textureSwaps.find((x) => x.meshName === swap.meshName);\r\n if (!match) {\r\n // need to revert to default texture\r\n const defaultName = swap.textureName.endsWith('_EM') ? `${swap.meshName}_default_EM` : `${swap.meshName}_default`;\r\n this.sceneService.swapTextureOnMesh(defaultName);\r\n }\r\n });\r\n\r\n newPage.textureSwaps.forEach((swap) => {\r\n const match = this.currentPage.textureSwaps.find((x) => x.textureName === swap.textureName);\r\n if (!match) {\r\n this.sceneService.swapTextureOnMesh(swap.textureName);\r\n }\r\n })\r\n\r\n setTimeout(() => {\r\n this.fade = false;\r\n this.panelFade = true;\r\n this.currentPage = newPage;\r\n }, environment.transitionSpeed / 4);\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n const htmlTag = document.getElementById('root-html');\r\n htmlTag.className = 'v3';\r\n\r\n this.windowResizedSub = this.viewPort.change(50).subscribe(x => {\r\n this.experienceManager.onWindowResize(this.currentPage, this.transitioningPage);\r\n });\r\n\r\n this.currentLanguage = this.translateService.currentLang.match(this.supportedLangs) ? this.translateService.currentLang : 'en';\r\n this.experienceSub = this.experienceManager.experience.subscribe(x => {\r\n this.experience = x;\r\n this.currentPage = this.experience.startingPage;\r\n this.transitioningPage = this.experience.startingPage;\r\n this.parentPage = this.getCurrentOrParentPageForTransition();\r\n this.experienceBreadcrumbs = this.buildBreadcrumbs(this.currentPage);\r\n this.experienceSub.unsubscribe();\r\n this.progressSub.unsubscribe();\r\n });\r\n this.updateSub = this.sceneService.updateEvent.subscribe(() => {\r\n this.experienceManager.updateHotspots(this.currentPage, this.transitioningPage);\r\n });\r\n this.pageChangedSub = this.experienceManager.pageSwitched.subscribe(x => {\r\n this.onSwitchPage(x);\r\n });\r\n this.progressSub = this.experienceManager.onLoadProgress.subscribe(x => {\r\n this.loadProgress = x;\r\n });\r\n this.langChangedSub = this.translateService.onLangChange.subscribe(x => {\r\n this.currentLanguage = x.lang.match(this.supportedLangs) ? x.lang : 'en';\r\n })\r\n this.hideLoadingSub = this.experienceManager.hideLoading.subscribe(() => {\r\n this.showLoading = false;\r\n this.hideLoadingSub.unsubscribe();\r\n });\r\n this.navServiceSub = this.experienceNavService.switchPage.subscribe(x => {\r\n this.switchPage(x);\r\n })\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.experienceSub.unsubscribe();\r\n this.updateSub.unsubscribe();\r\n this.pageChangedSub.unsubscribe();\r\n this.langChangedSub.unsubscribe();\r\n this.progressSub.unsubscribe();\r\n this.hideLoadingSub.unsubscribe();\r\n this.windowResizedSub.unsubscribe();\r\n this.navServiceSub.unsubscribe();\r\n }\r\n\r\n isExperienceReady(): boolean {\r\n return this.experience !== undefined && this.experience.startingPage !== undefined && this.currentPage !== undefined && this.experienceManager.isLoaded\r\n }\r\n\r\n isLeft(targetPage: ExperiencePage): boolean {\r\n return targetPage?.panelType === ExperiencePanelType.Left;\r\n }\r\n\r\n hasContent(targetPage: ExperiencePage): boolean {\r\n return targetPage?.panelType !== ExperiencePanelType.None &&\r\n (targetPage?.content !== undefined && targetPage?.content.length > 0);\r\n }\r\n\r\n isRight(targetPage: ExperiencePage): boolean {\r\n return targetPage?.panelType === ExperiencePanelType.Right\r\n }\r\n\r\n isCenterOrNone(targetPage: ExperiencePage): boolean {\r\n return targetPage?.panelType === ExperiencePanelType.None || targetPage.panelType === ExperiencePanelType.Center;\r\n }\r\n\r\n getTaglineKey(targetPage: ExperiencePage): string {\r\n if (targetPage === undefined) return;\r\n if (targetPage.useButtonNameForTagline) {\r\n return `${targetPage.name}`;\r\n }\r\n return `${targetPage.name}-Tagline`;\r\n }\r\n\r\n getSubTaglineKey(currentPage: ExperiencePage): string {\r\n return `${currentPage.name}-SubTagline`;\r\n }\r\n\r\n getHotspotStyle(hotspot: ExperienceHotspot): string {\r\n\r\n if (hotspot.hovering)\r\n {\r\n return `transform: translate(${hotspot.leftOffsetPercent}%, ${hotspot.topOffsetPercent}%) translate(calc(${hotspot.position2D.x}px + 0.5rem), ${hotspot.position2D.y}px); width: calc(${hotspot.width}px + 2.5rem)`;\r\n }\r\n return `transform: translate(${hotspot.leftOffsetPercent}%, ${hotspot.topOffsetPercent}%) translate(calc(${hotspot.position2D.x}px + 0.5rem), ${hotspot.position2D.y}px);`;\r\n }\r\n\r\n getSceneViewCameraPosition(): string {\r\n return `${JSON.stringify(this.sceneService.getCameraPosition())}`;\r\n }\r\n\r\n getSceneViewCameraRotation(): string {\r\n return `${JSON.stringify(this.sceneService.getCameraRotation().toVector3())}`;\r\n }\r\n\r\n isPageRelatedToCurrent(page: ExperiencePage, targetPage: ExperiencePage): boolean {\r\n if (targetPage === undefined) return false;\r\n if (page == targetPage) return true;\r\n if (page.children.length < 0) return false;\r\n return page.children.some(p => this.isPageRelatedToCurrent(p, targetPage));\r\n }\r\n\r\n buildBreadcrumbs(targetPage: ExperiencePage): ExperiencePage[] {\r\n let breadCrumbs: ExperiencePage[] = [];\r\n let currentTarget = this.experience.startingPage;\r\n breadCrumbs.push(currentTarget);\r\n\r\n while (currentTarget !== undefined) {\r\n if (currentTarget.children.length > 0) {\r\n let currentRelatedPages = currentTarget.children.filter(x => this.isPageRelatedToCurrent(x, targetPage));\r\n if (currentRelatedPages.length > 0) {\r\n currentTarget = currentRelatedPages[0];\r\n breadCrumbs.push(currentTarget);\r\n } else {\r\n currentTarget = undefined;\r\n }\r\n } else {\r\n currentTarget = undefined;\r\n }\r\n }\r\n\r\n breadCrumbs.pop();\r\n return breadCrumbs;\r\n }\r\n\r\n getCurrentOrParentPageForTransition(): ExperiencePage {\r\n if (this.transitioningPage.children.length > 0) return this.transitioningPage;\r\n return this.getParentPage(this.transitioningPage);\r\n }\r\n\r\n getCurrentOrParentPage(): ExperiencePage {\r\n if (this.currentPage.children.length > 0) return this.currentPage;\r\n return this.getParentPage(this.currentPage);\r\n }\r\n\r\n getParentPage(currentPage: ExperiencePage): ExperiencePage {\r\n return this.getParentSubPage(this.experience.startingPage, currentPage);\r\n }\r\n\r\n getParentSubPage(targetPage: ExperiencePage, currentPage: ExperiencePage): ExperiencePage {\r\n if (targetPage === currentPage) return targetPage;\r\n if (targetPage.children.length <= 0) return undefined;\r\n if (targetPage.children.some(y => y === currentPage)) return targetPage;\r\n\r\n let subPage: ExperiencePage = undefined;\r\n targetPage.children.forEach(y => {\r\n if (subPage !== undefined) return;\r\n subPage = this.getParentSubPage(y, currentPage);\r\n });\r\n return subPage;\r\n }\r\n\r\n switchPageByName(name: string): void {\r\n this.experienceManager.switchPageByName(name);\r\n }\r\n\r\n switchPreviousPage(): void {\r\n let index = this.parentPage.children.indexOf(this.currentPage);\r\n if (index === -1) {\r\n return;\r\n }\r\n index--;\r\n if (index < 0) {\r\n index = this.parentPage.children.length - 1;\r\n }\r\n let page = this.parentPage.children[index];\r\n this.switchPage(page);\r\n }\r\n\r\n switchNextPage(): void {\r\n let index = this.parentPage.children.indexOf(this.currentPage);\r\n if (index === -1) {\r\n return;\r\n }\r\n index++;\r\n if (index >= this.parentPage.children.length) {\r\n index = 0;\r\n }\r\n let page = this.parentPage.children[index];\r\n this.switchPage(page);\r\n }\r\n\r\n\r\n changeLanguage(supportedLanguage: string): void {\r\n this.translateService.use(supportedLanguage);\r\n }\r\n\r\n getBigHeaderKey(transitioningPage: ExperiencePage): string {\r\n return `${transitioningPage.name}-BigHeader`;\r\n }\r\n\r\n onMouseOverHotspot(hotspot: ExperienceHotspot, hotspotHoverText: HTMLDivElement): void {\r\n hotspot.width = hotspotHoverText.offsetWidth;\r\n hotspot.hovering = true;\r\n }\r\n\r\n onMouseLeaveHotspot(hotspot: ExperienceHotspot): void {\r\n hotspot.hovering = false;\r\n }\r\n\r\n toggleNavbar(): void {\r\n this.navbarExpanded = !this.navbarExpanded;\r\n }\r\n\r\n toggleContent(): void {\r\n this.isContentPanelCollapsed = !this.isContentPanelCollapsed;\r\n }\r\n\r\n async showAr(): Promise {\r\n await this.arService.showAr(this.experience?.arUrl);\r\n }\r\n}\r\n","
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {{hotspot.hoverTextKey | translate}}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {{this.experience.name | translate}}\r\n
    \r\n
    \r\n {{breadCrumb.name | translate}}\r\n
    \r\n
    \r\n

    {{getBigHeaderKey(transitioningPage) | translate}}

    \r\n

    {{getTaglineKey(transitioningPage) | translate}}

    \r\n

    {{getSubTaglineKey(transitioningPage) | translate}}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    0\" [@delayedFadeAnimation]=\"'in'\">\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Move the camera with WASD
    \r\n Rotate the camera with Q & E
    \r\n Pan the camera with the arrow keys
    \r\n Press 'u' to Toggle UI
    \r\n Press left click and press 'h' to get a hotspot
    \r\n Press 'j' to reset camera rotation
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n","export class ExperienceAnimation {\r\n constructor(\r\n public modelName: string,\r\n public animationName: string,\r\n public loop: boolean\r\n ) {\r\n }\r\n}\r\n","export enum ExperienceContentType {\r\n Header = \"Header\",\r\n Image = \"Image\",\r\n Text = \"Text\",\r\n List = \"List\",\r\n ListItem = \"ListItem\",\r\n CollapsableList = \"CollapsableList\",\r\n Group = \"Group\",\r\n Accordion = \"Accordion\",\r\n AccordionItem = \"AccordionItem\",\r\n ListLinkItem = \"ListLinkItem\",\r\n}\r\n","import { ExperienceContentType } from './experience-content-type';\r\nimport { Type } from 'class-transformer';\r\nimport { Guid } from 'guid-typescript';\r\n\r\nexport class ExperienceContent {\r\n\r\n\r\n constructor(public contentType: ExperienceContentType) {\r\n }\r\n\r\n public textKey: string;\r\n public className: string;\r\n public imagePath: string;\r\n\r\n @Type(() => ExperienceContent)\r\n public children: ExperienceContent[] = [];\r\n\r\n public onClickGoToPage: string | undefined;\r\n\r\n public isExpanded: boolean = false;\r\n\r\n public linkKey: string;\r\n}\r\n","import {Vector2, Vector3} from 'three';\r\nimport {Type} from \"class-transformer\";\r\n\r\nexport class ExperienceHotspot {\r\n\r\n\r\n constructor(\r\n public className: string,\r\n public hoverTextKey: string,\r\n public onClickGoToPage: string,\r\n public topOffsetPercent: number = -50,\r\n public leftOffsetPercent: number = -50\r\n ) {\r\n }\r\n\r\n @Type(() => Vector3)\r\n public position!: Vector3;\r\n\r\n public visibleOnMobile: boolean = false;\r\n\r\n //Not for JSON use\r\n @Type(() => Vector2)\r\n public position2D: Vector2 = new Vector2(0, 0);\r\n\r\n //Not for JSON use\r\n public width: number = 0;\r\n\r\n //Not for JSON use\r\n public hovering: boolean = false;\r\n}\r\n","export enum ExperienceLightType {\r\n Ambient = 0,\r\n Directional = 1,\r\n Hemisphere = 2\r\n}\r\n","import { ExperienceLightType } from './experience-light-type';\r\nimport { ColorRepresentation, Vector3 } from 'three';\r\n\r\nexport class ExperienceLight {\r\n\r\n constructor(\r\n public name: string,\r\n public lightType: ExperienceLightType\r\n ) {\r\n }\r\n public position?: Vector3;\r\n public lookAt?: Vector3;\r\n public color: ColorRepresentation;\r\n public skyColor: ColorRepresentation;\r\n public groundColor: ColorRepresentation;\r\n public intensity: number;\r\n public castsShadow: boolean = true;\r\n}\r\n","import { Vector3 } from 'three';\r\nimport {ExperienceTextureSwapData} from \"./experience-texture-swap-data\";\r\n\r\nexport class ExperienceModel {\r\n constructor(\r\n public name: string,\r\n public path: string,\r\n public position: Vector3,\r\n public rotation: Vector3,\r\n public scale: Vector3,\r\n public castShadows: boolean,\r\n public receiveShadows: boolean\r\n ) {\r\n }\r\n\r\n public textureSwapData: ExperienceTextureSwapData[];\r\n}\r\n","import { ExperienceAnimation } from './experience-animation';\r\nimport { ExperiencePanelType } from './experience-panel-type';\r\nimport { Vector3 } from 'three';\r\nimport { ExperienceHotspot } from \"./experience-hotspot\";\r\nimport { Type } from \"class-transformer\";\r\nimport { ExperienceContent } from './experience-content';\r\nimport {ExperienceTextureSwap} from \"./experience-texture-swap\";\r\n\r\nexport class ExperiencePage {\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n public name: string;\r\n\r\n public panelType: ExperiencePanelType;\r\n\r\n @Type(() => Vector3)\r\n public cameraPosition: Vector3;\r\n\r\n @Type(() => Vector3)\r\n public cameraRotation: Vector3;\r\n\r\n @Type(() => ExperienceAnimation)\r\n public animations: ExperienceAnimation[] = [];\r\n\r\n @Type(() => ExperiencePage)\r\n public children: ExperiencePage[] = [];\r\n\r\n @Type(() => ExperienceContent)\r\n public content: ExperienceContent[] = [];\r\n\r\n @Type(() => ExperienceContent)\r\n public fullPageContent: ExperienceContent[] = [];\r\n\r\n public useButtonNameForTagline: boolean = true;\r\n\r\n @Type(() => ExperienceHotspot)\r\n public hotspots: ExperienceHotspot[] = [];\r\n\r\n public showButtonsOnMobile: boolean = true;\r\n\r\n public hiddenModels: string[] = [];\r\n\r\n public showTopNavigationButtons: boolean = true;\r\n\r\n public showNavigationButtons: boolean = false;\r\n\r\n public showBreadcrumb: boolean = true;\r\n\r\n @Type(() => ExperienceTextureSwap)\r\n public textureSwaps: ExperienceTextureSwap[] = [];\r\n\r\n public showBottomNavigationButtonsOnMobile: boolean = false;\r\n\r\n public showLozengesOnMobile: boolean = false;\r\n\r\n public showLozengesOnDesktop: boolean = true;\r\n\r\n public showBigHeader: boolean = false;\r\n\r\n public allowUserCameraRotate: boolean = false;\r\n}\r\n","export enum ExperiencePanelType {\r\n None = 0,\r\n Center = 1,\r\n Left = 2,\r\n Right = 3\r\n}\r\n","export class ExperienceTextureSwap {\r\n constructor(public textureName: string, public meshName: string) {\r\n\r\n }\r\n}\r\n","import { ExperiencePage } from './experience-page';\r\nimport { ExperienceModel } from './experience-model';\r\nimport { ExperienceLight } from './experience-light';\r\nimport { ColorRepresentation, Vector3 } from 'three';\r\nimport { Type } from 'class-transformer';\r\n\r\n\r\nexport class Experience {\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n public name: string;\r\n public bannerImage: string;\r\n public arUrl: string;\r\n public sceneColor: ColorRepresentation;\r\n public contactUsTextKey: string;\r\n public contactUsLinkKey: string;\r\n\r\n @Type(() => ExperienceLight)\r\n public lights: ExperienceLight[];\r\n\r\n @Type(() => ExperiencePage)\r\n public startingPage: ExperiencePage;\r\n\r\n @Type(() => ExperienceModel)\r\n public models: ExperienceModel[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FileLoader, LoadingManager, Texture, TextureLoader } from 'three';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileLoaderService {\r\n\r\n constructor() { }\r\n\r\n public async loadFile(path: string, loadingManager: LoadingManager): Promise {\r\n const loader = new FileLoader(loadingManager);\r\n loader.setResponseType('arraybuffer');\r\n return await loader.loadAsync(path);\r\n }\r\n}\r\n","import {AnimationClip, AnimationMixer, Quaternion, Vector2} from \"three\";\r\nimport {Tween} from \"@tweenjs/tween.js\";\r\n\r\nexport class ModelAnimation {\r\n constructor(\r\n public name: string,\r\n public isVisible: boolean,\r\n public mixer: AnimationMixer,\r\n public clips: AnimationClip[],\r\n public fadeInTweens: Tween<{opacity: number}>[],\r\n public fadeOutTweens: Tween<{opacity: number}>[]\r\n ) {\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {GLTF, GLTFLoader} from \"three/examples/jsm/loaders/GLTFLoader\";\r\nimport { LoadingManager } from 'three';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModelLoaderService {\r\n\r\n constructor() { }\r\n\r\n public async loadObjectGLTF(path: string, loadingManager: LoadingManager): Promise {\r\n const loader = new GLTFLoader(loadingManager);\r\n return await loader.loadAsync(path);\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport {\r\n AmbientLight,\r\n AnimationMixer,\r\n Clock,\r\n Color,\r\n ColorRepresentation,\r\n CubeUVReflectionMapping,\r\n DataTexture,\r\n DirectionalLight,\r\n EquirectangularReflectionMapping,\r\n Euler,\r\n Group,\r\n HemisphereLight,\r\n LoadingManager,\r\n LoopOnce,\r\n MathUtils,\r\n Mesh,\r\n MeshLambertMaterial,\r\n MeshStandardMaterial,\r\n Object3D,\r\n PCFSoftShadowMap,\r\n PerspectiveCamera,\r\n PlaneBufferGeometry,\r\n PMREMGenerator,\r\n Quaternion,\r\n Raycaster,\r\n ReinhardToneMapping,\r\n RepeatWrapping,\r\n RGBADepthPacking,\r\n RGBAFormat,\r\n Scene,\r\n ShaderLib,\r\n ShaderMaterial,\r\n ShadowMaterial,\r\n sRGBEncoding,\r\n Texture,\r\n TextureLoader,\r\n Vector2,\r\n Vector3,\r\n VideoTexture,\r\n WebGLRenderer,\r\n WebGLRenderTarget\r\n} from 'three';\r\nimport { ModelLoaderService } from \"./model-loader.service\";\r\nimport { Easing, Tween, update } from '@tweenjs/tween.js';\r\nimport { ExperiencePage } from \"./experience/models/experience-page\";\r\nimport { ModelAnimation } from \"./model-animation\";\r\nimport { Reflector } from \"three/examples/jsm/objects/Reflector\";\r\nimport { ScreenDoorShaderService } from \"./effects/screen-door-shader.service\";\r\nimport { FlyControls } from \"three/examples/jsm/controls/FlyControls\";\r\nimport { environment } from \"../../../environments/environment\";\r\nimport { TextureData } from \"./texture-data\";\r\nimport { TextureLoaderService } from \"./texture-loader.service\";\r\nimport { FileLoaderService } from './file-loader.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SceneService {\r\n private scene: Scene;\r\n private cameraGroup: Group = new Group();\r\n public camera: PerspectiveCamera;\r\n private renderer: WebGLRenderer;\r\n private ditherTexture: DataTexture;\r\n private shadowTarget: WebGLRenderTarget;\r\n private floorGroup: Group = new Group();\r\n private envMap: Texture;\r\n private pmremGenerator: PMREMGenerator;\r\n private clock: Clock;\r\n private animations: ModelAnimation[] = [];\r\n private textureData: TextureData[] = [];\r\n private video: HTMLVideoElement;\r\n\r\n private controls: FlyControls;\r\n public updateEvent: EventEmitter = new EventEmitter();\r\n public inSceneViewMode: boolean = false;\r\n\r\n private rotateRangeDeg = 5;\r\n private portraitFov = 80;\r\n private landscapeFov = 50;\r\n private allowUserCameraPan: boolean;\r\n private startCameraGroupRotation: Quaternion = new Quaternion();\r\n private targetCameraGroupRotation: Quaternion = new Quaternion();\r\n private targetCameraGroupRotationTime: number = 0;\r\n private maxCameraGroupRotationTime: number = 0.35;\r\n private cameraGroupRotationSpeed: number = 2;\r\n\r\n constructor(private modelLoaderService: ModelLoaderService,\r\n private screenDoorShaderService: ScreenDoorShaderService,\r\n private textureLoaderService: TextureLoaderService,\r\n private fileLoaderService: FileLoaderService) {\r\n }\r\n\r\n init(initialCameraPosition: Vector3, cameraRotation: Vector3, background: Color, videoElement: HTMLVideoElement, allowUserCameraRotate: boolean = false): void {\r\n\r\n this.animations = [];\r\n this.video = videoElement;\r\n this.clock = new Clock();\r\n this.scene = new Scene();\r\n this.scene.background = background;\r\n\r\n this.ditherTexture = this.screenDoorShaderService.createDitherTexture();\r\n\r\n this.renderer = new WebGLRenderer({ antialias: true });\r\n this.renderer.domElement.className = \"no-mobile-landscape\";\r\n this.renderer.shadowMap.enabled = true;\r\n this.renderer.shadowMap.type = PCFSoftShadowMap;\r\n this.renderer.toneMapping = ReinhardToneMapping;\r\n this.renderer.toneMappingExposure = 3;\r\n this.renderer.domElement.className = \"full-screen\";\r\n\r\n this.cameraGroup = new Group();\r\n this.camera = new PerspectiveCamera(50, 1, 0.01, 1000);\r\n this.camera.layers.enableAll();\r\n this.cameraGroup.add(this.camera);\r\n\r\n this.pmremGenerator = new PMREMGenerator(this.renderer);\r\n this.pmremGenerator.compileEquirectangularShader();\r\n\r\n const textureLoader = new TextureLoader();\r\n textureLoader.load(\r\n '/assets/v3/textures/env-map.jpg',\r\n (texture) => {\r\n texture.mapping = EquirectangularReflectionMapping;\r\n const processedTexture: Texture = this.pmremGenerator.fromEquirectangular(texture).texture;\r\n processedTexture.mapping = CubeUVReflectionMapping;\r\n this.scene.environment = processedTexture;\r\n }\r\n );\r\n\r\n this.shadowTarget = new WebGLRenderTarget(1024, 1024, { format: RGBAFormat })\r\n\r\n this.scene.add(this.cameraGroup);\r\n this.jumpCameraTo(initialCameraPosition, cameraRotation, allowUserCameraRotate);\r\n }\r\n\r\n addFloorPlane(size: number = 500): void {\r\n const dimensions = this.renderer.domElement;\r\n // generate floor plane mesh\r\n const geometry = new PlaneBufferGeometry(size, size);\r\n geometry.rotateX(-Math.PI / 2);\r\n\r\n const material = new MeshLambertMaterial({\r\n transparent: true,\r\n opacity: 0.95,\r\n emissive: new Color(1, 1, 1),\r\n emissiveIntensity: 50\r\n });\r\n const floorPlane = new Mesh(geometry, material);\r\n floorPlane.layers.enableAll();\r\n floorPlane.frustumCulled = false;\r\n floorPlane.renderOrder = 1;\r\n this.floorGroup.add(floorPlane);\r\n\r\n //generate under-floor reflector\r\n const reflectionPlane = new Reflector(new PlaneBufferGeometry(size, size), {\r\n color: '#d4d4d4',\r\n textureWidth: dimensions.width * window.devicePixelRatio,\r\n textureHeight: dimensions.height * window.devicePixelRatio\r\n });\r\n\r\n reflectionPlane.position.y = -0.02;\r\n reflectionPlane.rotation.x = -Math.PI / 2;\r\n reflectionPlane.frustumCulled = false;\r\n\r\n this.floorGroup.add(reflectionPlane);\r\n\r\n // generate shadow layer\r\n const shadowGeometry = new PlaneBufferGeometry(size, size);\r\n shadowGeometry.rotateX(-Math.PI / 2);\r\n\r\n const shadowMaterial = new ShadowMaterial();\r\n shadowMaterial.opacity = 0.2;\r\n\r\n const shadowPlane = new Mesh(shadowGeometry, shadowMaterial);\r\n shadowPlane.position.y = 0.02;\r\n shadowPlane.receiveShadow = true;\r\n shadowPlane.frustumCulled = false;\r\n shadowPlane.renderOrder = 2;\r\n this.floorGroup.add(shadowPlane);\r\n\r\n this.scene.add(this.floorGroup);\r\n }\r\n\r\n addAmbientLight(color: ColorRepresentation = 0x222222, intensity: number = 1): void {\r\n const light = new AmbientLight(color, intensity);\r\n this.scene.add(light);\r\n }\r\n\r\n addHemisphereLight(skyColor: ColorRepresentation, groundColor: ColorRepresentation, intensity: number = 1): void {\r\n const light = new HemisphereLight(skyColor, groundColor, intensity);\r\n this.scene.add(light);\r\n }\r\n\r\n addDirectionalLightLookAt(position: Vector3, lookAt: Vector3, color: ColorRepresentation, intensity: number = 1, castsShadow: boolean = true): void {\r\n const light = new DirectionalLight(color, intensity);\r\n light.position.copy(position);\r\n light.castShadow = castsShadow;\r\n\r\n if (castsShadow) {\r\n light.shadow.bias = -0.0005;\r\n\r\n const size = 28;\r\n light.shadow.camera.near = 0.01;\r\n light.shadow.camera.far = 1000;\r\n light.shadow.camera.top = size;\r\n light.shadow.camera.bottom = -size;\r\n light.shadow.camera.left = size;\r\n light.shadow.camera.right = -size;\r\n\r\n }\r\n\r\n const target = new Object3D();\r\n target.position.copy(lookAt);\r\n this.scene.add(target);\r\n light.target = target;\r\n\r\n\r\n this.scene.add(light);\r\n }\r\n\r\n async addModel(name: string, path: string, position: Vector3, quaternion: Quaternion, scale: Vector3, castShadows: boolean, receiveShadows: boolean, loadingManager: LoadingManager, startsVisible: boolean = true): Promise {\r\n return await this.modelLoaderService.loadObjectGLTF(path, loadingManager)\r\n .then((model) => {\r\n model.scene.position.copy(position);\r\n model.scene.quaternion.copy(quaternion);\r\n model.scene.scale.copy(scale);\r\n\r\n let fadeInTweens: Tween<{ opacity: number }>[] = [];\r\n let fadeOutTweens: Tween<{ opacity: number }>[] = [];\r\n\r\n model.scene.traverse((node) => {\r\n\r\n if (node.type === \"Mesh\") {\r\n\r\n node.castShadow = castShadows;\r\n node.receiveShadow = receiveShadows;\r\n node.renderOrder = 3;\r\n\r\n let depthShader = this.screenDoorShaderService.updateShader(ShaderLib.depth); //TODO - Probably highly inefficient, but required to stop one tween making all shadows vanish\r\n depthShader.fragmentShader = `uniform float opacity;\\n${depthShader.fragmentShader}`;\r\n\r\n const startingOpacity = startsVisible ? 1 : 0;\r\n let depthMat = new ShaderMaterial(depthShader);\r\n depthMat.defines.DEPTH_PACKING = RGBADepthPacking;\r\n depthMat.uniforms.ditherTex.value = this.ditherTexture;\r\n depthMat.uniforms.opacity.value = startingOpacity;\r\n\r\n ((node as Mesh).material as MeshStandardMaterial).transparent = true;\r\n ((node as Mesh).material as MeshStandardMaterial).opacity = startingOpacity;\r\n ((node as Mesh).material as MeshStandardMaterial).envMapIntensity = 2;\r\n\r\n if (node.name === \"phone\" || node.name === \"Screen\" || node.name === \"teeshirt\") {\r\n ((node as Mesh).material as MeshStandardMaterial).metalness = 0;\r\n }\r\n\r\n (node as Mesh).customDepthMaterial = depthMat;\r\n\r\n console.log(`adding mesh for ${name} - ${node.name}`);\r\n let opacity = { opacity: startingOpacity };\r\n let fadeOutTween = new Tween(opacity).to({ opacity: 0 }, 2000)\r\n .onUpdate(() => {\r\n ((node as Mesh).material as MeshStandardMaterial).opacity = opacity.opacity;\r\n (node.customDepthMaterial as ShaderMaterial).uniforms.opacity.value = opacity.opacity;\r\n });\r\n\r\n fadeOutTweens.push(fadeOutTween);\r\n\r\n let fadeInTween = new Tween(opacity).to({ opacity: 1 }, 2000)\r\n .onUpdate(() => {\r\n ((node as Mesh).material as MeshStandardMaterial).opacity = opacity.opacity;\r\n (node.customDepthMaterial as ShaderMaterial).uniforms.opacity.value = opacity.opacity;\r\n });\r\n fadeInTweens.push(fadeInTween);\r\n }\r\n });\r\n const animation = new ModelAnimation(name, startsVisible, new AnimationMixer(model.scene), model.animations, fadeInTweens, fadeOutTweens);\r\n this.animations.push(animation);\r\n this.scene.add(model.scene);\r\n });\r\n }\r\n\r\n async loadModelVideoTexture(path: string, name: string, rotation: number, flipY: boolean, targetMeshName: string, loadManager: LoadingManager): Promise {\r\n return await this.fileLoaderService.loadFile(path, loadManager)\r\n .then((fileBuffer: string | ArrayBuffer) => {\r\n const blob = new Blob([fileBuffer as ArrayBuffer], { type: 'video/mp4' });\r\n\r\n const videoTexture = new VideoTexture(this.video);\r\n videoTexture.wrapS = RepeatWrapping;\r\n videoTexture.wrapT = RepeatWrapping;\r\n videoTexture.encoding = sRGBEncoding;\r\n videoTexture.rotation = rotation * (Math.PI / 180);\r\n videoTexture.flipY = flipY;\r\n videoTexture.name = name;\r\n\r\n let mesh: Mesh;\r\n this.scene.traverse((node) => {\r\n if (node.name === targetMeshName) {\r\n mesh = (node as Mesh);\r\n }\r\n })\r\n\r\n const data = new TextureData(name, videoTexture, mesh, true);\r\n data.videoUrl = URL.createObjectURL(blob);\r\n console.log(data.videoUrl);\r\n this.textureData.push(data);\r\n });\r\n }\r\n\r\n async loadModelTexture(path: string, name: string, rotation: number, flipY: boolean, targetMeshName: string, loadManager: LoadingManager): Promise {\r\n return await this.textureLoaderService.loadTexture(path, loadManager)\r\n .then((texture) => {\r\n texture.wrapS = RepeatWrapping;\r\n texture.wrapT = RepeatWrapping;\r\n texture.encoding = sRGBEncoding;\r\n\r\n texture.rotation = rotation * (Math.PI / 180);\r\n texture.flipY = flipY;\r\n texture.name = name;\r\n\r\n let mesh: Mesh;\r\n this.scene.traverse((node) => {\r\n if (node.name === targetMeshName) {\r\n mesh = (node as Mesh);\r\n }\r\n })\r\n\r\n // generate default texture data for mesh, if not saved already.\r\n const defaultName = name.endsWith('_EM') ? `${mesh.name}_default_EM` : `${mesh.name}_default`;\r\n const existing = this.textureData.find((x) => x.name === defaultName);\r\n\r\n if (!existing) {\r\n const defaultData = new TextureData(defaultName, (mesh.material as MeshStandardMaterial).map, mesh);\r\n this.textureData.push(defaultData);\r\n }\r\n\r\n const data = new TextureData(name, texture, mesh);\r\n this.textureData.push(data);\r\n });\r\n }\r\n\r\n start(): void {\r\n\r\n document.body.appendChild(this.renderer.domElement);\r\n this.manageDisplaySize();\r\n if (!environment.production) {\r\n this.controls = new FlyControls(this.camera, this.renderer.domElement);\r\n this.controls.domElement = this.renderer.domElement;\r\n this.controls.autoForward = false;\r\n this.controls.dragToLook = true;\r\n this.controls.rollSpeed = Math.PI / 24;\r\n }\r\n\r\n const me = this;\r\n\r\n (function render() {\r\n let camWorldQuaternion: Quaternion = new Quaternion();\r\n me.camera.getWorldQuaternion(camWorldQuaternion);\r\n let camWorldEuler: Euler = new Euler();\r\n camWorldEuler.setFromQuaternion(camWorldQuaternion);\r\n me.floorGroup.rotation.y = camWorldEuler.y;\r\n\r\n me.updateEvent.emit();\r\n update();\r\n const delta = me.clock.getDelta();\r\n me.animations.forEach((x) => {\r\n x.mixer.update(delta);\r\n });\r\n\r\n if (me.controls && !environment.production && me.inSceneViewMode) {\r\n me.controls.update(delta);\r\n }\r\n\r\n if (me.targetCameraGroupRotationTime < me.maxCameraGroupRotationTime && me.allowUserCameraPan) {\r\n me.targetCameraGroupRotationTime += delta;\r\n let current = new Quaternion().slerpQuaternions(me.startCameraGroupRotation, me.targetCameraGroupRotation,me.cameraGroupRotationSpeed * me.targetCameraGroupRotationTime);\r\n me.cameraGroup.quaternion.copy(current);\r\n }\r\n\r\n\r\n let tempClearColor: Color = new Color();\r\n me.renderer.getClearColor(tempClearColor);\r\n me.renderer.setClearColor(0);\r\n me.renderer.setRenderTarget(me.shadowTarget);\r\n me.renderer.clearColor();\r\n me.renderer.setRenderTarget(null);\r\n me.renderer.setClearColor(tempClearColor);\r\n\r\n me.renderer.render(me.scene, me.camera);\r\n requestAnimationFrame(render);\r\n }());\r\n }\r\n\r\n jumpCameraTo(cameraPosition: Vector3, cameraRotation: Vector3, allowUserCameraPan: boolean = false): void {\r\n this.camera.position.copy(cameraPosition);\r\n this.camera.quaternion.copy(new Quaternion().setFromEuler(new Euler(\r\n cameraRotation.x,\r\n cameraRotation.y,\r\n cameraRotation.z, 'XYZ')));\r\n this.allowUserCameraPan = allowUserCameraPan;\r\n }\r\n\r\n tweenCameraTo(cameraPosition: Vector3, cameraRotation: Vector3, durationMs: number = 2000, allowUserCameraPanOnComplete: boolean = false): void {\r\n\r\n if (!allowUserCameraPanOnComplete)\r\n {\r\n this.targetCameraGroupRotation = new Quaternion().setFromEuler(new Euler(0, 0, 0, 'XYZ'));\r\n this.startCameraGroupRotation = new Quaternion().copy(this.cameraGroup.quaternion);\r\n this.targetCameraGroupRotationTime = this.maxCameraGroupRotationTime;\r\n this.allowUserCameraPan = allowUserCameraPanOnComplete; //Update immediately\r\n }\r\n\r\n let positionTween = new Tween(this.camera.position)\r\n .to(cameraPosition, durationMs)\r\n .easing(Easing.Quadratic.InOut);\r\n\r\n let rot = new Quaternion().copy(this.camera.quaternion);\r\n let targetRot = new Quaternion()\r\n .setFromEuler(new Euler(\r\n cameraRotation.x,\r\n cameraRotation.y,\r\n cameraRotation.z));\r\n\r\n let currentTime = new Vector2(0, 0);\r\n let maxTime = new Vector2(1, 0);\r\n let currentQuat = new Quaternion();\r\n let rotationTween = new Tween(currentTime)\r\n .to(maxTime, durationMs)\r\n .easing(Easing.Quadratic.InOut)\r\n .onUpdate(() => {\r\n currentQuat.slerpQuaternions(rot, targetRot, currentTime.x);\r\n this.camera.quaternion.copy(currentQuat);\r\n })\r\n .onComplete(() => {\r\n this.allowUserCameraPan = allowUserCameraPanOnComplete;\r\n })\r\n\r\n positionTween.start();\r\n rotationTween.start();\r\n }\r\n\r\n playAnimationForPage(currentPage: ExperiencePage): void {\r\n this.animations.forEach((x) => {\r\n x.mixer.stopAllAction();\r\n })\r\n currentPage.animations.forEach((x) => {\r\n const modelAnimation = this.animations.find((y) => y.name === x.modelName);\r\n const modelClip = modelAnimation?.clips.find((z) => z.name === x.animationName);\r\n\r\n const action = modelAnimation.mixer.clipAction(modelClip);\r\n\r\n if (!x.loop) {\r\n action.loop = LoopOnce;\r\n }\r\n\r\n action.play();\r\n })\r\n }\r\n\r\n fadeElementsForPage(currentPage: ExperiencePage): void {\r\n this.animations.forEach((x) => {\r\n const isHidingModel = currentPage.hiddenModels.some((y) => x.name === y);\r\n if (!x.isVisible && !isHidingModel) {\r\n x.fadeInTweens.forEach((y) => {\r\n // play fade in animation\r\n y.start();\r\n });\r\n x.isVisible = true;\r\n } else if (x.isVisible && isHidingModel) {\r\n x.fadeOutTweens.forEach((y) => {\r\n // play fade out animation\r\n y.start();\r\n });\r\n x.isVisible = false;\r\n }\r\n })\r\n }\r\n\r\n swapTextureOnMesh(textureName: string): void {\r\n const data = this.textureData.find((x) => x.name === textureName);\r\n\r\n if (!data) return;\r\n if (data.isVideo) {\r\n this.video.src = data.videoUrl;\r\n this.video.play()\r\n .then(() => {\r\n if (data.name.endsWith(\"_EM\")) {\r\n (data.targetMesh.material as MeshStandardMaterial).emissiveMap = data.texture;\r\n } else {\r\n (data.targetMesh.material as MeshStandardMaterial).map = data.texture;\r\n }\r\n (data.targetMesh.material as MeshStandardMaterial).needsUpdate = true;\r\n });\r\n return;\r\n }\r\n\r\n if (data.name.endsWith(\"_EM\")) {\r\n (data.targetMesh.material as MeshStandardMaterial).emissiveMap = data.texture;\r\n } else {\r\n (data.targetMesh.material as MeshStandardMaterial).map = data.texture;\r\n }\r\n (data.targetMesh.material as MeshStandardMaterial).needsUpdate = true;\r\n }\r\n\r\n toEuler(rotation: Vector3): Euler {\r\n return new Euler().setFromVector3(rotation, 'XYZ');\r\n }\r\n\r\n toggleSceneViewMode(): void {\r\n this.inSceneViewMode = !this.inSceneViewMode;\r\n\r\n if (this.inSceneViewMode) {\r\n console.log('Scene view enabled!');\r\n } else {\r\n console.log('Scene view disabled!');\r\n }\r\n }\r\n\r\n getCameraPosition(): Vector3 {\r\n return this.camera.position;\r\n }\r\n\r\n getCameraRotation(): Euler {\r\n return this.camera.rotation;\r\n }\r\n\r\n getWorldPointFromClick(clientX: number, clientY: number): Vector3 {\r\n const dimensions = this.renderer.domElement\r\n const rayX = (clientX / dimensions.width) * 2 - 1;\r\n const rayY = -(clientY / dimensions.height) * 2 + 1;\r\n const rayVector = new Vector2(rayX, rayY);\r\n\r\n const raycaster = new Raycaster();\r\n raycaster.setFromCamera(rayVector, this.camera);\r\n\r\n const intersects = raycaster.intersectObjects(this.scene.children, true);\r\n\r\n const worldPos = new Vector3();\r\n if (intersects[0]) {\r\n worldPos.copy(intersects[0].point);\r\n }\r\n\r\n return worldPos;\r\n }\r\n\r\n onWindowResize(): void {\r\n if (this.camera === undefined || this.renderer === undefined) {\r\n return;\r\n }\r\n this.manageDisplaySize();\r\n }\r\n\r\n private resizeRendererToDisplaySize(): boolean {\r\n const canvas = this.renderer.domElement;\r\n const pixelRatio = window.devicePixelRatio;\r\n const width = canvas.clientWidth * pixelRatio | 0;\r\n const height = canvas.clientHeight * pixelRatio | 0;\r\n const needResize = canvas.width !== width || canvas.height !== height;\r\n if (needResize) {\r\n this.renderer.setSize(width, height, false);\r\n }\r\n return needResize;\r\n }\r\n\r\n public getCanvas(): HTMLCanvasElement\r\n {\r\n return this.renderer.domElement;\r\n }\r\n\r\n private manageDisplaySize(): void {\r\n if (this.resizeRendererToDisplaySize()) {\r\n const canvas = this.renderer.domElement;\r\n this.camera.aspect = canvas.clientWidth / canvas.clientHeight;\r\n this.camera.fov = (canvas.clientWidth > canvas.clientHeight) ? this.landscapeFov : this.portraitFov;\r\n this.camera.updateProjectionMatrix();\r\n }\r\n }\r\n\r\n onDestroy(): void {\r\n this.scene?.clear();\r\n document.body.removeChild(this.renderer.domElement);\r\n }\r\n\r\n rotateCamera(mouseX: number) {\r\n if (!this.allowUserCameraPan) return;\r\n\r\n const canvas = this.renderer.domElement;\r\n let clampedMouse = Math.min(Math.max(mouseX, 0), canvas.clientWidth);\r\n this.targetCameraGroupRotation = new Quaternion().setFromEuler(new Euler(0, MathUtils.degToRad(MathUtils.lerp(this.rotateRangeDeg, -this.rotateRangeDeg, clampedMouse / canvas.clientWidth)), 0, 'XYZ'));\r\n this.startCameraGroupRotation = new Quaternion().copy(this.cameraGroup.quaternion);\r\n this.targetCameraGroupRotationTime = 0;\r\n this.cameraGroupRotationSpeed = 2;\r\n }\r\n\r\n tweenCameraGroupToZero() {\r\n let durationMs = 2000;\r\n let currentQuat = new Quaternion();\r\n let rot = new Quaternion().copy(this.cameraGroup.quaternion);\r\n let targetRot = new Quaternion().setFromEuler(new Euler(0, 0, 0));\r\n\r\n let currentTime = new Vector2(0, 0);\r\n let maxTime = new Vector2(1, 0);\r\n let rotationTween = new Tween(currentTime)\r\n .to(maxTime, durationMs)\r\n .easing(Easing.Quadratic.InOut)\r\n .onUpdate(() => {\r\n currentQuat.slerpQuaternions(rot, targetRot, currentTime.x);\r\n this.cameraGroup.quaternion.copy(currentQuat);\r\n });\r\n\r\n rotationTween.start();\r\n }\r\n}\r\n\r\n","import {Mesh, Texture} from \"three\";\r\n\r\nexport class TextureData {\r\n constructor(\r\n public name: string,\r\n public texture: Texture,\r\n public targetMesh: Mesh,\r\n public isVideo: boolean = false\r\n ) {\r\n }\r\n\r\n public videoUrl: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LoadingManager, Texture, TextureLoader } from \"three\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TextureLoaderService {\r\n\r\n constructor() {\r\n }\r\n\r\n public async loadTexture(path: string, loadingManager: LoadingManager): Promise {\r\n const loader = new TextureLoader(loadingManager);\r\n return await loader.loadAsync(path);\r\n }\r\n}\r\n","import { RouterModule } from '@angular/router';\r\nimport { Vg3Component } from './experiences/vg3/vg3.component';\r\nimport { Sg3Component } from './experiences/sg3/sg3.component';\r\nimport { AugmentedRealityComponent } from './shared/augmented-reality/augmented-reality.component';\r\n\r\n\r\nconst routes = [\r\n {\r\n path: 'v3',\r\n children: [\r\n {\r\n path: 'vg3',\r\n component: Vg3Component\r\n },\r\n {\r\n path: 'vg3/ar',\r\n component: AugmentedRealityComponent,\r\n data: {\r\n iosModel: '/assets/v3/models/ar/VG3-640-scaled-AR.usdz',\r\n androidModel: '/assets/v3/models/ar/VG3-640-scaled-AR.glb',\r\n returnUrl: '/v3/vg3'\r\n }\r\n },\r\n {\r\n path: 'sg3',\r\n component: Sg3Component\r\n }, {\r\n path: 'sg3/ar',\r\n component: AugmentedRealityComponent,\r\n data: {\r\n iosModel: '/assets/v3/models/ar/SG3-540-scaled-AR.usdz',\r\n androidModel: '/assets/v3/models/ar/SG3-540-scaled-AR.glb',\r\n returnUrl: '/v3/sg3'\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n;\r\nexport const v3RoutingModule = RouterModule.forChild(routes);\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { v3RoutingModule } from './v3-routing.module';\r\nimport { Vg3Component } from './experiences/vg3/vg3.component';\r\nimport { Sg3Component } from './experiences/sg3/sg3.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { ExperienceComponent } from './shared/experience/experience.component';\r\nimport { ExperienceContentComponent } from './shared/experience/experience-content/experience-content.component';\r\nimport { ExperienceLoadingComponent } from './shared/experience/experience-loading/experience-loading.component';\r\nimport { AugmentedRealityComponent } from './shared/augmented-reality/augmented-reality.component';\r\nimport { ExperienceAugmentedRealityButtonComponent } from './shared/experience/experience-augmented-reality-button/experience-augmented-reality-button.component';\r\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ExperienceNavItemComponent } from './shared/experience/experience-nav-item/experience-nav-item.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n Vg3Component,\r\n Sg3Component,\r\n ExperienceComponent,\r\n ExperienceContentComponent,\r\n ExperienceLoadingComponent,\r\n AugmentedRealityComponent,\r\n ExperienceAugmentedRealityButtonComponent,\r\n ExperienceNavItemComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n v3RoutingModule,\r\n NgbCollapseModule,\r\n NgbDropdownModule\r\n ]\r\n})\r\nexport class V3Module { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n transitionSpeed: 2000,\r\n supportedLanguages: ['en', 'es', 'de', 'fr', 'it']\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af.json\": 3522,\n\t\"./am.json\": 6095,\n\t\"./ar.json\": 9661,\n\t\"./az.json\": 4506,\n\t\"./be.json\": 1866,\n\t\"./bg.json\": 5798,\n\t\"./bn.json\": 6589,\n\t\"./bs.json\": 2434,\n\t\"./ca.json\": 4602,\n\t\"./cs.json\": 6611,\n\t\"./cy.json\": 5077,\n\t\"./da.json\": 5774,\n\t\"./de.json\": 8491,\n\t\"./dv.json\": 4192,\n\t\"./el.json\": 3468,\n\t\"./en.json\": 1086,\n\t\"./es.json\": 6655,\n\t\"./et.json\": 843,\n\t\"./eu.json\": 6939,\n\t\"./fa.json\": 6560,\n\t\"./fi.json\": 3772,\n\t\"./fr.json\": 924,\n\t\"./gl.json\": 5627,\n\t\"./ha.json\": 7940,\n\t\"./he.json\": 1562,\n\t\"./hi.json\": 3529,\n\t\"./hr.json\": 2634,\n\t\"./hu.json\": 817,\n\t\"./hy.json\": 3138,\n\t\"./id.json\": 9381,\n\t\"./is.json\": 6643,\n\t\"./it.json\": 7384,\n\t\"./ja.json\": 4910,\n\t\"./ka.json\": 4652,\n\t\"./kk.json\": 5636,\n\t\"./km.json\": 7309,\n\t\"./ko.json\": 5979,\n\t\"./ku.json\": 6150,\n\t\"./ky.json\": 3591,\n\t\"./lt.json\": 2416,\n\t\"./lv.json\": 1757,\n\t\"./mk.json\": 620,\n\t\"./ml.json\": 4924,\n\t\"./mn.json\": 2849,\n\t\"./ms.json\": 8954,\n\t\"./nb.json\": 4451,\n\t\"./nl.json\": 7613,\n\t\"./nn.json\": 4636,\n\t\"./no.json\": 1189,\n\t\"./pl.json\": 6238,\n\t\"./ps.json\": 1766,\n\t\"./pt.json\": 9562,\n\t\"./ro.json\": 8795,\n\t\"./ru.json\": 1963,\n\t\"./sd.json\": 4726,\n\t\"./sk.json\": 2201,\n\t\"./sl.json\": 6926,\n\t\"./so.json\": 5791,\n\t\"./sq.json\": 6774,\n\t\"./sr.json\": 1376,\n\t\"./sv.json\": 2552,\n\t\"./sw.json\": 9310,\n\t\"./ta.json\": 8517,\n\t\"./tg.json\": 8210,\n\t\"./th.json\": 5188,\n\t\"./tr.json\": 3054,\n\t\"./tt.json\": 3785,\n\t\"./ug.json\": 9019,\n\t\"./uk.json\": 4076,\n\t\"./ur.json\": 4819,\n\t\"./uz.json\": 4039,\n\t\"./vi.json\": 4546,\n\t\"./zh.json\": 6637\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\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\n\t\tvar id = map[req];\n\t\treturn __webpack_require__.t(id, 1 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 2872;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./af.json\": 3522,\n\t\"./am.json\": 6095,\n\t\"./ar.json\": 9661,\n\t\"./az.json\": 4506,\n\t\"./be.json\": 1866,\n\t\"./bg.json\": 5798,\n\t\"./bn.json\": 6589,\n\t\"./bs.json\": 2434,\n\t\"./ca.json\": 4602,\n\t\"./cs.json\": 6611,\n\t\"./cy.json\": 5077,\n\t\"./da.json\": 5774,\n\t\"./de.json\": 8491,\n\t\"./dv.json\": 4192,\n\t\"./el.json\": 3468,\n\t\"./en.json\": 1086,\n\t\"./es.json\": 6655,\n\t\"./et.json\": 843,\n\t\"./eu.json\": 6939,\n\t\"./fa.json\": 6560,\n\t\"./fi.json\": 3772,\n\t\"./fr.json\": 924,\n\t\"./gl.json\": 5627,\n\t\"./ha.json\": 7940,\n\t\"./he.json\": 1562,\n\t\"./hi.json\": 3529,\n\t\"./hr.json\": 2634,\n\t\"./hu.json\": 817,\n\t\"./hy.json\": 3138,\n\t\"./id.json\": 9381,\n\t\"./is.json\": 6643,\n\t\"./it.json\": 7384,\n\t\"./ja.json\": 4910,\n\t\"./ka.json\": 4652,\n\t\"./kk.json\": 5636,\n\t\"./km.json\": 7309,\n\t\"./ko.json\": 5979,\n\t\"./ku.json\": 6150,\n\t\"./ky.json\": 3591,\n\t\"./lt.json\": 2416,\n\t\"./lv.json\": 1757,\n\t\"./mk.json\": 620,\n\t\"./ml.json\": 4924,\n\t\"./mn.json\": 2849,\n\t\"./ms.json\": 8954,\n\t\"./nb.json\": 4451,\n\t\"./nl.json\": 7613,\n\t\"./nn.json\": 4636,\n\t\"./no.json\": 1189,\n\t\"./pl.json\": 6238,\n\t\"./ps.json\": 1766,\n\t\"./pt.json\": 9562,\n\t\"./ro.json\": 8795,\n\t\"./ru.json\": 1963,\n\t\"./sd.json\": 4726,\n\t\"./sk.json\": 2201,\n\t\"./sl.json\": 6926,\n\t\"./so.json\": 5791,\n\t\"./sq.json\": 6774,\n\t\"./sr.json\": 1376,\n\t\"./sv.json\": 2552,\n\t\"./sw.json\": 9310,\n\t\"./ta.json\": 8517,\n\t\"./tg.json\": 8210,\n\t\"./th.json\": 5188,\n\t\"./tr.json\": 3054,\n\t\"./tt.json\": 3785,\n\t\"./ug.json\": 9019,\n\t\"./uk.json\": 4076,\n\t\"./ur.json\": 4819,\n\t\"./uz.json\": 4039,\n\t\"./vi.json\": 4546,\n\t\"./zh.json\": 6637\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7467;"],"names":[],"sourceRoot":"webpack:///"}