{"version":3,"sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/camera-product-item/camera-product-item.component.ts","./src/app/components/camera-product-item/camera-product-item.component.html","./src/app/components/camera-selector/camera-selector.component.ts","./src/app/components/camera-selector/camera-selector.component.html","./src/app/components/disclaimer/disclaimer.component.ts","./src/app/components/disclaimer/disclaimer.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/license-item/license-item.component.ts","./src/app/components/license-item/license-item.component.html","./src/app/components/licenses/licenses.component.html","./src/app/components/licenses/licenses.component.ts","./src/app/components/progress-bar/progress-bar.component.ts","./src/app/components/progress-bar/progress-bar.component.html","./src/app/components/recommended-storage-item/recommended-storage-item.component.ts","./src/app/components/recommended-storage-item/recommended-storage-item.component.html","./src/app/components/recommended-storage/recommended-storage.component.ts","./src/app/components/recommended-storage/recommended-storage.component.html","./src/app/components/scene-details/scene-details.component.html","./src/app/components/scene-details/scene-details.component.ts","./src/app/components/storage-calculator-camera-item/storage-calculator-camera-item.component.ts","./src/app/components/storage-calculator-camera-item/storage-calculator-camera-item.component.html","./src/app/components/storage-calculator-group/storage-calculator-group.component.ts","./src/app/components/storage-calculator-group/storage-calculator-group.component.html","./src/app/components/storage-calculator/storage-calculator.component.ts","./src/app/components/storage-calculator/storage-calculator.component.html","./src/app/components/summary/summary.component.ts","./src/app/components/summary/summary.component.html","./src/app/components/teaser/teaser.component.ts","./src/app/components/teaser/teaser.component.html","./src/app/components/video-player/video-player.component.ts","./src/app/components/video-player/video-player.component.html","./src/app/environments.ts","./src/app/services/calculator/calculator.service.ts","./src/app/services/cameras/cameras.service.ts","./src/app/services/licenses/licenses.service.ts","./src/app/services/project_manager/project-manager.service.ts","./src/app/services/scenes/scenes.service.ts","./src/app/services/set_up_type/set-up-type.service.ts","./src/app/services/storages/storages.service.ts","./src/app/services/summary/summary.service.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$"],"names":[],"mappings":"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AAK,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;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;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;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,0B","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { CameraSelectorComponent } from './components/camera-selector/camera-selector.component';\r\nimport { StorageCalculatorComponent } from './components/storage-calculator/storage-calculator.component';\r\nimport { RecommendedStorageComponent } from './components/recommended-storage/recommended-storage.component';\r\nimport { SummaryComponent } from './components/summary/summary.component';\r\nimport { LicensesComponent } from './components/licenses/licenses.component';\r\nimport { DisclaimerComponent } from './components/disclaimer/disclaimer.component';\r\nimport { SceneDetailsComponent } from './components/scene-details/scene-details.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'calculator',\r\n component: StorageCalculatorComponent,\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'recommended-storage',\r\n component: RecommendedStorageComponent,\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'licenses',\r\n component: LicensesComponent,\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'summary',\r\n component: SummaryComponent,\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'disclaimer',\r\n component: DisclaimerComponent,\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'scene_details',\r\n component: SceneDetailsComponent,\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: '',\r\n component: CameraSelectorComponent,\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: '**',\r\n component: CameraSelectorComponent,\r\n pathMatch: 'full'\r\n }\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, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Environment } from './environments';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.sass']\r\n})\r\nexport class AppComponent {\r\n title = 'storage-calculator';\r\n\r\n @ViewChild(\"infoNotification\", { static: true }) infoNotification;\r\n @ViewChild(\"successNotification\", { static: true }) successNotification;\r\n @ViewChild(\"errorNotification\", { static: true }) errorNotification;\r\n @ViewChild(\"warningNotification\", { static: true }) warningNotification;\r\n @ViewChild(\"siteDisclaimer\", { static: true }) siteDisclaimer;\r\n\r\n spinner = false\r\n disclaimerMessage = false\r\n /**\r\n\t * Notifier service\r\n\t */\r\n\tprivate notifier: NotifierService;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t *\r\n\t * @param {NotifierService} notifier Notifier service\r\n\t */\r\n\tpublic constructor( notifier: NotifierService, private translate: TranslateService, private modalService: ModalService, public router: Router) {\r\n\t\tthis.notifier = notifier;\r\n translate.setDefaultLang('en');\r\n\r\n if (Environment.env === 'production') {\r\n console.log = function () {};\r\n }\r\n }\r\n\r\n getTranslateValue(key): any{ \r\n\r\n return new Promise((resolve, reject) => {\r\n this.translate.get(key)\r\n .subscribe((data: any) => {\r\n resolve(data)\r\n })\r\n })\r\n }\r\n \r\n /**\r\n\t * Show a customnotification\r\n\t *\r\n\t * @param {string} type Notification type\r\n\t * @param {string} message Notification message\r\n\t */\r\n showCustomNotification(type: string, message: string){\r\n \r\n switch (type) {\r\n\r\n case 'success':\r\n this.notifier.show({\r\n message: message,\r\n\t\t type: 'default',\r\n template: this.successNotification\r\n })\r\n break;\r\n\r\n case 'info':\r\n this.notifier.show({\r\n message: message,\r\n type: 'default',\r\n template: this.infoNotification\r\n })\r\n break;\r\n\r\n case 'warning':\r\n this.notifier.show({\r\n message: message,\r\n type: 'default',\r\n template: this.warningNotification\r\n })\r\n break;\r\n\r\n case 'error':\r\n this.notifier.show({\r\n message: message,\r\n type: 'default',\r\n template: this.errorNotification\r\n })\r\n break;\r\n \r\n default:\r\n this.notifier.show({\r\n message: message,\r\n type: 'default',\r\n template: this.infoNotification\r\n })\r\n break;\r\n }\r\n }\r\n\r\n showSpinner(show){\r\n this.spinner = show\r\n }\r\n\r\n showSiteDisclaimer() {\r\n if(sessionStorage.getItem('siteDisclaimer') == \"true\") this.disclaimerMessage = true\r\n\r\n this.modalService.open(this.siteDisclaimer).then(result => {\r\n sessionStorage.setItem(\"siteDisclaimer\", \"\"+this.disclaimerMessage)\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 {{ notificationData.message }}\r\n \r\n\r\n\r\n\r\n \r\n {{ notificationData.message }}\r\n \r\n\r\n\r\n\r\n \r\n {{ notificationData.message }}\r\n \r\n\r\n\r\n\r\n \r\n {{ notificationData.message }}\r\n \r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n {{ 'disclaimer.message1' | translate }}
\r\n {{ 'disclaimer.message2' | translate }}
\r\n {{ 'disclaimer.message3' | translate }}
\r\n {{ 'disclaimer.message4' | translate }}\r\n \r\n \r\n {{ 'disclaimer.messageCheckBox' | translate}}\r\n \r\n
\r\n
\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\n\r\n\r\n// import ngx-translate and the http loader\r\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\r\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\r\nimport {HttpClient, HttpClientModule} from '@angular/common/http';\r\n\r\nimport { RbUiComponentsModule } from '@inst-iot/bosch-angular-ui-components';\r\nimport { NotifierModule, NotifierOptions } from 'angular-notifier'\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { TeaserComponent } from './components/teaser/teaser.component';\r\nimport { ProgressBarComponent } from './components/progress-bar/progress-bar.component';\r\nimport { CameraSelectorComponent } from './components/camera-selector/camera-selector.component';\r\nimport { StorageCalculatorComponent } from './components/storage-calculator/storage-calculator.component';\r\nimport { CameraProductItemComponent } from './components/camera-product-item/camera-product-item.component';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { StorageCalculatorCameraItemComponent } from './components/storage-calculator-camera-item/storage-calculator-camera-item.component';\r\nimport { RecommendedStorageComponent } from './components/recommended-storage/recommended-storage.component';\r\nimport { RecommendedStorageItemComponent } from './components/recommended-storage-item/recommended-storage-item.component';\r\nimport { SummaryComponent } from './components/summary/summary.component';\r\nimport { LicensesComponent } from './components/licenses/licenses.component';\r\nimport { LicenseItemComponent } from './components/license-item/license-item.component';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { StorageCalculatorGroupComponent } from './components/storage-calculator-group/storage-calculator-group.component';\r\nimport { Environment } from './environments';\r\nimport { DisclaimerComponent } from './components/disclaimer/disclaimer.component';\r\nimport { SceneDetailsComponent } from './components/scene-details/scene-details.component';\r\nimport {VgCoreModule} from '@videogular/ngx-videogular/core';\r\nimport {VgControlsModule} from '@videogular/ngx-videogular/controls';\r\nimport {VgOverlayPlayModule} from '@videogular/ngx-videogular/overlay-play';\r\nimport {VgBufferingModule} from '@videogular/ngx-videogular/buffering';\r\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\r\n\r\n/**\r\n * Custom angular notifier options\r\n */\r\nconst customNotifierOptions: NotifierOptions = {\r\n\tposition: {\r\n\t\thorizontal: {\r\n\t\t\tposition: 'middle',\r\n\t\t\tdistance: 12\r\n\t\t},\r\n\t\tvertical: {\r\n\t\t\tposition: 'top',\r\n\t\t\tdistance: 15,\r\n\t\t\tgap: 7\r\n\t\t}\r\n\t},\r\n\ttheme: 'material',\r\n\tbehaviour: {\r\n\t\tautoHide: 10000,\r\n\t\tonClick: false,\r\n\t\tonMouseover: 'pauseAutoHide',\r\n\t\tshowDismissButton: true,\r\n\t\tstacking: 5\r\n\t},\r\n\tanimations: {\r\n\t\tenabled: true,\r\n\t\tshow: {\r\n\t\t\tpreset: 'slide',\r\n\t\t\tspeed: 300,\r\n\t\t\teasing: 'ease'\r\n\t\t},\r\n\t\thide: {\r\n\t\t\tpreset: 'fade',\r\n\t\t\tspeed: 300,\r\n\t\t\teasing: 'ease',\r\n\t\t\toffset: 50\r\n\t\t},\r\n\t\tshift: {\r\n\t\t\tspeed: 300,\r\n\t\t\teasing: 'ease'\r\n\t\t},\r\n\t\toverlap: 150\r\n\t}\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n TeaserComponent,\r\n ProgressBarComponent,\r\n CameraSelectorComponent,\r\n StorageCalculatorComponent,\r\n CameraProductItemComponent,\r\n StorageCalculatorCameraItemComponent,\r\n RecommendedStorageComponent,\r\n RecommendedStorageItemComponent,\r\n SummaryComponent,\r\n LicensesComponent,\r\n LicenseItemComponent,\r\n StorageCalculatorGroupComponent,\r\n DisclaimerComponent,\r\n SceneDetailsComponent,\r\n VideoPlayerComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n RbUiComponentsModule,\r\n\tNotifierModule.withConfig(customNotifierOptions),\r\n\tNgxPaginationModule,\r\n\tFormsModule,\r\n\tHttpClientModule,\r\n\t// ngx-translate and the loader module\r\n\tTranslateModule.forRoot({\r\n\t\tloader: {\r\n\t\t\tprovide: TranslateLoader,\r\n\t\t\tuseFactory: HttpLoaderFactory,\r\n\t\t\tdeps: [HttpClient]\r\n\t\t}\r\n\t}),\r\n\tVgCoreModule,\r\n VgControlsModule,\r\n VgOverlayPlayModule,\r\n VgBufferingModule\r\n ],\r\n providers: [\t\r\n\tModalService,\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\r\n// required for AOT compilation\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http, window.location.origin + Environment.Base_URL +'/assets/i18n/', '.json');\r\n}\r\n","import { ValueConverter } from '@angular/compiler/src/render3/view/template';\r\nimport { Component, OnInit, Input, ViewChild, TemplateRef, Output, EventEmitter } from '@angular/core';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { SetUpTypeService } from 'src/app/services/set_up_type/set-up-type.service';\r\n\r\n@Component({\r\n selector: 'app-camera-product-item',\r\n templateUrl: './camera-product-item.component.html',\r\n styleUrls: ['./camera-product-item.component.sass']\r\n})\r\nexport class CameraProductItemComponent implements OnInit {\r\n\r\n @ViewChild('modalImage', {static:true})\r\n private modalImage: TemplateRef;\r\n\r\n @Output() results = new EventEmitter();\r\n @Input() ctn: string;\r\n added: Boolean = false\r\n camera: any\r\n quantityInput:number = 1\r\n isCero: boolean = false;\r\n\r\n\r\n constructor(private notificationService: AppComponent, \r\n private modalService: ModalService,\r\n private setUpTypeService: SetUpTypeService) { }\r\n\r\n ngOnInit(): void {\r\n this.getCameraInfo()\r\n\r\n if(sessionStorage.getItem(\"productsSelected\") != null){\r\n let producsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let index = producsSelected.cameras.findIndex(x => x.ctn === this.ctn)\r\n \r\n if(index != -1) this.quantityInput = producsSelected.cameras[index].Quantity;\r\n \r\n } \r\n \r\n if(this.checkAddedProduct(this.ctn)) this.added = true\r\n }\r\n\r\n \r\n AddQuantity(){ \r\n // sessionStorage.setItem(\"quantityInput\", this.quantityInput.toString()); \r\n \r\n if(sessionStorage.getItem(\"productsSelected\") != null){\r\n let producsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let index = producsSelected.cameras.findIndex(x => x.ctn === this.ctn)\r\n \r\n if(index != -1){\r\n producsSelected.cameras[index].Quantity = this.quantityInput\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(producsSelected))\r\n this.results.emit(JSON.stringify({\"camera\": JSON.stringify(this.camera), \"action\": 'Update'}))\r\n this.notificationService.getTranslateValue('Quantity Updated')\r\n .then(async (message) => {\r\n this.notificationService.showCustomNotification('success', await message)\r\n })\r\n }\r\n } \r\n }\r\n\r\n getCameraInfo(){\r\n let camerasArray = JSON.parse(sessionStorage.getItem(\"cameras\"))\r\n let index = camerasArray.findIndex(x => x.ctn === this.ctn) \r\n this.camera = camerasArray[index]\r\n }\r\n\r\n addCamera(): void {\r\n let producsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n // this.camera.Quantity = parseInt(sessionStorage.getItem(\"quantityInput\"));\r\n let input = document.getElementById(this.camera.ctn+\"_quantity\").children[0].children[0].children[0] as HTMLInputElement\r\n this.camera.Quantity = parseInt(input.value)\r\n this.camera.childrens = [] \r\n delete this.camera.accessories\r\n delete this.camera.bitrates_values\r\n\r\n /**\r\n * Remove error css in progress bar\r\n */\r\n\r\n let length = this.setUpTypeService.getSetUpType() == \"Cloud\"? 4:5\r\n for (let index = 1; index < length; index++){\r\n document.getElementsByClassName('step')[index].className = document.getElementsByClassName('step')[index].className.replace(' error error-step', '')\r\n }\r\n\r\n if(!this.checkAddedProduct(this.ctn)) producsSelected.cameras.push(this.camera) \r\n \r\n // sessionStorage.setItem(\"quantityInput\", \"1\");\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(producsSelected))\r\n this.added = true\r\n this.checkFollowingStep()\r\n this.results.emit(JSON.stringify({\"camera\": JSON.stringify(this.camera), \"action\": 'Add'}))\r\n\r\n /**\r\n * Show notification\r\n */\r\n \r\n this.notificationService.getTranslateValue('cameraItem.cameraAdded')\r\n .then(async (message) => {\r\n this.notificationService.showCustomNotification('success', await message)\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n removeCamera(): void {\r\n\r\n let producsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let index = producsSelected.cameras.findIndex(x => x.ctn === this.ctn)\r\n producsSelected.cameras.splice(index, 1)\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(producsSelected)) \r\n this.added = false\r\n this.quantityInput = 1\r\n this.isCero = false;\r\n\r\n this.results.emit(JSON.stringify({\"camera\": JSON.stringify(this.camera), \"action\": 'Remove'}))\r\n this.checkFollowingStep()\r\n /**\r\n * Show notification\r\n */\r\n this.notificationService.getTranslateValue('cameraItem.cameraRemoved')\r\n .then(async (message) => {\r\n this.notificationService.showCustomNotification('success', await message)\r\n })\r\n }\r\n\r\n checkAddedProduct(name): boolean{\r\n\r\n let camerasSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\")).cameras\r\n\r\n if(camerasSelected.findIndex(x => x.ctn === name) === -1) return false\r\n else return true \r\n\r\n }\r\n\r\n checkFollowingStep(){\r\n let producsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n let step = document.getElementsByClassName(\"step\")[1];\r\n\r\n if(producsSelected.cameras.length == 0){\r\n /**\r\n * Disable following step\r\n */\r\n sessionStorage.setItem(\"currentStep\", \"1\")\r\n step.className = step.className.replace(\" enable-step\",\" disabled-step\");\r\n\r\n }else{\r\n /**\r\n * Enable following step\r\n */\r\n sessionStorage.setItem(\"currentStep\", '2')\r\n step.className = step.className.replace(\" disabled-step\", \" \");\r\n document.getElementsByClassName(\"step\")[2].className = 'step disabled-step'\r\n document.getElementsByClassName(\"step\")[3].className = 'step disabled-step'\r\n\r\n if(this.setUpTypeService.getSetUpType() != \"Cloud\") document.getElementsByClassName(\"step\")[4].className = 'step disabled-step'\r\n }\r\n }\r\n\r\n openConfirm(content: TemplateRef) {\r\n this.modalService.open(content).then(result => {\r\n });\r\n }\r\n}","
\r\n
\r\n \r\n

\r\n \r\n {{camera.name}}\r\n \r\n

