{"version":3,"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions: {}|namespace object","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/components/camera-product-item/camera-product-item.component.html","webpack:///src/app/components/camera-product-item/camera-product-item.component.ts","webpack:///src/app/components/camera-selector/camera-selector.component.html","webpack:///src/app/components/camera-selector/camera-selector.component.ts","webpack:///src/app/components/disclaimer/disclaimer.component.ts","webpack:///src/app/components/disclaimer/disclaimer.component.html","webpack:///src/app/components/footer/footer.component.ts","webpack:///src/app/components/footer/footer.component.html","webpack:///src/app/components/header/header.component.ts","webpack:///src/app/components/header/header.component.html","webpack:///src/app/components/license-item/license-item.component.html","webpack:///src/app/components/license-item/license-item.component.ts","webpack:///src/app/components/licenses/licenses.component.html","webpack:///src/app/components/licenses/licenses.component.ts","webpack:///src/app/components/progress-bar/progress-bar.component.html","webpack:///src/app/components/progress-bar/progress-bar.component.ts","webpack:///src/app/components/recommended-storage-item/recommended-storage-item.component.html","webpack:///src/app/components/recommended-storage-item/recommended-storage-item.component.ts","webpack:///src/app/components/recommended-storage/recommended-storage.component.html","webpack:///src/app/components/recommended-storage/recommended-storage.component.ts","webpack:///src/app/components/scene-details/scene-details.component.html","webpack:///src/app/components/scene-details/scene-details.component.ts","webpack:///src/app/components/storage-calculator-camera-item/storage-calculator-camera-item.component.html","webpack:///src/app/components/storage-calculator-camera-item/storage-calculator-camera-item.component.ts","webpack:///src/app/components/storage-calculator-group/storage-calculator-group.component.html","webpack:///src/app/components/storage-calculator-group/storage-calculator-group.component.ts","webpack:///src/app/components/storage-calculator/storage-calculator.component.html","webpack:///src/app/components/storage-calculator/storage-calculator.component.ts","webpack:///src/app/components/summary/summary.component.html","webpack:///src/app/components/summary/summary.component.ts","webpack:///src/app/components/teaser/teaser.component.ts","webpack:///src/app/components/teaser/teaser.component.html","webpack:///src/app/components/video-player/video-player.component.ts","webpack:///src/app/components/video-player/video-player.component.html","webpack:///src/app/environments.ts","webpack:///src/app/services/calculator/calculator.service.ts","webpack:///src/app/services/cameras/cameras.service.ts","webpack:///src/app/services/licenses/licenses.service.ts","webpack:///src/app/services/project_manager/project-manager.service.ts","webpack:///src/app/services/scenes/scenes.service.ts","webpack:///src/app/services/set_up_type/set-up-type.service.ts","webpack:///src/app/services/storages/storages.service.ts","webpack:///src/app/services/summary/summary.service.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///node_modules/moment/locale|sync|/^/.*$"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","routes","path","component","StorageCalculatorComponent","pathMatch","RecommendedStorageComponent","LicensesComponent","SummaryComponent","DisclaimerComponent","SceneDetailsComponent","CameraSelectorComponent","AppRoutingModule","RouterModule","relativeLinkResolution","AppComponent","notifier","translate","modalService","router","title","spinner","disclaimerMessage","setDefaultLang","Environment","console","log","key","reject","get","subscribe","data","type","message","show","template","successNotification","infoNotification","warningNotification","errorNotification","sessionStorage","getItem","open","siteDisclaimer","result","setItem","customNotifierOptions","position","horizontal","distance","vertical","gap","theme","behaviour","autoHide","onClick","onMouseover","showDismissButton","stacking","animations","enabled","preset","speed","easing","hide","offset","shift","overlap","AppModule","ModalService","BrowserModule","RbUiComponentsModule","NotifierModule","NgxPaginationModule","FormsModule","HttpClientModule","TranslateModule","loader","provide","TranslateLoader","useFactory","HttpLoaderFactory","deps","HttpClient","VgCoreModule","VgControlsModule","VgOverlayPlayModule","VgBufferingModule","HeaderComponent","FooterComponent","TeaserComponent","ProgressBarComponent","CameraProductItemComponent","StorageCalculatorCameraItemComponent","RecommendedStorageItemComponent","LicenseItemComponent","StorageCalculatorGroupComponent","VideoPlayerComponent","http","TranslateHttpLoader","window","location","origin","notificationService","setUpTypeService","results","EventEmitter","added","quantityInput","isCero","getCameraInfo","producsSelected","JSON","parse","index","cameras","findIndex","x","ctn","Quantity","checkAddedProduct","stringify","emit","camera","getTranslateValue","showCustomNotification","camerasArray","input","document","getElementById","children","parseInt","value","childrens","accessories","bitrates_values","length","getSetUpType","getElementsByClassName","className","replace","push","checkFollowingStep","splice","name","camerasSelected","step","content","AddQuantity","enableRipple","camerasService","page","total","itemPerPage","itemPerPageLabel","paginationSize","chunkItems","test","range","resolution","weather","impactProtection","lensFocalLength","videoAnalytic","integratedIRIllumination","search","types","ranges","resolutions","weathers","impactProtections","lensFocalLengths","videoAnalytics","arrayCam","totalCameras","projectName","integrator","getAllCameras","res","productsSelected","projectDetails","chunk","arr","size","reduce","acc","_","i","slice","err","initFilters","getTypes","getRanges","getResolutions","getWeatherOptions","getImpactProtectionOptions","getLensFocalLengthOptions","getVideoAnalyticsOptions","childResult","getFilterCameras","dropdown","forEach","element","expanders","includes","click","navigate","skipLocationChange","body","scrollTop","documentElement","moveToDisclaimerPage","backToTop","languages","language","getJSON","localStorage","undefined","removeItem","enableStepsWithUploadProject","showSiteDisclaimer","getRandom","collection","setInterval","logo","href","removeAttribute","use","url","Math","floor","pow","random","steps","currentStep","Number","licenseService","baseLicense","quantityRecommended","quantityAdded","addLicenseButton","openExpander","updateChildTrigger","action","getLicense","licenses","licensesProductSelected","index2","license","max_channels","Infinity","quantity","checkLicenseAdded","setTimeout","addBackgroudColorToSelectedExpander","getElementsByTagName","divElement","ctnExpander","innerText","split","style","backgroundColor","additionalBaseLicense","sum","find","checkExpansionLicense","divar_model","addLicense","recommendationLicenses","baseLicenses","optionalLicenses","expansionLicenses","openBaseLicenseExpander","openExpansionLicenseExpander","openOptionalLicenseExpander","hasChanges","updateChildValues","disableRemoveAllButton","setUpType","disableCloudWhenLicensesEmpty","showLicensesSection","useBVMS","showBVMSAllTypes","licenseType","wantExpansionLicenses","expansionLicensesFormQuestions","disableSearchLicensesButtonFromForm","existDivar","checkReturnInitialView","initView","existDivarInStorageAdded","response","recording","getAllLicenses","getTotalCameras","getAllCloudLicenses","getStorageValues","getCloudLicensesRecommendation","removeLicensesRecommendedDuplicatesFromLicensesList","checkOpenExpanders","enableOrDisableFollowingStep","checkIfSomeLicensesAreAdded","resultLicense","getExpansionLicensesByBaseLicense","forDivarLicense","getExpansionLicenses","concat","filter","checkQuantityOfLicenseAdded","camerasTotal","quantityOfLicensesAdded","channels","child","indexChild","divar","divarModel","storages","toLowerCase","startsWith","positionOptional","positionBase","positionExpansion","licensesToNotify","temp","indexLicense","removeAllAddedLicenses","getExpansionLicensesQuestionsByBaseLicenseType","getLicensesRecommendation","getBaseLicenses","existDivarLicense","requestedLicenses","request","requestedLicensesQuantity","getLicensesFromFormRecommendation","openModal","projectManagerService","previousArrowSection","nextArrowSection","projectFile","uploadFileButtonDisable","uploadMessageError","uploadMessageErrorText","uploadProjectValue","exportName","isStorageCalculationTab","setUpTypeOptions","tempSetUpType","showSetUpType","setSetUpType","setCloudType","raid","setCloudRetentionTime","retentionTime","checkCurrentStep","newStep","saveSetUpType","moveToStep","restartButton","changeCurrentStep","modalName","restartProject","exportProject","resetProjectToNewSetUp","showSpinner","toPromise","blob","fileName","format","saveAs","event","target","files","uploadProject","error","setUpTypeTrigger","next","bandwidthNeeded","enableUpdated","setUpTypeModal","storageAdded","storageNeeded","showModal","storageService","typeStorage","raidVersion","addStorageButton","elementStorageAdded","getStorage","checkProductAdded","storagesArray","storagesSelected","storage","capacityDetails","capacity","checkNonDiskStorageAdded","recordingsSelected","raidSupported","getCustomRecommendedStorages","bandwidth","camerasBandwidth","storageBandwidth","storageArray","recommededStorages","raidOptions","getRaidVersions","bandwidthCameras","nonDiskAdded","getStorages","geRecommendedStorages","removeStoragesRecommendedDuplicatesFromStorageList","checkIfSomeStoragesAreAdded","nonDiskStorage","getTotalStorageAdded","productSelected","bandwidthResult","bandwidthTotal","parseFloat","toFixed","neededStorage","toUpperCase","currentStorage","neededStorageInBytes","convertToBytes","currentStorageInBytes","checkStorageAdded","unit","byteConverter","convert","storagesToNotify","indexStorage","removeAllAddedStoragesDevices","recordings","src","scenesService","videoScenes","getScenes","$event","calculatorService","timeOutRunning","groupNameLabel","configurationType","hours","profile","platform","codec","framerate","audio","metadata","sanityCheckDays","vrmDowntimeDays","has_60_framerate","maxResolutionSupported","lenses","livestream","segmentByHours","overheadCheckbox","overhead","multiLensesAdvancedConfigCheckbox","platformDisable","codecDisable","resolutionDisable","audioDisable","metadataDisable","sanityCheckDisable","vrmDowntimeDisable","frameratesDisable","advancedConfigurationOption","profilesOptions","platformOptions","codecOptions","resolutionOptions","audioOptions","metadataOptions","sanityCheckDaysOptions","frameratesOptions","cloudStorageRetentionTimeOptions","label","profileBackup","codecBackup","resolutionBackup","multiLenses","segmentRanges","segmentQuantity","segmentRefresh","disableMultiGeneralParams","disableSanityCheck","disableVRMDowntime","disableCodec","sceneTooltip","sceneTooltipValues","tooltip","groupName","initSanityCheckDaysOptions","getProfiles","setUpTypeSubscription","unsubscribe","raidVersionChild","setBasicConfiguration","retentionTimeChild","subElement","validateSanityCheckDays","updateGeneralMultiLensInputs","getSpecificSceneTooltip","validatePickersChanges","pickersChanges","getFramerates","field","indexMultiRange","inputID","currentTarget","number","removeErrorStyle","disableOrEnableFollowingSteps","indexLoop","change","calculateStorage","setStorageValues","indexRange","group","cloudMaxOvercomeDisclaimer","getMultiLensBandwidthAndStorage","getSegmentRangesBandwidthAndStorage","getMultiSegmentRangesBandwidthAndStorage","products","codecs","max_resolution","advancedMultiLensesConfigurationChange","initSegmentRangesVariables","indexMulti","control","setErrors","customValidationOver24","customValidation","markAsTouched","markAsDirty","inputId","errorClassName","divClassName","segmentRangesPickersChanges","initMultiLensesVariables","lens","multiLensesPickersChanges","multiSegmentRangesPickersChanges","addNewRange","getRangesHours","rangeNumber","refresh","lessOf24HoursInRanges","addNewMultiRange","rangeIndex","getMultiRangesHours","lessOf24HoursInMultiRanges","elementRange","onPopState","history","pushState","scene","renameGroup","resultsParent","items","quantityOfCameras","addNewGroup","getTotalOfCameras","storageResult","cloudStorageType","cloudOptions","getCloudType","getCloudRetentionType","sessionBackUp","cleanStorageVlaues","updateCamerasSelected","calculateFinalStorage","isNecessaryRecommendationsReset","sessionProducts","storageValue","bandwidthValue","stepQuantity","checkAllCamerasHaveStorage","allCamerasHaveStorage","cloudType","checkIfHaveCamerasSelected","getAddedCamerasInfo","camerasInfo","getAddedStoragesDevicesInfo","storagesInfo","button","buttonConfirmReset","nativeElement","getAddedLicensesInfo","licensesInfo","resetRecommendations","keepPreviousConfig","summaryService","image","formData","FormData","append","post","responseType","colorClass","setColorClass","color","environmentURL","Storage_Calculator_Server","Base_URL","env","CalculatorService","activeChannelsOfCamera","formdata","has60framerate","CamerasService","LicensesService","expansionQuantity","baseQuantity","licensesData","haveDivar","modelType","ProjectManagerService","ScenesService","SetUpTypeService","Subject","storageValues","Array","cloudRetentionTime","StoragesService","storageCtn","SummaryService","environment","production","enableProdMode","platformBrowser","bootstrapModule","map","webpackContext","webpackContextResolve","__webpack_require__","o","webpackContextKeys","Object"],"mappings":"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","file":"main-es5.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","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\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 { 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","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","
\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 { 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
\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\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","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","\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
","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
\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","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n\r\n \r\n
  • \r\n \r\n
  • \r\n\r\n \r\n \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n\r\n \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n \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, 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 {{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 { 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\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
","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
\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","\r\n \r\n \r\n \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 { 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 \"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, 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
\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, 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 {{ '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, 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","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;"]}