\r\n
\r\n
\r\n {{camera.material_description}}\r\n
\r\n
\r\n
\r\n {{camera.ctn}}\r\n
\r\n
\r\n
\r\n
\r\n Quantity \r\n
\r\n
\r\n \r\n {{ 'storageCalculatorItem.quantityRequiredError' | translate }}\r\n {{ 'storageCalculatorItem.quantityMinimumError' | 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","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { CamerasService } from 'src/app/services/cameras/cameras.service';\r\nimport { enableRipple } from '@syncfusion/ej2-base';\r\n\r\nenableRipple(true);\r\n@Component({\r\n selector: 'app-camera-selector',\r\n templateUrl: './camera-selector.component.html',\r\n styleUrls: ['./camera-selector.component.sass']\r\n})\r\nexport class CameraSelectorComponent implements OnInit {\r\n\r\n /**\r\n * Pagination settings\r\n */\r\n page: number = 1\r\n total: number = 0\r\n itemPerPage: number = 3\r\n itemPerPageLabel: number = 9\r\n paginationSize = [9, 18, 27, 36, 45]\r\n chunkItems = 3\r\n\r\n test:string = 'Cloud'\r\n /**\r\n * Spinner settings\r\n */\r\n spinner: Boolean = false\r\n\r\n /**\r\n * Filter variables\r\n */\r\n type: any = ''\r\n range: any = ''\r\n resolution: any = ''\r\n weather: any = ''\r\n impactProtection: any = ''\r\n lensFocalLength: any = ''\r\n videoAnalytic: any = ''\r\n integratedIRIllumination: Boolean = false\r\n search: string = ''\r\n\r\n /**\r\n * Data arrays\r\n */\r\n types = []\r\n ranges = []\r\n resolutions = []\r\n weathers = []\r\n impactProtections = []\r\n lensFocalLengths = []\r\n videoAnalytics = []\r\n\r\n camerasArray = []\r\n arrayCam = []\r\n camerasSelected = []\r\n\r\n totalCameras: number = 0\r\n\r\n /*\r\n Project details variables\r\n */\r\n projectName: String = \"\"\r\n integrator: String = \"\"\r\n \r\n constructor(private camerasService: CamerasService, private notificationService: AppComponent, private router:Router) { }\r\n\r\n ngOnInit(): void {\r\n\r\n /**\r\n * Get all cameras\r\n */\r\n this.spinner = true\r\n this.camerasService.getAllCameras().subscribe(\r\n res => {\r\n this.camerasArray = res as []\r\n this.totalCameras = this.camerasArray.length\r\n sessionStorage.setItem(\"cameras\", JSON.stringify(this.camerasArray))\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n this.projectName = productsSelected.projectDetails.projectName\r\n this.integrator = productsSelected.projectDetails.integrator\r\n // this.spinner = false\r\n\r\n /**\r\n * Split the array in sections of 4 elements\r\n */\r\n const chunk = (arr, size) =>\r\n arr\r\n .reduce((acc, _, i) =>\r\n (i % size)\r\n ? acc\r\n : [...acc, arr.slice(i, i + size)]\r\n , [])\r\n\r\n this.arrayCam = chunk(this.camerasArray, this.chunkItems)\r\n this.page = 1\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n \r\n /**\r\n * Get the data from the filters\r\n */\r\n this.initFilters()\r\n }\r\n \r\n\r\n initFilters(): void{\r\n /**\r\n * Get all data of the filters\r\n */\r\n this.spinner = true\r\n this.camerasService.getTypes().subscribe(\r\n res => {\r\n this.types = res as []\r\n this.spinner = true\r\n\r\n this.camerasService.getRanges().subscribe(\r\n res => {\r\n this.ranges = res as []\r\n this.spinner = true\r\n\r\n this.camerasService.getResolutions().subscribe(\r\n res => {\r\n this.resolutions = res as []\r\n this.spinner = true\r\n\r\n this.camerasService.getWeatherOptions().subscribe(\r\n res => {\r\n this.weathers = res as []\r\n this.spinner = true\r\n\r\n this.camerasService.getImpactProtectionOptions().subscribe(\r\n res => {\r\n this.impactProtections = res as []\r\n this.spinner = true\r\n\r\n this.camerasService.getLensFocalLengthOptions().subscribe(\r\n res => {\r\n this.lensFocalLengths = res as []\r\n this.spinner = true\r\n\r\n this.camerasService.getVideoAnalyticsOptions().subscribe(\r\n res => {\r\n this.videoAnalytics = res as []\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n }) \r\n }\r\n )\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n\r\n }\r\n\r\n receiveDataFromChild(childResult: string){\r\n\r\n let results = JSON.parse(childResult)\r\n\r\n this.camerasSelected = JSON.parse(sessionStorage.getItem('productsSelected')).cameras\r\n\r\n }\r\n\r\n searchFilters(): void{\r\n this.spinner = true\r\n\r\n this.camerasService.getFilterCameras(this.type, this.range, this.resolution, this.weather, this.impactProtection, this.lensFocalLength, this.videoAnalytic, this.integratedIRIllumination, this.search).subscribe(\r\n res => {\r\n this.camerasArray = res\r\n\r\n if(this.camerasArray.length == 0)\r\n this.notificationService.getTranslateValue('cameraSelector.filter.errorMessageFilter')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('warning', await message)\r\n })\r\n /**\r\n * Split the array in sections of 4 elements\r\n */\r\n const chunk = (arr, size) =>\r\n arr\r\n .reduce((acc, _, i) =>\r\n (i % size)\r\n ? acc\r\n : [...acc, arr.slice(i, i + size)]\r\n , [])\r\n\r\n this.arrayCam = chunk(this.camerasArray, this.chunkItems)\r\n this.page = 1\r\n\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n\r\n }\r\n\r\n clearFilters(): void{\r\n this.spinner = true\r\n this.camerasService.getAllCameras().subscribe(\r\n res => {\r\n this.camerasArray = res as []\r\n this.totalCameras = this.camerasArray.length\r\n\r\n this.spinner = false\r\n\r\n /**\r\n * Split the array in sections of 4 elements\r\n */\r\n const chunk = (arr, size) =>\r\n arr\r\n .reduce((acc, _, i) =>\r\n (i % size)\r\n ? acc\r\n : [...acc, arr.slice(i, i + size)]\r\n , [])\r\n\r\n this.arrayCam = chunk(this.camerasArray, this.chunkItems)\r\n this.page = 1\r\n\r\n // this.initFilters()\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n /**\r\n * Clear values of filters variables\r\n */\r\n\r\n this.type = ''\r\n this.range = ''\r\n this.resolution = ''\r\n this.weather = ''\r\n this.impactProtection = ''\r\n this.lensFocalLength = ''\r\n this.videoAnalytic = ''\r\n this.integratedIRIllumination = false\r\n this.search = ''\r\n }\r\n\r\n paginationDropdown(){\r\n this.itemPerPage = this.itemPerPageLabel/this.chunkItems\r\n }\r\n\r\n selectAllMultiSelectValues(dropdown){\r\n return new Promise((resolve, reject) => {\r\n let result = {}\r\n if(dropdown == 'type'){\r\n this.types.forEach((element, index) => {\r\n result[element.id] = true\r\n if(index == this.types.length-1) resolve(result)\r\n });\r\n }else if(dropdown == 'range'){\r\n this.ranges.forEach((element, index) => {\r\n result[element.id] = true\r\n if(index == this.ranges.length-1) resolve(result)\r\n });\r\n }else if(dropdown == 'resolution'){\r\n this.resolutions.forEach((element, index) => {\r\n result[element.id] = true\r\n if(index == this.resolutions.length-1) resolve(result)\r\n });\r\n }else if(dropdown == 'weather'){\r\n this.weathers.forEach((element, index) => {\r\n result[element.id] = true\r\n if(index == this.weathers.length-1) resolve(result)\r\n });\r\n }else if(dropdown == 'impactProtection'){\r\n this.impactProtections.forEach((element, index) => {\r\n result[element.id] = true\r\n if(index == this.impactProtections.length-1) resolve(result)\r\n });\r\n }else if(dropdown == 'lensFocalLength'){\r\n this.lensFocalLengths.forEach((element, index) => {\r\n result[element.id] = true\r\n if(index == this.lensFocalLengths.length-1) resolve(result)\r\n });\r\n }else if(dropdown == 'videoAnalytic'){\r\n this.videoAnalytics.forEach((element, index) => {\r\n result[element.id] = true\r\n if(index == this.videoAnalytics.length-1) resolve(result)\r\n });\r\n }\r\n })\r\n }\r\n\r\n saveProjectDetails(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n productsSelected.projectDetails.projectName = this.projectName\r\n productsSelected.projectDetails.integrator = this.integrator\r\n\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n\r\n }\r\n\r\n collapseAllExpanders(type){\r\n let expanders = document.getElementsByClassName('accordion-toggle')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index] as HTMLAnchorElement;\r\n\r\n if(type == 'collapse'){\r\n if(element.children[0].className.includes('minimize')) element.click()\r\n }else{\r\n if(element.children[0].className.includes('add')) element.click()\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 {{ 'storageCalculatorItem.quantityRequiredError' | translate}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.hoursRequiredError' | 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 {{item.label}}\r\n \r\n
\r\n \r\n
\r\n \r\n {{item.label}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{item.label}}\r\n \r\n
\r\n \r\n
\r\n \r\n {{item.label}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{item.label}}\r\n \r\n
\r\n \r\n
\r\n \r\n {{item.label}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{item.label}}\r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'cameraSelector.filter.integratedIRIllumination' | 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 Click the image of any product to see specifications datasheet.\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 Cameras Selected ({{camerasSelected.length}})\r\n \r\n \r\n \r\n\r\n {{selected.ctn}} - {{selected.name}}\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
  • {{ 'licenseItem.ctn' | translate }}
  • \r\n
      \r\n
    • \r\n {{selected.ctn}}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • {{ 'licenseItem.shortDescription' | translate }}
  • \r\n
      \r\n
    • \r\n {{selected.material_description}}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • {{ 'licenseItem.quantity' | translate }}
  • \r\n
      \r\n
    • \r\n {{selected.Quantity}}\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 Showing {{camerasArray.length}} of {{totalCameras}} cameras\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
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppComponent } from 'src/app/app.component';\r\n\r\n@Component({\r\n selector: 'app-disclaimer',\r\n templateUrl: './disclaimer.component.html',\r\n styleUrls: ['./disclaimer.component.sass']\r\n})\r\nexport class DisclaimerComponent implements OnInit {\r\n\r\n constructor(private notificationService: AppComponent, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n returnToMainPage(){\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

\r\n {{ 'disclaimer.footer' | translate }} \r\n

\r\n

Bosch {{ 'teaser.title' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n {{ 'disclaimer.message1' | translate }}\r\n {{ 'disclaimer.message2' | translate }}
\r\n {{ 'disclaimer.message3' | translate }}\r\n {{ 'disclaimer.message4' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppComponent } from 'src/app/app.component';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.sass']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n backToTop(){\r\n document.body.scrollTop = 0;\r\n document.documentElement.scrollTop = 0;\r\n }\r\n\r\n moveToDisclaimerPage(){\r\n window.open('/disclaimer', \"_blank\")\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n {{ 'footer.slogan' | 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 © {{ 'footer.copyright' | translate }}\r\n \r\n
\r\n
\r\n \r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Component, HostListener, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AppComponent } from 'src/app/app.component';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.sass']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n languages = []\r\n language = \"en\"\r\n\r\n constructor(private translate: TranslateService,\r\n private http: HttpClient, private router: Router, private notificationService: AppComponent) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getJSON('assets/i18n/'+this.language+'.json').subscribe(data => {\r\n this.languages = data.languages\r\n });\r\n\r\n if(localStorage.getItem('productsSelected') == undefined){\r\n \r\n let productsSelected = {\r\n \"cameras\": [],\r\n \"recording\": [],\r\n \"licenses\": [],\r\n \"raid\": \"\",\r\n \"retentionTime\": 15,\r\n \"bandwidthNeeded\": \"0 Mbps\",\r\n \"storageNeeded\": \"0 MB\",\r\n \"storageAdded\": \"0 MB\",\r\n \"enableUpdated\": false,\r\n \"setUpType\": '',\r\n \"setUpTypeModal\": false,\r\n \"projectDetails\": {\r\n \"projectName\": \"\",\r\n \"integrator\": \"\"\r\n }\r\n }\r\n\r\n localStorage.setItem(\"restoreProject\", 'false')\r\n sessionStorage.setItem(\"currentStep\", \"1\")\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n }\r\n else{\r\n sessionStorage.setItem(\"currentStep\", localStorage.getItem('currentStep'))\r\n sessionStorage.setItem(\"productsSelected\", localStorage.getItem('productsSelected'))\r\n localStorage.removeItem('currentStep')\r\n localStorage.removeItem('productsSelected')\r\n this.enableStepsWithUploadProject()\r\n }\r\n\r\n if(sessionStorage.getItem('siteDisclaimer') == undefined || sessionStorage.getItem('siteDisclaimer') == \"false\"){\r\n this.notificationService.showSiteDisclaimer()\r\n }\r\n\r\n sessionStorage.setItem('user_token', JSON.stringify(this.getRandom(20)))\r\n \r\n let collection = document.getElementsByClassName('logo')\r\n\r\n setInterval(() => {\r\n let logo = collection[0].children[0] as HTMLAnchorElement\r\n logo.href = \"https://www.boschsecurity.com/xc/en/\"\r\n logo.removeAttribute('target')\r\n }, 100)\r\n\r\n }\r\n\r\n useLanguage(language) {\r\n this.language = language\r\n this.translate.use(language);\r\n\r\n this.getJSON('assets/i18n/'+language+'.json').subscribe(data => {\r\n this.languages = data.languages\r\n });\r\n }\r\n\r\n public getJSON(url): Observable {\r\n return this.http.get(url);\r\n }\r\n\r\n public getRandom(length) {\r\n return Math.floor(Math.pow(10, length-1) + Math.random() * 9 * Math.pow(10, length-1)); \r\n }\r\n\r\n enableStepsWithUploadProject(): void{\r\n let steps = document.getElementsByClassName(\"step\");\r\n let currentStep = Number.parseInt(sessionStorage.getItem(\"currentStep\"))\r\n\r\n for (let index = 0; index < steps.length; index++) {\r\n const element = steps[index];\r\n\r\n if(index <= currentStep-1) element.className = element.className.replace(\"step disabled-step\", \"step enable-step active\");\r\n }\r\n } \r\n}\r\n\r\n\r\n","\r\n","import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { LicensesService } from 'src/app/services/licenses/licenses.service';\r\n\r\n@Component({\r\n selector: 'app-license-item',\r\n templateUrl: './license-item.component.html',\r\n styleUrls: ['./license-item.component.sass']\r\n})\r\nexport class LicenseItemComponent implements OnInit {\r\n\r\n @Input() updateChildTrigger: any\r\n @Input() ctn: any = undefined\r\n @Input() baseLicense: any = ''\r\n @Input() quantityRecommended: Number = 1\r\n @Output() results = new EventEmitter();\r\n @Input() type: any = undefined\r\n\r\n @ViewChild('modalImage', {static:true})\r\n private modalImage: TemplateRef;\r\n\r\n quantityAdded = 0\r\n quantityInput = 1\r\n addLicenseButton: Boolean = true\r\n openExpander: Boolean = false\r\n license: any\r\n spinner: Boolean = false\r\n\r\n constructor(private modalService: ModalService, private licenseService: LicensesService, private notificationService: AppComponent) { }\r\n\r\n ngOnChanges() {\r\n /**********THIS FUNCTION WILL TRIGGER WHEN PARENT COMPONENT UPDATES 'someInput'**************/\r\n //Write your code here\r\n if(this.updateChildTrigger.length != 0){\r\n this.updateChildTrigger.forEach(element => {\r\n if(element.action == 'add'){\r\n if(element.ctn == this.ctn) this.quantityAdded = this.quantityRecommended as number\r\n }else{\r\n this.quantityAdded = 0\r\n }\r\n });\r\n \r\n }\r\n } \r\n\r\n ngOnInit(): void {\r\n if(this.type == 'reccomendation') this.openExpander = true\r\n this.getLicense()\r\n }\r\n\r\n getLicense(){\r\n let licenses = JSON.parse(sessionStorage.getItem(\"licenses\"))\r\n let licensesProductSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\")).licenses\r\n\r\n let index = licenses.findIndex(x => x.ctn === this.ctn)\r\n let index2 = licensesProductSelected.findIndex(x => x.ctn === this.ctn)\r\n\r\n this.license = licenses[index]\r\n this.license.max_channels == null? this.license.max_channels = Infinity : this.license.max_channels= this.license.max_channels\r\n this.license.quantity = this.quantityAdded \r\n\r\n \r\n if(index2 != -1 && licensesProductSelected[index2].quantity != undefined) this.quantityAdded = licensesProductSelected[index2].quantity\r\n\r\n this.checkLicenseAdded()\r\n }\r\n\r\n checkLicenseAdded(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let index = productsSelected.licenses.findIndex(x => x.ctn == this.ctn)\r\n\r\n if(index != -1){\r\n this.addLicenseButton = false\r\n this.openExpander = true\r\n setTimeout(() => {\r\n this.addBackgroudColorToSelectedExpander()\r\n }, 100);\r\n }\r\n }\r\n\r\n addBackgroudColorToSelectedExpander(){\r\n let expanders = document.getElementsByTagName('rb-accordion-title')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index];\r\n let divElement = element.children[0] as HTMLDivElement\r\n \r\n let ctnExpander = divElement.children[0] as HTMLElement\r\n\r\n if(ctnExpander.innerText.split(' ')[0] == this.ctn){\r\n if(this.quantityAdded != 0) divElement.style.backgroundColor = \"#BFD5E3\"\r\n else divElement.style.backgroundColor = \"#FFFFFF\"\r\n }\r\n\r\n }\r\n }\r\n\r\n addLicense(additionalBaseLicense?): void {\r\n\r\n this.openExpander = true\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n let sum = this.quantityAdded + this.quantityInput\r\n\r\n if(this.license.type == 'expansion_package'){\r\n let baseLicense = productsSelected.licenses.find(x => x.type == \"base_package\")\r\n\r\n if(baseLicense == undefined || baseLicense == null){\r\n this.notificationService.getTranslateValue('licenseItem.notBaseLicense')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('warning', await message)\r\n })\r\n }else{\r\n this.spinner = true\r\n this.licenseService.checkExpansionLicense(this.license.ctn, this.license.divar_model, sum, baseLicense.quantity).subscribe(\r\n res => {\r\n if(res){\r\n this.license.quantity = sum\r\n this.quantityAdded = sum\r\n this.license.openExpander = this.openExpander\r\n this.spinner = false\r\n\r\n let index = productsSelected.licenses.findIndex(x => x.ctn == this.license.ctn)\r\n\r\n if(index == -1) productsSelected.licenses.push(this.license)\r\n else productsSelected.licenses[index] = this.license\r\n \r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n \r\n this.addLicenseButton = false\r\n this.quantityInput = 1\r\n \r\n /**\r\n * Remove error css in progress bar\r\n */\r\n for (let index = 4; index < 5; index++){\r\n document.getElementsByClassName('step')[index].className = document.getElementsByClassName('step')[index].className.replace(' error error-step', '')\r\n }\r\n \r\n /**\r\n * Emit event to notified at parent the changes\r\n */\r\n this.results.emit(JSON.stringify({\"license\": JSON.stringify(this.license), \"action\": 'Add'}))\r\n \r\n setTimeout(() => {\r\n this.addBackgroudColorToSelectedExpander()\r\n }, 100);\r\n }else{\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('licenseItem.moreExpansionForBaseLicense')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n \r\n }\r\n }else{\r\n this.license.quantity = sum\r\n this.quantityAdded = sum\r\n this.license.openExpander = this.openExpander\r\n\r\n let index = productsSelected.licenses.findIndex(x => x.ctn == this.license.ctn)\r\n\r\n if(index == -1) productsSelected.licenses.push(this.license)\r\n else productsSelected.licenses[index] = this.license\r\n \r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n \r\n this.addLicenseButton = false\r\n this.quantityInput = 1\r\n \r\n /**\r\n * Remove error css in progress bar\r\n */\r\n for (let index = 4; index < 5; index++){\r\n document.getElementsByClassName('step')[index].className = document.getElementsByClassName('step')[index].className.replace(' error error-step', '')\r\n }\r\n \r\n\r\n this.addBackgroudColorToSelectedExpander()\r\n /**\r\n * Emit event to notified at parent the changes\r\n */\r\n this.results.emit(JSON.stringify({\"license\": JSON.stringify(this.license), \"action\": 'Add'}))\r\n }\r\n }\r\n\r\n removeLicense(): void {\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n /**\r\n * Sumar la cantidad\r\n */\r\n let sum = this.quantityAdded - this.quantityInput\r\n\r\n this.quantityAdded = sum\r\n this.license.quantity = sum\r\n this.license.openExpander = this.openExpander\r\n\r\n let index = productsSelected.licenses.findIndex(x => x.ctn == this.ctn)\r\n\r\n if(this.license.quantity != 0) productsSelected.licenses[index] = this.license\r\n else{\r\n productsSelected.licenses.splice(index, 1)\r\n this.addBackgroudColorToSelectedExpander()\r\n }\r\n\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n\r\n this.quantityInput = 1\r\n\r\n /**\r\n * Emit event to notified at parent the changes\r\n */\r\n this.results.emit(JSON.stringify({\"license\": JSON.stringify(this.license), \"action\": 'Remove'}))\r\n }\r\n\r\n openConfirm(content: TemplateRef) {\r\n this.modalService.open(content).then(result => {\r\n });\r\n }\r\n\r\n validateRemoveLicenseQuantity(): boolean {\r\n if(this.quantityAdded != 0 && this.quantityInput > 0 && this.quantityAdded >= this.quantityInput) return false\r\n else return true\r\n }\r\n\r\n checkMaxExtensionsQuantityByBaseLicense(): any{\r\n let licenses = JSON.parse(sessionStorage.getItem(\"productsSelected\")).licenses\r\n\r\n let baseLicense = licenses.find(x => x.type == \"base_package\")\r\n\r\n if(baseLicense == undefined || baseLicense == null) return \"Not base license\";\r\n }\r\n\r\n openModal(content: TemplateRef) {\r\n let sum = this.quantityAdded + this.quantityInput\r\n\r\n if(sum > Number(this.quantityRecommended)){\r\n this.modalService.open(content).then(result => {\r\n if(!result){\r\n this.quantityInput = 1\r\n }else{\r\n this.addLicense()\r\n }\r\n });\r\n }else{\r\n this.addLicense()\r\n }\r\n }\r\n}\r\n","\r\n\r\n {{license.ctn}} - {{license.name}} ({{quantityAdded}} {{ 'storageCalculatorGroup.units'| 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
  • {{ 'licenseItem.ctn' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.ctn}}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • {{ 'licenseItem.shortDescription' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.short_description}}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • {{ 'licenseItem.channelsBase' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.channels}}({{license.max_channels}})\r\n
    • \r\n
    \r\n
\r\n
    \r\n
  • {{ 'licenseItem.channelsExpansion' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.channels}}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • {{ 'licenseItem.quantityRecommended' | translate }}
  • \r\n\r\n
      \r\n
    • \r\n {{quantityRecommended}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'licenseItem.quantityAdded' | translate }}
  • \r\n\r\n
      \r\n
    • \r\n {{quantityAdded}}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • {{ 'licenseItem.quantity' | translate }}
  • \r\n\r\n
    \r\n \r\n {{ 'licenseItem.quantityRequiredError' | translate }}\r\n {{ 'licenseItem.quantityMinimumError' | 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 \r\n {{ 'licenseItem.baseLicenseModalMessage1' | translate }}
\r\n {{ 'licenseItem.baseLicenseModalMessage2' | translate }}\r\n
\r\n
","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'licenses.modalMessage1' | 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 Which version of BVMS would you like to use in your setup?\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 Do you want to add expansion licenses?\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 Do you want to add {{expansion.name}}?\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 \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

{{ 'licenses.recommendedTitle' | 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 {{ 'licenses.cloudLicensesNotFound' | translate }}\r\n

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

\r\n {{ 'licenses.cloudLicensesNotFoundText' | translate }}\r\n

\r\n
\r\n

\r\n {{ 'licenses.cloudLicensesNotFoundText2' | translate }}\r\n https://www.boschsecurity.com/xc/en/support/contact-us/\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 {{ 'licenses.modalMessage1' | translate }}
\r\n {{ 'licenses.modalMessage2' | translate }}\r\n
\r\n
\r\n\r\n\r\n \r\n {{ 'licenses.modalDisclaimer' | translate }}\r\n \r\n\r\n\r\n\r\n \r\n {{ 'licenses.cleanAllModalMessage1' | translate }}\r\n
\r\n {{ 'licenses.cleanAllModalMessage2' | translate }}\r\n
\r\n
","import { Location } from '@angular/common';\r\nimport { Component, ElementRef, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { LicensesService } from 'src/app/services/licenses/licenses.service';\r\nimport { SetUpTypeService } from 'src/app/services/set_up_type/set-up-type.service';\r\n\r\n@Component({\r\n selector: 'app-licenses',\r\n templateUrl: './licenses.component.html',\r\n styleUrls: ['./licenses.component.sass']\r\n})\r\nexport class LicensesComponent implements OnInit {\r\n\r\n @ViewChild('buttonModal', { static: true }) modalLicenses: ElementRef;\r\n @ViewChild('buttonDisclaimerModal', { static: true }) modalDisclaimerLicenses: ElementRef;\r\n\r\n \r\n licenses = []\r\n recommendationLicenses = []\r\n baseLicenses = []\r\n optionalLicenses = []\r\n expansionLicenses = []\r\n openBaseLicenseExpander = false\r\n openExpansionLicenseExpander = false\r\n openOptionalLicenseExpander = false\r\n hasChanges: Boolean = false\r\n updateChildValues: any = []\r\n disableRemoveAllButton = true\r\n\r\n /**\r\n * Spinner settings\r\n */\r\n spinner: Boolean = false\r\n\r\n setUpType = ''\r\n disableCloudWhenLicensesEmpty = false\r\n\r\n showLicensesSection: boolean = false\r\n useBVMS: string = ''\r\n showBVMSAllTypes: boolean = true\r\n licenseType: string = ''\r\n wantExpansionLicenses: string = ''\r\n expansionLicensesFormQuestions: any = []\r\n\r\n disableSearchLicensesButtonFromForm: boolean = true\r\n\r\n totalCameras: any = 0\r\n existDivar: any = {}\r\n\r\n constructor(private licenseService: LicensesService, private notificationService: AppComponent, private router: Router, private modalService:ModalService, private location: Location, private setUpTypeService: SetUpTypeService) { }\r\n\r\n ngOnInit(): void {\r\n this.checkReturnInitialView()\r\n this.setUpType = this.setUpTypeService.getSetUpType()\r\n \r\n this.initView()\r\n \r\n }\r\n\r\n useBVMSRadioButtonChange(){\r\n if(this.useBVMS == 'No'){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n productsSelected.licenses = []\r\n sessionStorage.setItem('productsSelected', JSON.stringify(productsSelected))\r\n let step = document.getElementsByClassName(\"step\")[4];\r\n step.className = \"step enable-step active\";\r\n this.router.navigate([\"/summary\"], {skipLocationChange: true})\r\n }else{\r\n this.existDivarInStorageAdded()\r\n .then(async(result) => {\r\n let response = await result as {}\r\n this.showBVMSAllTypes = await response['divar']\r\n })\r\n }\r\n }\r\n\r\n checkReturnInitialView(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n if(productsSelected.cameras.length == 0 && productsSelected.recording.length == 0 && productsSelected.licenses.length == 0){\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n }\r\n }\r\n\r\n initView(){\r\n this.spinner = true\r\n\r\n if(this.setUpType != 'Cloud'){\r\n this.licenseService.getAllLicenses().subscribe(\r\n res => {\r\n this.spinner = false\r\n this.licenses = res as []\r\n sessionStorage.setItem(\"licenses\", JSON.stringify(this.licenses))\r\n\r\n this.getTotalCameras()\r\n .then(async(result) => {\r\n this.totalCameras = await result\r\n\r\n this.existDivarInStorageAdded()\r\n .then(async(result) => {\r\n this.existDivar = await result as any\r\n })\r\n })\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{\r\n this.licenseService.getAllCloudLicenses().subscribe(\r\n res => {\r\n\r\n this.licenses = res as []\r\n sessionStorage.setItem(\"licenses\", JSON.stringify(this.licenses))\r\n\r\n let data = this.setUpTypeService.getStorageValues()\r\n\r\n this.licenseService.getCloudLicensesRecommendation(data).subscribe(\r\n res => {\r\n this.recommendationLicenses = res as []\r\n this.removeLicensesRecommendedDuplicatesFromLicensesList()\r\n this.checkOpenExpanders()\r\n this.spinner = false \r\n this.enableOrDisableFollowingStep()\r\n this.checkIfSomeLicensesAreAdded()\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n }\r\n\r\n receiveDataFromChild(childResult: string){\r\n\r\n let results = JSON.parse(childResult)\r\n this.hasChanges = true\r\n\r\n /**\r\n * Enable or disable the next step\r\n */\r\n this.enableOrDisableFollowingStep()\r\n\r\n let resultLicense = JSON.parse(results.license)\r\n\r\n if(resultLicense.type == 'base_package'){\r\n this.getExpansionLicensesByBaseLicense(results.action, resultLicense) \r\n }\r\n\r\n }\r\n\r\n getExpansionLicensesByBaseLicense(action, baseLicense){\r\n let licenseType = baseLicense.name.split(' ')[1]\r\n let forDivarLicense = baseLicense.divar_model\r\n\r\n if(action == 'Add'){\r\n this.getTotalCameras()\r\n .then(async(result) => {\r\n let quantity = await result\r\n\r\n this.licenseService.getExpansionLicenses(quantity, forDivarLicense, licenseType)\r\n .subscribe(\r\n res => {\r\n if(this.expansionLicenses.length == 0){\r\n this.expansionLicenses = this.expansionLicenses.concat(res as [])\r\n }else{\r\n let x = this.expansionLicenses.find(x => x.divar_model == forDivarLicense)\r\n if(x == undefined || x == null) this.expansionLicenses = this.expansionLicenses.concat(res as [])\r\n }\r\n },\r\n err => {\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n })\r\n }else{\r\n if(baseLicense.quantity == 0){\r\n this.expansionLicenses = this.expansionLicenses.filter(x => x.divar_model != forDivarLicense)\r\n\r\n }\r\n }\r\n }\r\n\r\n enableOrDisableFollowingStep(){\r\n if(this.setUpType != 'Cloud'){\r\n let step = document.getElementsByClassName(\"step\")[4];\r\n let licenses = JSON.parse(sessionStorage.getItem(\"productsSelected\")).licenses\r\n\r\n if(licenses.length == 0){\r\n sessionStorage.setItem(\"currentStep\", \"4\")\r\n step.className = step.className.replace(\" enable-step\",\" disabled-step\");\r\n this.disableRemoveAllButton = true\r\n }else{\r\n this.checkQuantityOfLicenseAdded(licenses)\r\n .then(async(result) => {\r\n let value = await result\r\n if(value){\r\n /**\r\n * Enable following step\r\n */\r\n // if(this.hasChanges == true){\r\n sessionStorage.setItem(\"currentStep\", \"5\")\r\n step.className = step.className.replace(\" disabled-step\",\" enable-step\");\r\n // }\r\n \r\n }else{\r\n /**\r\n * Disable following step\r\n */\r\n sessionStorage.setItem(\"currentStep\", \"4\")\r\n step.className = step.className.replace(\" enable-step\",\" disabled-step\");\r\n }\r\n })\r\n .catch((err) => {\r\n sessionStorage.setItem(\"currentStep\", \"4\")\r\n step.className = step.className.replace(\" enable-step\",\" disabled-step\");\r\n })\r\n }\r\n }else{\r\n let step = document.getElementsByClassName(\"step\")[3];\r\n let licenses = JSON.parse(sessionStorage.getItem(\"productsSelected\")).licenses\r\n\r\n if(this.recommendationLicenses.length == 0){\r\n this.disableRemoveAllButton = true\r\n sessionStorage.setItem(\"currentStep\", \"4\")\r\n step.className = step.className.replace(\" disabled-step\",\" enable-step\");\r\n this.disableCloudWhenLicensesEmpty = true\r\n }else if(licenses.length == 0){\r\n this.disableRemoveAllButton = true\r\n sessionStorage.setItem(\"currentStep\", \"4\")\r\n step.className = step.className.replace(\" disabled-step\",\" enable-step\");\r\n }else{\r\n this.checkQuantityOfLicenseAdded(licenses)\r\n .then(async(result) => {\r\n let value = await result\r\n if(value){\r\n sessionStorage.setItem(\"currentStep\", \"4\")\r\n step.className = step.className.replace(\" disabled-step\",\" enable-step\");\r\n }else{\r\n /**\r\n * Disable following step\r\n */\r\n sessionStorage.setItem(\"currentStep\", \"3\")\r\n step.className = step.className.replace(\" enable-step\",\" disabled-step\");\r\n }\r\n })\r\n .catch((err) => {\r\n sessionStorage.setItem(\"currentStep\", \"3\")\r\n step.className = step.className.replace(\" enable-step\",\" disabled-step\");\r\n })\r\n }\r\n }\r\n }\r\n\r\n checkQuantityOfLicenseAdded(licenses){\r\n return new Promise((resolve, reject) => {\r\n \r\n this.getTotalCameras()\r\n .then(async(result) => {\r\n\r\n let camerasTotal = await result as number\r\n let quantityOfLicensesAdded: number = 0\r\n \r\n licenses.forEach((element, index) => {\r\n quantityOfLicensesAdded = quantityOfLicensesAdded + (element.channels * Number(element.quantity))\r\n\r\n if(index == licenses.length-1){\r\n if(quantityOfLicensesAdded >= camerasTotal) resolve(true)\r\n else resolve(false)\r\n }\r\n });\r\n\r\n })\r\n .catch((err) => {\r\n reject(false)\r\n })\r\n\r\n })\r\n }\r\n\r\n getTotalCameras(){\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n let cameras = JSON.parse(sessionStorage.getItem('productsSelected')).cameras\r\n\r\n if(cameras.length == 0){\r\n\r\n resolve(0)\r\n\r\n }else{\r\n\r\n let quantity = 0\r\n cameras.forEach((element,index) => {\r\n element.childrens.forEach((child, indexChild) => {\r\n quantity = quantity + child.quantity\r\n\r\n if(indexChild == element.childrens.length-1 && index == cameras.length-1) resolve(quantity)\r\n });\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n existDivarInStorageAdded(){\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n let response = {\r\n divar: false,\r\n divarModel: ''\r\n }\r\n\r\n let storages = JSON.parse(sessionStorage.getItem('productsSelected')).recording\r\n\r\n let result = storages.filter(x => x.name.toLowerCase().includes('divar') || x.ctn.toLowerCase().includes('dip'))\r\n\r\n if(result.length == 0){\r\n response.divar = false\r\n response.divarModel = ''\r\n }else{\r\n response.divar = true\r\n \r\n if(result[0].ctn.startsWith('DIP-4')){\r\n response.divarModel = \"dip_4000\"\r\n }else if(result[0].ctn.startsWith('DIP-5')){\r\n response.divarModel = \"dip_5000\"\r\n }else if(result[0].ctn.startsWith('DIP-6')){\r\n response.divarModel = \"dip_6000\"\r\n }else{\r\n response.divarModel = \"dip_7000\"\r\n }\r\n }\r\n\r\n resolve(response)\r\n\r\n })\r\n\r\n }\r\n\r\n removeLicensesRecommendedDuplicatesFromLicensesList(){\r\n\r\n for (let index = 0; index < this.recommendationLicenses.length; index++) {\r\n const element = this.recommendationLicenses[index];\r\n \r\n let positionOptional = this.optionalLicenses.findIndex(x=> x.name == element.name)\r\n let positionBase = this.baseLicenses.findIndex(x=> x.name == element.name)\r\n let positionExpansion = this.expansionLicenses.findIndex(x=> x.name == element.name)\r\n\r\n if(positionOptional != -1)this.optionalLicenses.splice(positionOptional, 1)\r\n if(positionBase != -1) this.baseLicenses.splice(positionBase, 1)\r\n if(positionExpansion != -1) this.expansionLicenses.splice(positionExpansion, 1)\r\n }\r\n\r\n }\r\n \r\n checkOpenExpanders(){\r\n let licenses = JSON.parse(sessionStorage.getItem('productsSelected')).licenses\r\n\r\n for (let index = 0; index < licenses.length; index++) {\r\n const element = licenses[index];\r\n \r\n let positionOptional = this.optionalLicenses.findIndex(x=> x.name == element.name)\r\n let positionBase = this.baseLicenses.findIndex(x=> x.name == element.name)\r\n let positionExpansion = this.expansionLicenses.findIndex(x=> x.name == element.name)\r\n\r\n if(positionOptional != -1) this.openOptionalLicenseExpander = true\r\n if(positionBase != -1) this.openBaseLicenseExpander = true\r\n if(positionExpansion != -1) this.openExpansionLicenseExpander = true\r\n }\r\n }\r\n\r\n openModal(content: TemplateRef, type) {\r\n this.modalService.open(content).then(result => {\r\n if(!result){\r\n let step = document.getElementsByClassName(\"step\")[4];\r\n step.className = \"step enable-step active\";\r\n this.router.navigate([\"/summary\"], {skipLocationChange: true})\r\n }else{\r\n if(type != 'disclaimer')\r\n this.initView()\r\n }\r\n });\r\n }\r\n\r\n addMinimumReccomendedLicenses(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let licensesToNotify = []\r\n\r\n this.recommendationLicenses.forEach((element, index) => {\r\n let temp = element\r\n delete temp['openExpander']\r\n\r\n let indexLicense = productsSelected.licenses.findIndex(x => x.ctn == temp.ctn)\r\n\r\n if(indexLicense == -1){\r\n productsSelected.licenses.push(temp)\r\n this.addBackgroudColorToSelectedExpander(temp)\r\n licensesToNotify.push({\r\n ctn: temp.ctn,\r\n action: 'add'\r\n })\r\n }\r\n\r\n if(index == this.recommendationLicenses.length-1){\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n this.updateChildValues = licensesToNotify\r\n this.disableRemoveAllButton = false\r\n this.enableOrDisableFollowingStep()\r\n /**\r\n * Remove error css in progress bar\r\n */\r\n for (let index = 4; index < 5; index++){\r\n document.getElementsByClassName('step')[index].className = document.getElementsByClassName('step')[index].className.replace(' error error-step', '')\r\n }\r\n }\r\n \r\n if(this.setUpType != 'Cloud') this.getExpansionLicensesByBaseLicense('Add', this.recommendationLicenses.find(x => x.type == 'base_package')) \r\n\r\n });\r\n }\r\n\r\n removeAllAddedLicenses(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let licensesToNotify = []\r\n\r\n productsSelected.licenses.forEach((element, index) => {\r\n element.quantity = 0\r\n this.addBackgroudColorToSelectedExpander(element)\r\n licensesToNotify.push({\r\n ctn: element.ctn,\r\n action: 'delete'\r\n })\r\n\r\n if(index == productsSelected.licenses.length-1){\r\n productsSelected.licenses = []\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n this.updateChildValues = licensesToNotify\r\n this.enableOrDisableFollowingStep()\r\n }\r\n\r\n });\r\n\r\n this.expansionLicenses = []\r\n }\r\n\r\n addBackgroudColorToSelectedExpander(license){\r\n let expanders = document.getElementsByTagName('rb-accordion-title')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index];\r\n let divElement = element.children[0] as HTMLDivElement\r\n \r\n let ctnExpander = divElement.children[0] as HTMLElement\r\n\r\n if(ctnExpander.innerText.split(' ')[0] == license.ctn){\r\n if(license.quantity != 0) divElement.style.backgroundColor = \"#BFD5E3\"\r\n else divElement.style.backgroundColor = \"#FFFFFF\"\r\n }\r\n\r\n }\r\n }\r\n\r\n openDeleteSelectionModal(content: TemplateRef) {\r\n this.modalService.open(content).then(result => {\r\n if(result){\r\n this.removeAllAddedLicenses()\r\n }\r\n });\r\n }\r\n\r\n checkIfSomeLicensesAreAdded(){\r\n let licenses = JSON.parse(sessionStorage.getItem(\"productsSelected\")).licenses\r\n if(licenses.length != 0) this.disableRemoveAllButton = false\r\n }\r\n\r\n collapseAllExpanders(type){\r\n let expanders = document.getElementsByClassName('accordion-toggle')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index] as HTMLAnchorElement;\r\n\r\n if(type == 'collapse'){\r\n if(element.children[0].className.includes('minimize')) element.click()\r\n }else{\r\n if(element.children[0].className.includes('add')) element.click()\r\n }\r\n }\r\n }\r\n\r\n wantExpansionLicensesRadioButtonChange(wantExpansionLicenses){\r\n this.wantExpansionLicenses = wantExpansionLicenses\r\n if(this.wantExpansionLicenses == 'Yes'){\r\n this.showLicensesSection = false\r\n this.getExpansionLicensesQuestionsByBaseLicenseType()\r\n }else{\r\n this.spinner = true\r\n\r\n this.licenseService.getAllLicenses().subscribe(\r\n res => {\r\n\r\n this.licenses = res as []\r\n sessionStorage.setItem(\"licenses\", JSON.stringify(this.licenses))\r\n\r\n this.getTotalCameras()\r\n .then(async(result) => {\r\n let quantity = await result\r\n\r\n this.existDivarInStorageAdded()\r\n .then(async(result) => {\r\n\r\n let existDivar = await result as any\r\n \r\n /**\r\n * Get the recomendation of license according at the quantity of elementrs selected\r\n */\r\n this.licenseService.getLicensesRecommendation(quantity, existDivar.divar, existDivar.divarModel).subscribe(\r\n res => {\r\n \r\n this.recommendationLicenses = res as []\r\n let forDivarLicense = existDivar.divarModel\r\n\r\n this.licenseService.getBaseLicenses(quantity, forDivarLicense).subscribe(\r\n res => {\r\n this.baseLicenses = res as []\r\n this.removeLicensesRecommendedDuplicatesFromLicensesList()\r\n this.checkOpenExpanders()\r\n this.spinner = false \r\n this.enableOrDisableFollowingStep()\r\n this.checkIfSomeLicensesAreAdded()\r\n \r\n this.showLicensesSection = true\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n ) \r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n })\r\n })\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n }\r\n\r\n getExpansionLicensesQuestionsByBaseLicenseType(){\r\n this.spinner = true\r\n this.existDivarInStorageAdded()\r\n .then(async(result) => {\r\n let existDivarLicense = await result\r\n\r\n let licenseType = ''\r\n if(existDivarLicense['divar']) licenseType = existDivarLicense['divarModel']\r\n else{\r\n if(this.licenseType == 'BVMS Pro') licenseType = 'bvms_pro'\r\n else if(this.licenseType == 'BVMS Plus') licenseType = 'bvms_plus'\r\n else licenseType = 'bvms_lite'\r\n }\r\n\r\n this.licenseService.getExpansionLicensesQuestionsByBaseLicenseType(licenseType).subscribe(\r\n res => {\r\n this.expansionLicensesFormQuestions = res as []\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n })\r\n }\r\n\r\n checkSearchButtonState(){\r\n let requestedLicenses = this.expansionLicensesFormQuestions.filter(x => x.request == 'Yes')\r\n let requestedLicensesQuantity = this.expansionLicensesFormQuestions.filter(x => x.request == 'Yes' && x.quantity != 0)\r\n\r\n if(requestedLicenses.length != 0 && requestedLicensesQuantity != 0){\r\n if(requestedLicenses.length == requestedLicensesQuantity.length) this.disableSearchLicensesButtonFromForm = false\r\n else this.disableSearchLicensesButtonFromForm = true\r\n }else{\r\n this.disableSearchLicensesButtonFromForm = true\r\n }\r\n }\r\n\r\n searchLicensesAccordingToForm(){\r\n this.spinner = true\r\n\r\n this.getTotalCameras()\r\n .then(async(result) => {\r\n let quantity = await result\r\n\r\n this.existDivarInStorageAdded()\r\n .then(async(result) => {\r\n\r\n let existDivarLicense = await result as any\r\n \r\n let licenseType = ''\r\n if(existDivarLicense['divar']) licenseType = existDivarLicense['divarModel']\r\n else{\r\n if(this.licenseType == 'BVMS Pro') licenseType = 'bvms_pro'\r\n else if(this.licenseType == 'BVMS Plus') licenseType = 'bvms_plus'\r\n else licenseType = 'bvms_lite'\r\n }\r\n\r\n /**\r\n * Get the recomendation of license according at the quantity of elementrs selected\r\n */\r\n this.licenseService.getLicensesFromFormRecommendation(quantity, existDivarLicense.divar, existDivarLicense.divarModel, this.expansionLicensesFormQuestions).subscribe(\r\n res => {\r\n this.recommendationLicenses = res as []\r\n this.checkOpenExpanders()\r\n this.spinner = false \r\n this.enableOrDisableFollowingStep()\r\n this.checkIfSomeLicensesAreAdded()\r\n this.showLicensesSection = true\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n })\r\n })\r\n }\r\n}\r\n","import { Component, OnInit, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Environment } from 'src/app/environments';\r\nimport { Location } from '@angular/common';\r\nimport { ProjectManagerService } from 'src/app/services/project_manager/project-manager.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { SetUpTypeService } from 'src/app/services/set_up_type/set-up-type.service';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\n\r\n@Component({\r\n selector: 'app-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.sass']\r\n})\r\nexport class ProgressBarComponent implements OnInit {\r\n\r\n previousArrowSection = true\r\n nextArrowSection = false\r\n projectFile: any = undefined\r\n uploadFileButtonDisable = true\r\n uploadMessageError = false\r\n uploadMessageErrorText = \"\"\r\n uploadProjectValue = false\r\n spinner = false\r\n exportName = \"\"\r\n isStorageCalculationTab:boolean = false\r\n\r\n constructor(\r\n private notificationService: AppComponent,\r\n private modalService: ModalService,\r\n private router: Router,\r\n private projectManagerService: ProjectManagerService,\r\n private setUpTypeService: SetUpTypeService\r\n ) { }\r\n\r\n setUpTypeOptions = [\r\n \"Physical\",\r\n \"Cloud\"\r\n ]\r\n\r\n setUpType = ''\r\n tempSetUpType = ''\r\n showSetUpType = false\r\n\r\n ngOnInit(): void {\r\n this.setUpType = JSON.parse(sessionStorage.getItem(\"productsSelected\")).setUpType\r\n if(JSON.parse(sessionStorage.getItem(\"productsSelected\")).setUpType == 'Cloud'){\r\n this.setUpTypeService.setSetUpType(JSON.parse(sessionStorage.getItem(\"productsSelected\")).setUpType)\r\n this.setUpTypeService.setCloudType(JSON.parse(sessionStorage.getItem(\"productsSelected\")).raid)\r\n this.setUpTypeService.setCloudRetentionTime(JSON.parse(sessionStorage.getItem(\"productsSelected\")).retentionTime)\r\n }\r\n this.checkCurrentStep()\r\n }\r\n\r\n changeCurrentStep(newStep): void{\r\n // This function removes the \"active\" class of all steps...\r\n let steps = document.getElementsByClassName(\"step\");\r\n let currentStep = Number.parseInt(sessionStorage.getItem(\"currentStep\"))\r\n\r\n if(newStep == 2){\r\n this.isStorageCalculationTab = true\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n if(productsSelected.setUpType == ''){\r\n this.saveSetUpType('Physical')\r\n }\r\n }else{\r\n this.isStorageCalculationTab = false\r\n }\r\n\r\n if(newStep <= currentStep){\r\n for (let index = 0; index < steps.length; index++) {\r\n const element = steps[index];\r\n \r\n element.className = element.className.replace(\" active\", \"\");\r\n element.className = element.className.replace(\" test\", \"\");\r\n element.className = element.className.replace(\" error\", \"\");\r\n element.className = element.className.replace(\" error-step\", \"\");\r\n }\r\n\r\n for (let index = 0; index < newStep; index++) {\r\n const element = steps[index];\r\n \r\n element.className+=\" active\"\r\n }\r\n\r\n this.moveToStep(newStep)\r\n }else{\r\n\r\n let steps = document.getElementsByClassName('step')\r\n\r\n switch (currentStep) {\r\n case 1: //When press Storage Calculator\r\n if(newStep == 5 && steps[4].className.includes('disabled-step')){\r\n steps[4].className += \" error error-step\"\r\n steps[3].className += \" error error-step\"\r\n steps[2].className += \" error error-step\"\r\n }\r\n else if(newStep == 4 && steps[3].className.includes('disabled-step')){\r\n steps[3].className += \" error error-step\"\r\n steps[2].className += \" error error-step\"\r\n }\r\n else if(newStep == 3 && steps[2].className.includes('disabled-step')){\r\n steps[2].className += \" error error-step\"\r\n }\r\n\r\n if(!steps[1].className.includes('error-step')) steps[1].className += \" error error-step\"\r\n \r\n this.notificationService.getTranslateValue('progressBar.errorMessageCamera')\r\n .then(async(result) => {\r\n this.notificationService.showCustomNotification('error', await result)\r\n })\r\n \r\n break;\r\n\r\n case 2: //When press Storage Devices\r\n\r\n if(newStep == 5 && steps[4].className.includes('disabled-step')){\r\n steps[4].className += \" error error-step\"\r\n steps[3].className += \" error error-step\"\r\n }\r\n else if(newStep == 4 && steps[3].className.includes('disabled-step')){\r\n steps[3].className += \" error error-step\"\r\n }\r\n \r\n if(!steps[2].className.includes('error-step')) steps[2].className += \" error error-step\"\r\n\r\n this.notificationService.getTranslateValue('progressBar.errorMessageStorageCalculator')\r\n .then(async(result) => {\r\n this.notificationService.showCustomNotification('error', await result)\r\n })\r\n break;\r\n\r\n case 3: //When press Licenses\r\n if(newStep == 5 && steps[4].className.includes('disabled-step')){\r\n steps[4].className += \" error error-step\"\r\n }\r\n\r\n if(!steps[3].className.includes('error-step')) steps[3].className += \" error error-step\"\r\n\r\n this.notificationService.getTranslateValue('progressBar.errorMessageStoragesDevices')\r\n .then(async(result) => {\r\n this.notificationService.showCustomNotification('error', await result)\r\n })\r\n break;\r\n\r\n case 4: //When press summary\r\n if(!steps[4].className.includes('error-step')) steps[4].className += \" error error-step\"\r\n\r\n this.notificationService.getTranslateValue('progressBar.errorMessageLicenses')\r\n .then(async(result) => {\r\n this.notificationService.showCustomNotification('error', await result)\r\n })\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n }\r\n\r\n moveToStep(step): void{\r\n this.checkCurrentStep()\r\n switch (step) {\r\n case 1:\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n break;\r\n case 2:\r\n this.router.navigate([\"/calculator\"], {skipLocationChange: true})\r\n break;\r\n case 3:\r\n if(this.setUpType == 'Cloud') this.router.navigate([\"/licenses\"], {skipLocationChange: true})\r\n else this.router.navigate([\"/recommended-storage\"], {skipLocationChange: true})\r\n break;\r\n case 4:\r\n if(this.setUpType == 'Cloud') this.router.navigate([\"/summary\"], {skipLocationChange: true})\r\n else this.router.navigate([\"/licenses\"], {skipLocationChange: true})\r\n break;\r\n case 5:\r\n this.router.navigate([\"/summary\"], {skipLocationChange: true})\r\n break;\r\n default:\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n break;\r\n }\r\n\r\n }\r\n\r\n restartProject(){\r\n let restartButton = document.getElementById('restartBtn') as HTMLAnchorElement\r\n restartButton.href = Environment.Base_URL\r\n restartButton.click()\r\n }\r\n\r\n stepChangeArrows(action){\r\n let steps = document.getElementsByClassName('step active')\r\n\r\n if(action == 'next'){\r\n this.changeCurrentStep(steps.length+1)\r\n }else if(action == 'back'){\r\n this.changeCurrentStep(steps.length-1)\r\n }\r\n }\r\n\r\n showModal(content: TemplateRef, modalName) {\r\n if(modalName == 'exportProject') this.exportName = JSON.parse(sessionStorage.getItem(\"productsSelected\")).projectDetails.projectName\r\n\r\n this.modalService.open(content).then(result => {\r\n if(result){\r\n if(modalName == 'modalConfirm') this.restartProject()\r\n else if(modalName == 'exportProject') this.exportProject()\r\n else if(modalName == 'modalChangeSetUpType'){\r\n // this.setUpType = this.tempSetUpType\r\n this.resetProjectToNewSetUp().then(async(result) => { \r\n console.log(await result);\r\n this.router.navigate(['/calculator'], {skipLocationChange: true});//Redirect to the calculator step\r\n })\r\n }\r\n }\r\n });\r\n }\r\n \r\n checkCurrentStep() {\r\n let steps = document.getElementsByClassName(\"step\");\r\n if(steps[0].className.includes('active') && !steps[1].className.includes('active')){\r\n this.previousArrowSection = true\r\n }else{\r\n this.previousArrowSection = false\r\n }\r\n\r\n if(this.setUpType == 'Cloud'){\r\n if(steps[3].className.includes('active')) this.nextArrowSection = true\r\n else this.nextArrowSection = false\r\n }else{\r\n if(steps[4].className.includes('active')) this.nextArrowSection = true\r\n else this.nextArrowSection = false\r\n }\r\n }\r\n\r\n exportProject(){\r\n this.notificationService.showSpinner(true)\r\n let productsSelected = JSON.parse(sessionStorage.getItem('productsSelected'))\r\n\r\n if(productsSelected.cameras.length != 0){\r\n\r\n this.projectManagerService.exportProject(productsSelected, this.exportName)\r\n .toPromise()\r\n .then(blob => {\r\n let fileName = \"\"\r\n if(this.exportName == undefined || this.exportName == null || this.exportName == \"\") fileName = 'export_'+moment().format('MM-DD-YYYY_HHmmss')+'.bsvsc'\r\n else fileName = this.exportName+'.bsvsc'\r\n\r\n saveAs(blob, fileName);\r\n this.exportName = \"\"\r\n this.notificationService.showSpinner(false)\r\n this.notificationService.getTranslateValue('progressBar.sucessExportProject')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('success', await message)\r\n })\r\n })\r\n .catch((err) => {\r\n this.notificationService.showSpinner(false)\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n })\r\n\r\n }else{\r\n this.notificationService.showSpinner(false)\r\n this.notificationService.getTranslateValue('progressBar.emptyProject')\r\n .then(async(result) => {\r\n this.notificationService.showCustomNotification('warning', await result)\r\n })\r\n }\r\n\r\n }\r\n\r\n uploadProjectFile(event) {\r\n this.projectFile = event.target.files;\r\n this.uploadFileButtonDisable = false\r\n this.uploadMessageErrorText = \"\"\r\n this.uploadMessageError = false\r\n }\r\n\r\n uploadProject() {\r\n this.spinner = true\r\n this.uploadFileButtonDisable = true\r\n this.projectManagerService.uploadProject(this.projectFile)\r\n .subscribe(\r\n (res:string) => {\r\n let response = JSON.parse(res)\r\n localStorage.setItem(\"productsSelected\", JSON.stringify(response.data))\r\n localStorage.setItem(\"currentStep\", response.step)\r\n localStorage.setItem(\"restoreProject\", 'true') //Save in storage the value when data come from export file\r\n\r\n if(response.data.setUpType == 'Cloud'){\r\n this.setUpTypeService.setSetUpType(response.data.setUpType)\r\n this.setUpTypeService.setCloudType(response.data.raid)\r\n this.setUpTypeService.setCloudRetentionTime(response.data.retentionTime)\r\n }\r\n\r\n this.spinner = false\r\n location.href = Environment.Base_URL\r\n },\r\n (err) => {\r\n this.spinner = false\r\n this.uploadMessageError = true\r\n\r\n if(err.error == \"Wrong format\"){\r\n this.notificationService.getTranslateValue('progressBar.wrongFormat')\r\n .then(async(message) => {\r\n this.uploadMessageErrorText = await message\r\n })\r\n }else{\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.uploadMessageErrorText = await message\r\n })\r\n }\r\n\r\n }\r\n )\r\n }\r\n\r\n saveSetUpType(setUpType?){\r\n this.setUpType = setUpType\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n productsSelected.setUpType = setUpType\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n this.setUpTypeService.setSetUpType(this.setUpType)\r\n this.setUpTypeService.setUpTypeTrigger.next(this.setUpType) //Emit the change to the observers\r\n }\r\n\r\n setUpTypeDropdownChange(type){\r\n if(type != this.setUpType){\r\n this.setUpType = type\r\n document.getElementById('setUpTypeDropdownTrigger').click()\r\n }\r\n }\r\n\r\n resetProjectToNewSetUp(){\r\n return new Promise((resolve, reject) => {\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n productsSelected.bandwidthNeeded = \"0 Mbps\"\r\n productsSelected.enableUpdated = false\r\n productsSelected.licenses = []\r\n productsSelected.raid = \"\"\r\n productsSelected.recording = []\r\n productsSelected.retentionTime = 15\r\n productsSelected.setUpType = this.setUpType\r\n productsSelected.setUpTypeModal = true\r\n productsSelected.storageAdded = \"0 MB\"\r\n productsSelected.storageNeeded = \"0 MB\"\r\n productsSelected.projectDetails.projectName = \"\"\r\n productsSelected.projectDetails.integrator = \"\"\r\n\r\n productsSelected.cameras.forEach((element, index) => {\r\n element.childrens = []\r\n\r\n if(index == productsSelected.cameras.length-1){\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n this.setUpTypeService.setSetUpType(this.setUpType)\r\n this.setUpTypeService.setUpTypeTrigger.next(this.setUpType) //Emit the change to the observers\r\n resolve(true)\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
    \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
  • \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 Select Storage Type\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 {{ 'progressBar.modalMessage1' | translate }}\r\n
\r\n {{ 'progressBar.modalMessage2' | 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 {{uploadMessageErrorText}}\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 {{ 'progressBar.exportProjectNameFieldValidation' | translate}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n {{ 'progressBar.selectCloudTypeMsg1' | translate }}\r\n \r\n\r\n\r\n\r\n\r\n \r\n {{ 'progressBar.resetConfirmationCloudTypeMsg1' | translate }}\r\n
\r\n {{ 'progressBar.resetConfirmationCloudTypeMsg2' | translate }}\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { StoragesService } from 'src/app/services/storages/storages.service';\r\n\r\n@Component({\r\n selector: 'app-recommended-storage-item',\r\n templateUrl: './recommended-storage-item.component.html',\r\n styleUrls: ['./recommended-storage-item.component.sass']\r\n})\r\nexport class RecommendedStorageItemComponent implements OnInit {\r\n\r\n @Input() ctn: any\r\n @Input() quantityRecommended: Number = 1\r\n @Input() typeStorage: string = ''\r\n @Input('parentTotalStorage') parentTotalStorage: string\r\n @Input() updateChildTrigger: any\r\n @Output() results = new EventEmitter();\r\n @ViewChild('modalImage', {static:true})\r\n private modalImage: TemplateRef;\r\n\r\n raidVersion = \"\"\r\n quantityAdded = 0\r\n quantityInput = 1\r\n storage: any\r\n addStorageButton: boolean = true\r\n openExpander: boolean = false\r\n elementStorageAdded = '0 TB'\r\n spinner: boolean = false\r\n\r\n constructor(private modalService: ModalService, private storageService: StoragesService, private notificationService: AppComponent) { }\r\n\r\n ngOnInit(): void {\r\n this.getStorage()\r\n\r\n /**\r\n * Review if the current storage has been selected by the user\r\n */\r\n if(this.typeStorage == 'recommendation') this.openExpander = true\r\n if(this.checkProductAdded(this.ctn)){\r\n this.addStorageButton = false\r\n this.openExpander = true\r\n\r\n setTimeout(() => {\r\n this.addBackgroudColorToSelectedExpander()\r\n }, 100);\r\n }\r\n\r\n }\r\n\r\n getStorage(){\r\n\r\n let storagesArray = JSON.parse(sessionStorage.getItem(\"storages\"))\r\n let storagesSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\")).recording\r\n this.raidVersion = JSON.parse(sessionStorage.getItem(\"productsSelected\")).raid\r\n\r\n let index = storagesArray.findIndex(x => x.ctn === this.ctn)\r\n let index2 = storagesSelected.findIndex(x => x.ctn === this.ctn)\r\n\r\n if(index2 != -1){\r\n this.storage = storagesSelected[index2]\r\n this.quantityAdded = this.storage.quantity\r\n if(this.raidVersion === 'RAID5') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid5').capacity * this.storage.quantity) + ' TB'\r\n else if(this.raidVersion === 'RAID6') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid6').capacity * this.storage.quantity) + ' TB'\r\n else this.elementStorageAdded = (this.storage.capacity * this.storage.quantity) + ' TB'\r\n }else{\r\n this.storage = storagesArray[index]\r\n this.storage.quantity = this.quantityAdded\r\n if(this.raidVersion === 'RAID5') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid5').capacity * this.storage.quantity) + ' TB'\r\n else if(this.raidVersion === 'RAID6') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid6').capacity * this.storage.quantity) + ' TB'\r\n else this.elementStorageAdded = (this.storage.capacity * this.storage.quantity) + ' TB'\r\n }\r\n \r\n }\r\n\r\n addStorage(): void {\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n /**\r\n * Sumar la cantidad\r\n */\r\n let sum = this.quantityAdded + this.quantityInput\r\n\r\n this.quantityAdded = sum\r\n this.storage.quantity = sum\r\n this.storage.openExpander = this.openExpander\r\n\r\n if(this.raidVersion === 'RAID5') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid5').capacity * this.storage.quantity) + ' TB'\r\n else if(this.raidVersion === 'RAID6') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid6').capacity * this.storage.quantity) + ' TB'\r\n else this.elementStorageAdded = (this.storage.capacity * this.storage.quantity) + ' TB'\r\n\r\n //Need to check if recording already has been added\r\n let index = productsSelected.recording.findIndex(x => x.ctn === this.ctn)\r\n \r\n if(index != -1){\r\n productsSelected.recording[index] = this.storage\r\n }else{\r\n productsSelected.recording.push(this.storage)\r\n }\r\n\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n\r\n if(this.storage.capacity == 0){\r\n this.notificationService.getTranslateValue('recommendedStorageItem.nonDiskStorageMessage')\r\n .then(async (message) => {\r\n this.notificationService.showCustomNotification('warning', await message)\r\n })\r\n }\r\n /**\r\n * Hide add button and show remove\r\n */\r\n this.addStorageButton = false\r\n this.openExpander = true\r\n this.quantityInput = 1\r\n\r\n /**\r\n * Remove error css in progress bar\r\n */\r\n document.getElementsByClassName('step')[3].className = 'step disabled-step'\r\n document.getElementsByClassName('step')[4].className = 'step disabled-step'\r\n\r\n this.addBackgroudColorToSelectedExpander()\r\n \r\n /**\r\n * Emit event to notified at parent the changes\r\n */\r\n this.results.emit(JSON.stringify({\"storage\": JSON.stringify(this.storage), \"action\": 'Add', \"nonDiskStorage\": this.checkNonDiskStorageAdded()}))\r\n }\r\n\r\n removeStorage(): void {\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n /**\r\n * Sumar la cantidad\r\n */\r\n let sum = this.quantityAdded - this.quantityInput\r\n\r\n this.quantityAdded = sum\r\n this.storage.quantity = sum\r\n this.storage.openExpander = this.openExpander\r\n\r\n //Need to check if recording already has been added\r\n let index = productsSelected.recording.findIndex(x => x.ctn === this.ctn)\r\n\r\n if(this.storage.quantity != 0){\r\n productsSelected.recording[index] = this.storage\r\n if(this.raidVersion === 'RAID5') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid5').capacity * this.storage.quantity) + ' TB'\r\n else if(this.raidVersion === 'RAID6') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid6').capacity * this.storage.quantity) + ' TB'\r\n else this.elementStorageAdded = (this.storage.capacity * this.storage.quantity) + ' TB'\r\n }\r\n else{\r\n productsSelected.recording.splice(index, 1)\r\n this.addBackgroudColorToSelectedExpander()\r\n this.elementStorageAdded = '0 TB'\r\n // this.updateStorageValues()\r\n }\r\n \r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n\r\n this.quantityInput = 1\r\n\r\n /**\r\n * Emit event to notified at parent the changes\r\n */\r\n this.results.emit(JSON.stringify({\"storage\": JSON.stringify(this.storage), \"action\": 'Remove', \"nonDiskStorage\": this.checkNonDiskStorageAdded()}))\r\n\r\n }\r\n\r\n checkProductAdded(ctn): boolean{\r\n\r\n let recordingsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\")).recording\r\n\r\n if(recordingsSelected.findIndex(x => x.ctn === ctn) === -1) return false\r\n else return true \r\n\r\n }\r\n \r\n checkNonDiskStorageAdded(): boolean{\r\n\r\n let recordingsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\")).recording\r\n\r\n if(recordingsSelected.find(x => x.capacity === 0) != undefined) return true\r\n else return false \r\n\r\n }\r\n\r\n validateRemoveStorageQuantity(): boolean {\r\n\r\n if(this.quantityAdded != 0 && this.quantityInput > 0 && this.quantityAdded >= this.quantityInput) return false\r\n else return true\r\n\r\n }\r\n\r\n openConfirm(content: TemplateRef) {\r\n this.modalService.open(content).then(result => {\r\n });\r\n }\r\n\r\n splitRaidVersionSupported(raidSupported){\r\n if(raidSupported.length == 2){\r\n return raidSupported[0] + ', '+raidSupported[1]\r\n }else{\r\n return raidSupported[0]\r\n }\r\n }\r\n\r\n addBackgroudColorToSelectedExpander(){\r\n let expanders = document.getElementsByTagName('rb-accordion-title')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index];\r\n let divElement = element.children[0] as HTMLDivElement\r\n \r\n let ctnExpander = divElement.children[0] as HTMLElement\r\n\r\n if(ctnExpander.innerText.split(' ')[0] == this.ctn){\r\n if(this.quantityAdded != 0) divElement.style.backgroundColor = \"#BFD5E3\"\r\n else divElement.style.backgroundColor = \"#FFFFFF\"\r\n }\r\n\r\n }\r\n }\r\n\r\n getStorageDeviceRecommendation(){\r\n\r\n if(this.typeStorage == \"general\"){\r\n if(this.openExpander == false){\r\n\r\n this.spinner = true\r\n\r\n this.getTotalCameras()\r\n .then(async(result) => {\r\n let quantity = await result\r\n\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let raid = productsSelected.raid\r\n let storageNeeded = productsSelected.storageNeeded\r\n\r\n this.storageService.getCustomRecommendedStorages(raid, storageNeeded, quantity, this.ctn).subscribe(\r\n res => {\r\n console.log(res);\r\n this.quantityRecommended = res[0].quantity != null || res[0].quantity != undefined? res[0].quantity: 0\r\n this.openExpander = true\r\n this.spinner = false\r\n },\r\n err => {\r\n this.openExpander = true\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n })\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n getTotalCameras(){\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n let cameras = JSON.parse(sessionStorage.getItem('productsSelected')).cameras\r\n\r\n if(cameras.length == 0){\r\n\r\n resolve(0)\r\n\r\n }else{\r\n let quantity = 0\r\n cameras.forEach((element,index) => {\r\n element.childrens.forEach((child, indexChild) => {\r\n quantity = quantity + child.quantity\r\n\r\n if(indexChild == element.childrens.length-1 && index == cameras.length-1) resolve(quantity)\r\n });\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n /**********THIS FUNCTION WILL TRIGGER WHEN PARENT COMPONENT UPDATES 'someInput'**************/\r\n if(this.updateChildTrigger.length != 0){\r\n this.updateChildTrigger.forEach(element => {\r\n if(element.action == 'add'){\r\n if(element.ctn == this.ctn){\r\n this.quantityAdded = this.quantityRecommended as number\r\n this.storage.quantity = this.quantityAdded\r\n if(this.raidVersion === 'RAID5') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid5').capacity * this.storage.quantity) + ' TB'\r\n else if(this.raidVersion === 'RAID6') this.elementStorageAdded = (this.storage.capacityDetails.find(x => x.type == 'raid6').capacity * this.storage.quantity) + ' TB'\r\n else this.elementStorageAdded = (this.storage.capacity * this.storage.quantity) + ' TB'\r\n\r\n this.results.emit(JSON.stringify({\"storage\": JSON.stringify(this.storage), \"action\": 'Add', \"nonDiskStorage\": this.checkNonDiskStorageAdded()}))\r\n }\r\n }else{\r\n this.quantityAdded = 0\r\n this.elementStorageAdded = '0 TB'\r\n this.results.emit(JSON.stringify({\"storage\": JSON.stringify(this.storage), \"action\": 'Remove', \"nonDiskStorage\": this.checkNonDiskStorageAdded()}))\r\n }\r\n });\r\n \r\n }\r\n } \r\n\r\n}\r\n","\r\n \r\n {{storage.ctn}} - {{storage.name}} - {{storage.capacity}}TB - Max. {{storage.channels}} {{ 'recommendedStorageItem.channelsTitle' | translate }} ({{quantityAdded}} {{ 'storageCalculatorGroup.units'| 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 Click the image of any product to see specifications datasheet.\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.ctn' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.ctn}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.shortDescription' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.short_description}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.capacity' | translate }}
  • \r\n
      \r\n
    • Full capacity: {{capacityDetails.capacity}} GB
    • \r\n
    • Full capacity: {{capacityDetails.capacity}} TB
    • \r\n
    • Considering-RAID5 capacity: {{capacityDetails.capacity}} TB
    • \r\n
    • Considering-RAID6 capacity: {{capacityDetails.capacity}} TB
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.bandwidth' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.bandwidth}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.channels' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.channels}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.raid' | translate }}
  • \r\n
      \r\n
    • {{raidVersion}}
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.quantityRecommended' | translate }}
  • \r\n\r\n
      \r\n
    • \r\n {{quantityRecommended}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.quantityAdded' | translate }}
  • \r\n\r\n
      \r\n
    • \r\n {{quantityAdded}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'recommendedStorageItem.quantity' | translate }}
  • \r\n\r\n
    \r\n \r\n {{ 'recommendedStorageItem.quantityRequiredError' | translate }}\r\n {{ 'recommendedStorageItem.quantityMinimumError' | 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
\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","import { Location } from '@angular/common';\r\nimport { Component, ElementRef, Input, OnInit, Output, ViewChild, EventEmitter, TemplateRef } from '@angular/core';\r\nimport { ChildActivationStart, Router } from '@angular/router';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport ByteConverter from '@wtfcode/byte-converter'\r\nimport { Subscription } from 'rxjs';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { SetUpTypeService } from 'src/app/services/set_up_type/set-up-type.service';\r\nimport { StoragesService } from 'src/app/services/storages/storages.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-storage-suggestion',\r\n templateUrl: './recommended-storage.component.html',\r\n styleUrls: ['./recommended-storage.component.sass']\r\n})\r\nexport class RecommendedStorageComponent implements OnInit {\r\n\r\n bandwidth: string = \"\"\r\n camerasBandwidth: string = \"\"\r\n storageBandwidth: string = \"0 Mbps\"\r\n storage: string = \"\"\r\n storageAdded: string = \"\"\r\n hasChanges: Boolean = false\r\n nonDiskAdded: Boolean\r\n /**\r\n * Spinner settings\r\n */\r\n spinner: Boolean = false\r\n\r\n storageArray = []\r\n recommededStorages = []\r\n\r\n updateChildValues: any = []\r\n disableRemoveAllButton = true\r\n\r\n @Input() updateSetUpTypeTrigger: any\r\n setUpTypeSubscription: Subscription\r\n\r\n raidOptions = []\r\n\r\n setUpType = ''\r\n raidVersion = \"\"\r\n\r\n constructor(private storageService: StoragesService, private notificationService: AppComponent, private router: Router,private setUpTypeService: SetUpTypeService, private location:Location, private modalService:ModalService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n this.initView()\r\n\r\n \r\n }\r\n\r\n initView(){\r\n this.spinner = true\r\n\r\n this.checkReturnInitialView()\r\n\r\n this.storageService.getRaidVersions().subscribe(\r\n res => {\r\n this.raidOptions = res as []\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n this.raidVersion = productsSelected.raid\r\n\r\n let storageNeeded = productsSelected.storageNeeded\r\n this.camerasBandwidth = productsSelected.bandwidthCameras\r\n this.nonDiskAdded = this.checkNonDiskStorageAdded()\r\n\r\n this.storageService.getStorages(this.raidVersion).subscribe(\r\n res => {\r\n this.storageArray = res as []\r\n\r\n this.bandwidth = productsSelected.bandwidthNeeded\r\n this.storage = productsSelected.storageNeeded\r\n this.storageAdded = productsSelected.storageAdded\r\n sessionStorage.setItem(\"storages\", JSON.stringify(this.storageArray))\r\n\r\n this.getTotalCameras()\r\n .then(async(result) => {\r\n let quantity = await result\r\n this.storageService.geRecommendedStorages(this.raidVersion, storageNeeded, quantity).subscribe(\r\n res => {\r\n this.recommededStorages = res as []\r\n \r\n this.removeStoragesRecommendedDuplicatesFromStorageList()\r\n this.enableOrDisableFollowingStep()\r\n this.checkIfSomeStoragesAreAdded()\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n })\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n checkReturnInitialView(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n if(productsSelected.cameras.length == 0 && productsSelected.recording.length == 0 && productsSelected.licenses.length == 0){\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n }\r\n }\r\n\r\n receiveDataFromChild(childResult: string){\r\n \r\n let results = JSON.parse(childResult)\r\n \r\n this.hasChanges = true\r\n this.nonDiskAdded = results.nonDiskStorage\r\n this.getTotalStorageAdded()\r\n\r\n /**\r\n * Enable or disable the next step\r\n */\r\n this.enableOrDisableFollowingStep() \r\n }\r\n\r\n getTotalStorageAdded(){\r\n let productSelected = JSON.parse(sessionStorage.getItem('productsSelected'))\r\n\r\n let result = 0\r\n let bandwidthResult = 0\r\n\r\n for (let index = 0; index < productSelected.recording.length; index++) {\r\n const element = productSelected.recording[index];\r\n \r\n if(this.raidVersion === 'RAID5') result = result + (element.capacityDetails.find(x => x.type == 'raid5').capacity * element.quantity)\r\n else if(this.raidVersion === 'RAID6') result = result +(element.capacityDetails.find(x => x.type == 'raid6').capacity * element.quantity)\r\n else result = result + (element.capacity * element.quantity)\r\n\r\n bandwidthResult = bandwidthResult + (element.bandwidth * element.quantity)\r\n }\r\n\r\n let bandwidthTotal = (parseFloat(productSelected.bandwidthCameras.split(' ')[0]) + bandwidthResult).toFixed(2)\r\n this.bandwidth = bandwidthTotal + ' Mbps'\r\n productSelected.storageBandwidth = bandwidthResult + ' Mbps'\r\n this.storageBandwidth = productSelected.storageBandwidth\r\n productSelected.bandwidthNeeded = this.bandwidth\r\n\r\n this.storageAdded = result + \" TB\"\r\n productSelected.storageAdded = this.storageAdded\r\n sessionStorage.setItem('productsSelected', JSON.stringify(productSelected))\r\n }\r\n\r\n checkStorageAdded(){\r\n let neededStorage = this.storage.toUpperCase().split(\" \")\r\n let currentStorage = this.storageAdded.toUpperCase().split(\" \")\r\n\r\n let neededStorageInBytes = this.convertToBytes(parseInt(neededStorage[0]), neededStorage[1])\r\n let currentStorageInBytes = this.convertToBytes(parseInt(currentStorage[0]), currentStorage[1])\r\n\r\n if(currentStorageInBytes > neededStorageInBytes) return true\r\n else if(this.nonDiskAdded) return true\r\n else return false\r\n\r\n }\r\n\r\n enableOrDisableFollowingStep(){\r\n let step = document.getElementsByClassName(\"step\")[3];\r\n\r\n if(this.checkStorageAdded()){\r\n /**\r\n * Enable following step\r\n */\r\n if(sessionStorage.getItem(\"currentStep\") == '3'){\r\n sessionStorage.setItem(\"currentStep\", \"4\")\r\n step.className = step.className.replace(\" disabled-step\",\" enable-step\");\r\n }\r\n \r\n }else{\r\n /**\r\n * Disable following step\r\n */\r\n sessionStorage.setItem(\"currentStep\", \"3\")\r\n step.className = step.className.replace(\" enable-step\",\" disabled-step\");\r\n document.getElementsByClassName(\"step\")[4].className = 'step disabled-step'\r\n this.disableRemoveAllButton = true\r\n }\r\n\r\n }\r\n\r\n convertToBytes(value, unit){\r\n const byteConverter = new ByteConverter()\r\n return byteConverter.convert(value, unit, \"B\")\r\n }\r\n\r\n convertToTeraBytesFromBytes(value){\r\n const byteConverter = new ByteConverter()\r\n return byteConverter.convert(value, \"B\", \"TB\")\r\n }\r\n\r\n getTotalCameras(){\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n let cameras = JSON.parse(sessionStorage.getItem('productsSelected')).cameras\r\n\r\n if(cameras.length == 0){\r\n\r\n resolve(0)\r\n\r\n }else{\r\n let quantity = 0\r\n cameras.forEach((element,index) => {\r\n if(element.childrens.length != 0){\r\n element.childrens.forEach((child, indexChild) => {\r\n quantity = quantity + child.quantity\r\n\r\n if(indexChild == element.childrens.length-1 && index == cameras.length-1) resolve(quantity)\r\n });\r\n }else{\r\n quantity = quantity + element.quantity\r\n if(index == cameras.length-1) resolve(quantity)\r\n }\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n removeStoragesRecommendedDuplicatesFromStorageList(){\r\n\r\n for (let index = 0; index < this.recommededStorages.length; index++) {\r\n const element = this.recommededStorages[index];\r\n \r\n let position = this.storageArray.findIndex(x=> x.ctn == element.ctn)\r\n\r\n this.storageArray.splice(position, 1)\r\n }\r\n\r\n }\r\n\r\n checkNonDiskStorageAdded(): boolean{\r\n let recordingsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\")).recording\r\n\r\n if(recordingsSelected.find(x => x.capacity === 0) != undefined) return true\r\n else return false \r\n\r\n }\r\n\r\n addMinimumReccomendedStorageDevices(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let storagesToNotify = []\r\n\r\n this.recommededStorages.forEach((element, index) => {\r\n let indexStorage = productsSelected.recording.findIndex(x => x.ctn == element.ctn)\r\n\r\n if(indexStorage == -1){\r\n productsSelected.recording.push(element)\r\n this.addBackgroudColorToSelectedExpander(element)\r\n storagesToNotify.push({\r\n ctn: element.ctn,\r\n action: 'add'\r\n })\r\n }\r\n\r\n if(index == this.recommededStorages.length-1){\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n this.updateChildValues = storagesToNotify\r\n this.disableRemoveAllButton = false\r\n // this.enableOrDisableFollowingStep()\r\n /**\r\n * Remove error css in progress bar\r\n */\r\n for (let index = 2; index < 5; index++){\r\n document.getElementsByClassName('step')[index].className = document.getElementsByClassName('step')[index].className.replace(' error error-step', '')\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeAllAddedStoragesDevices(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let storagesToNotify = []\r\n\r\n productsSelected.recording.forEach((element, index) => {\r\n element.quantity = 0\r\n this.addBackgroudColorToSelectedExpander(element)\r\n storagesToNotify.push({\r\n ctn: element.ctn,\r\n action: 'delete'\r\n })\r\n\r\n if(index == productsSelected.recording.length-1){\r\n productsSelected.recording = []\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n this.updateChildValues = storagesToNotify\r\n this.enableOrDisableFollowingStep()\r\n }\r\n\r\n });\r\n }\r\n\r\n addBackgroudColorToSelectedExpander(storage){\r\n let expanders = document.getElementsByTagName('rb-accordion-title')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index];\r\n let divElement = element.children[0] as HTMLDivElement\r\n \r\n let ctnExpander = divElement.children[0] as HTMLElement\r\n\r\n if(ctnExpander.innerText.split(' ')[0] == storage.ctn){\r\n if(storage.quantity != 0) divElement.style.backgroundColor = \"#BFD5E3\"\r\n else divElement.style.backgroundColor = \"#FFFFFF\"\r\n }\r\n\r\n }\r\n }\r\n\r\n openDeleteSelectionModal(content: TemplateRef) {\r\n this.modalService.open(content).then(result => {\r\n if(result){\r\n this.removeAllAddedStoragesDevices()\r\n }\r\n });\r\n }\r\n\r\n checkIfSomeStoragesAreAdded(){\r\n let recordings = JSON.parse(sessionStorage.getItem(\"productsSelected\")).recording\r\n if(recordings.length != 0) this.disableRemoveAllButton = false\r\n }\r\n \r\n collapseAllExpanders(type){\r\n let expanders = document.getElementsByClassName('accordion-toggle')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index] as HTMLAnchorElement;\r\n\r\n if(type == 'collapse'){\r\n if(element.children[0].className.includes('minimize')) element.click()\r\n }else{\r\n if(element.children[0].className.includes('add')) element.click()\r\n }\r\n }\r\n }\r\n\r\n changeRaidVersion(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n productsSelected.raid = this.raidVersion\r\n\r\n this.setUpTypeService.setCloudType(this.raidVersion)\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n\r\n setTimeout(() => {\r\n this.removeAllAddedStoragesDevices()\r\n this.initView()\r\n }, 500);\r\n }\r\n}\r\n","
\r\n\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n {{ 'recommendedStorage.outputTitle' | translate }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'storageCalculator.bandwidth' | translate }}\r\n
\r\n
\r\n Storage\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'recommendedStorage.camerasBandwidth' | translate }}\r\n
\r\n
\r\n {{ 'recommendedStorage.storagesBandwidth' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n {{camerasBandwidth}}\r\n
\r\n
\r\n {{ storageBandwidth }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'recommendedStorage.recommended' | translate }}\r\n
\r\n
\r\n {{ 'recommendedStorage.added' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n {{storage}}\r\n
\r\n
\r\n {{ storageAdded }}\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 \r\n
\r\n
\r\n
\r\n

{{ 'recommendedStorage.recommededStorageTitle' | 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

{{ 'recommendedStorage.otherStorageTitle' | 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 {{ 'recommendedStorage.cleanAllModalMessage1' | translate }}\r\n
\r\n {{ 'recommendedStorage.cleanAllModalMessage2' | 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 {{ 'sceneDetails.title' | translate }} \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n Scene: {{scene.name}}\r\n
      \r\n
    • \r\n Scene type: {{scene.type}}\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","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ScenesService } from 'src/app/services/scenes/scenes.service';\r\nimport { Environment } from 'src/app/environments';\r\nimport { AppComponent } from 'src/app/app.component';\r\n\r\n@Component({\r\n selector: 'app-scene-details',\r\n templateUrl: './scene-details.component.html',\r\n styleUrls: ['./scene-details.component.sass']\r\n})\r\nexport class SceneDetailsComponent implements OnInit {\r\n\r\n videoScenes = []\r\n spinner = false\r\n\r\n constructor(private scenesService: ScenesService, private router: Router, private notificationService: AppComponent) { }\r\n\r\n ngOnInit(): void {\r\n this.spinner = true\r\n\r\n this.scenesService.getScenes().subscribe(\r\n res => {\r\n this.videoScenes = res as []\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n backToSite(){\r\n this.router.navigate([\"/calculator\"], {skipLocationChange: true})\r\n }\r\n\r\n}\r\n","import { LocationStrategy } from '@angular/common';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, Input, OnInit, Output, EventEmitter, OnChanges, ViewChild, TemplateRef } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { debug } from 'console';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { Environment } from 'src/app/environments';\r\nimport { CalculatorService } from 'src/app/services/calculator/calculator.service';\r\nimport { SetUpTypeService } from 'src/app/services/set_up_type/set-up-type.service';\r\n\r\n@Component({\r\n selector: 'app-storage-calculator-camera-item',\r\n templateUrl: './storage-calculator-camera-item.component.html',\r\n styleUrls: ['./storage-calculator-camera-item.component.sass']\r\n})\r\nexport class StorageCalculatorCameraItemComponent implements OnInit, OnChanges {\r\n\r\n @Input() ctn: string;\r\n @Input() name: string;\r\n @Input() groupName: string;\r\n @Input() number: number;\r\n @Input() retentionTimeChild: number;\r\n @Input() raidVersionChild: string;\r\n @Output() results = new EventEmitter();\r\n\r\n timeOutRunning = false\r\n\r\n groupNameLabel: string = ''\r\n\r\n configurationType: string = ''\r\n quantity: number = 1\r\n hours: number = 24\r\n retentionTime: number = 0\r\n profile: string = ''\r\n platform: string = ''\r\n codec: string = ''\r\n resolution: string = ''\r\n framerate: number = 0\r\n audio: string = 'No'\r\n metadata: string = 'No'\r\n sanityCheckDays: number = 2\r\n vrmDowntimeDays: number = 4\r\n has_60_framerate: boolean = true\r\n maxResolutionSupported: string = ''\r\n lenses: number = 1\r\n livestream: boolean = false\r\n segmentByHours: boolean = false\r\n\r\n overheadCheckbox: boolean = false\r\n overhead: number = 0\r\n\r\n multiLensesAdvancedConfigCheckbox: boolean = false\r\n\r\n platformDisable: boolean = true\r\n codecDisable: boolean = true\r\n resolutionDisable: boolean = true\r\n audioDisable: boolean = true\r\n metadataDisable: boolean = true\r\n sanityCheckDisable: boolean = true\r\n vrmDowntimeDisable: boolean = true\r\n frameratesDisable: boolean = true\r\n\r\n bandwidth: string = '0 Mbps'\r\n storage: string= '0 Mb'\r\n\r\n spinner: Boolean = false\r\n openExpander: Boolean = false\r\n\r\n advancedConfigurationOption: Boolean = false\r\n\r\n profilesOptions = []\r\n platformOptions = []\r\n codecOptions = []\r\n resolutionOptions = []\r\n audioOptions = ['Yes(G.711)', 'Yes(L16)', 'Yes(ACC)', 'No']\r\n metadataOptions = ['Yes', 'No']\r\n sanityCheckDaysOptions = [1,2,3,4,5,6,7]\r\n frameratesOptions = []\r\n\r\n cloudStorageRetentionTimeOptions = [\r\n {id: 7, label: '7'},\r\n {id: 14, label: '14'},\r\n {id: 30, label: '30'}\r\n ]\r\n\r\n /**\r\n * To saved the values of params \r\n */\r\n profileBackup = ''\r\n codecBackup = ''\r\n resolutionBackup = ''\r\n\r\n multiLenses = []\r\n\r\n segmentRanges = []\r\n segmentQuantity = 0\r\n segmentRefresh = true\r\n\r\n disableMultiGeneralParams = false\r\n \r\n setUpType = ''\r\n setUpTypeSubscription: Subscription\r\n\r\n //cloud\r\n disableSanityCheck = false\r\n disableVRMDowntime = false\r\n disableCodec = false\r\n\r\n sceneTooltip = ''\r\n sceneTooltipValues = [\r\n { key: \"PTZ optimized\", tooltip: \"This profile is optimized for cameras that can pan, tilt, and zoom (PTZ). It aims to provide a high-quality video stream with a focus on smooth PTZ movements.\"},\r\n { key: \"balanced busy\", tooltip: \"This profile is designed for busy environments where there is a lot of motion and activity. It balances video quality and bitrate to provide a smooth and clear video stream without buffering.\"},\r\n { key: \"balanced quiet\", tooltip: \"This profile is optimized for quiet environments where there is little movement or activity. It balances video quality and bitrate to provide a clear video stream without unnecessary buffering.\"},\r\n { key: \"balanced standard\", tooltip: \"This profile is a general-purpose profile that balances video quality and bitrate to provide a stable and consistent video stream in typical environments.\"},\r\n { key: \"bitrate optimized busy\", tooltip: \"This profile is optimized for busy environments where there is a lot of motion and activity. It prioritizes bitrate over video quality to provide a smooth video stream with minimal buffering.\"},\r\n { key: \"bitrate optimized quiet\", tooltip: \"This profile is optimized for quiet environments where there is little movement or activity. It prioritizes bitrate over video quality to provide a clear video stream with minimal buffering.\"},\r\n { key: \"bitrate optimized standard\", tooltip: \"This profile is a general-purpose profile that prioritizes bitrate over video quality to provide a stable and consistent video stream in typical environments.\"},\r\n { key: \"image optimized busy\", tooltip: \"This profile is optimized for busy environments where there is a lot of motion and activity. It prioritizes video quality over bitrate to provide a clear and detailed video stream.\"},\r\n { key: \"image optimized quiet\", tooltip: \"This profile is optimized for quiet environments where there is little movement or activity. It prioritizes video quality over bitrate to provide a clear and detailed video stream.\"},\r\n { key: \"image optimized standard\", tooltip: \"This profile is a general-purpose profile that prioritizes video quality over bitrate to provide a clear and detailed video stream in typical environments.\"}\r\n ]\r\n\r\n @ViewChild(\"cloudMaxOvercomeDisclaimer\", { static: true }) cloudMaxOvercomeDisclaimer;\r\n\r\n\r\n constructor(private calculatorService: CalculatorService, private notificationService: AppComponent, private router: Router, private setUpTypeService: SetUpTypeService, private modalService: ModalService, private location: LocationStrategy) { }\r\n\r\n ngOnInit(): void {\r\n this.groupNameLabel = this.groupName+' ('+this.name+')'\r\n\r\n this.spinner = true\r\n\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n this.retentionTime = productsSelected.retentionTime\r\n this.initSanityCheckDaysOptions()\r\n\r\n //Check the values that come from export file and load init the interface of the elements\r\n if(localStorage.getItem(\"restoreProject\") == 'true'){\r\n this.getStorageValues()\r\n\r\n this.calculatorService.getProfiles().subscribe(\r\n res => {\r\n this.profilesOptions = res as []\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n else if(this.setUpTypeService.getSetUpType() == ''){\r\n this.setUpTypeSubscription = this.setUpTypeService.setUpTypeTrigger.subscribe(data => {\r\n while(this.setUpType == ''){\r\n\r\n this.setUpType = data\r\n this.getStorageValues()\r\n\r\n this.calculatorService.getProfiles().subscribe(\r\n res => {\r\n this.profilesOptions = res as []\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n })\r\n }else{\r\n this.setUpType = this.setUpTypeService.getSetUpType()\r\n this.getStorageValues()\r\n\r\n this.calculatorService.getProfiles().subscribe(\r\n res => {\r\n this.profilesOptions = res as []\r\n this.spinner = false\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n \r\n }\r\n\r\n ngOnDestroy(): void{\r\n if (this.setUpTypeSubscription) {\r\n this.setUpTypeSubscription.unsubscribe()\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n /**********THIS FUNCTION WILL TRIGGER WHEN PARENT COMPONENT UPDATES 'someInput'**************/\r\n //Write your code here\r\n if(this.raidVersionChild != 'RAID5' && this.raidVersionChild != 'RAID6' && this.raidVersionChild != ''){\r\n if(this.raidVersionChild == \"Continuous\"){\r\n this.hours = 24\r\n }else{\r\n this.hours = 2\r\n }\r\n this.setBasicConfiguration(this.quantity, this.platform)\r\n }\r\n\r\n if(this.quantity > 0 && (this.hours > 0 && this.hours <= 24) && this.sanityCheckDays >= 0\r\n && this.vrmDowntimeDays >= 0 && this.audio != \"\" && this.metadata != \"\" && this.profile != \"\"\r\n && this.platform != \"\" && this.codec != \"\" && this.resolution != \"\" && this.framerate != 0\r\n ){\r\n\r\n\r\n if(!this.segmentByHours && !this.multiLensesAdvancedConfigCheckbox){\r\n this.retentionTime = Number(this.retentionTimeChild)\r\n }else if(this.segmentByHours && !this.multiLensesAdvancedConfigCheckbox){\r\n this.segmentRanges.forEach(element => {\r\n element.retentionTime = Number(this.retentionTimeChild)\r\n });\r\n }else{\r\n this.multiLenses.forEach(element => {\r\n element.retentionTime = Number(this.retentionTimeChild)\r\n\r\n if(element.segmentRanges.length != 0){\r\n element.segmentRanges.forEach(subElement => {\r\n subElement.retentionTime = Number(this.retentionTimeChild)\r\n });\r\n }\r\n });\r\n }\r\n\r\n this.initSanityCheckDaysOptions()\r\n\r\n if(!this.multiLensesAdvancedConfigCheckbox && !this.segmentByHours) this.validateSanityCheckDays('general')\r\n else if(!this.multiLensesAdvancedConfigCheckbox && this.segmentByHours){\r\n this.validateSanityCheckDays('ranges', undefined)\r\n }\r\n else{\r\n this.validateSanityCheckDays('multi')\r\n this.updateGeneralMultiLensInputs('hours')\r\n }\r\n }\r\n } \r\n\r\n profilePickerChange(){\r\n\r\n this.sceneTooltip = this.getSpecificSceneTooltip(this.profile)\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(this.profile, this.platform, this.codec, this.resolution, this.framerate).subscribe(\r\n res => {\r\n if(!res){\r\n this.codecDisable = false\r\n this.openExpander = true\r\n this.codec = ''\r\n this.resolution = \"\"\r\n this.framerate = 0\r\n this.resolutionDisable = true\r\n this.frameratesDisable = true\r\n this.spinner = false\r\n this.pickersChanges()\r\n }else{\r\n this.profileBackup = this.profile\r\n this.spinner = false\r\n this.pickersChanges()\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n\r\n }\r\n\r\n codecPickerChange(){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(this.profile, this.platform, this.codec, this.resolution, this.framerate).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getResolutions(this.profile, this.platform, this.codec, this.maxResolutionSupported).subscribe(\r\n res => {\r\n this.resolutionOptions = res as []\r\n this.resolutionDisable = false\r\n this.openExpander = true\r\n this.resolution = \"\"\r\n this.framerate = 0\r\n this.frameratesDisable = true\r\n this.spinner = false\r\n\r\n if(this.ctn.includes('NDM-7702')){\r\n this.resolutionOptions.splice(3)\r\n }else if(this.ctn.includes('NDM-7703')){\r\n this.resolutionOptions.splice(5)\r\n }\r\n\r\n this.pickersChanges()\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.codecBackup = this.codec\r\n this.spinner = false\r\n this.pickersChanges()\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n resolutionPickerChange(){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(this.profile, this.platform, this.codec, this.resolution, this.framerate).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getFramerates(this.profile, this.platform, this.codec, this.resolution, this.has_60_framerate).subscribe(\r\n res => {\r\n this.frameratesOptions = res as []\r\n this.frameratesDisable = false\r\n this.openExpander = true\r\n this.framerate = 0\r\n this.spinner = false\r\n\r\n this.pickersChanges()\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.resolutionBackup = this.resolution\r\n this.spinner = false\r\n this.pickersChanges()\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n validateField(field, input, type?, index?, indexMultiRange?){\r\n \r\n let inputID = input.currentTarget.id\r\n \r\n let camera = this.getCameraInfo()\r\n let child = camera.childrens[this.number-1]\r\n\r\n switch (field) {\r\n case 'quantity':\r\n if(child.quantity != this.quantity){\r\n if(this.quantity > 0){\r\n document.getElementById('err_'+inputID+'_button').click() \r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n break;\r\n case 'hours':\r\n if(type == undefined){\r\n if(child.hours != this.hours){\r\n if(this.hours >= 1 && this.hours < 25){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else if(type == 'ranges'){\r\n if(child.segmentRanges[index].hours != this.segmentRanges[index].hours){\r\n if(this.segmentRanges[index].hours >= 1 && this.segmentRanges[index].hours < 25){\r\n\r\n let hours = 0\r\n child.segmentRanges.forEach((element, indexLoop) => {\r\n if(index != indexLoop) hours = hours + element.hours\r\n else hours = hours + this.segmentRanges[index].hours\r\n\r\n if(indexLoop == child.segmentRanges.length-1){\r\n if(hours <= 24){\r\n this.segmentRefresh = true\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }else{\r\n this.segmentRefresh = false\r\n document.getElementById('err_'+inputID+'_over24_button').click()\r\n }\r\n }\r\n });\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else{\r\n if(child.multiLenses[index].segmentRanges[indexMultiRange].hours != this.multiLenses[index].segmentRanges[indexMultiRange].hours){\r\n if(this.multiLenses[index].segmentRanges[indexMultiRange].hours >= 1 && this.multiLenses[index].segmentRanges[indexMultiRange].hours < 25){\r\n\r\n let hours = 0\r\n\r\n child.multiLenses[index].segmentRanges.forEach((element, indexLoop) => {\r\n if(indexMultiRange != indexLoop) hours = hours + element.hours\r\n else hours = hours + this.multiLenses[index].segmentRanges[indexMultiRange].hours\r\n\r\n if(indexLoop == child.multiLenses[index].segmentRanges.length-1){\r\n if(hours <= 24){\r\n this.segmentRefresh = true\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }else{\r\n this.segmentRefresh = false\r\n document.getElementById('err_'+inputID+'_over24_button').click()\r\n }\r\n }\r\n });\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }\r\n break;\r\n case 'vrm':\r\n if(type == undefined){\r\n if(child.vrmDowntimeDays != this.vrmDowntimeDays){\r\n if(this.vrmDowntimeDays >= 0 && this.vrmDowntimeDays <= 7){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else if(type == 'ranges'){\r\n if(child.segmentRanges[index].vrmDowntimeDays != this.segmentRanges[index].vrmDowntimeDays){\r\n if(this.segmentRanges[index].vrmDowntimeDays >= 0 && this.segmentRanges[index].vrmDowntimeDays <= 7){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else{\r\n if(child.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays != this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays){\r\n if(this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays >= 0 && this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays <= 7){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }\r\n \r\n break;\r\n case 'overhead':\r\n if(type == undefined){\r\n if(child.overhead != this.overhead){\r\n if(this.overhead >= 0 && this.overhead <= 100){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else if(type == 'ranges'){\r\n if(child.segmentRanges[index].overhead != this.segmentRanges[index].overhead){\r\n if(this.segmentRanges[index].overhead >= 0 && this.segmentRanges[index].overhead <= 100){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else{\r\n if(child.multiLenses[index].segmentRanges[indexMultiRange].overhead != this.multiLenses[index].segmentRanges[indexMultiRange].overhead){\r\n if(this.multiLenses[index].segmentRanges[indexMultiRange].overhead >= 0 && this.multiLenses[index].segmentRanges[indexMultiRange].overhead <= 100){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }\r\n break;\r\n case 'retentionTime':\r\n if(type == undefined){\r\n if(child.retentionTime != this.retentionTime){\r\n if(this.overhead >= 1){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else if(type == 'ranges'){\r\n if(child.segmentRanges[index].retentionTime != this.segmentRanges[index].retentionTime){\r\n if(this.segmentRanges[index].retentionTime >= 1){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }else{\r\n if(child.multiLenses[index].segmentRanges[indexMultiRange].retentionTime != this.multiLenses[index].segmentRanges[indexMultiRange].retentionTime){\r\n if(this.multiLenses[index].segmentRanges[indexMultiRange].retentionTime >= 1){\r\n document.getElementById('err_'+inputID+'_button').click()\r\n this.removeErrorStyle(inputID, 'add')\r\n this.disableOrEnableFollowingSteps('disable')\r\n }\r\n }else{\r\n this.removeErrorStyle(inputID, 'remove')\r\n this.disableOrEnableFollowingSteps('enable')\r\n }\r\n }\r\n break;\r\n default:\r\n console.log('');\r\n break;\r\n }\r\n \r\n }\r\n\r\n updateInputs(field, type?, index?, indexMultiRange?){\r\n let change = false\r\n let camera = this.getCameraInfo()\r\n let child = camera.childrens[this.number-1]\r\n\r\n switch (field) {\r\n case 'quantity':\r\n if(child.quantity != this.quantity){\r\n if(this.quantity <= 0) \r\n this.quantity = 1 \r\n change = true\r\n }\r\n break;\r\n case 'hours':\r\n if(child.hours != this.hours){\r\n if(this.hours <= 0) this.hours = 1\r\n else\r\n if(this.hours > 24) this.hours = 24\r\n\r\n change = true\r\n }\r\n break;\r\n case 'vrm':\r\n if(child.vrmDowntimeDays != this.vrmDowntimeDays){\r\n if(this.vrmDowntimeDays < 0) this.vrmDowntimeDays = 0\r\n else if(this.vrmDowntimeDays > 7) this.vrmDowntimeDays = 7\r\n\r\n change = true\r\n }\r\n\r\n if(type == undefined){\r\n if(child.vrmDowntimeDays != this.vrmDowntimeDays){\r\n if(this.vrmDowntimeDays < 0) this.vrmDowntimeDays = 0\r\n else if(this.vrmDowntimeDays > 7) this.vrmDowntimeDays = 7\r\n \r\n change = true\r\n }\r\n }else if(type == 'ranges'){\r\n if(child.segmentRanges[index].vrmDowntimeDays != this.segmentRanges[index].vrmDowntimeDays){\r\n if(this.segmentRanges[index].vrmDowntimeDays < 0) this.segmentRanges[index].vrmDowntimeDays = 0\r\n else if(this.segmentRanges[index].vrmDowntimeDays > 7) this.segmentRanges[index].vrmDowntimeDays = 7\r\n \r\n change = true\r\n }\r\n }else{\r\n if(child.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays != this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays){\r\n if(this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays < 0) this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays = 0\r\n else if(this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays > 7) this.multiLenses[index].segmentRanges[indexMultiRange].vrmDowntimeDays = 7\r\n \r\n change = true\r\n }\r\n }\r\n\r\n\r\n break;\r\n case 'overhead':\r\n if(child.overhead != this.overhead){\r\n if(this.overhead < 0) this.overhead = 0\r\n else if(this.overhead > 100) this.overhead = 100\r\n\r\n change = true\r\n }\r\n break;\r\n case 'retentionTime':\r\n if(child.retentionTime != this.retentionTime){\r\n if(this.retentionTime < 0) this.overhead = 1\r\n\r\n change = true\r\n }\r\n break;\r\n default:\r\n change = true\r\n break;\r\n }\r\n\r\n if(change) this.calculateStorage('general')\r\n \r\n }\r\n\r\n pickersChanges(): void {\r\n if(this.setUpType != 'Cloud'){\r\n if(this.quantity > 0 && (this.hours > 0 && this.hours <= 24) && this.sanityCheckDays > 0\r\n && this.vrmDowntimeDays > 0 && this.audio != \"\" && this.metadata != \"\" && this.profile != \"\"\r\n && this.platform != \"\" && this.codec != \"\" && this.resolution != \"\" && this.framerate != 0\r\n ){\r\n this.calculateStorage('general', 0)\r\n this.openExpander = true\r\n this.codecDisable = false\r\n this.resolutionDisable = false\r\n this.frameratesDisable = false\r\n }else{\r\n this.bandwidth = '0 Mbps'\r\n this.storage = '0 Mb'\r\n this.setStorageValues()\r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"bandwidth\": 0, \"storage\": 0, \"action\": 'Add'}))\r\n }\r\n }else{\r\n if(this.quantity > 0 && (this.hours > 0 && this.hours <= 24) && this.sanityCheckDays >= 0\r\n && this.vrmDowntimeDays >= 0 && this.audio != \"\" && this.metadata != \"\" && this.profile != \"\"\r\n && this.platform != \"\" && this.codec != \"\" && this.resolution != \"\" && this.framerate != 0\r\n ){\r\n this.calculateStorage('general', 0)\r\n this.openExpander = true\r\n this.codecDisable = false\r\n this.resolutionDisable = false\r\n this.frameratesDisable = false\r\n }else{\r\n this.bandwidth = '0 Mbps'\r\n this.storage = '0 Mb'\r\n this.setStorageValues()\r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"bandwidth\": 0, \"storage\": 0, \"action\": 'Add'}))\r\n }\r\n }\r\n }\r\n\r\n calculateStorage(type, index?, indexRange?): void{\r\n this.spinner = true\r\n if(!this.overheadCheckbox && this.overhead != 0) this.overhead = 0\r\n\r\n if(type == 'general'){\r\n if(!this.overheadCheckbox && this.overhead != 0) this.overhead = 0\r\n\r\n this.calculatorService.calculateStorage(this.quantity, this.hours, this.retentionTime, this.profile, this.platform, this.codec, this.resolution, this.framerate , this.audio, this.metadata, this.sanityCheckDays, this.vrmDowntimeDays, 1, this.overhead).subscribe(\r\n res => {\r\n if(this.lenses > 1){\r\n this.bandwidth = (res[0].bandwidth * this.lenses) + \" Mbps\"\r\n\r\n if(!this.livestream){\r\n this.storage = ((res[0].storage*this.quantity) * this.lenses).toFixed(2) + \" TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'general', quantity: this.quantity, storage: (res[0].storage*this.lenses)})\r\n\r\n if((parseFloat(res[0].storage) * this.lenses) >= 1 && this.setUpTypeService.getSetUpType() == 'Cloud') this.modalService.open(this.cloudMaxOvercomeDisclaimer).then(result => {});\r\n }\r\n else{\r\n this.storage = \"0 TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'general', quantity: this.quantity, storage: '0'})\r\n }\r\n }else{\r\n this.bandwidth = res[0].bandwidth + \" Mbps\"\r\n\r\n if(!this.livestream){\r\n this.storage = (res[0].storage*this.quantity).toFixed(2) + \" TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'general', quantity: this.quantity, storage: res[0].storage})\r\n if(parseFloat(res[0].storage) >= 1 && this.setUpTypeService.getSetUpType() == 'Cloud') this.modalService.open(this.cloudMaxOvercomeDisclaimer).then(result => {});\r\n }\r\n else{\r\n this.storage = \"0 TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'general', quantity: this.quantity, storage: '0'})\r\n }\r\n }\r\n\r\n this.setStorageValues()\r\n\r\n \r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"group\": this.number, \"action\": 'Add'}))\r\n this.spinner = false\r\n this.timeOutRunning = false\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n this.timeOutRunning = false\r\n }\r\n )\r\n\r\n }else if(type == 'multi'){\r\n this.calculatorService.calculateStorage(\r\n this.multiLenses[index].quantity, this.multiLenses[index].hours, this.multiLenses[index].retentionTime, \r\n this.multiLenses[index].profile, this.multiLenses[index].platform, this.multiLenses[index].codec,\r\n this.multiLenses[index].resolution, this.multiLenses[index].framerate , this.multiLenses[index].audio, \r\n this.multiLenses[index].metadata, this.multiLenses[index].sanityCheckDays, this.multiLenses[index].vrmDowntimeDays,\r\n 1, this.multiLenses[index].overhead\r\n ).subscribe(\r\n res => {\r\n this.multiLenses[index].bandwidth = res[0].bandwidth + \" Mbps\"\r\n\r\n if(!this.multiLenses[index].livestream){\r\n this.multiLenses[index].storage = (res[0].storage * this.multiLenses[index].quantity).toFixed(2) + \" TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'multi', quantity: this.multiLenses[index].quantity, storage: res[0].storage})\r\n if(parseFloat(res[0].storage) >= 1 && this.setUpTypeService.getSetUpType() == 'Cloud') this.modalService.open(this.cloudMaxOvercomeDisclaimer).then(result => {});\r\n }\r\n else{\r\n this.multiLenses[index].storage = \"0 TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'multi', quantity: this.multiLenses[index].quantity, storage: '0'})\r\n }\r\n\r\n this.getMultiLensBandwidthAndStorage()\r\n .then(async(result) => {\r\n\r\n this.bandwidth = await result.bandwidth.toFixed(2) + \" Mbps\"\r\n this.storage = await result.storage.toFixed(2) + \" TB\"\r\n\r\n this.setStorageValues()\r\n \r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"group\": this.number, \"action\": 'Add'}))\r\n this.spinner = false\r\n this.timeOutRunning = false\r\n })\r\n .catch((err) => {\r\n this.spinner = false\r\n })\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n this.timeOutRunning = false\r\n }\r\n )\r\n }else if(type == 'ranges'){\r\n this.calculatorService.calculateStorage(\r\n this.segmentRanges[index].quantity, this.segmentRanges[index].hours, this.segmentRanges[index].retentionTime, \r\n this.segmentRanges[index].profile, this.segmentRanges[index].platform, this.segmentRanges[index].codec,\r\n this.segmentRanges[index].resolution, this.segmentRanges[index].framerate , this.segmentRanges[index].audio, \r\n this.segmentRanges[index].metadata, this.segmentRanges[index].sanityCheckDays, this.segmentRanges[index].vrmDowntimeDays,\r\n 1, this.segmentRanges[index].overhead\r\n ).subscribe(\r\n res => {\r\n\r\n\r\n if(this.lenses > 1){\r\n this.segmentRanges[index].bandwidth = (res[0].bandwidth * this.lenses) + \" Mbps\"\r\n\r\n if(!this.segmentRanges[index].livestream && res[0].storage != 'NaN'){\r\n this.segmentRanges[index].storage = ((res[0].storage*this.segmentRanges[index].quantity) * this.lenses).toFixed(2) + \" TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'ranges', quantity: this.segmentRanges[index].quantity, storage: (res[0].storage*this.lenses)})\r\n if((parseFloat(res[0].storage) * this.lenses) >= 1 && this.setUpTypeService.getSetUpType() == 'Cloud') this.modalService.open(this.cloudMaxOvercomeDisclaimer).then(result => {});\r\n }\r\n else{\r\n this.segmentRanges[index].storage = \"0 TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'ranges', quantity: this.segmentRanges[index].quantity, storage: '0'})\r\n }\r\n\r\n }else{\r\n this.segmentRanges[index].bandwidth = res[0].bandwidth + \" Mbps\"\r\n\r\n if(!this.segmentRanges[index].livestream && res[0].storage != 'NaN'){\r\n this.segmentRanges[index].storage = (res[0].storage*this.segmentRanges[index].quantity).toFixed(2) + \" TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'ranges', quantity: this.segmentRanges[index].quantity, storage: res[0].storage})\r\n if(parseFloat(res[0].storage) >= 1 && this.setUpTypeService.getSetUpType() == 'Cloud') this.modalService.open(this.cloudMaxOvercomeDisclaimer).then(result => {});\r\n\r\n }\r\n else{ \r\n this.segmentRanges[index].storage = \"0 TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'ranges', quantity: this.segmentRanges[index].quantity, storage: '0'})\r\n }\r\n\r\n }\r\n\r\n\r\n this.getSegmentRangesBandwidthAndStorage()\r\n .then(async(result) => {\r\n\r\n this.bandwidth = await result.bandwidth.toFixed(2) + \" Mbps\"\r\n this.storage = await result.storage.toFixed(2) + \" TB\"\r\n\r\n this.setStorageValues()\r\n \r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"group\": this.number, \"action\": 'Add'}))\r\n this.spinner = false\r\n this.timeOutRunning = false\r\n })\r\n .catch((err) => {\r\n this.spinner = false\r\n })\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n this.timeOutRunning = false\r\n }\r\n )\r\n }else{\r\n try{\r\n this.calculatorService.calculateStorage(\r\n this.multiLenses[index].segmentRanges[indexRange].quantity, this.multiLenses[index].segmentRanges[indexRange].hours, this.multiLenses[index].segmentRanges[indexRange].retentionTime, \r\n this.multiLenses[index].segmentRanges[indexRange].profile, this.multiLenses[index].segmentRanges[indexRange].platform, this.multiLenses[index].segmentRanges[indexRange].codec,\r\n this.multiLenses[index].segmentRanges[indexRange].resolution, this.multiLenses[index].segmentRanges[indexRange].framerate , this.multiLenses[index].segmentRanges[indexRange].audio, \r\n this.multiLenses[index].segmentRanges[indexRange].metadata, this.multiLenses[index].segmentRanges[indexRange].sanityCheckDays, this.multiLenses[index].segmentRanges[indexRange].vrmDowntimeDays,\r\n 1, this.multiLenses[index].segmentRanges[indexRange].overhead\r\n ).subscribe(\r\n res => {\r\n this.multiLenses[index].segmentRanges[indexRange].bandwidth = res[0].bandwidth + \" Mbps\"\r\n\r\n if(!this.multiLenses[index].segmentRanges[indexRange].livestream && res[0].storage != 'NaN'){\r\n this.multiLenses[index].segmentRanges[indexRange].storage = (res[0].storage*this.multiLenses[index].segmentRanges[indexRange].quantity).toFixed(2) + \" TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'multi-ranges', quantity: this.multiLenses[index].segmentRanges[indexRange].quantity, storage: res[0].storage})\r\n if((parseFloat(res[0].storage) * this.lenses) >= 1 && this.setUpTypeService.getSetUpType() == 'Cloud') this.modalService.open(this.cloudMaxOvercomeDisclaimer).then(result => {});\r\n }\r\n else{\r\n this.multiLenses[index].segmentRanges[indexRange].storage = \"0 TB\"\r\n this.setUpTypeService.setStorageValues({ctn: this.ctn, group: this.groupName, type: 'multi-ranges', quantity: this.multiLenses[index].segmentRanges[indexRange].quantity, storage: '0'})\r\n\r\n } \r\n\r\n this.getMultiSegmentRangesBandwidthAndStorage(index)\r\n .then(async(result) => {\r\n this.bandwidth = await result.bandwidth.toFixed(2) + \" Mbps\"\r\n this.storage = await result.storage.toFixed(2) + \" TB\"\r\n\r\n this.setStorageValues()\r\n \r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"group\": this.number, \"action\": 'Add'}))\r\n this.spinner = false\r\n this.timeOutRunning = false\r\n })\r\n .catch((err) => {\r\n this.spinner = false\r\n })\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n this.timeOutRunning = false\r\n }\r\n )\r\n }catch(err){\r\n this.getMultiSegmentRangesBandwidthAndStorage(index)\r\n .then(async(result) => {\r\n this.bandwidth = await result.bandwidth.toFixed(2) + \" Mbps\"\r\n this.storage = await result.storage.toFixed(2) + \" TB\"\r\n\r\n this.setStorageValues()\r\n \r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"group\": this.number, \"action\": 'Add'}))\r\n this.spinner = false\r\n this.timeOutRunning = false\r\n })\r\n .catch((err) => {\r\n this.spinner = false\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n setStorageValues():void{\r\n\r\n let camera = this.getCameraInfo()\r\n\r\n let element = { \r\n number: this.number,\r\n configurationType: this.configurationType,\r\n quantity: this.quantity,\r\n hours: this.hours,\r\n sanityCheckDays: this.sanityCheckDays,\r\n vrmDowntimeDays: this.vrmDowntimeDays,\r\n audio: this.audio,\r\n metadata: this.metadata,\r\n profile: this.profile,\r\n platform: this.platform,\r\n codec: this.codec,\r\n resolution: this.resolution,\r\n framerate: Number(this.framerate),\r\n storage: this.storage,\r\n bandwidth: this.bandwidth,\r\n has_60_framerate: this.has_60_framerate,\r\n overhead: this.overhead,\r\n livestream: this.livestream,\r\n multiLenses: this.multiLenses,\r\n multiLensesAdvancedConfigCheckbox: this.multiLensesAdvancedConfigCheckbox,\r\n segmentRanges: this.segmentRanges,\r\n segmentByHours: this.segmentByHours,\r\n groupNameLabel: this.groupNameLabel\r\n }\r\n\r\n if(camera.childrens.length == 0){\r\n camera.childrens.push(element)\r\n }else{\r\n camera.childrens[this.number-1] = element\r\n }\r\n\r\n let products = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let index = products.cameras.findIndex(x => x.ctn === this.ctn)\r\n products.cameras[index]= camera\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(products))\r\n }\r\n\r\n getStorageValues():void{\r\n let camera = this.getCameraInfo()\r\n this.codecOptions = camera.codecs\r\n this.platform = camera.platform \r\n this.has_60_framerate = camera.has_60_framerate\r\n this.maxResolutionSupported = camera.max_resolution\r\n this.lenses = camera.lenses\r\n this.quantity = Number(camera.Quantity)\r\n \r\n \r\n if(camera.childrens.length != 0 ){\r\n\r\n let child = camera.childrens[this.number-1]\r\n\r\n if(child != null || child != undefined){\r\n this.quantity = child.quantity\r\n this.configurationType = child.configurationType\r\n this.hours = child.hours\r\n this.sanityCheckDays = child.sanityCheckDays \r\n this.vrmDowntimeDays = child.vrmDowntimeDays\r\n this.audio = child.audio\r\n this.metadata = child.metadata \r\n this.profile = child.profile\r\n this.codec = child.codec\r\n this.resolution = child.resolution\r\n this.framerate = Number(child.framerate)\r\n this.overhead = child.overhead\r\n this.livestream = child.livestream\r\n this.multiLenses = child.multiLenses\r\n this.segmentRanges = child.segmentRanges\r\n this.groupNameLabel = child.groupNameLabel\r\n\r\n this.profileBackup = this.profile\r\n this.codecBackup = this.codec\r\n this.resolutionBackup = this.resolution\r\n\r\n if(this.overhead != 0) this.overheadCheckbox = true\r\n else this.overheadCheckbox = false\r\n\r\n if(this.configurationType == \"Advanced\") this.advancedConfigurationOption = true\r\n else this.advancedConfigurationOption = false\r\n\r\n this.multiLensesAdvancedConfigCheckbox = child.multiLensesAdvancedConfigCheckbox\r\n this.segmentByHours = child.segmentByHours\r\n\r\n // testa\r\n if(this.multiLenses.length != 0) this.advancedMultiLensesConfigurationChange()\r\n if(this.segmentRanges.length != 0) this.initSegmentRangesVariables()\r\n\r\n }else{\r\n this.setBasicConfiguration(this.quantity, camera.platform)\r\n }\r\n\r\n }else{\r\n this.setBasicConfiguration(this.quantity, camera.platform)\r\n }\r\n\r\n this.spinner = true\r\n this.calculatorService.getResolutions(this.profile, this.platform, this.codec, this.maxResolutionSupported).subscribe(\r\n res => {\r\n this.resolutionOptions = res as []\r\n\r\n \r\n if(this.ctn.includes('NDM-7702')){\r\n this.resolutionOptions.splice(3)\r\n }else if(this.ctn.includes('NDM-7703')){\r\n this.resolutionOptions.splice(5)\r\n }\r\n\r\n this.calculatorService.getFramerates(this.profile, this.platform, this.codec, this.resolution, this.has_60_framerate).subscribe(\r\n res => {\r\n this.frameratesOptions = res as []\r\n this.pickersChanges()\r\n this.sceneTooltip = this.getSpecificSceneTooltip(this.profile)\r\n this.spinner = false\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n ) \r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n ) \r\n }\r\n\r\n getCameraInfo(){\r\n let camerasArray = JSON.parse(sessionStorage.getItem(\"productsSelected\")).cameras\r\n let index = camerasArray.findIndex(x => x.ctn === this.ctn) \r\n return camerasArray[index]\r\n }\r\n\r\n deleteGroup():void{\r\n let camera = this.getCameraInfo()\r\n let index = camera.childrens.findIndex(x => x.number == this.number)\r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"index\": index, \"action\": 'Remove'}))\r\n }\r\n\r\n advancedConfigurationChange(test?){\r\n let camera = this.getCameraInfo()\r\n\r\n if(this.advancedConfigurationOption || test){\r\n this.configurationType = 'Advanced'\r\n\r\n if(this.setUpType == \"Cloud\"){\r\n this.disableCodec = true\r\n this.disableSanityCheck = true\r\n this.disableVRMDowntime = true\r\n }\r\n }else{\r\n this.configurationType = 'Basic'\r\n this.setBasicConfiguration(camera.childrens[this.number-1].quantity, camera.platform)\r\n this.pickersChanges()\r\n }\r\n\r\n camera.childrens[this.number-1].configurationType = this.configurationType\r\n let products = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let index = products.cameras.findIndex(x => x.ctn === this.ctn)\r\n products.cameras[index]= camera\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(products))\r\n }\r\n\r\n setBasicConfiguration(quantity, platform){\r\n if(this.setUpType != \"Cloud\"){\r\n this.quantity = quantity\r\n this.configurationType = 'Basic'\r\n this.hours = 24\r\n this.sanityCheckDays = 2 \r\n this.vrmDowntimeDays = 4\r\n this.audio = 'No'\r\n this.metadata = 'No' \r\n this.profile = 'bitrate optimized standard'\r\n this.livestream = false\r\n\r\n if(platform != 'CPP_7_3') this.codec = 'H.264'\r\n else this.codec = 'H.265'\r\n\r\n this.resolution = this.maxResolutionSupported\r\n this.overhead = 0\r\n\r\n\r\n if(this.has_60_framerate) this.framerate = 60\r\n else{\r\n if(this.lenses == 1) this.framerate = 30\r\n else this.framerate = 20\r\n }\r\n\r\n\r\n if(this.ctn.includes('NDM-7702')){\r\n this.resolution = '2 MP (1080p)'\r\n this.resolutionOptions.splice(3)\r\n }else if(this.ctn.includes('NDM-7703')){\r\n this.resolution = '5 MP'\r\n this.resolutionOptions.splice(5)\r\n }\r\n\r\n if(this.resolution == '12 MP') this.framerate = 20\r\n\r\n this.profileBackup = this.profile\r\n this.codecBackup = this.codec\r\n this.resolutionBackup = this.resolution\r\n\r\n }else{\r\n this.quantity = quantity\r\n this.configurationType = 'Basic'\r\n this.sanityCheckDays = 0 \r\n this.vrmDowntimeDays = 0\r\n this.audio = 'Yes(ACC)'\r\n this.metadata = 'Yes' \r\n this.profile = 'bitrate optimized standard'\r\n this.livestream = this.livestream\r\n\r\n this.codec = 'H.264'\r\n this.resolution = '2 MP (1080p)'\r\n this.overhead = 0\r\n this.framerate = 10\r\n\r\n this.profileBackup = this.profile\r\n this.codecBackup = this.codec\r\n this.resolutionBackup = this.resolution\r\n }\r\n\r\n }\r\n\r\n overheadCheckboxChange(type, index?, indexRange?){\r\n if(type == 'general'){\r\n if(this.overhead != 0) this.calculateStorage('general', 0)\r\n }else if(type == 'multi'){\r\n this.multiLenses.forEach((element, indexMulti) => {\r\n if(element.overhead != 0) this.calculateStorage('multi', indexMulti)\r\n });\r\n }else if(type == 'ranges'){\r\n if(this.segmentRanges[index].overhead != 0) this.calculateStorage('ranges', index)\r\n }else{\r\n if(this.multiLenses[index].segmentRanges[indexRange].overhead != 0) this.calculateStorage('multiRanges', index, indexRange)\r\n }\r\n }\r\n \r\n triggerError(control: AbstractControl, type?) {\r\n\r\n if(type != undefined) control.setErrors({customValidationOver24: true});\r\n else control.setErrors({customValidation: true});\r\n\r\n control.markAsTouched();\r\n control.markAsDirty();\r\n }\r\n\r\n removeErrorStyle(inputId, action){\r\n setTimeout(() => {\r\n if(action == 'add'){\r\n let input = document.getElementById(inputId)\r\n let errorClassName = input.children[0].children[1].children[0].className\r\n if(!errorClassName.includes('-warning')) input.children[0].children[1].children[0].className = errorClassName.replace('-error', \"\") + \"-warning\"\r\n\r\n let divClassName = input.children[0].children[0].className\r\n if(!divClassName.includes('-warning')) input.children[0].children[0].className = divClassName.replace('-error', \"\") + \"-warning\"\r\n }else{\r\n let input = document.getElementById(inputId)\r\n input.children[0].children[0].className = 'a-text-field'\r\n }\r\n }, 10);\r\n }\r\n\r\n disableOrEnableFollowingSteps(action){\r\n let steps = document.getElementsByClassName('step')\r\n if(action == 'disable'){\r\n steps[2].className = \"step disabled-step\"\r\n steps[3].className = \"step disabled-step\"\r\n steps[4].className = \"step disabled-step\"\r\n }else{\r\n let currentStep = sessionStorage.getItem('currentStep')\r\n steps[2].className = \"step enable-step\"\r\n\r\n if(currentStep == '4') steps[3].className = \"step enable-step\"\r\n if(currentStep == '5') steps[4].className = \"step enable-step\"\r\n }\r\n }\r\n\r\n initSanityCheckDaysOptions(){\r\n switch (this.retentionTime) {\r\n case 1:\r\n this.sanityCheckDaysOptions = [1]\r\n break;\r\n case 2:\r\n this.sanityCheckDaysOptions = [1,2]\r\n break;\r\n case 3:\r\n this.sanityCheckDaysOptions = [1,2,3]\r\n break;\r\n case 4:\r\n this.sanityCheckDaysOptions = [1,2,3,4]\r\n break;\r\n case 5:\r\n this.sanityCheckDaysOptions = [1,2,3,4,5]\r\n break;\r\n case 6:\r\n this.sanityCheckDaysOptions = [1,2,3,4,5,6]\r\n break;\r\n default:\r\n this.sanityCheckDaysOptions = [1,2,3,4,5,6,7]\r\n break;\r\n }\r\n\r\n }\r\n\r\n validateSanityCheckDays(type, index?){\r\n\r\n if(type == 'general'){\r\n if(this.sanityCheckDays > this.retentionTime) this.sanityCheckDays = 0\r\n this.calculateStorage('general')\r\n }else if(type == 'multi'){\r\n this.updateGeneralMultiLensInputs('sanityCheck')\r\n }else if(type == 'ranges'){\r\n if(index != undefined){\r\n if(this.segmentRanges[index].sanityCheckDays > this.retentionTime) this.segmentRanges[index].sanityCheckDays = 0\r\n\r\n this.segmentRangesPickersChanges(index)\r\n }\r\n else{\r\n this.segmentRanges.forEach((element, indexLoop) => {\r\n if(element.sanityCheckDays > this.retentionTime) element.sanityCheckDays = 0\r\n this.segmentRangesPickersChanges(indexLoop)\r\n });\r\n }\r\n }\r\n }\r\n\r\n advancedMultiLensesConfigurationChange(){\r\n this.initMultiLensesVariables()\r\n }\r\n\r\n initMultiLensesVariables(){\r\n\r\n if(this.multiLensesAdvancedConfigCheckbox == true){\r\n if(this.setUpType == \"Cloud\"){\r\n this.disableCodec = true\r\n this.disableSanityCheck = true\r\n this.disableVRMDowntime = true\r\n }\r\n\r\n if(this.multiLenses.length == 0){\r\n for (let index = 0; index < this.lenses; index++) {\r\n const element = this.lenses;\r\n\r\n if(this.setUpType != 'Cloud'){\r\n let resolution = ''\r\n\r\n if(this.ctn.includes('NDM-7703')){\r\n resolution = '5 MP'\r\n }else{\r\n resolution = '2 MP (1080p)'\r\n }\r\n\r\n this.multiLenses.push({\r\n lens: 'Imager '+ (index+1),\r\n quantity: this.quantity,\r\n configurationType: 'Advanced',\r\n hours: this.hours,\r\n profile: 'bitrate optimized standard',\r\n platform: this.platform,\r\n codec: 'H.265',\r\n resolution: resolution,\r\n framerate: 20,\r\n audio: this.audio,\r\n metadata: this.metadata,\r\n sanityCheckDays: this.sanityCheckDays,\r\n vrmDowntimeDays: this.vrmDowntimeDays,\r\n overhead: this.overhead, \r\n retentionTime: this.retentionTime,\r\n bandwidth: '0 Mbps',\r\n storage: '0 TB',\r\n openExpander: true,\r\n codecDisable: false,\r\n resolutionDisable: false,\r\n frameratesDisable: false,\r\n livestream: false,\r\n segmentByHours: false,\r\n segmentRanges: []\r\n })\r\n }else{\r\n this.multiLenses.push({\r\n lens: 'Imager '+ (index+1),\r\n quantity: this.quantity,\r\n configurationType: 'Advanced',\r\n hours: this.hours,\r\n profile: 'bitrate optimized standard',\r\n platform: this.platform,\r\n codec: 'H.264',\r\n resolution: '2 MP (1080p)',\r\n framerate: 10,\r\n audio: this.audio,\r\n metadata: this.metadata,\r\n sanityCheckDays: this.sanityCheckDays,\r\n vrmDowntimeDays: this.vrmDowntimeDays,\r\n overhead: this.overhead, \r\n retentionTime: this.retentionTime,\r\n bandwidth: '0 Mbps',\r\n storage: '0 TB',\r\n openExpander: true,\r\n codecDisable: false,\r\n resolutionDisable: false,\r\n frameratesDisable: false,\r\n livestream: this.livestream,\r\n segmentByHours: false,\r\n segmentRanges: []\r\n })\r\n }\r\n this.multiLensesPickersChanges(index)\r\n }\r\n }else{\r\n this.multiLenses.forEach((element, index) => {\r\n this.multiLensesPickersChanges(index)\r\n\r\n });\r\n }\r\n }else{\r\n this.multiLenses = []\r\n this.setStorageValues()\r\n this.calculateStorage('general')\r\n }\r\n\r\n }\r\n\r\n updateGeneralMultiLensInputs(field){\r\n\r\n this.multiLenses.forEach((element, index) => {\r\n element.retentionTime = this.retentionTimeChild\r\n if(field == 'quantity') element.quantity = this.quantity\r\n else if(field == 'hours') element.hours = this.hours\r\n else if(field == 'vrm'){\r\n if(this.vrmDowntimeDays > 7){\r\n element.vrmDowntimeDays = 7\r\n this.vrmDowntimeDays = 7\r\n }\r\n else{\r\n element.vrmDowntimeDays = this.vrmDowntimeDays\r\n }\r\n }\r\n else if(field == 'sanityCheck') element.sanityCheckDays = this.sanityCheckDays\r\n else if(field == 'audio') element.audio = this.audio\r\n else if(field == 'metadata') element.metadata = this.metadata\r\n else if(field == 'overhead') element.overhead = this.overhead\r\n\r\n if(element.segmentByHours){\r\n element.segmentRanges.forEach((range, indexRange) => {\r\n if(field == 'quantity') range.quantity = this.quantity\r\n else if(field == 'vrm'){\r\n if(this.vrmDowntimeDays > 7){\r\n range.vrmDowntimeDays = 7\r\n this.vrmDowntimeDays = 7\r\n }\r\n else range.vrmDowntimeDays = this.vrmDowntimeDays\r\n }\r\n else if(field == 'sanityCheck') range.sanityCheckDays = this.sanityCheckDays\r\n else if(field == 'audio') range.audio = this.audio\r\n else if(field == 'metadata') range.metadata = this.metadata\r\n else if(field == 'overhead') range.overhead = this.overhead\r\n\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n });\r\n }else{\r\n this.multiLensesPickersChanges(index)\r\n }\r\n }); \r\n }\r\n\r\n getMultiLensBandwidthAndStorage(): any{\r\n return new Promise((resolve, reject) => {\r\n let result = {\r\n bandwidth: 0,\r\n storage: 0\r\n }\r\n\r\n this.multiLenses.forEach((element, index) => {\r\n result.bandwidth = result.bandwidth + Number(element.bandwidth.split(' ')[0])\r\n result.storage = result.storage + Number(element.storage.split(' ')[0])\r\n\r\n if(index == this.multiLenses.length-1) resolve(result)\r\n });\r\n\r\n })\r\n }\r\n\r\n multiLensesPickersChanges(index): void {\r\n\r\n if(this.multiLenses[index].quantity > 0 && (this.multiLenses[index].hours > 0 && this.multiLenses[index].hours <= 24) && this.multiLenses[index].sanityCheckDays >= 0\r\n && this.multiLenses[index].vrmDowntimeDays >= 0 && this.multiLenses[index].audio != \"\" && this.multiLenses[index].metadata != \"\" && this.multiLenses[index].profile != \"\"\r\n && this.multiLenses[index].platform != \"\" && this.multiLenses[index].codec != \"\" && this.multiLenses[index].resolution != \"\" && this.multiLenses[index].framerate != 0\r\n ){\r\n this.calculateStorage('multi', index)\r\n this.multiLenses[index].openExpander = true\r\n this.multiLenses[index].codecDisable = false\r\n this.multiLenses[index].resolutionDisable = false\r\n this.multiLenses[index].frameratesDisable = false\r\n }else{\r\n this.multiLenses[index].bandwidth = '0 Mbps'\r\n this.multiLenses[index].storage = '0 Mb'\r\n this.setStorageValues()\r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"bandwidth\": 0, \"storage\": 0, \"action\": 'Add'}))\r\n }\r\n }\r\n\r\n multiLenseProfilePickerChange(index){\r\n\r\n this.sceneTooltip = this.getSpecificSceneTooltip(this.multiLenses[index].profile)\r\n\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.multiLenses[index].profile, this.multiLenses[index].platform, this.multiLenses[index].codec, \r\n this.multiLenses[index].resolution, this.multiLenses[index].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.multiLenses[index].codecDisable = false\r\n this.multiLenses[index].openExpander = true\r\n this.multiLenses[index].codec = ''\r\n this.multiLenses[index].resolution = \"\"\r\n this.multiLenses[index].framerate = 0\r\n this.multiLenses[index].resolutionDisable = true\r\n this.multiLenses[index].frameratesDisable = true\r\n this.multiLensesPickersChanges(index)\r\n }else{\r\n this.profileBackup = this.profile\r\n this.spinner = false\r\n this.multiLensesPickersChanges(index)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n\r\n }\r\n\r\n multiLenseCodecPickerChange(index){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.multiLenses[index].profile, this.multiLenses[index].platform, this.multiLenses[index].codec, \r\n this.multiLenses[index].resolution, this.multiLenses[index].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getResolutions(\r\n this.multiLenses[index].profile, this.multiLenses[index].platform,\r\n this.multiLenses[index].codec, this.multiLenses[index].maxResolutionSupported\r\n ).subscribe(\r\n res => {\r\n this.resolutionOptions = res as []\r\n this.multiLenses[index].resolutionDisable = false\r\n this.multiLenses[index].openExpander = true\r\n this.multiLenses[index].resolution = \"\"\r\n this.multiLenses[index].framerate = 0\r\n this.multiLenses[index].frameratesDisable = true\r\n this.spinner = false\r\n\r\n this.multiLensesPickersChanges(index)\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.codecBackup = this.codec\r\n this.spinner = false\r\n this.multiLensesPickersChanges(index)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n multiLenseResolutionPickerChange(index){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.multiLenses[index].profile, this.multiLenses[index].platform, this.multiLenses[index].codec,\r\n this.multiLenses[index].resolution, this.multiLenses[index].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getFramerates(\r\n this.multiLenses[index].profile, this.multiLenses[index].platform, this.multiLenses[index].codec,\r\n this.multiLenses[index].resolution, this.multiLenses[index].has_60_framerate\r\n ).subscribe(\r\n res => {\r\n this.frameratesOptions = res as []\r\n this.multiLenses[index].frameratesDisable = false\r\n this.multiLenses[index].openExpander = true\r\n this.multiLenses[index].framerate = 0\r\n this.spinner = false\r\n\r\n this.multiLensesPickersChanges(index)\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.resolutionBackup = this.resolution\r\n this.spinner = false\r\n this.multiLensesPickersChanges(index)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n initSegmentRangesVariables(){\r\n if(this.segmentByHours == true){\r\n if(this.segmentRanges.length == 0){\r\n this.addNewRange()\r\n }else{\r\n this.segmentRanges.forEach((element, index) => {\r\n this.segmentQuantity = element.quantity\r\n this.segmentRangesPickersChanges(index)\r\n });\r\n }\r\n }else{\r\n this.segmentRanges = []\r\n this.setStorageValues()\r\n this.calculateStorage('general')\r\n }\r\n\r\n }\r\n\r\n addNewRange(){\r\n\r\n this.getRangesHours()\r\n .then(async(result) => {\r\n let response = await result as number\r\n if(response < 24){\r\n let index = this.segmentRanges.length\r\n let rangeNumber = 0 \r\n this.segmentQuantity = this.quantity\r\n if(this.segmentRanges.length != 0) rangeNumber = Number(this.segmentRanges[this.segmentRanges.length-1].lens.split(\" \")[1])\r\n \r\n if(this.setUpType != 'Cloud'){\r\n this.segmentRanges.push({\r\n lens: 'Range '+ (rangeNumber+1),\r\n quantity: this.segmentQuantity,\r\n configurationType: 'Basic',\r\n hours: 0,\r\n profile: 'bitrate optimized standard',\r\n platform: this.platform,\r\n codec: this.platform != 'CPP_7_3'? 'H.264':'H.265',\r\n resolution: this.maxResolutionSupported,\r\n framerate: this.has_60_framerate? 60: this.name.includes('multi')? 20: 30,\r\n audio: 'No',\r\n metadata: 'No',\r\n sanityCheckDays: 2,\r\n vrmDowntimeDays: 1,\r\n overhead: 0, \r\n retentionTime: this.retentionTime,\r\n bandwidth: '0 Mbps',\r\n storage: '0 TB',\r\n openExpander: true,\r\n codecDisable: false,\r\n resolutionDisable: false,\r\n frameratesDisable: false,\r\n livestream: false,\r\n refresh: true\r\n })\r\n }else{\r\n this.segmentRanges.push({\r\n lens: 'Range '+ (rangeNumber+1),\r\n quantity: this.segmentQuantity,\r\n configurationType: 'Basic',\r\n hours: 0,\r\n profile: 'bitrate optimized standard',\r\n platform: this.platform,\r\n codec: 'H.264',\r\n resolution: '2 MP (1080p)',\r\n framerate: 10,\r\n audio: 'Yes(ACC)',\r\n metadata: 'Yes',\r\n sanityCheckDays: 0,\r\n vrmDowntimeDays: 0,\r\n overhead: 0, \r\n retentionTime: this.retentionTime,\r\n bandwidth: '0 Mbps',\r\n storage: '0 TB',\r\n openExpander: true,\r\n codecDisable: false,\r\n resolutionDisable: false,\r\n frameratesDisable: false,\r\n livestream: this.livestream,\r\n refresh: true\r\n })\r\n }\r\n this.setStorageValues()\r\n this.segmentRangesPickersChanges(index)\r\n }else{\r\n this.notificationService.getTranslateValue('storageCalculatorItem.over24hoursNewRange')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n }) }\r\n })\r\n .catch((err) => {\r\n\r\n })\r\n }\r\n\r\n deleteRange(index){\r\n this.segmentRanges.splice(index, 1)\r\n }\r\n\r\n updateQuantitySegmentRange(){\r\n this.segmentRanges.forEach((element, index) => {\r\n element.quantity = this.quantity\r\n this.segmentQuantity = this.quantity\r\n this.segmentRangesPickersChanges(index)\r\n }); \r\n }\r\n\r\n segmentRangesPickersChanges(index): void {\r\n if((this.segmentRanges[index].quantity > 0 && (this.segmentRanges[index].hours > 0 && this.segmentRanges[index].hours <= 24) && this.segmentRanges[index].sanityCheckDays >= 0\r\n && this.segmentRanges[index].vrmDowntimeDays >= 0 && this.segmentRanges[index].audio != \"\" && this.segmentRanges[index].metadata != \"\" && this.segmentRanges[index].profile != \"\"\r\n && this.segmentRanges[index].platform != \"\" && this.segmentRanges[index].codec != \"\" && this.segmentRanges[index].resolution != \"\" && this.segmentRanges[index].framerate != 0\r\n && this.segmentRanges[index].refresh) || (this.segmentRanges[index].hours == 0 && this.segmentRanges[index].refresh && this.segmentRanges.length == 1)\r\n ){\r\n this.lessOf24HoursInRanges(index)\r\n .then(async(result) => {\r\n if(await result){\r\n this.calculateStorage('ranges', index)\r\n this.segmentRanges[index].openExpander = true\r\n this.segmentRanges[index].codecDisable = false\r\n this.segmentRanges[index].resolutionDisable = false\r\n this.segmentRanges[index].frameratesDisable = false\r\n }else{\r\n console.log('sum is over 24 hours');\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n })\r\n \r\n }else{\r\n this.segmentRanges[index].bandwidth = '0 Mbps'\r\n this.segmentRanges[index].storage = '0 Mb'\r\n this.setStorageValues()\r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"bandwidth\": 0, \"storage\": 0, \"action\": 'Add'}))\r\n }\r\n }\r\n\r\n segmentRangesProfilePickerChange(index){\r\n\r\n this.sceneTooltip = this.getSpecificSceneTooltip(this.segmentRanges[index].profile)\r\n\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.segmentRanges[index].profile, this.segmentRanges[index].platform, this.segmentRanges[index].codec, \r\n this.segmentRanges[index].resolution, this.segmentRanges[index].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.segmentRanges[index].codecDisable = false\r\n this.segmentRanges[index].openExpander = true\r\n this.segmentRanges[index].codec = ''\r\n this.segmentRanges[index].resolution = \"\"\r\n this.segmentRanges[index].framerate = 0\r\n this.segmentRanges[index].resolutionDisable = true\r\n this.segmentRanges[index].frameratesDisable = true\r\n this.segmentRangesPickersChanges(index)\r\n }else{\r\n this.profileBackup = this.profile\r\n this.spinner = false\r\n this.segmentRangesPickersChanges(index)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n\r\n }\r\n\r\n segmentRangesCodecPickerChange(index){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.segmentRanges[index].profile, this.segmentRanges[index].platform, this.segmentRanges[index].codec, \r\n this.segmentRanges[index].resolution, this.segmentRanges[index].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getResolutions(\r\n this.segmentRanges[index].profile, this.segmentRanges[index].platform,\r\n this.segmentRanges[index].codec, this.segmentRanges[index].maxResolutionSupported\r\n ).subscribe(\r\n res => {\r\n this.resolutionOptions = res as []\r\n this.segmentRanges[index].resolutionDisable = false\r\n this.segmentRanges[index].openExpander = true\r\n this.segmentRanges[index].resolution = \"\"\r\n this.segmentRanges[index].framerate = 0\r\n this.segmentRanges[index].frameratesDisable = true\r\n this.spinner = false\r\n\r\n this.segmentRangesPickersChanges(index)\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.codecBackup = this.codec\r\n this.spinner = false\r\n this.segmentRangesPickersChanges(index)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n segmentRangesResolutionPickerChange(index){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.segmentRanges[index].profile, this.segmentRanges[index].platform, this.segmentRanges[index].codec,\r\n this.segmentRanges[index].resolution, this.segmentRanges[index].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getFramerates(\r\n this.segmentRanges[index].profile, this.segmentRanges[index].platform, this.segmentRanges[index].codec,\r\n this.segmentRanges[index].resolution, this.segmentRanges[index].has_60_framerate\r\n ).subscribe(\r\n res => {\r\n this.frameratesOptions = res as []\r\n this.segmentRanges[index].frameratesDisable = false\r\n this.segmentRanges[index].openExpander = true\r\n this.segmentRanges[index].framerate = 0\r\n this.spinner = false\r\n\r\n this.segmentRangesPickersChanges(index)\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.resolutionBackup = this.resolution\r\n this.spinner = false\r\n this.segmentRangesPickersChanges(index)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n getSegmentRangesBandwidthAndStorage(): any{\r\n \r\n return new Promise((resolve, reject) => {\r\n let result = {\r\n bandwidth: 0,\r\n storage: 0\r\n }\r\n\r\n this.segmentRanges.forEach((element, index) => {\r\n result.bandwidth = result.bandwidth + Number(element.bandwidth.split(' ')[0])\r\n result.storage = result.storage + Number(element.storage.split(' ')[0])\r\n\r\n if(index == this.segmentRanges.length-1) resolve(result)\r\n });\r\n\r\n })\r\n }\r\n\r\n getRangesHours(){\r\n return new Promise((resolve, reject) => {\r\n let hours = 0\r\n\r\n if(this.segmentRanges.length == 0){\r\n resolve(hours)\r\n }else{\r\n this.segmentRanges.forEach((element, index) => {\r\n hours = hours + Number(element.hours)\r\n\r\n if(index == this.segmentRanges.length-1) resolve(hours)\r\n });\r\n }\r\n })\r\n }\r\n\r\n lessOf24HoursInRanges(index){\r\n return new Promise((resolve, reject) => {\r\n let camera = this.getCameraInfo()\r\n let child = camera.childrens[this.number-1]\r\n \r\n let hours = 0\r\n child.segmentRanges.forEach((element, indexLoop) => {\r\n if(index != indexLoop) hours = hours + element.hours\r\n else hours = hours + this.segmentRanges[index].hours\r\n \r\n if(indexLoop == child.segmentRanges.length-1){\r\n if(hours <= 24) resolve(true)\r\n else resolve(false)\r\n }\r\n });\r\n })\r\n }\r\n \r\n\r\n /**\r\n * Multi lens range segments functions\r\n */\r\n\r\n initMultiLensSegmentRangesVariables(index){\r\n if(this.multiLenses[index].segmentByHours == true){\r\n if(this.multiLenses[index].segmentRanges.length == 0){\r\n this.addNewMultiRange(index)\r\n }else{\r\n this.multiLenses[index].segmentRanges.forEach((element, rangeIndex) => {\r\n this.multiSegmentRangesPickersChanges(index, rangeIndex)\r\n });\r\n }\r\n }else{\r\n this.multiLenses[index].segmentRanges = []\r\n this.setStorageValues()\r\n this.calculateStorage('multi', index)\r\n }\r\n\r\n }\r\n\r\n addNewMultiRange(index){\r\n this.getMultiRangesHours(index)\r\n .then(async(result) => {\r\n let response = await result as number\r\n if(response < 24){\r\n let indexRange = this.multiLenses[index].segmentRanges.length\r\n let rangeNumber = 0 \r\n this.multiLenses[index].segmentQuantity = this.multiLenses[index].quantity\r\n if(this.multiLenses[index].segmentRanges.length != 0) rangeNumber = Number(this.multiLenses[index].segmentRanges[this.multiLenses[index].segmentRanges.length-1].lens.split(\" \")[1])\r\n \r\n if(this.setUpType != 'Cloud'){\r\n this.multiLenses[index].segmentRanges.push({\r\n lens: 'Range '+ (rangeNumber+1),\r\n quantity: this.multiLenses[index].segmentQuantity,\r\n configurationType: 'Advanced',\r\n hours: 0,\r\n profile: 'bitrate optimized standard',\r\n platform: this.multiLenses[index].platform,\r\n codec: 'H.265',\r\n resolution: '12 MP',\r\n framerate: 20,\r\n audio: this.multiLenses[index].audio,\r\n metadata: this.multiLenses[index].metadata,\r\n sanityCheckDays: this.multiLenses[index].sanityCheckDays,\r\n vrmDowntimeDays: this.multiLenses[index].vrmDowntimeDays,\r\n overhead: this.multiLenses[index].overhead, \r\n retentionTime: this.multiLenses[index].retentionTime,\r\n bandwidth: '0 Mbps',\r\n storage: '0 TB',\r\n openExpander: true,\r\n codecDisable: false,\r\n resolutionDisable: false,\r\n frameratesDisable: false,\r\n livestream: false,\r\n refresh: true\r\n })\r\n }else{\r\n this.multiLenses[index].segmentRanges.push({\r\n lens: 'Range '+ (rangeNumber+1),\r\n quantity: this.multiLenses[index].segmentQuantity,\r\n configurationType: 'Advanced',\r\n hours: 0,\r\n profile: 'bitrate optimized standard',\r\n platform: this.multiLenses[index].platform,\r\n codec: 'H.264',\r\n resolution: '2 MP (1080p)',\r\n framerate: 10,\r\n audio: this.multiLenses[index].audio,\r\n metadata: this.multiLenses[index].metadata,\r\n sanityCheckDays: this.multiLenses[index].sanityCheckDays,\r\n vrmDowntimeDays: this.multiLenses[index].vrmDowntimeDays,\r\n overhead: this.multiLenses[index].overhead, \r\n retentionTime: this.multiLenses[index].retentionTime,\r\n bandwidth: '0 Mbps',\r\n storage: '0 TB',\r\n openExpander: true,\r\n codecDisable: false,\r\n resolutionDisable: false,\r\n frameratesDisable: false,\r\n livestream: false,\r\n refresh: true\r\n })\r\n }\r\n\r\n this.setStorageValues()\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n }else{\r\n this.notificationService.getTranslateValue('storageCalculatorItem.over24hoursNewRange')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n }) }\r\n })\r\n .catch((err) => {\r\n\r\n })\r\n }\r\n\r\n deleteMultiRange(index, indexRange){\r\n this.multiLenses[index].segmentRanges.splice(indexRange, 1)\r\n this.setStorageValues()\r\n this.calculateStorage('multiRange', index, -1)\r\n }\r\n\r\n getMultiRangesHours(index){\r\n return new Promise((resolve, reject) => {\r\n let hours = 0\r\n\r\n if(this.multiLenses[index].segmentRanges.length == 0){\r\n resolve(hours)\r\n }else{\r\n this.multiLenses[index].segmentRanges.forEach((element, indexRange) => {\r\n hours = hours + Number(element.hours)\r\n\r\n if(indexRange == this.multiLenses[index].segmentRanges.length-1) resolve(hours)\r\n });\r\n }\r\n })\r\n }\r\n\r\n multiSegmentRangesPickersChanges(index, indexRange): void {\r\n if((this.multiLenses[index].segmentRanges[indexRange].quantity > 0 && (this.multiLenses[index].segmentRanges[indexRange].hours > 0 && this.multiLenses[index].segmentRanges[indexRange].hours <= 24) && this.multiLenses[index].segmentRanges[indexRange].sanityCheckDays >= 0\r\n && this.multiLenses[index].segmentRanges[indexRange].vrmDowntimeDays >= 0 && this.multiLenses[index].segmentRanges[indexRange].audio != \"\" && this.multiLenses[index].segmentRanges[indexRange].metadata != \"\" && this.multiLenses[index].segmentRanges[indexRange].profile != \"\"\r\n && this.multiLenses[index].segmentRanges[indexRange].platform != \"\" && this.multiLenses[index].segmentRanges[indexRange].codec != \"\" && this.multiLenses[index].segmentRanges[indexRange].resolution != \"\" && this.multiLenses[index].segmentRanges[indexRange].framerate != 0\r\n && this.multiLenses[index].segmentRanges[indexRange].refresh) || (this.multiLenses[index].segmentRanges[indexRange].hours == 0 && this.multiLenses[index].segmentRanges[indexRange].refresh && this.multiLenses[index].segmentRanges.length == 1)\r\n ){\r\n this.lessOf24HoursInMultiRanges(index, indexRange)\r\n .then(async(result) => {\r\n if(await result){\r\n this.calculateStorage('multiRanges', index, indexRange)\r\n this.multiLenses[index].segmentRanges[indexRange].openExpander = true\r\n this.multiLenses[index].segmentRanges[indexRange].codecDisable = false\r\n this.multiLenses[index].segmentRanges[indexRange].resolutionDisable = false\r\n this.multiLenses[index].segmentRanges[indexRange].frameratesDisable = false\r\n }else{\r\n console.log('sum is over 24 hours');\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n })\r\n \r\n }else{\r\n this.multiLenses[index].segmentRanges[indexRange].bandwidth = '0 Mbps'\r\n this.multiLenses[index].segmentRanges[indexRange].storage = '0 Mb'\r\n this.setStorageValues()\r\n this.results.emit(JSON.stringify({\"ctn\": this.ctn, \"bandwidth\": 0, \"storage\": 0, \"action\": 'Add'}))\r\n }\r\n }\r\n\r\n lessOf24HoursInMultiRanges(index, indexRange){\r\n return new Promise((resolve, reject) => {\r\n let camera = this.getCameraInfo()\r\n let child = camera.childrens[this.number-1]\r\n \r\n let hours = 0\r\n child.multiLenses[index].segmentRanges.forEach((element, indexLoop) => {\r\n if(index != indexLoop) hours = hours + element.hours\r\n else hours = hours + this.multiLenses[index].segmentRanges[indexRange].hours\r\n \r\n if(indexLoop == child.multiLenses[index].segmentRanges.length-1){\r\n if(hours <= 24) resolve(true)\r\n else resolve(false)\r\n }\r\n });\r\n })\r\n }\r\n\r\n getMultiSegmentRangesBandwidthAndStorage(index): any{\r\n \r\n return new Promise((resolve, reject) => {\r\n let result = {\r\n bandwidth: 0,\r\n storage: 0\r\n }\r\n\r\n this.multiLenses.forEach((element, index) => {\r\n if(element.segmentRanges.length != 0){\r\n element.segmentRanges.forEach((elementRange, indexRange) => {\r\n result.bandwidth = result.bandwidth + Number(elementRange.bandwidth.split(' ')[0])\r\n result.storage = result.storage + Number(elementRange.storage.split(' ')[0])\r\n \r\n if(indexRange == element.segmentRanges.length-1 && index == this.multiLenses.length-1) resolve(result)\r\n });\r\n }else{\r\n if(element.segmentByHours == true){\r\n result.bandwidth = result.bandwidth + 0\r\n result.storage = result.storage + 0\r\n }else{\r\n result.bandwidth = result.bandwidth + Number(element.bandwidth.split(' ')[0])\r\n result.storage = result.storage + Number(element.storage.split(' ')[0])\r\n }\r\n\r\n if(index == this.multiLenses.length-1) resolve(result)\r\n }\r\n });\r\n\r\n })\r\n }\r\n\r\n updateQuantityMultiSegmentRange(index){\r\n this.multiLenses[index].segmentRanges.forEach((element, indexRange) => {\r\n element.quantity = this.quantity\r\n this.segmentQuantity = this.quantity\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n }); \r\n }\r\n\r\n multiSegmentRangesProfilePickerChange(index, indexRange){\r\n this.sceneTooltip = this.getSpecificSceneTooltip(this.multiLenses[index].segmentRanges[indexRange].profile)\r\n\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.multiLenses[index].segmentRanges[indexRange].profile, this.multiLenses[index].segmentRanges[indexRange].platform, this.multiLenses[index].segmentRanges[indexRange].codec, \r\n this.multiLenses[index].segmentRanges[indexRange].resolution, this.multiLenses[index].segmentRanges[indexRange].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.multiLenses[index].segmentRanges[indexRange].codecDisable = false\r\n this.multiLenses[index].segmentRanges[indexRange].openExpander = true\r\n this.multiLenses[index].segmentRanges[indexRange].codec = ''\r\n this.multiLenses[index].segmentRanges[indexRange].resolution = \"\"\r\n this.multiLenses[index].segmentRanges[indexRange].framerate = 0\r\n this.multiLenses[index].segmentRanges[indexRange].resolutionDisable = true\r\n this.multiLenses[index].segmentRanges[indexRange].frameratesDisable = true\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n }else{\r\n this.profileBackup = this.profile\r\n this.spinner = false\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n\r\n }\r\n\r\n multiSegmentRangesCodecPickerChange(index, indexRange){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.multiLenses[index].segmentRanges[indexRange].profile, this.multiLenses[index].segmentRanges[indexRange].platform, this.multiLenses[index].segmentRanges[indexRange].codec, \r\n this.multiLenses[index].segmentRanges[indexRange].resolution, this.multiLenses[index].segmentRanges[indexRange].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getResolutions(\r\n this.multiLenses[index].segmentRanges[indexRange].profile, this.multiLenses[index].segmentRanges[indexRange].platform,\r\n this.multiLenses[index].segmentRanges[indexRange].codec, this.multiLenses[index].segmentRanges[indexRange].maxResolutionSupported\r\n ).subscribe(\r\n res => {\r\n this.resolutionOptions = res as []\r\n this.multiLenses[index].segmentRanges[indexRange].resolutionDisable = false\r\n this.multiLenses[index].segmentRanges[indexRange].openExpander = true\r\n this.multiLenses[index].segmentRanges[indexRange].resolution = \"\"\r\n this.multiLenses[index].segmentRanges[indexRange].framerate = 0\r\n this.multiLenses[index].segmentRanges[indexRange].frameratesDisable = true\r\n this.spinner = false\r\n\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.codecBackup = this.codec\r\n this.spinner = false\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n multiSegmentRangesResolutionPickerChange(index, indexRange){\r\n /**\r\n * Obtener los framerates\r\n */\r\n this.spinner = true\r\n\r\n this.calculatorService.validatePickersChanges(\r\n this.multiLenses[index].segmentRanges[indexRange].profile, this.multiLenses[index].segmentRanges[indexRange].platform, this.multiLenses[index].segmentRanges[indexRange].codec,\r\n this.multiLenses[index].segmentRanges[indexRange].resolution, this.multiLenses[index].segmentRanges[indexRange].framerate\r\n ).subscribe(\r\n res => {\r\n if(!res){\r\n this.calculatorService.getFramerates(\r\n this.multiLenses[index].segmentRanges[indexRange].profile, this.multiLenses[index].segmentRanges[indexRange].platform, this.multiLenses[index].segmentRanges[indexRange].codec,\r\n this.multiLenses[index].segmentRanges[indexRange].resolution, this.multiLenses[index].segmentRanges[indexRange].has_60_framerate\r\n ).subscribe(\r\n res => {\r\n this.frameratesOptions = res as []\r\n this.multiLenses[index].segmentRanges[indexRange].frameratesDisable = false\r\n this.multiLenses[index].segmentRanges[indexRange].openExpander = true\r\n this.multiLenses[index].segmentRanges[indexRange].framerate = 0\r\n this.spinner = false\r\n\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }else{ \r\n this.resolutionBackup = this.resolution\r\n this.spinner = false\r\n this.multiSegmentRangesPickersChanges(index, indexRange)\r\n }\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n\r\n redirectToSceneDetails(){\r\n this.location.onPopState(() => {\r\n history.pushState(null, null, window.location.href);\r\n });\r\n this.router.navigate([\"/scene_details\"], {skipLocationChange: true})\r\n }\r\n\r\n getSpecificSceneTooltip(scene){\r\n return this.sceneTooltipValues.find(x => x.key == scene).tooltip\r\n }\r\n\r\n showModal(content: TemplateRef, modalName) {\r\n this.modalService.open(content).then(result => {\r\n if(result){\r\n if(modalName == 'renameGroupModal') this.renameGroup()\r\n }\r\n });\r\n }\r\n\r\n renameGroup(){\r\n this.setStorageValues()\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 {{groupNameLabel}}\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 {{ 'storageCalculatorItem.quantityRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.quantityMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | translate}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.hoursRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | translate}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.advancedConfig' | translate}}\r\n \r\n \r\n {{ 'storageCalculatorItem.livestream' | translate}}\r\n \r\n \r\n {{ 'storageCalculatorItem.segmentByHourRanges' | translate}}\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {{ 'storageCalculatorItem.sanityCheckMinimumError' | translate}}\r\n \r\n \r\n \r\n {{ 'storageCalculatorItem.sanityCheckMinimumError' | translate}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.downtimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{'sceneDetails.scenesLink' | 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 4x \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 {{ 'storageCalculatorItem.overheadQuestion' | translate}}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.overheadRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 {{ 'storageCalculatorItem.retentionTimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.retentionTimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 {{ 'storageCalculatorItem.segmentByHourRanges' | translate}}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n General Parameters\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ 'storageCalculatorItem.quantityRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.quantityMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | translate}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{item.lens}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {{ 'storageCalculatorItem.quantityLabel' | translate}}\r\n \r\n
\r\n
\r\n {{segmentQuantity}}\r\n
\r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.hoursRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | translate}}\r\n {{ 'storageCalculatorItem.over24hours' | translate}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.advancedConfig' | translate}}\r\n \r\n \r\n {{ 'storageCalculatorItem.livestreamLens' | translate}}\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {{ 'storageCalculatorItem.sanityCheckMinimumError' | translate}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.downtimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{'sceneDetails.scenesLink' | 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 \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.overheadQuestion' | translate}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{ 'storageCalculatorItem.overheadRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 {{ 'storageCalculatorItem.retentionTimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.retentionTimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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
\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 {{ 'storageCalculatorItem.muticameraCheckbox' | translate}}\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n General Params\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ 'storageCalculatorItem.quantityRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.quantityMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | translate}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.hoursRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 {{ 'storageCalculatorItem.sanityCheckMinimumError' | translate}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.downtimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 \r\n
\r\n
\r\n \r\n {{ 'storageCalculatorItem.overheadQuestion' | translate}}\r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.overheadRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 {{item.lens}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.livestreamLens' | translate}}\r\n \r\n \r\n {{ 'storageCalculatorItem.segmentByHourRanges' | translate}}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{'sceneDetails.scenesLink' | 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
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n {{ 'storageCalculatorItem.retentionTimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.retentionTimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 {{itemRange.lens}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ 'storageCalculatorItem.quantityLabel' | translate}}\r\n \r\n
\r\n
\r\n {{itemRange.quantity}}\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.hoursRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.hoursMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | translate}}\r\n {{ 'storageCalculatorItem.over24hours' | translate}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.livestreamLens' | translate}}\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ 'storageCalculatorItem.sanityCheckMinimumError' | translate}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.downtimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.downtimeMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{'sceneDetails.scenesLink' | 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 \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.overheadQuestion' | translate}}\r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'storageCalculatorItem.overheadRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.overheadMaximumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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 {{ 'storageCalculatorItem.retentionTimeRequiredError' | translate}}\r\n {{ 'storageCalculatorItem.retentionTimeMinimumError' | translate}}\r\n {{ 'storageCalculatorItem.necessaryRefresh' | 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
\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
\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
\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\r\n\r\n \r\n {{ 'storageCalculatorItem.disclaimerOverSizeCloudText1' | translate }}
\r\n {{ 'storageCalculatorItem.disclaimerOverSizeCloudText2' | translate }} https://www.boschsecurity.com/xc/en/support/contact-us/\r\n
\r\n
","import { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef, OnChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-storage-calculator-group',\r\n templateUrl: './storage-calculator-group.component.html',\r\n styleUrls: ['./storage-calculator-group.component.sass']\r\n})\r\nexport class StorageCalculatorGroupComponent implements OnInit, OnChanges {\r\n\r\n @Input() ctn: string;\r\n @Input() name: string;\r\n @Input() retentionTimeGroupChild: number;\r\n @Input() raidVersionGroupChild: string;\r\n @Output() resultsParent = new EventEmitter();\r\n\r\n items = []\r\n quantityOfCameras: Number = 0\r\n camera\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n let cameras = JSON.parse(sessionStorage.getItem(\"productsSelected\")).cameras\r\n let index = cameras.findIndex(x => x.ctn == this.ctn)\r\n\r\n this.camera = cameras[index]\r\n if(this.camera.childrens.length == 0){\r\n this.addNewGroup()\r\n }else{\r\n this.items = []\r\n this.camera.childrens.forEach(element => {\r\n this.addNewGroup()\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n /**********THIS FUNCTION WILL TRIGGER WHEN PARENT COMPONENT UPDATES 'someInput'**************/\r\n //Please not delete this method notified to the child of parent change\r\n } \r\n\r\n addNewGroup(){\r\n this.items.push({})\r\n }\r\n\r\n receiveResultFromChildrens(childResult: string){\r\n\r\n let data = JSON.parse(childResult)\r\n\r\n if(data.action == \"Remove\"){\r\n //Remove element of array to remove group\r\n let products = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n \r\n products.cameras.forEach(element => {\r\n if(element.ctn == data.ctn){\r\n\r\n //Delete elements from arrays\r\n element.childrens.splice(data.index, 1)\r\n this.items.splice(data.index, 1)\r\n\r\n /**\r\n * Update variable session\r\n */\r\n sessionStorage.setItem('productsSelected', JSON.stringify(products))\r\n\r\n this.getTotalOfCameras(data.ctn)\r\n\r\n //Emit again to the parent\r\n this.resultsParent.emit(JSON.stringify({\"name\": data.ctn}))\r\n // }\r\n }\r\n });\r\n }else{\r\n this.getTotalOfCameras(data.ctn)\r\n //Emit again to the parent\r\n this.resultsParent.emit(JSON.stringify({\"name\": data.ctn}))\r\n }\r\n }\r\n\r\n getTotalOfCameras(name){\r\n this.quantityOfCameras = 0\r\n let products = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n products.cameras.forEach((element) => {\r\n\r\n if(element.ctn == name){\r\n element.childrens.forEach((child, indexChild) => {\r\n this.quantityOfCameras = this.quantityOfCameras + child.quantity\r\n\r\n if(indexChild == element.childrens.length-1){\r\n element.quantity = this.quantityOfCameras\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(products))\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n deleteCamera(){\r\n let products = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let index = products.cameras.findIndex(x => x.ctn == this.ctn)\r\n products.cameras.splice(index, 1)\r\n sessionStorage.setItem('productsSelected', JSON.stringify(products))\r\n\r\n //Emit again to the parent\r\n this.resultsParent.emit(JSON.stringify({\"name\": this.ctn, \"action\": 'deleteCamera'}))\r\n }\r\n}\r\n","\r\n \r\n \r\n \"Image\r\n \r\n {{ctn}} - {{name}} ({{quantityOfCameras}} {{ 'storageCalculatorGroup.units'| 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
","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { StoragesService } from 'src/app/services/storages/storages.service';\r\nimport ByteConverter from '@wtfcode/byte-converter'\r\nimport { Location } from '@angular/common';\r\nimport { SetUpTypeService } from 'src/app/services/set_up_type/set-up-type.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-storage-calculator',\r\n templateUrl: './storage-calculator.component.html',\r\n styleUrls: ['./storage-calculator.component.sass']\r\n})\r\nexport class StorageCalculatorComponent implements OnInit {\r\n\r\n // @ViewChild('child') child:StorageCalculatorCameraItemComponent;\r\n @ViewChild(\"modalConfirm\", { static: true }) infoNotification;\r\n @ViewChild('buttonConfirmReset', { static: true }) buttonConfirmReset: ElementRef;\r\n\r\n @Input() updateSetUpTypeTrigger: any\r\n\r\n bandwidthResult: string = \"0 Mbps\";\r\n storageResult: string = \"0 Mb\"\r\n retentionTime: number = 1;\r\n raidVersion = \"\"\r\n sessionBackUp: any\r\n\r\n /**\r\n * Spinner settings\r\n */\r\n spinner: Boolean = false\r\n\r\n camerasSelected = []\r\n\r\n raidOptions = []\r\n\r\n setUpType = ''\r\n cloudStorageType = ''\r\n cloudOptions = [\r\n 'Continuous',\r\n \"Event-based\"\r\n ]\r\n\r\n cloudStorageRetentionTimeOptions = [\r\n {id: 7, label: '7'},\r\n {id: 14, label: '14'},\r\n {id: 30, label: '30'}\r\n ]\r\n\r\n setUpTypeSubscription: Subscription\r\n\r\n constructor(private router: Router, private notificationService: AppComponent, private storageService: StoragesService, private modalService: ModalService, private location: Location, private setUpTypeService: SetUpTypeService) { }\r\n\r\n ngOnInit(): void {\r\n this.setUpTypeSubscription = this.setUpTypeService.setUpTypeTrigger.subscribe(data => {\r\n this.setUpType = data\r\n\r\n if(this.setUpType == 'Cloud'){\r\n this.raidVersion = 'Continuous'\r\n this.retentionTime = 14\r\n this.setUpTypeService.setCloudType(this.raidVersion)\r\n this.setUpTypeService.setCloudRetentionTime(this.retentionTime)\r\n }else{\r\n this.raidVersion = ''\r\n this.retentionTime = 15\r\n this.setUpTypeService.setCloudType(this.raidVersion)\r\n this.setUpTypeService.setCloudRetentionTime(this.retentionTime)\r\n }\r\n\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n productsSelected.raid = this.raidVersion\r\n productsSelected.retentionTime = this.retentionTime\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n this.initView()\r\n })\r\n\r\n //Check if data come from file upload function\r\n if(localStorage.getItem(\"restoreProject\") == 'true'){\r\n this.initView()\r\n\r\n }else if(this.setUpTypeService.getSetUpType() == ''){\r\n this.setUpTypeSubscription = this.setUpTypeService.setUpTypeTrigger.subscribe(data => {\r\n this.setUpType = data\r\n this.raidVersion = 'Continuous'\r\n this.retentionTime = 14\r\n this.setUpTypeService.setCloudType(this.raidVersion)\r\n this.setUpTypeService.setCloudRetentionTime(this.retentionTime)\r\n if(this.setUpType == 'Cloud'){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n productsSelected.raid = this.raidVersion\r\n productsSelected.retentionTime = this.retentionTime\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n }\r\n this.initView()\r\n })\r\n }else{\r\n this.raidVersion = this.setUpTypeService.getCloudType()\r\n this.retentionTime = this.setUpTypeService.getCloudRetentionType()\r\n this.setUpType = this.setUpTypeService.getSetUpType()\r\n this.initView()\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy(): void{\r\n if (this.setUpTypeSubscription) {\r\n this.setUpTypeSubscription.unsubscribe()\r\n }\r\n }\r\n\r\n checkReturnInitialView(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n if(productsSelected.cameras.length == 0 && productsSelected.recording.length == 0 && productsSelected.licenses.length == 0){\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n }\r\n }\r\n\r\n initView(){\r\n this.sessionBackUp = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n if(productsSelected.setUpType == \"Cloud\"){\r\n this.setUpTypeService.cleanStorageVlaues()\r\n this.camerasSelected = productsSelected.cameras\r\n this.spinner = false\r\n }else{\r\n this.storageService.getRaidVersions().subscribe(\r\n res => {\r\n this.raidOptions = res as []\r\n\r\n this.camerasSelected = productsSelected.cameras\r\n this.retentionTime = productsSelected.retentionTime\r\n this.raidVersion = productsSelected.raid\r\n this.spinner = false\r\n\r\n this.checkReturnInitialView()\r\n\r\n },\r\n err => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n }\r\n )\r\n }\r\n }\r\n\r\n receiveResultFromChildrens(childResult: string){\r\n let results = JSON.parse(childResult)\r\n\r\n if(results.action == \"deleteCamera\"){\r\n\r\n this.updateCamerasSelected()\r\n\r\n }else{\r\n\r\n this.calculateFinalStorage()\r\n \r\n setTimeout(() => {\r\n this.isNecessaryRecommendationsReset()\r\n }, 500);\r\n /**\r\n * Enable or disable the next step according to the results\r\n */\r\n this.enableOrDisableFollowingStep()\r\n\r\n /**\r\n * Save values in session storage\r\n */\r\n let sessionProducts = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n sessionProducts.bandwidthCameras= this.bandwidthResult\r\n sessionProducts.bandwidthNeeded = this.bandwidthResult\r\n sessionProducts.storageNeeded = this.storageResult\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(sessionProducts))\r\n\r\n }\r\n\r\n }\r\n\r\n calculateFinalStorage():void{\r\n let bandwidth = 0\r\n let storage = 0\r\n\r\n let cameras = JSON.parse(sessionStorage.getItem(\"productsSelected\")).cameras\r\n \r\n cameras.forEach((element, index) => {\r\n \r\n element.childrens.forEach(child => {\r\n bandwidth = bandwidth + parseFloat(child.bandwidth.split(\" \")[0])\r\n storage = storage + parseFloat(child.storage.split(\" \")[0])\r\n\r\n this.bandwidthResult = bandwidth.toFixed(2) + \" Mbps\"\r\n this.storageResult = storage.toFixed(2) + \" TB\"\r\n });\r\n\r\n if(index == cameras.length-1 && bandwidth == 0 && storage == 0){\r\n this.bandwidthResult = 0 + \" Mbps\"\r\n this.storageResult = 0 + \" TB\"\r\n }\r\n\r\n });\r\n }\r\n\r\n enableOrDisableFollowingStep():void{\r\n let storageValue = parseFloat(this.storageResult.split(\" \")[0])\r\n let bandwidthValue = parseFloat(this.bandwidthResult.split(\" \")[0])\r\n\r\n let stepQuantity = 5\r\n if(this.setUpType == 'Cloud') stepQuantity = 4\r\n\r\n for (let index = 2; index < stepQuantity; index++){\r\n document.getElementsByClassName('step')[index].className = document.getElementsByClassName('step')[index].className.replace(' error error-step', '')\r\n }\r\n\r\n \r\n let step = document.getElementsByClassName(\"step\")[2];\r\n\r\n this.checkAllCamerasHaveStorage()\r\n .then(async(result) => {\r\n let allCamerasHaveStorage = await result\r\n\r\n if(storageValue != 0 && bandwidthValue != 0 && allCamerasHaveStorage){\r\n if(this.checkStorageAdded() == false){\r\n sessionStorage.setItem(\"currentStep\", \"3\")\r\n }\r\n \r\n step.className = \"step enable-step\"\r\n \r\n }else{\r\n sessionStorage.setItem(\"currentStep\", \"2\")\r\n step.className = \"step disabled-step\"\r\n }\r\n \r\n }).catch((err) => {\r\n \r\n });\r\n\r\n }\r\n\r\n checkIfHaveCamerasSelected(): void{\r\n\r\n if(this.camerasSelected.length == 0){\r\n sessionStorage.setItem(\"currentStep\", \"1\")\r\n \r\n /**\r\n * Disable current step and routing to previous step\r\n */\r\n let step = document.getElementsByClassName(\"step\")[1];\r\n step.className = 'step disabled-step'\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n }\r\n }\r\n\r\n changeRetentionTime(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n productsSelected.retentionTime = Number(this.retentionTime)\r\n this.setUpTypeService.setCloudRetentionTime(Number(this.retentionTime))\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n }\r\n\r\n changeRaidVersion(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n if(this.setUpType == 'Cloud'){\r\n productsSelected.cloudType = this.raidVersion\r\n productsSelected.raid = this.raidVersion\r\n }\r\n else productsSelected.raid = this.raidVersion\r\n\r\n this.setUpTypeService.setCloudType(this.raidVersion)\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n\r\n setTimeout(() => {\r\n this.isNecessaryRecommendationsReset()\r\n }, 500);\r\n }\r\n\r\n checkAllCamerasHaveStorage(): any{\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n let cameras = JSON.parse(sessionStorage.getItem(\"productsSelected\")).cameras\r\n let value = null\r\n\r\n for (let index = 0; index < cameras.length; index++) {\r\n const element = cameras[index];\r\n \r\n if(element.childrens.length != 0){\r\n\r\n for (let indexChild = 0; indexChild < element.childrens.length; indexChild++) {\r\n const child = element.childrens[indexChild];\r\n \r\n if(child.storage.includes('0.00 TB')){\r\n indexChild = element.childrens.length\r\n value = false\r\n }\r\n\r\n }\r\n\r\n if(value != null){\r\n index = cameras.length\r\n resolve(false)\r\n }else if(index == cameras.length-1){\r\n index = cameras.length\r\n resolve(true)\r\n }\r\n\r\n }else{\r\n index = cameras.length\r\n resolve(false)\r\n }\r\n }\r\n\r\n })\r\n \r\n\r\n }\r\n\r\n openConfirm(content: TemplateRef) {\r\n\r\n return new Promise((resolve, reject) => {\r\n this.modalService.open(content).then(result => {\r\n resolve(result)\r\n });\r\n })\r\n \r\n }\r\n\r\n updateCamerasSelected(){\r\n let cameras = JSON.parse(sessionStorage.getItem(\"productsSelected\")).cameras\r\n this.camerasSelected = cameras\r\n\r\n this.checkIfHaveCamerasSelected()\r\n }\r\n\r\n checkStorageAdded(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem('productsSelected'))\r\n let neededStorage = productsSelected.storageNeeded.toUpperCase().split(\" \")\r\n let currentStorage = productsSelected.storageAdded.toUpperCase().split(\" \")\r\n\r\n let neededStorageInBytes = this.convertToBytes(parseInt(neededStorage[0]), neededStorage[1])\r\n let currentStorageInBytes = this.convertToBytes(parseInt(currentStorage[0]), currentStorage[1])\r\n\r\n if(currentStorageInBytes > neededStorageInBytes) return true\r\n else return false\r\n\r\n }\r\n\r\n convertToBytes(value, unit){\r\n const byteConverter = new ByteConverter()\r\n return byteConverter.convert(value, unit, \"B\")\r\n }\r\n\r\n isNecessaryRecommendationsReset(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem('productsSelected'))\r\n\r\n /*\r\n Valido los recordings si los recordings son invalidos\r\n reseteo recordings y licencias\r\n sino valido licencias si licencias son invalidas reseteo\r\n sino mantiene lo mismo\r\n */\r\n let storageNeeded = parseFloat(productsSelected.storageNeeded.split(' ')[0])\r\n\r\n if(productsSelected.recording.length != 0){\r\n\r\n this.getAddedCamerasInfo(productsSelected.cameras)\r\n .then(async(result) => {\r\n let camerasInfo = await result\r\n \r\n this.getAddedStoragesDevicesInfo(productsSelected.recording)\r\n .then(async(result) => {\r\n let storagesInfo = await result\r\n\r\n if(storageNeeded > storagesInfo['capacity'] || camerasInfo['quantity'] > storagesInfo['channels']){\r\n const button: HTMLButtonElement = this.buttonConfirmReset.nativeElement\r\n button.click()\r\n }else if(this.raidVersion != this.sessionBackUp.raid){\r\n const button: HTMLButtonElement = this.buttonConfirmReset.nativeElement\r\n button.click()\r\n }else{\r\n if(productsSelected.licenses.length != 0){\r\n this.getAddedLicensesInfo(productsSelected.licenses)\r\n .then(async(result) => {\r\n let licensesInfo = await result\r\n\r\n if(camerasInfo['quantity'] > licensesInfo['channels']){\r\n const button: HTMLButtonElement = this.buttonConfirmReset.nativeElement\r\n button.click()\r\n }else{\r\n //Update with the recent changes on session storages the local variable\r\n this.sessionBackUp = productsSelected\r\n }\r\n })\r\n }else{\r\n //Update with the recent changes on session storages the local variable\r\n this.sessionBackUp = productsSelected\r\n }\r\n }\r\n })\r\n })\r\n }\r\n }\r\n\r\n getAddedCamerasInfo(cameras){\r\n\r\n return new Promise((resolve, reject) => {\r\n let quantity = 0\r\n cameras.forEach((element,index) => {\r\n element.childrens.forEach((child, indexChild) => {\r\n quantity = quantity + child.quantity\r\n\r\n if(indexChild == element.childrens.length-1 && index == cameras.length-1) resolve({quantity: quantity})\r\n });\r\n });\r\n\r\n })\r\n\r\n }\r\n\r\n getAddedStoragesDevicesInfo(storages){\r\n return new Promise((resolve, reject) => {\r\n let channels = 0\r\n let capacity = 0\r\n \r\n storages.forEach((element, index) => {\r\n channels = channels + (element.channels * element.quantity)\r\n capacity = capacity + (parseInt(element.capacity) * element.quantity)\r\n\r\n if(index == storages.length-1) resolve({ channels: channels, capacity: capacity })\r\n });\r\n\r\n })\r\n }\r\n\r\n getAddedLicensesInfo(licenses){\r\n return new Promise((resolve, reject) => {\r\n let channels = 0\r\n\r\n licenses.forEach((element, index) => {\r\n channels = channels + (element.channels * element.quantity)\r\n if(index == licenses.length-1) resolve({ channels: channels })\r\n });\r\n\r\n })\r\n }\r\n\r\n resetRecommendations(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem('productsSelected'))\r\n productsSelected.storageAdded = \"0 MB\"\r\n productsSelected.recording = []\r\n productsSelected.licenses = []\r\n\r\n sessionStorage.setItem('productsSelected', JSON.stringify(productsSelected))\r\n\r\n }\r\n\r\n keepPreviousConfig(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem('productsSelected'))\r\n productsSelected = this.sessionBackUp\r\n sessionStorage.setItem('productsSelected', JSON.stringify(productsSelected))\r\n \r\n this.initView()\r\n }\r\n\r\n openModal(content: TemplateRef) {\r\n this.modalService.open(content).then(async(result) => {\r\n if(await result) this.resetRecommendations()\r\n else this.keepPreviousConfig()\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n /**********THIS FUNCTION WILL TRIGGER WHEN PARENT COMPONENT UPDATES 'someInput'**************/\r\n }\r\n\r\n collapseAllExpanders(type){\r\n let expanders = document.getElementsByClassName('accordion-toggle')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index] as HTMLAnchorElement;\r\n\r\n if(type == 'collapse'){\r\n if(element.children[0].className.includes('minimize')) element.click()\r\n }else{\r\n if(element.children[0].className.includes('add')) element.click()\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 {{ 'storageCalculator.retentionRequiredError' | translate }}\r\n {{ 'storageCalculator.retentionMinimumError' | 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 \r\n
\r\n \r\n
\r\n {{ 'storageCalculator.outputsTitle' | translate }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'storageCalculator.bandwidth' | translate }}\r\n
\r\n
\r\n {{ 'storageCalculator.storage' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n {{ bandwidthResult }}\r\n
\r\n
\r\n {{ storageResult }}\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 {{ 'storageCalculator.modalMessage1' | translate }}
\r\n {{ 'storageCalculator.modalMessage2' | translate }}\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n \r\n {{ 'storageCalculator.modalConfirmResetMessage1' | translate }}
\r\n {{ 'storageCalculator.modalConfirmResetMessage2' | translate }}\r\n
\r\n
","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ModalService } from '@inst-iot/bosch-angular-ui-components';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { Environment } from 'src/app/environments';\r\nimport { SummaryService } from 'src/app/services/summary/summary.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport { Moment } from 'moment'\r\nimport * as moment from 'moment';\r\nimport { Location } from '@angular/common';\r\nimport { Subscription } from 'rxjs';\r\nimport { SetUpTypeService } from 'src/app/services/set_up_type/set-up-type.service';\r\n\r\n@Component({\r\n selector: 'app-summary',\r\n templateUrl: './summary.component.html',\r\n styleUrls: ['./summary.component.sass']\r\n})\r\nexport class SummaryComponent implements OnInit {\r\n\r\n @ViewChild('modalImage', {static:true})\r\n private modalImage: TemplateRef;\r\n\r\n raidVersion: string = \"\"\r\n retentionTime: string = \"\"\r\n bandwidth: string = \"\"\r\n camerasBandwidth: string = \"\"\r\n storageBandwidth: string = \"\"\r\n storage: string = \"\"\r\n storageAdded: string = \"\"\r\n image: string = \"\"\r\n\r\n cameras = []\r\n storages = []\r\n licenses = []\r\n\r\n /*\r\n Project details variables\r\n */\r\n projectName: string = \"\"\r\n integrator: string = \"\"\r\n\r\n /**\r\n * Spinner settings\r\n */\r\n spinner: Boolean = false\r\n setUpType = ''\r\n\r\n constructor(private summaryService: SummaryService, private notificationService: AppComponent, private location: Location, private router: Router, private modalService: ModalService, private http: HttpClient, private setUpTypeService: SetUpTypeService) { }\r\n\r\n ngOnInit(): void {\r\n this.checkReturnInitialView()\r\n\r\n this.setUpType = this.setUpTypeService.getSetUpType()\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n this.raidVersion = productsSelected.raid\r\n this.cameras = productsSelected.cameras\r\n this.storages = productsSelected.recording\r\n this.licenses = productsSelected.licenses\r\n this.bandwidth = productsSelected.bandwidthNeeded\r\n this.camerasBandwidth = productsSelected.bandwidthCameras\r\n this.storageBandwidth = productsSelected.storageBandwidth\r\n this.storage = productsSelected.storageNeeded\r\n this.storageAdded = productsSelected.storageAdded\r\n this.retentionTime = productsSelected.retentionTime\r\n this.projectName = productsSelected.projectDetails.projectName\r\n this.integrator = productsSelected.projectDetails.integrator\r\n }\r\n\r\n checkReturnInitialView(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n if(productsSelected.cameras.length == 0 && productsSelected.recording.length == 0 && productsSelected.licenses.length == 0){\r\n this.router.navigate([\"/\"], {skipLocationChange: true})\r\n }\r\n }\r\n\r\n changeCamera():void {\r\n let steps = document.getElementsByClassName(\"step\");\r\n steps[4].className = steps[4].className += \" test\"\r\n steps[3].className = steps[3].className += \" test\"\r\n steps[2].className = steps[2].className += \" test\"\r\n this.router.navigate(['/calculator'], {skipLocationChange: true})\r\n }\r\n\r\n changeStorage():void {\r\n let steps = document.getElementsByClassName(\"step\");\r\n steps[4].className = steps[4].className += \" test\"\r\n steps[3].className = steps[3].className += \" test\"\r\n this.router.navigate(['/recommended-storage'], {skipLocationChange: true})\r\n }\r\n\r\n changeLicense():void {\r\n let steps = document.getElementsByClassName(\"step\");\r\n steps[4].className = steps[4].className += \" test\"\r\n this.router.navigate(['/licenses'], {skipLocationChange: true})\r\n }\r\n\r\n generatePDF(){\r\n this.spinner = true\r\n\r\n let formData = new FormData()\r\n formData.append('cameras', JSON.stringify(this.cameras))\r\n formData.append('storages', JSON.stringify(this.storages))\r\n formData.append('licenses', JSON.stringify(this.licenses))\r\n formData.append('userToken', sessionStorage.getItem('user_token'))\r\n formData.append('bandwidth', this.bandwidth)\r\n formData.append('camerasBandwidth', this.camerasBandwidth)\r\n formData.append('storagesBandwidth', this.storageBandwidth)\r\n formData.append('storageNeeded', this.storage)\r\n formData.append('storageAdded', this.storageAdded)\r\n formData.append('raidVersion', this.raidVersion)\r\n formData.append('retentionTime', this.retentionTime)\r\n formData.append('setUpType', this.setUpType)\r\n formData.append('projectName', this.projectName)\r\n formData.append('integrator', this.integrator)\r\n\r\n this.http.post(Environment.Storage_Calculator_Server+\"/summary/generatePDF\",formData, {responseType: 'blob'})\r\n .toPromise()\r\n .then(blob => {\r\n if(blob.type != \"application/json\"){\r\n let fileName = 'export_' + moment().format('MM-DD-YYYY_HHmmss') + '.pdf'\r\n saveAs(blob, fileName);\r\n\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('summary.successExport')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('success', await message)\r\n })\r\n }else{\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('summary.warningExport')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('warning', await message)\r\n })\r\n }\r\n })\r\n .catch((err) => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n })\r\n\r\n }\r\n\r\n generateExcel(){\r\n this.spinner = true\r\n let formData = new FormData()\r\n formData.append('cameras', JSON.stringify(this.cameras))\r\n formData.append('storages', JSON.stringify(this.storages))\r\n formData.append('licenses', JSON.stringify(this.licenses))\r\n formData.append('userToken', sessionStorage.getItem('user_token'))\r\n formData.append('bandwidth', this.bandwidth)\r\n formData.append('camerasBandwidth', this.camerasBandwidth)\r\n formData.append('storagesBandwidth', this.storageBandwidth)\r\n formData.append('storageNeeded', this.storage)\r\n formData.append('storageAdded', this.storageAdded)\r\n formData.append('raidVersion', this.raidVersion)\r\n formData.append('retentionTime', this.retentionTime)\r\n formData.append('setUpType', this.setUpType)\r\n\r\n this.http.post(Environment.Storage_Calculator_Server+\"/summary/generateExcel\",formData, {responseType: 'blob'})\r\n .toPromise()\r\n .then(blob => {\r\n if(blob.type != \"application/json\"){\r\n let fileName = 'export_' + moment().format('MM-DD-YYYY_HHmmss') + '.xlsx'\r\n saveAs(blob, fileName);\r\n\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('summary.successExport')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('success', await message)\r\n })\r\n }else{\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('summary.warningExport')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('warning', await message)\r\n })\r\n }\r\n })\r\n .catch((err) => {\r\n this.spinner = false\r\n this.notificationService.getTranslateValue('connectionError')\r\n .then(async(message) => {\r\n this.notificationService.showCustomNotification('error', await message)\r\n })\r\n })\r\n\r\n }\r\n\r\n openConfirm(content: TemplateRef, image) {\r\n this.image = image\r\n this.modalService.open(content).then(result => {\r\n });\r\n }\r\n\r\n saveProjectDetails(){\r\n let productsSelected = JSON.parse(sessionStorage.getItem(\"productsSelected\"))\r\n\r\n productsSelected.projectDetails.projectName = this.projectName\r\n productsSelected.projectDetails.integrator = this.integrator\r\n\r\n sessionStorage.setItem(\"productsSelected\", JSON.stringify(productsSelected))\r\n\r\n }\r\n\r\n collapseAllExpanders(type){\r\n let expanders = document.getElementsByClassName('accordion-toggle')\r\n\r\n for (let index = 0; index < expanders.length; index++) {\r\n const element = expanders[index] as HTMLAnchorElement;\r\n\r\n if(type == 'collapse'){\r\n if(element.children[0].className.includes('minimize')) element.click()\r\n }else{\r\n if(element.children[0].className.includes('add')) element.click()\r\n }\r\n }\r\n }\r\n\r\n redirectToAccessoriesQuickGuide(){\r\n window.open(\"https://media.boschsecurity.com/fs/media/pb/media/support_1/tools/Camera_Accessories_-_Quick_Selection_Guide.pdf\", '_blank')\r\n }\r\n}\r\n","
\r\n\r\n
\r\n \r\n
\r\n {{ 'summary.outputTitle' | translate }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'storageCalculator.bandwidth' | translate }}\r\n
\r\n
\r\n Storage\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'recommendedStorage.camerasBandwidth' | translate }}\r\n
\r\n
\r\n {{ 'recommendedStorage.storagesBandwidth' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n {{camerasBandwidth}}\r\n
\r\n
\r\n {{ storageBandwidth }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'recommendedStorage.recommended' | translate }}\r\n
\r\n
\r\n {{ 'recommendedStorage.added' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n {{storage}}\r\n
\r\n
\r\n {{ storageAdded }}\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
{{ 'summary.downloadMessage' | 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

{{ 'projectDetails.title' | translate }}

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{ 'projectDetails.details' | translate }}\r\n \r\n \r\n \r\n
\r\n
    \r\n
  • {{ 'projectDetails.project' | translate }}
  • \r\n
      \r\n \r\n {{ 'storageCalculatorItem.quantityRequiredError' | translate}}\r\n \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'projectDetails.integrator' | translate }}
  • \r\n
      \r\n \r\n {{ 'storageCalculatorItem.hoursRequiredError' | 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

{{ 'summary.cameras.title' | translate }}

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{camera.ctn}} - {{camera.name}}\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
  • {{ 'summary.cameras.ctn' | translate }}
  • \r\n
      \r\n
    • \r\n {{camera.ctn}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.cameras.materialDescription' | translate }}
  • \r\n
      \r\n
    • \r\n {{camera.material_description}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.cameras.quantity' | translate }}
  • \r\n
      \r\n
    • \r\n {{camera.quantity}}\r\n
    • \r\n
    \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n {{ 'summary.cameras.group' | translate }} {{i+1}} ({{camera.name}})\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ 'summary.cameras.quantity' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'summary.cameras.bandwidth' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'summary.cameras.storage' | 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 Group Configuration\r\n \r\n \r\n
\r\n
\r\n
    \r\n
  • Configuration Type
  • \r\n
      \r\n
    • \r\n {{ child.configurationType }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Hours
  • \r\n
      \r\n
    • \r\n {{ child.hours }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Sanity Check Days
  • \r\n
      \r\n
    • \r\n {{ child.sanityCheckDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • VRM Downtime Days
  • \r\n
      \r\n
    • \r\n {{ child.vrmDowntimeDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Audio
  • \r\n
      \r\n
    • \r\n {{ child.audio }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Metadata
  • \r\n
      \r\n
    • \r\n {{ child.metadata }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Scene
  • \r\n
      \r\n
    • \r\n {{ child.profile }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Codec
  • \r\n
      \r\n
    • \r\n {{ child.codec }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Resolution
  • \r\n
      \r\n
    • \r\n {{ child.resolution }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Framerate
  • \r\n
      \r\n
    • \r\n {{ child.framerate }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Overhead Storage Percentage
  • \r\n
      \r\n
    • \r\n {{ child.overhead }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Livestream
  • \r\n
      \r\n
    • \r\n Yes\r\n
    • \r\n
    • \r\n No\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Group Configuration\r\n\r\n \r\n
\r\n \r\n {{ range.lens }}\r\n \r\n \r\n
\r\n
\r\n
    \r\n
  • Configuration Type
  • \r\n
      \r\n
    • \r\n {{ range.configurationType }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Hours
  • \r\n
      \r\n
    • \r\n {{ range.hours }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Sanity Check Days
  • \r\n
      \r\n
    • \r\n {{ range.sanityCheckDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • VRM Downtime Days
  • \r\n
      \r\n
    • \r\n {{ range.vrmDowntimeDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Audio
  • \r\n
      \r\n
    • \r\n {{ range.audio }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Metadata
  • \r\n
      \r\n
    • \r\n {{ range.metadata }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Scene
  • \r\n
      \r\n
    • \r\n {{ range.profile }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Codec
  • \r\n
      \r\n
    • \r\n {{ range.codec }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Resolution
  • \r\n
      \r\n
    • \r\n {{ range.resolution }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Framerate
  • \r\n
      \r\n
    • \r\n {{ range.framerate }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Overhead Storage Percentage
  • \r\n
      \r\n
    • \r\n {{ range.overhead }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Livestream
  • \r\n
      \r\n
    • \r\n Yes\r\n
    • \r\n
    • \r\n No\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 {{ multiLens.lens }} {{ 'summary.configuration' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
    \r\n
  • Configuration Type
  • \r\n
      \r\n
    • \r\n {{ multiLens.configurationType }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Hours
  • \r\n
      \r\n
    • \r\n {{ multiLens.hours }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Sanity Check Days
  • \r\n
      \r\n
    • \r\n {{ multiLens.sanityCheckDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • VRM Downtime Days
  • \r\n
      \r\n
    • \r\n {{ multiLens.vrmDowntimeDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Audio
  • \r\n
      \r\n
    • \r\n {{ multiLens.audio }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Metadata
  • \r\n
      \r\n
    • \r\n {{ multiLens.metadata }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Scene
  • \r\n
      \r\n
    • \r\n {{ multiLens.profile }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Codec
  • \r\n
      \r\n
    • \r\n {{ multiLens.codec }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Resolution
  • \r\n
      \r\n
    • \r\n {{ multiLens.resolution }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Framerate
  • \r\n
      \r\n
    • \r\n {{ multiLens.framerate }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Overhead Storage Percentage
  • \r\n
      \r\n
    • \r\n {{ multiLens.overhead }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Livestream
  • \r\n
      \r\n
    • \r\n Yes\r\n
    • \r\n
    • \r\n No\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ multiRange.lens }}\r\n \r\n \r\n
\r\n
\r\n
    \r\n
  • Configuration Type
  • \r\n
      \r\n
    • \r\n {{ multiRange.configurationType }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Hours
  • \r\n
      \r\n
    • \r\n {{ multiRange.hours }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Sanity Check Days
  • \r\n
      \r\n
    • \r\n {{ multiRange.sanityCheckDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • VRM Downtime Days
  • \r\n
      \r\n
    • \r\n {{ multiRange.vrmDowntimeDays }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Audio
  • \r\n
      \r\n
    • \r\n {{ multiRange.audio }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Metadata
  • \r\n
      \r\n
    • \r\n {{ multiRange.metadata }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Scene
  • \r\n
      \r\n
    • \r\n {{ multiRange.profile }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Codec
  • \r\n
      \r\n
    • \r\n {{ multiRange.codec }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Resolution
  • \r\n
      \r\n
    • \r\n {{ multiRange.resolution }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Framerate
  • \r\n
      \r\n
    • \r\n {{ multiRange.framerate }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Overhead Storage Percentage
  • \r\n
      \r\n
    • \r\n {{ multiRange.overhead }}\r\n
    • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • Livestream
  • \r\n
      \r\n
    • \r\n Yes\r\n
    • \r\n
    • \r\n No\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 \r\n
\r\n\r\n
\r\n
\r\n

{{ 'summary.storages.title' | translate }}

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{storage.ctn}} - {{storage.name}}\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
  • {{ 'summary.storages.ctn' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.ctn}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.storages.materialDescription' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.short_description}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.storages.capacity' | translate }}
  • \r\n
      \r\n
    • Full capacity: {{capacityDetails.capacity}} GB
    • \r\n
    • Full capacity: {{capacityDetails.capacity}} TB
    • \r\n
    • Considering-RAID5 capacity: {{capacityDetails.capacity}} TB
    • \r\n
    • Considering-RAID6 capacity: {{capacityDetails.capacity}} TB
    • \r\n
    \r\n
\r\n
\r\n \r\n
\r\n
    \r\n
  • {{ 'summary.storages.bandwidth' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.bandwidth}} Mbps\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.storages.quantity' | translate }}
  • \r\n
      \r\n
    • \r\n {{storage.quantity}}\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

{{ 'summary.licenses.title' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{license.ctn}} - {{license.name}}\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
  • {{ 'summary.licenses.ctn' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.ctn}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.licenses.materialDescription' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.short_description}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.licenses.channels' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.max_channels}}\r\n
    • \r\n
    \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • {{ 'summary.licenses.quantity' | translate }}
  • \r\n
      \r\n
    • \r\n {{license.quantity}}\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 \r\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-teaser',\n templateUrl: './teaser.component.html',\n styleUrls: ['./teaser.component.sass']\n})\nexport class TeaserComponent implements OnInit {\n\n @Input() title: string;\n @Input() color: string;\n colorClass: string;\n\n constructor() { }\n\n ngOnInit(): void {\n this.colorClass = this.setColorClass(this.color);\n }\n\n private setColorClass(color: string) {\n switch (color) {\n case \"darkBlue\":\n return \"u-Background__gradient--darkBlue-lightBlue\";\n case \"fuchsia\":\n return \"u-Background__gradient--fuchsia-violet\";\n case \"lightBlue\":\n return \"u-Background__gradient--lightBlue-turquoise\";\n case \"lightGreen\":\n return \"u-Background__gradient--lightGreen-darkGreen\";\n case \"red\":\n return \"u-Background__gradient--red-fuchsia\";\n case \"turquoise\":\n return \"u-Background__gradient--turquoise-lightGreen\";\n case \"violet\":\n return \"u-Background__gradient--violet-darkBlue\";\n default:\n return \"\";\n }\n }\n\n}\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{title}}\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 { Component, Input, OnInit } from '@angular/core';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Component({\r\n selector: 'app-video-player',\r\n templateUrl: './video-player.component.html',\r\n styleUrls: ['./video-player.component.sass']\r\n})\r\nexport class VideoPlayerComponent implements OnInit {\r\n\r\n @Input() src: string;\r\n @Input() format: string;\r\n environmentURL = Environment.Storage_Calculator_Server\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\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","export const Environment = {\r\n // Storage_Calculator_Server: 'http://localhost:7420/storage_calculator',\r\n // Storage_Calculator_Server: 'http://si0vmc3819.de.bosch.com:7421/storage_calculator',\r\n Storage_Calculator_Server: 'https://ews-na.api.bosch.com/home/globalstoragecalculator/v1',\r\n Base_URL: '/storage-calculator', //Comment when test locally or when make the deployment in test server\r\n // Base_URL: '/',\r\n env: 'production'\r\n // env: 'development'\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CalculatorService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public calculateStorage(quantity, hours, retentionTime, profile, platform, codec, resolution, framerate, audio, metadata, sanityCheckDays, vrmDowntimeDays, activeChannelsOfCamera, overhead){\r\n\r\n let formdata = new FormData()\r\n formdata.append('quantity', quantity)\r\n formdata.append('hours', hours)\r\n formdata.append('retentionTime', retentionTime)\r\n formdata.append('profile', profile)\r\n formdata.append('platform', platform)\r\n formdata.append('codec', codec)\r\n formdata.append('resolution', resolution)\r\n formdata.append('framerate', framerate)\r\n formdata.append('audio', audio)\r\n formdata.append('metadata', metadata)\r\n formdata.append('sanityCheckDays', sanityCheckDays)\r\n formdata.append('vrmDowntimeDays', vrmDowntimeDays)\r\n formdata.append('activeChannelsOfCamera', activeChannelsOfCamera)\r\n formdata.append('overhead', overhead)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/calculator/storage\", formdata) \r\n }\r\n\r\n public getProfiles(){\r\n\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/calculator/profiles\",) \r\n }\r\n\r\n public getResolutions(profile, platform, codec, maxResolutionSupported){\r\n\r\n let formdata = new FormData()\r\n formdata.append('profile', profile)\r\n formdata.append('platform', platform)\r\n formdata.append('codec', codec)\r\n formdata.append('maxResolutionSupported', maxResolutionSupported)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/calculator/resolutions\", formdata) \r\n }\r\n\r\n public getFramerates(profile, platform, codec, resolution, has60framerate){\r\n\r\n let formdata = new FormData()\r\n formdata.append('profile', profile)\r\n formdata.append('platform', platform)\r\n formdata.append('codec', codec)\r\n formdata.append('resolution', resolution)\r\n formdata.append('has60framerate', has60framerate)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/calculator/framerates\", formdata) \r\n }\r\n\r\n public validatePickersChanges(profile, platform, codec, resolution, framerate){\r\n let formdata = new FormData()\r\n formdata.append('profile', profile)\r\n formdata.append('platform', platform)\r\n formdata.append('codec', codec)\r\n formdata.append('resolution', resolution)\r\n formdata.append('framerate', framerate)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/calculator/validate\", formdata) \r\n\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CamerasService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getAllCameras(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras\")\r\n }\r\n\r\n public getTypes(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras/types\")\r\n }\r\n\r\n public getRanges(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras/ranges\")\r\n }\r\n\r\n public getResolutions(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras/resolutions\")\r\n }\r\n\r\n public getWeatherOptions(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras/weather\")\r\n }\r\n\r\n public getImpactProtectionOptions(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras/impactProtection\")\r\n }\r\n\r\n public getLensFocalLengthOptions(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras/lensFocalLength\")\r\n }\r\n\r\n public getVideoAnalyticsOptions(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/cameras/videoAnalytics\")\r\n }\r\n\r\n public getFilterCameras(type, range, resolution, weather, impactProtection, lensFocalLength, videoAnalytic, integratedIRIllumination, search): Observable<[]>{\r\n let formdata = new FormData()\r\n formdata.append(\"type\", JSON.stringify(type))\r\n formdata.append(\"range\", JSON.stringify(range))\r\n formdata.append(\"resolution\", JSON.stringify(resolution))\r\n formdata.append(\"weather\", JSON.stringify(weather))\r\n formdata.append(\"impactProtection\", JSON.stringify(impactProtection))\r\n formdata.append(\"lensFocalLength\", JSON.stringify(lensFocalLength))\r\n formdata.append(\"videoAnalytic\", JSON.stringify(videoAnalytic))\r\n formdata.append(\"integratedIRIllumination\", integratedIRIllumination)\r\n formdata.append(\"search\", search)\r\n\r\n return this.http.post<[]>(Environment.Storage_Calculator_Server+\"/cameras/filter\", formdata)\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LicensesService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getLicensesRecommendation(quantity, existDivar, divarModel){\r\n\r\n let formdata = new FormData()\r\n formdata.append('quantity', quantity)\r\n formdata.append('divar', JSON.stringify(existDivar))\r\n formdata.append('divarModel', divarModel)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server + \"/licenses/recommendation\", formdata)\r\n }\r\n\r\n public getAllLicenses(){\r\n return this.http.get(Environment.Storage_Calculator_Server + \"/licenses\")\r\n }\r\n\r\n public getBaseLicenses(quantity, divarModel){\r\n return this.http.get(Environment.Storage_Calculator_Server + \"/licenses/base?quantity=\"+quantity+\"&divarModel=\"+divarModel)\r\n }\r\n\r\n public getExpansionLicenses(quantity, divarModel, licenseType){\r\n return this.http.get(Environment.Storage_Calculator_Server + \"/licenses/expansion?quantity=\"+quantity+\"&divarModel=\"+divarModel+\"&licenseType=\"+licenseType)\r\n }\r\n\r\n public checkExpansionLicense(ctn, type, expansionQuantity, baseQuantity){\r\n\r\n let formdata = new FormData()\r\n formdata.append('ctn', ctn)\r\n formdata.append('type', type)\r\n formdata.append('expansionQuantity', expansionQuantity)\r\n formdata.append('baseQuantity', baseQuantity)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server + \"/licenses/checkExpansion\", formdata)\r\n }\r\n\r\n public getCloudLicensesRecommendation(licensesData){\r\n\r\n let formdata = new FormData()\r\n formdata.append('licensesData', JSON.stringify(licensesData))\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+ \"/licenses/cloud_recommendation\", formdata)\r\n }\r\n\r\n public getAllCloudLicenses(){\r\n return this.http.get(Environment.Storage_Calculator_Server+ \"/licenses/cloud_licenses\")\r\n }\r\n\r\n public getExpansionLicensesQuestionsByBaseLicenseType(licenseType){\r\n return this.http.get(Environment.Storage_Calculator_Server + \"/licenses/expansion_licenses_question_by_base_license_type?licenseType=\"+licenseType)\r\n }\r\n\r\n public getLicensesFromFormRecommendation(quantity, haveDivar, modelType, expansionLicensesFormQuestions){\r\n let formdata = new FormData()\r\n formdata.append('quantity', quantity)\r\n formdata.append('haveDivar', haveDivar)\r\n formdata.append('modelType', modelType)\r\n formdata.append('expansionLicensesFormQuestions', JSON.stringify(expansionLicensesFormQuestions))\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+ \"/licenses/get_licenses_from_form_recommendation\", formdata)\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectManagerService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public exportProject(data, exportName){\r\n let formdata = new FormData()\r\n formdata.append(\"data\", JSON.stringify(data))\r\n formdata.append(\"step\", sessionStorage.getItem('currentStep'))\r\n formdata.append(\"exportName\", exportName)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/project_manager/export\", formdata, {responseType: 'blob'});\r\n }\r\n\r\n public uploadProject(projectFile){\r\n let formdata = new FormData()\r\n formdata.append('project', projectFile[0])\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server + \"/project_manager/upload\", formdata)\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScenesService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getScenes(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/scenes\")\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { element } from 'protractor';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SetUpTypeService {\r\n\r\n setUpTypeTrigger = new Subject();\r\n private setUpType = ''\r\n private cloudType = ''\r\n private cloudRetentionTime\r\n private storageValues = new Array()\r\n\r\n constructor(){\r\n }\r\n\r\n setSetUpType(value){\r\n this.setUpType = value\r\n let products = JSON.parse(sessionStorage.getItem('productsSelected'))\r\n products.setUpType = value\r\n sessionStorage.setItem('productsSelected', JSON.stringify(products))\r\n }\r\n\r\n getSetUpType(){\r\n return this.setUpType\r\n }\r\n\r\n setCloudType(value){\r\n this.cloudType = value\r\n }\r\n\r\n getCloudType(){\r\n return this.cloudType\r\n }\r\n\r\n setCloudRetentionTime(value){\r\n this.cloudRetentionTime = value\r\n }\r\n\r\n getCloudRetentionType(){\r\n return this.cloudRetentionTime\r\n }\r\n\r\n setStorageValues(value){\r\n let index = this.storageValues.findIndex(x => x.ctn == value.ctn && x.group == value.group)\r\n\r\n if(index != -1){\r\n this.storageValues[index] = value\r\n }\r\n else{\r\n this.storageValues.push(value)\r\n }\r\n }\r\n\r\n getStorageValues(){\r\n return this.storageValues\r\n }\r\n\r\n cleanStorageVlaues(){\r\n this. storageValues = new Array()\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StoragesService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public geRecommendedStorages(raid, storageNeeded, quantityOfCameras){\r\n let formData = new FormData()\r\n formData.append(\"raidVersion\", raid)\r\n formData.append(\"storageNeeded\", storageNeeded)\r\n formData.append(\"quantityOfCameras\", quantityOfCameras)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/storages/recommendation\", formData)\r\n }\r\n\r\n public getStorages(raid){\r\n let formData = new FormData()\r\n formData.append(\"raidVersion\", raid)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/storages\", formData)\r\n }\r\n\r\n public getScenes(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/storages/scenes\")\r\n }\r\n\r\n public getRaidVersions(){\r\n return this.http.get(Environment.Storage_Calculator_Server+\"/storages/raids\")\r\n }\r\n\r\n public getCustomRecommendedStorages(raid, storageNeeded, quantityOfCameras, storageCtn){\r\n let formData = new FormData()\r\n formData.append(\"raidVersion\", raid)\r\n formData.append(\"storageNeeded\", storageNeeded)\r\n formData.append(\"quantityOfCameras\", quantityOfCameras)\r\n formData.append(\"storageCtn\", storageCtn)\r\n\r\n return this.http.post(Environment.Storage_Calculator_Server+\"/storages/custom_recommendation\", formData)\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Environment } from 'src/app/environments';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SummaryService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public removeUnnecesarryAttributes(cameras){\r\n return new Promise((resolve, reject) => {\r\n\r\n cameras.forEach((element,index) => {\r\n delete element.accessories\r\n delete element.bitrates_values\r\n\r\n if(index == cameras.length-1) resolve(cameras)\r\n });\r\n\r\n })\r\n }\r\n \r\n}\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};\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';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 26431,\n\t\"./af.js\": 26431,\n\t\"./ar\": 81286,\n\t\"./ar-dz\": 1616,\n\t\"./ar-dz.js\": 1616,\n\t\"./ar-kw\": 9759,\n\t\"./ar-kw.js\": 9759,\n\t\"./ar-ly\": 43160,\n\t\"./ar-ly.js\": 43160,\n\t\"./ar-ma\": 62551,\n\t\"./ar-ma.js\": 62551,\n\t\"./ar-sa\": 79989,\n\t\"./ar-sa.js\": 79989,\n\t\"./ar-tn\": 6962,\n\t\"./ar-tn.js\": 6962,\n\t\"./ar.js\": 81286,\n\t\"./az\": 15887,\n\t\"./az.js\": 15887,\n\t\"./be\": 14572,\n\t\"./be.js\": 14572,\n\t\"./bg\": 3276,\n\t\"./bg.js\": 3276,\n\t\"./bm\": 93344,\n\t\"./bm.js\": 93344,\n\t\"./bn\": 58985,\n\t\"./bn-bd\": 83990,\n\t\"./bn-bd.js\": 83990,\n\t\"./bn.js\": 58985,\n\t\"./bo\": 94391,\n\t\"./bo.js\": 94391,\n\t\"./br\": 46728,\n\t\"./br.js\": 46728,\n\t\"./bs\": 5536,\n\t\"./bs.js\": 5536,\n\t\"./ca\": 41043,\n\t\"./ca.js\": 41043,\n\t\"./cs\": 70420,\n\t\"./cs.js\": 70420,\n\t\"./cv\": 33513,\n\t\"./cv.js\": 33513,\n\t\"./cy\": 6771,\n\t\"./cy.js\": 6771,\n\t\"./da\": 47978,\n\t\"./da.js\": 47978,\n\t\"./de\": 46061,\n\t\"./de-at\": 25204,\n\t\"./de-at.js\": 25204,\n\t\"./de-ch\": 2653,\n\t\"./de-ch.js\": 2653,\n\t\"./de.js\": 46061,\n\t\"./dv\": 85,\n\t\"./dv.js\": 85,\n\t\"./el\": 8579,\n\t\"./el.js\": 8579,\n\t\"./en-au\": 25724,\n\t\"./en-au.js\": 25724,\n\t\"./en-ca\": 10525,\n\t\"./en-ca.js\": 10525,\n\t\"./en-gb\": 52847,\n\t\"./en-gb.js\": 52847,\n\t\"./en-ie\": 67216,\n\t\"./en-ie.js\": 67216,\n\t\"./en-il\": 39305,\n\t\"./en-il.js\": 39305,\n\t\"./en-in\": 73364,\n\t\"./en-in.js\": 73364,\n\t\"./en-nz\": 79130,\n\t\"./en-nz.js\": 79130,\n\t\"./en-sg\": 11161,\n\t\"./en-sg.js\": 11161,\n\t\"./eo\": 50802,\n\t\"./eo.js\": 50802,\n\t\"./es\": 40328,\n\t\"./es-do\": 45551,\n\t\"./es-do.js\": 45551,\n\t\"./es-mx\": 75615,\n\t\"./es-mx.js\": 75615,\n\t\"./es-us\": 64790,\n\t\"./es-us.js\": 64790,\n\t\"./es.js\": 40328,\n\t\"./et\": 96389,\n\t\"./et.js\": 96389,\n\t\"./eu\": 52961,\n\t\"./eu.js\": 52961,\n\t\"./fa\": 26151,\n\t\"./fa.js\": 26151,\n\t\"./fi\": 7997,\n\t\"./fi.js\": 7997,\n\t\"./fil\": 58898,\n\t\"./fil.js\": 58898,\n\t\"./fo\": 37779,\n\t\"./fo.js\": 37779,\n\t\"./fr\": 28174,\n\t\"./fr-ca\": 3287,\n\t\"./fr-ca.js\": 3287,\n\t\"./fr-ch\": 38867,\n\t\"./fr-ch.js\": 38867,\n\t\"./fr.js\": 28174,\n\t\"./fy\": 50452,\n\t\"./fy.js\": 50452,\n\t\"./ga\": 45014,\n\t\"./ga.js\": 45014,\n\t\"./gd\": 74127,\n\t\"./gd.js\": 74127,\n\t\"./gl\": 72124,\n\t\"./gl.js\": 72124,\n\t\"./gom-deva\": 6444,\n\t\"./gom-deva.js\": 6444,\n\t\"./gom-latn\": 37953,\n\t\"./gom-latn.js\": 37953,\n\t\"./gu\": 76604,\n\t\"./gu.js\": 76604,\n\t\"./he\": 1222,\n\t\"./he.js\": 1222,\n\t\"./hi\": 74235,\n\t\"./hi.js\": 74235,\n\t\"./hr\": 622,\n\t\"./hr.js\": 622,\n\t\"./hu\": 37735,\n\t\"./hu.js\": 37735,\n\t\"./hy-am\": 90402,\n\t\"./hy-am.js\": 90402,\n\t\"./id\": 59187,\n\t\"./id.js\": 59187,\n\t\"./is\": 30536,\n\t\"./is.js\": 30536,\n\t\"./it\": 35007,\n\t\"./it-ch\": 94667,\n\t\"./it-ch.js\": 94667,\n\t\"./it.js\": 35007,\n\t\"./ja\": 62093,\n\t\"./ja.js\": 62093,\n\t\"./jv\": 80059,\n\t\"./jv.js\": 80059,\n\t\"./ka\": 66870,\n\t\"./ka.js\": 66870,\n\t\"./kk\": 80880,\n\t\"./kk.js\": 80880,\n\t\"./km\": 1083,\n\t\"./km.js\": 1083,\n\t\"./kn\": 68785,\n\t\"./kn.js\": 68785,\n\t\"./ko\": 21721,\n\t\"./ko.js\": 21721,\n\t\"./ku\": 37851,\n\t\"./ku.js\": 37851,\n\t\"./ky\": 1727,\n\t\"./ky.js\": 1727,\n\t\"./lb\": 40346,\n\t\"./lb.js\": 40346,\n\t\"./lo\": 93002,\n\t\"./lo.js\": 93002,\n\t\"./lt\": 64035,\n\t\"./lt.js\": 64035,\n\t\"./lv\": 56927,\n\t\"./lv.js\": 56927,\n\t\"./me\": 5634,\n\t\"./me.js\": 5634,\n\t\"./mi\": 94173,\n\t\"./mi.js\": 94173,\n\t\"./mk\": 86320,\n\t\"./mk.js\": 86320,\n\t\"./ml\": 11705,\n\t\"./ml.js\": 11705,\n\t\"./mn\": 31062,\n\t\"./mn.js\": 31062,\n\t\"./mr\": 92805,\n\t\"./mr.js\": 92805,\n\t\"./ms\": 11341,\n\t\"./ms-my\": 59900,\n\t\"./ms-my.js\": 59900,\n\t\"./ms.js\": 11341,\n\t\"./mt\": 37734,\n\t\"./mt.js\": 37734,\n\t\"./my\": 19034,\n\t\"./my.js\": 19034,\n\t\"./nb\": 9324,\n\t\"./nb.js\": 9324,\n\t\"./ne\": 46495,\n\t\"./ne.js\": 46495,\n\t\"./nl\": 70673,\n\t\"./nl-be\": 76272,\n\t\"./nl-be.js\": 76272,\n\t\"./nl.js\": 70673,\n\t\"./nn\": 72486,\n\t\"./nn.js\": 72486,\n\t\"./oc-lnc\": 46219,\n\t\"./oc-lnc.js\": 46219,\n\t\"./pa-in\": 2829,\n\t\"./pa-in.js\": 2829,\n\t\"./pl\": 78444,\n\t\"./pl.js\": 78444,\n\t\"./pt\": 53170,\n\t\"./pt-br\": 66117,\n\t\"./pt-br.js\": 66117,\n\t\"./pt.js\": 53170,\n\t\"./ro\": 96587,\n\t\"./ro.js\": 96587,\n\t\"./ru\": 39264,\n\t\"./ru.js\": 39264,\n\t\"./sd\": 42135,\n\t\"./sd.js\": 42135,\n\t\"./se\": 95366,\n\t\"./se.js\": 95366,\n\t\"./si\": 93379,\n\t\"./si.js\": 93379,\n\t\"./sk\": 46143,\n\t\"./sk.js\": 46143,\n\t\"./sl\": 196,\n\t\"./sl.js\": 196,\n\t\"./sq\": 21082,\n\t\"./sq.js\": 21082,\n\t\"./sr\": 91621,\n\t\"./sr-cyrl\": 98963,\n\t\"./sr-cyrl.js\": 98963,\n\t\"./sr.js\": 91621,\n\t\"./ss\": 41404,\n\t\"./ss.js\": 41404,\n\t\"./sv\": 55685,\n\t\"./sv.js\": 55685,\n\t\"./sw\": 3872,\n\t\"./sw.js\": 3872,\n\t\"./ta\": 54106,\n\t\"./ta.js\": 54106,\n\t\"./te\": 39204,\n\t\"./te.js\": 39204,\n\t\"./tet\": 83692,\n\t\"./tet.js\": 83692,\n\t\"./tg\": 86361,\n\t\"./tg.js\": 86361,\n\t\"./th\": 31735,\n\t\"./th.js\": 31735,\n\t\"./tk\": 1568,\n\t\"./tk.js\": 1568,\n\t\"./tl-ph\": 96129,\n\t\"./tl-ph.js\": 96129,\n\t\"./tlh\": 13759,\n\t\"./tlh.js\": 13759,\n\t\"./tr\": 81644,\n\t\"./tr.js\": 81644,\n\t\"./tzl\": 90875,\n\t\"./tzl.js\": 90875,\n\t\"./tzm\": 16878,\n\t\"./tzm-latn\": 11041,\n\t\"./tzm-latn.js\": 11041,\n\t\"./tzm.js\": 16878,\n\t\"./ug-cn\": 74357,\n\t\"./ug-cn.js\": 74357,\n\t\"./uk\": 74810,\n\t\"./uk.js\": 74810,\n\t\"./ur\": 86794,\n\t\"./ur.js\": 86794,\n\t\"./uz\": 28966,\n\t\"./uz-latn\": 77959,\n\t\"./uz-latn.js\": 77959,\n\t\"./uz.js\": 28966,\n\t\"./vi\": 35386,\n\t\"./vi.js\": 35386,\n\t\"./x-pseudo\": 23156,\n\t\"./x-pseudo.js\": 23156,\n\t\"./yo\": 68028,\n\t\"./yo.js\": 68028,\n\t\"./zh-cn\": 9330,\n\t\"./zh-cn.js\": 9330,\n\t\"./zh-hk\": 89380,\n\t\"./zh-hk.js\": 89380,\n\t\"./zh-mo\": 60874,\n\t\"./zh-mo.js\": 60874,\n\t\"./zh-tw\": 96508,\n\t\"./zh-tw.js\": 96508\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 = 46700;"],"sourceRoot":"webpack:///"}