{"version":3,"file":"main.js","mappings":"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Ae,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/abstractions/unsubscription-handler.class.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.initializer.ts","./src/app/app.module.ts","./src/app/components/core/notification-snackbar/notification-snackbar.component.ts","./src/app/components/core/notification-snackbar/notification-snackbar.component.html","./src/app/components/core/spinner/spinner.component.ts","./src/app/components/core/spinner/spinner.component.html","./src/app/components/core/spinner/spinner.module.ts","./src/app/core/activable-card/activable-card-group.ts","./src/app/core/activable-card/activable-card.component.ts","./src/app/core/activable-card/activable-card.component.html","./src/app/core/core.module.ts","./src/app/core/fullscreen/fullscreen.component.ts","./src/app/core/fullscreen/fullscreen.component.html","./src/app/core/generic-ms-list/generic-ms-list.component.ts","./src/app/core/generic-ms-list/generic-ms-list.component.html","./src/app/core/material.module.ts","./src/app/core/search-bar/search-bar.component.ts","./src/app/core/search-bar/search-bar.component.html","./src/app/core/sidebar/sidebar.component.ts","./src/app/core/sidebar/sidebar.component.html","./src/app/core/sidemenu-item/sidemenu-item.component.ts","./src/app/core/sidemenu-item/sidemenu-item.component.html","./src/app/core/sidemenu/sidemenu.component.ts","./src/app/core/sidemenu/sidemenu.component.html","./src/app/core/toolbar/toolbar.component.ts","./src/app/core/toolbar/toolbar.component.html","./src/app/core/user-menu/user-menu.component.ts","./src/app/core/user-menu/user-menu.component.html","./src/app/core/validation-error/validation-error.component.ts","./src/app/directives/directives.module.ts","./src/app/directives/dynamic-directive/dynamic.directive.ts","./src/app/directives/format-number/fomat-number.directive.ts","./src/app/lazy-load/lazy-load.module.ts","./src/app/models/audit.model.ts","./src/app/models/environment-configuration.ts","./src/app/models/response.model.ts","./src/app/models/time-window.model.ts","./src/app/pipes/coordinate/coordinate.pipe.ts","./src/app/pipes/exceeded/exceeded.pipe.ts","./src/app/pipes/filter/filter.pipe.ts","./src/app/pipes/math-round/math-round.pipe.ts","./src/app/pipes/pipes.module.ts","./src/app/pipes/remove-underscore/remove-underscore.pipe.ts","./src/app/pipes/safe-html/safe-html.pipe.ts","./src/app/pipes/safe-url/safe-url.pipe.ts","./src/app/pipes/selection-keeper/selection-keeper.pipe.ts","./src/app/pipes/truncate-url/truncate-url.pipe.ts","./src/app/services/api/api.const.ts","./src/app/services/api/cube/cube.api.service.ts","./src/app/services/api/report-file/report-file.service.ts","./src/app/services/api/user/user.api.service.ts","./src/app/services/auth-guard/auth-guard.service.ts","./src/app/services/cube/cube.service.ts","./src/app/services/index.ts","./src/app/services/interceptors/headers.interceptor.ts","./src/app/services/interceptors/tenant.interceptor.ts","./src/app/services/storage/storage.service.ts","./src/app/services/theme/theme.service.ts","./src/app/services/user/user.service.ts","./src/app/services/validation/validation.service.ts","./src/app/store/action-types/system.action-types.ts","./src/app/store/actions/system.actions.ts","./src/app/store/effects/system.effects.ts","./src/app/store/index.ts","./src/app/store/reducers/system.reducers.ts","./src/app/store/selectors/system.selectors.ts","./src/environments/commons/base-url-prod.ts","./src/environments/commons/base-url.ts","./src/environments/commons/dias-arvedi.ts","./src/environments/config.ts","./src/environments/environment.ts","./src/environments/global.ts","./src/environments/module.config.ts","./src/environments/version.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$"],"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(() => {\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 = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport abstract class UnsubscriptionHandler implements OnDestroy {\r\n destroy$: Subject = new Subject();\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {fromEvent, Observable} from 'rxjs';\r\nimport { ThemeService } from './services/theme/theme.service';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport {STORAGE_KEYS} from './services/storage/storage.service';\r\nimport {delay, filter, takeUntil} from 'rxjs/operators';\r\nimport {CubeService} from './services';\r\nimport { Store } from '@ngrx/store';\r\nimport { AppState } from './store/states/app.state';\r\nimport { selectLoading, selectNotifications } from './store/selectors/system.selectors';\r\nimport { UnsubscriptionHandler } from './abstractions/unsubscription-handler.class';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { SystemNotification } from './components/core/notification-snackbar/models/system-notification.class';\r\nimport { NotificationSnackbarComponent } from './components/core/notification-snackbar/notification-snackbar.component';\r\n\r\n@Component({\r\n selector: 'cube-app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n})\r\nexport class AppComponent extends UnsubscriptionHandler implements OnInit {\r\n isDarkTheme: boolean;\r\n loading$: Observable;\r\n\r\n constructor(\r\n translate: TranslateService,\r\n private overlayContainer: OverlayContainer,\r\n private themeService: ThemeService,\r\n private cubeService: CubeService,\r\n private readonly store: Store,\r\n private readonly snackbar: MatSnackBar\r\n ) {\r\n super();\r\n // this language will be used as a fallback when a translation isn't found in the current language\r\n translate.setDefaultLang('en');\r\n // a cosa serve?\r\n // this.title.setTitle(environment.SOLUTION === Solutions.FLEET40 ? 'RINA FLEET' : 'CUBE - OPTIMUM');\r\n\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n localStorage.setItem(STORAGE_KEYS.localTimeFormat, translate.getBrowserLang());\r\n const browserLang = translate.getBrowserLang();\r\n translate.use(browserLang.match(/en|it/) ? browserLang : 'en');\r\n\r\n this.loading$ = this.store.select(selectLoading).pipe(delay(500));\r\n }\r\n\r\n getRouteAnimation(outlet): void {\r\n return outlet.activatedRouteData.animation;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.themeService.isDarkTheme.pipe(takeUntil(this.destroy$)).subscribe((isDark) => {\r\n this.isDarkTheme = isDark;\r\n this.overlayContainer.getContainerElement().classList.remove(isDark ? 'light-theme' : 'dark-theme');\r\n this.overlayContainer.getContainerElement().classList.add(!isDark ? 'light-theme' : 'dark-theme');\r\n })\r\n\r\n fromEvent(window, 'storage')\r\n .pipe(filter((ev: StorageEvent) => ev.key === STORAGE_KEYS.currentTenant), takeUntil(this.destroy$))\r\n .subscribe((storageEvent: StorageEvent) => {\r\n this.cubeService.cleanCache();\r\n window.location.reload();\r\n });\r\n\r\n this.store.select(selectNotifications).pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (notification: SystemNotification | undefined): void => {\r\n if (notification) {\r\n const { duration, horizontalPosition, verticalPosition, panelClass, data } = notification.options;\r\n const snackBarConfig: MatSnackBarConfig = {\r\n duration,\r\n horizontalPosition,\r\n verticalPosition,\r\n panelClass,\r\n data,\r\n };\r\n\r\n this.snackbar.openFromComponent(NotificationSnackbarComponent, snackBarConfig);\r\n }\r\n },\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\t\r\n
","import {KeycloakOptions, KeycloakService} from 'keycloak-angular';\r\nimport { User } from './models/user.model';\r\nimport {CubeService, UserService} from './services';\r\nimport {PROFILE_NOT_VALID, TENANT_CONFIG} from '../environments/config';\r\nimport {UserApiService} from './services/api/user/user.api.service';\r\nimport {STORAGE_KEYS} from './services/storage/storage.service';\r\nimport {environment} from '../environments/environment';\r\nimport {CubeApiService} from './services/api/cube/cube.api.service';\r\n\r\n// https://medium.com/@gmurop/managing-dependencies-among-app-initializers-in-angular-652be4afce6f\r\n// https://www.intertech.com/Blog/angular-4-tutorial-run-code-during-app-initialization/\r\n\r\nexport function authInitializer(\r\n keycloakService: KeycloakService,\r\n userService: UserService,\r\n userApiService: UserApiService,\r\n cubeService: CubeService,\r\n cubeApiService: CubeApiService): () => Promise {\r\n try {\r\n return (): Promise =>\r\n initKC(\r\n keycloakService,\r\n userService,\r\n userApiService,\r\n cubeService,\r\n cubeApiService).catch(reason => {\r\n if (reason === PROFILE_NOT_VALID) {\r\n window.location.href = '//cube.rina.org';\r\n }\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n}\r\n\r\nfunction initKC(\r\n keycloakService: KeycloakService,\r\n userService: UserService,\r\n userApiService: UserApiService,\r\n cubeService: CubeService,\r\n cubeApiService: CubeApiService): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n const kcOption: KeycloakOptions = {\r\n config: environment.keycloak,\r\n loadUserProfileAtStartUp: false,\r\n initOptions: {\r\n onLoad: 'check-sso',\r\n // silentCheckSsoRedirectUri: window.location.origin + '/assets/silent-check-sso.html'\r\n checkLoginIframe: false\r\n },\r\n bearerPrefix: 'Bearer',\r\n bearerExcludedUrls: environment.auth.bearerExcludedUrls,\r\n };\r\n\r\n const authentication = await keycloakService.init(kcOption);\r\n if (authentication) {\r\n const [kcUser, token, instance] = await Promise.all([\r\n keycloakService.loadUserProfile(),\r\n keycloakService.getToken(),\r\n keycloakService.getKeycloakInstance()\r\n ]);\r\n\r\n if (!kcUser) {\r\n throw PROFILE_NOT_VALID;\r\n }\r\n\r\n await userService.configureCurrentTenant(kcUser.username).toPromise();\r\n\r\n const user = kcUser as User;\r\n try {\r\n const userProfile = await userApiService.getProfile(kcUser.username).toPromise();\r\n user.rolesAndModules = [];\r\n userProfile.roles?.forEach(role => user.rolesAndModules.push({ name: role.name, roleModules: [] }));\r\n user.userGroups = userProfile.userGroups.map(e => e.name).sort();\r\n user.assets = userProfile.assets;\r\n user.assetGroups = userProfile.assetGroups;\r\n } catch (e) {\r\n throw PROFILE_NOT_VALID;\r\n }\r\n user.token = token;\r\n user.id = instance.idTokenParsed.sub;\r\n userService.setUser(user);\r\n userService.setActiveRole(\r\n localStorage.getItem(STORAGE_KEYS.activeRole) ||\r\n user.rolesAndModules.find(r => r.name === TENANT_CONFIG.settings.admin_tool?.tags.supervisor)?.name ||\r\n user.rolesAndModules[0]?.name\r\n );\r\n // wait: compose features and scopes of the active role.\r\n await userService.composeRoleFeatures(userService.getActiveRole()).toPromise();\r\n cubeService.configureLocalStorageVariables(token, instance);\r\n return resolve(true);\r\n } else {\r\n keycloakService\r\n .login({ idpHint: TENANT_CONFIG.settings.company?.identityProvider })\r\n .catch(e => console.error(e));\r\n return reject(false);\r\n }\r\n } catch (error) {\r\n return reject(error);\r\n }\r\n });\r\n}\r\n\r\n","import {\r\n Location,\r\n LocationStrategy,\r\n PathLocationStrategy,\r\n} from '@angular/common';\r\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport {\r\n HTTP_INTERCEPTORS,\r\n HttpClient,\r\n HttpClientModule,\r\n} from '@angular/common/http';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\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 { KeycloakAngularModule, KeycloakService } from 'keycloak-angular';\r\n\r\nimport { authInitializer } from './app.initializer';\r\nimport { AppComponent } from './app.component';\r\nimport { CoreModule } from './core/core.module';\r\nimport { LazyLoadModule } from './lazy-load/lazy-load.module';\r\nimport { ThemeService } from './services/theme/theme.service';\r\nimport { CubeService, UserService } from './services';\r\nimport { UserApiService } from './services/api/user/user.api.service';\r\nimport { CubeApiService } from './services/api/cube/cube.api.service';\r\nimport { TenantInterceptor } from './services/interceptors/tenant.interceptor';\r\nimport { HeadersInterceptor } from './services/interceptors/headers.interceptor';\r\n\r\nimport * as store from './store';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { SpinnerModule } from './components/core/spinner/spinner.module';\r\n\r\n// Load translations from \"/assets/i18n/[lang].json\"\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n CoreModule,\r\n BrowserModule,\r\n LazyLoadModule,\r\n HttpClientModule,\r\n KeycloakAngularModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient],\r\n },\r\n }),\r\n StoreModule.forRoot(store.reducers),\r\n EffectsModule.forRoot(store.effects),\r\n StoreDevtoolsModule.instrument(store.devtoolsConfig),\r\n MatSnackBarModule,\r\n SpinnerModule\r\n ],\r\n exports: [TranslateModule],\r\n providers: [\r\n ThemeService,\r\n Location,\r\n {\r\n provide: LocationStrategy,\r\n useClass: PathLocationStrategy,\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: authInitializer,\r\n multi: true,\r\n deps: [\r\n KeycloakService,\r\n UserService,\r\n UserApiService,\r\n CubeService,\r\n CubeApiService,\r\n ],\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TenantInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HeadersInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\r\nimport { SystemNotificationOptionsData } from './models/system-notification.class';\r\n\r\n@Component({\r\n selector: 'cube-notification-snackbar',\r\n templateUrl: './notification-snackbar.component.html',\r\n styleUrls: ['./notification-snackbar.component.scss']\r\n})\r\nexport class NotificationSnackbarComponent {\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public notification: SystemNotificationOptionsData) { }\r\n}\r\n","

{{notification.title}}

\r\n

{{notification.message}}

","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cube-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss']\r\n})\r\nexport class SpinnerComponent {\r\n @Input() diameter = 80;\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\nimport { SpinnerComponent } from './spinner.component';\r\n\r\n@NgModule({\r\n declarations: [SpinnerComponent],\r\n imports: [CommonModule, MatProgressSpinnerModule],\r\n exports: [SpinnerComponent],\r\n})\r\nexport class SpinnerModule {}\r\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({ selector: 'cube-activable-card-group' })\r\nexport class ActivableCardGroupDirective implements AfterViewInit {\r\n @Input() multiple = false;\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n ngAfterViewInit() {\r\n if (!this.multiple) {\r\n Array.from(this.el.nativeElement.querySelectorAll('input')).forEach((value: HTMLInputElement, index) => {\r\n value.type = 'radio';\r\n value.name = 'radio';\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatCheckbox } from '@angular/material/checkbox';\r\n\r\n@Component({\r\n selector: 'cube-activable-card',\r\n templateUrl: './activable-card.component.html',\r\n styleUrls: ['./activable-card.component.scss'],\r\n})\r\nexport class ActivableCardComponent extends MatCheckbox {\r\n @Input() label: any;\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MaterialModule } from './material.module';\r\nimport {\r\n PERFECT_SCROLLBAR_CONFIG,\r\n PerfectScrollbarConfigInterface,\r\n PerfectScrollbarModule,\r\n} from 'ngx-perfect-scrollbar';\r\nimport { LoggerModule } from 'ngx-logger';\r\nimport { MomentModule } from 'ngx-moment';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { SidemenuComponent } from './sidemenu/sidemenu.component';\r\nimport { SidemenuItemComponent } from './sidemenu-item/sidemenu-item.component';\r\nimport { ToolbarComponent } from './toolbar/toolbar.component';\r\nimport { SearchBarComponent } from './search-bar/search-bar.component';\r\nimport { FullscreenComponent } from './fullscreen/fullscreen.component';\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\nimport { UserMenuComponent } from './user-menu/user-menu.component';\r\nimport { PipesModule } from '../pipes/pipes.module';\r\n\r\nimport { environment } from '../../environments/environment';\r\nimport { ActivableCardComponent } from './activable-card/activable-card.component';\r\nimport { ActivableCardGroupDirective } from './activable-card/activable-card-group';\r\nimport { DirectivesModule } from '../directives/directives.module';\r\nimport {GenericMsListComponent} from './generic-ms-list/generic-ms-list.component';\r\nimport {AgGridModule} from '@ag-grid-community/angular';\r\nimport {ValidationErrorComponent} from './validation-error/validation-error.component';\r\nimport {IndeterminateBarModule, MessageService} from '@cube/lib-common';\r\n\r\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n suppressScrollX: true,\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n SidemenuComponent,\r\n SidemenuItemComponent,\r\n ToolbarComponent,\r\n SearchBarComponent,\r\n FullscreenComponent,\r\n SidebarComponent,\r\n UserMenuComponent,\r\n ActivableCardComponent,\r\n ActivableCardGroupDirective,\r\n GenericMsListComponent,\r\n ValidationErrorComponent\r\n ],\r\n imports: [\r\n PerfectScrollbarModule,\r\n CommonModule,\r\n MomentModule,\r\n RouterModule,\r\n PipesModule,\r\n MaterialModule,\r\n FormsModule,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n PerfectScrollbarModule,\r\n DirectivesModule,\r\n AgGridModule,\r\n LoggerModule.forRoot(environment.logger),\r\n IndeterminateBarModule,\r\n ],\r\n exports: [\r\n ActivableCardGroupDirective,\r\n ActivableCardComponent,\r\n SidemenuComponent,\r\n SidemenuItemComponent,\r\n ToolbarComponent,\r\n SearchBarComponent,\r\n FullscreenComponent,\r\n SidebarComponent,\r\n UserMenuComponent,\r\n GenericMsListComponent,\r\n ValidationErrorComponent\r\n ],\r\n providers: [\r\n {\r\n provide: PERFECT_SCROLLBAR_CONFIG,\r\n useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG,\r\n },\r\n MessageService\r\n ],\r\n})\r\nexport class CoreModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as screenfull from 'screenfull';\r\nimport { Screenfull } from 'screenfull';\r\n\r\n// declare var screenfull: any = require('screenfull');\r\n\r\n@Component({\r\n selector: 'cube-fullscreen',\r\n templateUrl: './fullscreen.component.html',\r\n styleUrls: ['./fullscreen.component.scss'],\r\n})\r\nexport class FullscreenComponent implements OnInit {\r\n isFullscreen = false;\r\n screen = screenfull as Screenfull;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n toggleFullscreen() {\r\n if (this.screen.isEnabled) {\r\n this.screen.toggle();\r\n this.isFullscreen = !this.isFullscreen;\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\r\nimport {AllCommunityModules, ColDef, GridOptions} from '@ag-grid-community/all-modules';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {CubeService, MessageType} from '../../services';\r\nimport {TruncateUrlPipe} from '../../pipes/truncate-url/truncate-url.pipe';\r\nimport {ReportFileService} from '../../services/api/report-file/report-file.service';\r\nimport {ResponseMessage} from '../../models/response.model';\r\nimport {TranslateService} from \"@ngx-translate/core\";\r\nimport {Status} from \"../../models/audit.model\";\r\n\r\n@Component({\r\n selector: 'cube-generic-ms-list',\r\n templateUrl: './generic-ms-list.component.html',\r\n styleUrls: ['./generic-ms-list.component.scss']\r\n})\r\nexport class GenericMsListComponent implements OnInit, OnChanges {\r\n @Input() set displayedRows(ms: any[]) {\r\n if (ms) {\r\n this.rowData = ms;\r\n }\r\n }\r\n\r\n @Input() set displayedColumns(cols: any[]) {\r\n if (cols) {\r\n this.columns = cols;\r\n }\r\n }\r\n @Input() rowHeight;\r\n @Output() rowDetails: EventEmitter = new EventEmitter();\r\n @Output() rowToBeEdited: EventEmitter = new EventEmitter();\r\n @Output() rowToBeManaged: EventEmitter = new EventEmitter();\r\n @Output() rowInfo: EventEmitter = new EventEmitter();\r\n\r\n public showLoader = false;\r\n public columns: ColDef[] = [];\r\n public rowData: any[] = [];\r\n public urlsKey = ['pdf_url', 'pdf_notes_url', 'manual_report', 'audit_report', 'audit_attachment_url', 'audit_final_report_url', 'decarbon_pdf_url'];\r\n public modules = AllCommunityModules;\r\n public testGrid: GridOptions = {\r\n tooltipShowDelay: 0,\r\n applyColumnDefOrder: true,\r\n enableBrowserTooltips: true,\r\n getRowStyle: params => {\r\n if (params?.data?.audit_status === Status.revision) {\r\n console.log(params?.data?.audit_status)\r\n return { background: 'rgba(255, 76, 38, 0.3)' };\r\n }\r\n }\r\n };\r\n public defaultColDef = {\r\n resizable: true,\r\n wrapText: true, // <-- HERE\r\n headerValueGetter: (data) => this.translateHeader(data),\r\n };\r\n private gridColumnApi: any;\r\n private gridApi: any;\r\n constructor(private readonly httpClient: HttpClient,\r\n private reportService: ReportFileService,\r\n private cubeService: CubeService,\r\n private translateService: TranslateService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.columns.length && this.rowData.length && this.gridApi) {\r\n this.gridApi.setColumnDefs(this.columns);\r\n this.gridApi.sizeColumnsToFit();\r\n }\r\n }\r\n\r\n autoSize(): void {\r\n const allColumnIds = [];\r\n if (this.gridColumnApi && this.gridColumnApi.getAllColumns()) {\r\n this.gridColumnApi.getAllColumns().forEach(column => {\r\n allColumnIds.push(column.colId);\r\n });\r\n this.gridColumnApi.autoSizeColumns(allColumnIds, false);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onGridReady(event): void {\r\n this.gridApi = event.api;\r\n this.gridColumnApi = event.columnApi;\r\n }\r\n\r\n onCellClicked(event): void {\r\n console.log(event);\r\n if (event?.data && event?.colDef?.field === 'edit' && event?.data?.editable) {\r\n this.rowToBeEdited.emit(event.data);\r\n }\r\n if (event?.data && event?.colDef?.field === 'edit' && !event?.data?.editable) {\r\n this.rowDetails.emit(event.data);\r\n }\r\n if (event?.data && event?.colDef?.field === 'info') {\r\n this.rowDetails.emit(event.data);\r\n }\r\n if (event?.data && event?.colDef?.field === 'manage') {\r\n this.rowToBeManaged.emit(event.data);\r\n }\r\n if (event?.data?.audit_revision_notes && event?.colDef?.field === 'audit_revision_notes') {\r\n this.rowInfo.emit(event.data);\r\n }\r\n if (this.urlsKey.find(url => event?.colDef?.field === url) && event?.data && event?.value) {\r\n this.showLoader = true;\r\n this.reportService.getOfflineFiles('file', null, event?.value).subscribe((resp) => {\r\n if (resp?.message === ResponseMessage.Success) {\r\n this.downloadFile(resp.data, event?.value);\r\n }\r\n });\r\n }\r\n if (event?.data && event?.colDef?.field === 'download-zip') {\r\n this.showLoader = true;\r\n this.reportService.getOfflineFiles('invoice', event?.data?.id, null).subscribe((resp) => {\r\n if (resp?.message === ResponseMessage.Success) {\r\n this.downloadFile(resp?.data, `attachments-${event?.data?.id}.zip`);\r\n }\r\n });\r\n }\r\n }\r\n\r\n downloadFile(downloadUrl: string, fileNameUrl: string): void {\r\n const truncateURL = new TruncateUrlPipe();\r\n const fileName = truncateURL.transform(fileNameUrl);\r\n\r\n this.reportService.downloadFile(downloadUrl).subscribe((response) => {\r\n if (response?.body) {\r\n this.reportService.createObjectUrl(response.body, fileName);\r\n } else {\r\n this.cubeService.showMessage(MessageType.Error, 'Oops! Something went wrong.');\r\n }\r\n this.showLoader = false;\r\n });\r\n }\r\n\r\n translateHeader(data): string {\r\n return this.translateService.instant(data.colDef.headerName);\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { DateAdapter, MatNativeDateModule, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport {\r\n MatMomentDateModule,\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n MAT_MOMENT_DATE_FORMATS,\r\n MomentDateAdapter,\r\n} from '@angular/material-moment-adapter';\r\nimport {FlexModule} from '@angular/flex-layout';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport {ReactiveFormsModule} from '@angular/forms';\r\n\r\n@NgModule({\r\n exports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatMomentDateModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n FlexModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule\r\n ],\r\n declarations: [],\r\n providers: [\r\n { provide: DateAdapter, useClass: MomentDateAdapter },\r\n // { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: MAT_MOMENT_DATE_FORMATS,\r\n /* useValue: {\r\n parse: {\r\n dateInput: ['l', 'LL'],\r\n },\r\n display: {\r\n dateInput: 'L',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n }, */\r\n },\r\n ],\r\n})\r\nexport class MaterialModule {}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { debounceTime, finalize, switchMap, tap } from 'rxjs/operators';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'cube-search-bar',\r\n templateUrl: './search-bar.component.html',\r\n styleUrls: ['./search-bar.component.scss'],\r\n})\r\nexport class SearchBarComponent implements OnInit {\r\n public searchBox: boolean = false;\r\n public isLoading: boolean = false;\r\n public searchForm: FormGroup;\r\n public results: any[] = [];\r\n\r\n @ViewChild('searchInput') searchInput: ElementRef;\r\n\r\n @Input() set open(o: boolean) {\r\n this.searchBox = o;\r\n if (o) {\r\n setTimeout(\r\n function () {\r\n this.searchInput.nativeElement.focus();\r\n }.bind(this),\r\n environment.render_delay\r\n );\r\n }\r\n }\r\n\r\n @Output() search: EventEmitter = new EventEmitter();\r\n\r\n constructor(private fb: FormBuilder) {}\r\n\r\n ngOnInit() {\r\n this.searchForm = this.fb.group({\r\n search: null,\r\n });\r\n\r\n this.searchForm\r\n .get('search')\r\n .valueChanges.pipe(\r\n debounceTime(300),\r\n tap(() => (this.isLoading = true))\r\n // switchMap(value => this.searchService.searchShip(value).pipe(finalize(() => (this.isLoading = false))) )\r\n )\r\n .subscribe((results: any) => {\r\n const filterValue = this.searchForm.get('search').value.toString().toLowerCase();\r\n this.results = results.ships.filter((r: any) => {\r\n return (\r\n r.name.toLowerCase().includes(filterValue) === true || r.imo.toLowerCase().includes(filterValue) === true\r\n );\r\n });\r\n });\r\n }\r\n\r\n displayFn(res: any) {\r\n if (res) {\r\n return res.name;\r\n }\r\n }\r\n\r\n onOptionSelected(e: any) {\r\n if (this.searchBox) {\r\n this.search.emit(e.option.value);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n directions_boat {{res.name}}\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { ThemeService } from '../../services/theme/theme.service';\r\n\r\n@Component({\r\n selector: 'cube-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss'],\r\n})\r\nexport class SidebarComponent implements OnInit {\r\n today: number = Date.now();\r\n\r\n isDarkTheme: Observable;\r\n\r\n constructor(private themeService: ThemeService) {}\r\n\r\n ngOnInit() {\r\n this.isDarkTheme = this.themeService.isDarkTheme;\r\n }\r\n\r\n toggleDarkTheme(checked: boolean) {\r\n this.themeService.setDarkTheme(checked);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
{{today | date:'shortTime'}}
\r\n
{{today | date:'EEEE'}},\r\n {{today | date:'MMMM'}} {{today | date:'dd'}}\r\n
\r\n
\r\n\r\n \r\n\r\n

Upcoming Events

\r\n \r\n \r\n Dark theme\r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cube-sidemenu-item',\r\n templateUrl: './sidemenu-item.component.html',\r\n styleUrls: ['./sidemenu-item.component.scss'],\r\n})\r\nexport class SidemenuItemComponent implements OnInit {\r\n @Input() menu: any;\r\n @Input() iconOnly: boolean;\r\n @Input() secondaryMenu = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n openLink() {\r\n this.menu.open = this.menu.open;\r\n }\r\n\r\n chechForChildMenu() {\r\n return !!(this.menu && this.menu.sub);\r\n }\r\n}\r\n","\r\n\r\n \r\n {{menu.mat_icon}} \r\n \r\n

{{ menu.name }}

\r\n \r\n {{menu?.chip?.value}} \r\n \r\n expand_more\r\n \r\n
\r\n\r\n \r\n {{menu.mat_icon}} \r\n \r\n

{{ menu.name }}

\r\n expand_more\r\n \r\n
\r\n\r\n \r\n
\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { VERSION } from '../../../environments/version';\r\nimport {Subject} from 'rxjs';\r\nimport {CubeService} from '../../services';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'cube-sidemenu',\r\n templateUrl: './sidemenu.component.html',\r\n styleUrls: ['./sidemenu.component.scss'],\r\n})\r\nexport class SidemenuComponent implements OnInit, OnDestroy {\r\n version = VERSION;\r\n protected _destroy$: Subject = new Subject();\r\n\r\n public menus: any;\r\n @Input() iconOnly = false;\r\n\r\n constructor(private cubeService: CubeService) {}\r\n\r\n ngOnInit(): void {\r\n console.log('V:' + this.version.version + '-' + this.version.hash);\r\n this.menus = this.cubeService.getUserMenu();\r\n this.cubeService.changeCubeMenu$.pipe(takeUntil(this._destroy$)).subscribe(s => {\r\n this.menus = this.cubeService.getUserMenu();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete(); }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
{{version.version}}
\r\n
\r\n
\r\n
\r\n
\r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nimport { User } from '../../models/user.model';\r\nimport { UserService } from '../../services';\r\n\r\n@Component({\r\n selector: 'cube-toolbar',\r\n templateUrl: './toolbar.component.html',\r\n styleUrls: ['./toolbar.component.scss'],\r\n})\r\nexport class ToolbarComponent implements OnInit, OnDestroy {\r\n @Output() onDepartmentClick: EventEmitter = new EventEmitter();\r\n @Input() sidenav;\r\n @Input() sidebar;\r\n @Input() drawer;\r\n @Input() matDrawerShow;\r\n\r\n currentUser?: User = null;\r\n\r\n searchOpen = false;\r\n isSupportToolEnabled = true;\r\n isSettingPanelEnabled = false;\r\n\r\n constructor(private userService: UserService) {}\r\n\r\n ngOnInit(): void {\r\n this.userService.isLoggedIn() ? (this.currentUser = this.userService.getUser()) : null;\r\n }\r\n\r\n ngOnDestroy(): void {}\r\n\r\n onAction(action: any): void {\r\n // console.log(action);\r\n }\r\n\r\n onSearch(search: any): void {}\r\n\r\n openSupportPage(): void {\r\n window.open(environment.supportUrl, '_blank');\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { InputDialogComponent } from '@cube/lib-common';\r\nimport {User} from '../../models/user.model';\r\nimport {CubeService, UserService} from '../../services';\r\nimport {STORAGE_KEYS, StorageService} from '../../services/storage/storage.service';\r\nimport {ThemeService} from '../../services/theme/theme.service';\r\nimport {TENANT_CONFIG} from '../../../environments/config';\r\nimport {environment} from '../../../environments/environment';\r\nimport {Solutions} from '../../models/environment-configuration';\r\n\r\n@Component({\r\n selector: 'cube-user-menu',\r\n templateUrl: './user-menu.component.html',\r\n styleUrls: ['./user-menu.component.scss']\r\n})\r\nexport class UserMenuComponent implements OnInit {\r\n isOpen = false;\r\n activeRole: string;\r\n activeTenant: string;\r\n enableAdminTool: boolean;\r\n enableMailingList: boolean;\r\n enableAppMobile: boolean;\r\n enableTenantChange: boolean;\r\n\r\n @Output() onDepartmentClick: EventEmitter = new EventEmitter();\r\n @Input() user: User = null;\r\n private theme: boolean;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private userService: UserService,\r\n private storage: StorageService,\r\n public dialog: MatDialog,\r\n private cubeService: CubeService,\r\n private themeService: ThemeService\r\n ) {}\r\n\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n onClick(event: MouseEvent, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.enableAdminTool = this.user.rolesAndModules.map(r => r.name).includes(TENANT_CONFIG.settings.superUserRoleId);\r\n this.themeService.isDarkTheme.subscribe(theme => {\r\n this.theme = theme;\r\n });\r\n this.activeRole = this.userService.getActiveRole();\r\n this.activeTenant = this.userService.getCurrentTenant();\r\n this.enableTenantChange = environment.SOLUTION === Solutions.ALLEANZA && this.userService.userTenantsList.length > 1;\r\n }\r\n\r\n doLogout(): void {\r\n this.userService.doLogout();\r\n }\r\n\r\n doLogin(): void {\r\n this.userService.doLogin();\r\n }\r\n\r\n goProfile(): void {\r\n this.userService.goToProfile();\r\n }\r\n\r\n goAdminTool(): void {\r\n window.open(environment.ADMIN_TOOL_WEB, '_blank');\r\n }\r\n\r\n changeTheme(): void {\r\n this.themeService.setDarkTheme(!this.theme);\r\n }\r\n\r\n changeProfile(): void {\r\n const dialogRef = this.dialog.open(InputDialogComponent, {\r\n width: '400px',\r\n height: '200px',\r\n data: {\r\n title: 'Roles selection',\r\n confirmLabel: 'Ok',\r\n cancelLabel: 'Cancel',\r\n inputs: [\r\n {\r\n type: 'select',\r\n label: 'Select department',\r\n required: true,\r\n options: this.userService.getAllRoles(),\r\n value: this.userService.getActiveRole()\r\n }\r\n ]\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result?.confirm) {\r\n this.onDepartmentClick.emit();\r\n localStorage.setItem(STORAGE_KEYS.activeRole, result.data.inputs[0].value);\r\n window.location.href = 'dias/homepage';\r\n\r\n }\r\n });\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // if (result?.confirm) {\r\n // const selected = result.data.inputs[0].value;\r\n // this.onDepartmentClick.emit(selected);\r\n // this.activeRole = selected;\r\n // }\r\n // });\r\n }\r\n\r\n changeTenant(): void {\r\n const dialogRef = this.dialog.open(InputDialogComponent, {\r\n width: '400px',\r\n height: '200px',\r\n data: {\r\n title: 'Tenant selection',\r\n confirmLabel: 'Ok',\r\n cancelLabel: 'Cancel',\r\n inputs: [\r\n {\r\n type: 'select',\r\n label: 'Select tenant',\r\n required: true,\r\n options: this.userService.userTenantsList,\r\n value: this.userService.getCurrentTenant(),\r\n fieldDisplayed: ''\r\n }\r\n ]\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result?.confirm) {\r\n localStorage.setItem(STORAGE_KEYS.currentTenant, result.data.inputs[0].value);\r\n this.cubeService.cleanCache();\r\n window.location.href = 'dias/homepage';\r\n }\r\n });\r\n }\r\n\r\n public openSupportPage(): void {\r\n window.open('https://support.cube.rina.org', '_blank');\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n {{ (user?.firstName || user.username)}} {{ user?.lastName }}\r\n {{ activeTenant | uppercase }} - {{ activeRole }}\r\n
\r\n keyboard_arrow_down\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n My Profile\r\n \r\n \r\n \r\n Tenant List\r\n \r\n \r\n 1\">\r\n Roles\r\n \r\n \r\n \r\n Admin Tool\r\n \r\n \r\n \r\n Setup Mailing List\r\n \r\n \r\n \r\n Mobile Pairing\r\n \r\n \r\n \r\n Support\r\n \r\n \r\n \r\n \r\n Change theme\r\n \r\n \r\n \r\n \r\n Logout\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport {ValidationService} from '../../services/validation/validation.service';\r\n\r\n@Component({\r\n selector: 'cube-validation-error',\r\n template: `{{ errorMsg }}`,\r\n styles: [\r\n `\r\n .error {\r\n color: #ff2c00;\r\n font-family: Roboto, 'Helvetica Neue', sans-serif;\r\n font-size: 11px;\r\n line-height: 1.125;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class ValidationErrorComponent implements OnInit {\r\n @Input() control: AbstractControl;\r\n @Input() field: string;\r\n\r\n constructor(private validationService: ValidationService) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n get errorMsg(): string {\r\n const errors = this.control.errors;\r\n\r\n for (const propertyName in errors) {\r\n if (errors.hasOwnProperty(propertyName)) {\r\n return this.validationService.getMessage(propertyName, errors[propertyName], this.field);\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { DynamicDirective } from './dynamic-directive/dynamic.directive';\r\nimport {FormatNumberDirective} from './format-number/fomat-number.directive';\r\n\r\nconst directives = [DynamicDirective, FormatNumberDirective];\r\n\r\n@NgModule({\r\n declarations: directives,\r\n imports: [CommonModule],\r\n exports: directives,\r\n})\r\nexport class DirectivesModule {}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cubeDynamic]',\r\n})\r\nexport class DynamicDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n OnInit\r\n} from '@angular/core';\r\nimport { NgModel, NgControl } from '@angular/forms';\r\nimport { formatNumber } from '@angular/common';\r\n\r\n@Directive({\r\n selector: '[cubeFormatNumber]',\r\n providers: [NgModel]\r\n})\r\n\r\nexport class FormatNumberDirective implements OnInit {\r\n\r\n constructor(private control: NgControl, private element: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.control.valueChanges.subscribe((value) => {\r\n // const t = '123.456.789,32';\r\n this.formatValue(value);\r\n });\r\n }\r\n\r\n private formatValue(value: string | null): void {\r\n // TODO: provare a fare la regex togliendo il punto.\r\n let int = value.split(',')[0];\r\n int = int.split('.').join('');\r\n const parsedValue = `${int},${value.split(',')[1]}`;\r\n const regex = /^-?[\\d\\.]*(\\,\\d+)?$/;\r\n if (!regex.test(value)) {\r\n this.element.nativeElement.value = '';\r\n return;\r\n }\r\n\r\n if (this.isLastCharacterDecimalSeparator(value)) {\r\n this.element.nativeElement.value = value;\r\n return;\r\n }\r\n // Conclude the decimal and thousand separators from locale\r\n const [thousandSeparator, decimalMarker] = ['.', ','];\r\n\r\n // Here value should always come with . as decimal marker thus any other behavior is bug\r\n const [integer, decimal] = value.split(',');\r\n\r\n // Group every three elements, and add thousandSeparator after them\r\n let formattedValue = '';\r\n formattedValue = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\r\n\r\n // Add decimals and decimalMarker if any\r\n // this.element.nativeElement.value = formattedValue + decimalMarker + (decimal ? decimal : '');\r\n this.element.nativeElement.value = decimal ? formattedValue.concat(decimalMarker, decimal) : formattedValue;\r\n }\r\n\r\n isLastCharacterDecimalSeparator(value: any): boolean {\r\n return isNaN(value[value.length - 1]);\r\n }\r\n\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AppAuthGuard } from '../services/auth-guard/auth-guard.service';\r\n\r\nconst routes: Routes = [\r\n { path: 'error', loadChildren: () => import('../pages/error/error.module').then((m) => m.ErrorModule) },\r\n {\r\n path: 'dias',\r\n canActivate: [AppAuthGuard],\r\n loadChildren: () => import('../cube/cube.module').then((m) => m.CubeModule),\r\n },\r\n { path: '**', redirectTo: 'dias/homepage' },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { useHash: true, relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule],\r\n providers: [AppAuthGuard],\r\n})\r\nexport class LazyLoadModule {}\r\n","export interface AuditUpdateStatus {\r\n id: string;\r\n audit_status: Status;\r\n audit_revision_notes?: string;\r\n}\r\n\r\nexport enum Status {\r\n started = 'started',\r\n revision = 'revision',\r\n inserted = 'inserted',\r\n submitted = 'submitted',\r\n approved = 'approved',\r\n not_approved = 'not_approved'\r\n}\r\n\r\nexport enum FunctionStatus {\r\n active = 'active',\r\n expired = 'expired',\r\n not_active = 'not_active'\r\n}\r\n\r\nexport enum ProductionStatus {\r\n inserted = 'inserted',\r\n submitted = 'submitted',\r\n canceled = 'canceled',\r\n closed = 'closed'\r\n}\r\n\r\n\r\n","export interface EnvironmentConfiguration {\r\n settings: any;\r\n company_asset_table?: any;\r\n filter_layout?: any;\r\n kpi_status?: any;\r\n measures_groups?: any[];\r\n}\r\nexport enum Solutions {\r\n FLEET40 = 'Fleet40',\r\n OPTIMUM = 'OPTIMUM',\r\n ALLEANZA = 'diasalleanza',\r\n ARVEDI = 'arvedi_steel_decarbon'\r\n}\r\n","export interface ResponseModel {\r\n message: ResponseMessage;\r\n data: any;\r\n error: string;\r\n}\r\n\r\nexport enum ResponseMessage {\r\n Success = 'success',\r\n Fail = 'fail'\r\n}\r\n","import * as moment from 'moment';\r\nimport { Deserializable } from './deserializable.model';\r\n\r\nexport class TimeWindow implements Deserializable {\r\n from: moment.Moment;\r\n to: moment.Moment;\r\n now: moment.Moment;\r\n\r\n deserialize(input: any) {\r\n Object.assign(this, input);\r\n return this;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'coordinate',\r\n})\r\nexport class CoordinatePipe implements PipeTransform {\r\n /**\r\n * convert a decimal value to degree format\r\n * @param value decimal value\r\n * @param direction latitude or longitude\r\n */\r\n transform(value: number, direction: string): string {\r\n if (!value) {\r\n return 'n.a.';\r\n }\r\n\r\n const dir = value < 0 ? (direction === 'longitude' ? 'W' : 'S') : direction === 'longitude' ? 'E' : 'N';\r\n\r\n const absDd = Math.abs(value);\r\n // tslint:disable-next-line:no-bitwise\r\n const deg = absDd | 0;\r\n const frac = absDd - deg;\r\n // tslint:disable-next-line:no-bitwise\r\n const min = (frac * 60) | 0;\r\n const sec = frac * 3600 - min * 60;\r\n\r\n // Round it to 2 decimal points.\r\n return (\r\n deg.toString().padStart(2, '0') +\r\n '° ' +\r\n min.toString().padStart(2, '0') +\r\n \"' \" +\r\n sec.toFixed(2).padStart(5, '0') +\r\n '\" ' +\r\n dir\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'exceeded',\r\n})\r\nexport class ExceededPipe implements PipeTransform {\r\n transform(value: boolean): string {\r\n return value ? 'Yes' : 'No';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filter',\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any[], searchText: string): any[] {\r\n if (!items) {\r\n return [];\r\n }\r\n if (!searchText) {\r\n return items;\r\n }\r\n searchText = searchText.toLowerCase();\r\n\r\n return items.filter((it) => {\r\n if (it.hasOwnProperty('fulltext')) {\r\n return it.fulltext.toLowerCase().includes(searchText);\r\n }\r\n return it.label.toLowerCase().includes(searchText);\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'mathRound',\r\n})\r\nexport class MathRoundPipe implements PipeTransform {\r\n /**\r\n * round up a decimal value\r\n * @param value decimal value\r\n * @param digits decimals\r\n */\r\n\r\n transform(value: number, digits: number): any {\r\n if (!value) {\r\n return 'n.a.';\r\n }\r\n if (!digits) {\r\n return value;\r\n }\r\n const fractionDigits = 10 ** digits;\r\n const roundedValue = Math.round(value * fractionDigits) / fractionDigits;\r\n return roundedValue;\r\n }\r\n}\r\n","import {LOCALE_ID, NgModule} from '@angular/core';\r\nimport { SafeHtmlPipe } from './safe-html/safe-html.pipe';\r\nimport { FilterPipe } from './filter/filter.pipe';\r\nimport { RemoveUnderscorePipe } from './remove-underscore/remove-underscore.pipe';\r\nimport { SelectionKeeperPipe } from './selection-keeper/selection-keeper.pipe';\r\nimport { SafeUrlPipe } from './safe-url/safe-url.pipe';\r\nimport { CoordinatePipe } from './coordinate/coordinate.pipe';\r\nimport { ExceededPipe } from './exceeded/exceeded.pipe';\r\nimport { MathRoundPipe } from './math-round/math-round.pipe';\r\nimport { TruncateUrlPipe } from './truncate-url/truncate-url.pipe';\r\nimport {TranslateModule} from '@ngx-translate/core';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport it from '@angular/common/locales/it';\r\nregisterLocaleData(it)\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [\r\n SafeHtmlPipe,\r\n SafeUrlPipe,\r\n FilterPipe,\r\n RemoveUnderscorePipe,\r\n SelectionKeeperPipe,\r\n CoordinatePipe,\r\n ExceededPipe,\r\n MathRoundPipe,\r\n TruncateUrlPipe\r\n ],\r\n exports: [\r\n SafeHtmlPipe,\r\n SafeUrlPipe,\r\n FilterPipe,\r\n RemoveUnderscorePipe,\r\n SelectionKeeperPipe,\r\n CoordinatePipe,\r\n ExceededPipe,\r\n MathRoundPipe,\r\n TruncateUrlPipe,\r\n TranslateModule\r\n ],\r\n providers: [\r\n {provide: LOCALE_ID, useValue: 'it'}\r\n ]\r\n})\r\nexport class PipesModule {}\r\n","import { TitleCasePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Pipe({\r\n name: 'removeunderscore',\r\n})\r\nexport class RemoveUnderscorePipe implements PipeTransform {\r\n transform(value: any, args?: any): any {\r\n const v = value + '';\r\n if (_.isNumber(value)) {\r\n return value;\r\n }\r\n if (_.isNull(value) || _.isEmpty(value)) {\r\n return '';\r\n }\r\n if (value.includes('_')) {\r\n return new TitleCasePipe().transform(v.replace(/_/g, ' '));\r\n } else if (value.includes('n.a')) {\r\n return value;\r\n // return new UpperCasePipe().transform(value);\r\n } else {\r\n return new TitleCasePipe().transform(value);\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(protected sanitizer: DomSanitizer) {}\r\n\r\n public transform(value: any, type: string = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n case 'html':\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style':\r\n return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script':\r\n return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url':\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl':\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default:\r\n throw new Error(`Invalid safe type specified: ${type}`);\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeUrl',\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { find } from 'lodash';\r\n\r\n@Pipe({\r\n name: 'selectionKeeper',\r\n pure: true,\r\n})\r\nexport class SelectionKeeperPipe implements PipeTransform {\r\n /**\r\n * Check if a list includes the value, comparision can be set with keyComparator\r\n * @param value input value\r\n * @param selectedItems list of items\r\n * @param keyComparator comparision key of the object\r\n */\r\n transform(value: T, selectedItems: T[], keyComparator: string = 'id'): boolean {\r\n return !!find(selectedItems, (selectedItem) => selectedItem[keyComparator] === value[keyComparator]);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'truncateUrl'\r\n})\r\nexport class TruncateUrlPipe implements PipeTransform {\r\n /**\r\n * @param value string, return last substring\r\n */\r\n transform(value: string): string {\r\n if (!value) {\r\n return '';\r\n }\r\n const subStrings = value.split('/');\r\n const lastSubStrings = subStrings[subStrings.length - 1].split('?');\r\n return lastSubStrings[0];\r\n }\r\n}\r\n","import {environment} from '../../../environments/environment';\r\n\r\nconst localJSON = './assets/json';\r\nconst { ADMIN_TOOL_URL } = environment;\r\n/*\r\n ****** The index is sorted by alphabetical order for scan it faster,\r\n ****** please when you add a voice take a minute to add it in the right spot\r\n ****** keep the order!\r\n */\r\nexport const API = {\r\n ADMIN_TOOL: {\r\n userProfile: (username: string) => `${ADMIN_TOOL_URL}/tenants/current/users/${username}/profile`,\r\n\r\n tenants: (username: string, solution: string) => `${ADMIN_TOOL_URL}/users/${username}/solutions/${solution}/tenants`,\r\n\r\n assetGroupsSearch: () => `${ADMIN_TOOL_URL}/tenants/current/users/me/search-asset-groups`,\r\n\r\n roleFeatures: (role: string) =>\r\n `${ADMIN_TOOL_URL}/tenants/current/roles/${role}/platforms/CUBE/solutions/${environment.SOLUTION}/features`,\r\n\r\n roleMeasures: (role: string) =>\r\n `${ADMIN_TOOL_URL}/tenants/current/roles/${role}/platforms/CUBE/solutions/${environment.SOLUTION}/measureCategories`\r\n },\r\n AUDIT_MANAGEMENT: {\r\n auditManager: () => `${environment.REST}/AuditManagerHttpTrigger`,\r\n },\r\n CARBON_CREDIT: {\r\n calculateCredits: () => `${environment.REST}/CarbonCreditIngestionHttpTrigger/metrics`,\r\n carbonCreditIngestion: (id?: string) => id ? `${environment.REST}/CarbonCreditIngestionHttpTrigger?id=${id}` : `${environment.REST}/CarbonCreditIngestionHttpTrigger`,\r\n carbonCreditAuditManager: (id?: string, status?: string) => id && status ? `${environment.REST}/CarbonCreditAuditManagerHttpTrigger?id=${id}&status=${status}` :\r\n id ? `${environment.REST}/CarbonCreditAuditManagerHttpTrigger?id=${id}` : `${environment.REST}/CarbonCreditAuditManagerHttpTrigger`\r\n },\r\n CARBON_FUNCTION: {\r\n carbonFunction: (id?: string) => id ? `${environment.REST}/CarbonFunctionIngestionHttpTrigger?id=${id}` : `${environment.REST}/CarbonFunctionIngestionHttpTrigger`,\r\n productIDs: () => `${environment.REST}/CarbonFunctionIngestionHttpTrigger?distinct=product_id`,\r\n carbonFunctionAuditManger: (id?: string, status?: string) => id && status ? `${environment.REST}/CarbonFunctionAuditManagerHttpTrigger?id=${id}&status=${status}` :\r\n id ? `${environment.REST}/CarbonFunctionAuditManagerHttpTrigger?id=${id}` : `${environment.REST}/CarbonFunctionAuditManagerHttpTrigger`\r\n },\r\n CARBON_PRODUCTION: {\r\n carbonProduction: (id?: string) => id ? `${environment.REST}/CarbonProductionIngestionHttpTrigger?id=${id}` : `${environment.REST}/CarbonProductionIngestionHttpTrigger`,\r\n carbonProductionManager: (id: string, status: string) => `${environment.REST}/CarbonProductionStatusManagerHttpTrigger?id=${id}&production_status=${status}`\r\n },\r\n FILE_REPORT: {\r\n offlineFilesManager: (resource?: string, id?: string, url?: string) => url && resource ? `${environment.REST}/OfflineFilesManagerHttpTrigger/${resource}?url=${encodeURIComponent(url)}` :\r\n id && resource ? `${environment.REST}/OfflineFilesManagerHttpTrigger/${resource}?id=${id}` : `${environment.REST}/OfflineFilesManagerHttpTrigger`\r\n },\r\n ZPAGES: {\r\n // Get a response with system statistics\r\n varz: () => `${environment.REST}/varz`\r\n }\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport {API} from '../api.const';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CubeApiService {\r\n constructor(private http: HttpClient, private logger: NGXLogger) {}\r\n\r\n public getPlatformInfo(): Observable {\r\n return this.http.get(API.ZPAGES.varz()).pipe(\r\n tap(_ => this.logger.debug('GET get platform Info')),\r\n catchError(this.handleError('getInfo()'))\r\n );\r\n }\r\n\r\n /**\r\n * Handle Http operation that failed.\r\n * Let the app continue.\r\n * @param operation - name of the operation that failed\r\n * @param result - optional value to return as the observable result\r\n */\r\n private handleError(operation = 'operation', result?: T): any {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.logger.error(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {NGXLogger} from 'ngx-logger';\r\nimport {CubeService, MessageType} from '../../cube/cube.service';\r\nimport {UserService} from '../../user/user.service';\r\nimport {Observable, of} from 'rxjs';\r\nimport {API} from '../api.const';\r\nimport {catchError, tap} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReportFileService {\r\n\r\n constructor(private http: HttpClient,\r\n private logger: NGXLogger,\r\n public cubeService: CubeService,\r\n public userService: UserService) { }\r\n\r\n /**\r\n * DOWNLOAD File\r\n * @param url - params to filter by url\r\n */\r\n\r\n public downloadFile(url: string): Observable {\r\n return this.http.get(url, { responseType: 'blob', observe: 'response' });\r\n }\r\n\r\n public createObjectUrl(body: any, filename: string): void {\r\n if (body) {\r\n // Create a URL for the blob\r\n const urlObj = URL.createObjectURL(body);\r\n // Create an anchor element to \"point\" to it\r\n const anchor = document.createElement('a');\r\n anchor.href = urlObj;\r\n // Get the suggested filename for the file from the response headers\r\n anchor.download = filename || 'report.pdf';\r\n // Simulate a click on our anchor element\r\n anchor.click();\r\n // Discard the object data\r\n URL.revokeObjectURL(urlObj);\r\n }\r\n }\r\n\r\n /**\r\n * GET Files\r\n * @param resource - params to filter by resource\r\n * @param id - params to filter by id\r\n * @param url - params to filter by url\r\n */\r\n public getOfflineFiles(resource: string, id?: string, url?: string): Observable {\r\n console.log(encodeURIComponent(url));\r\n return this.http.get(`${API.FILE_REPORT.offlineFilesManager(resource, id, url)}`).pipe(\r\n tap((_) => this.logger.debug('fetched getOfflineFiles')),\r\n catchError(this.handleError('getOfflineFiles'))\r\n );\r\n }\r\n\r\n\r\n /**\r\n * POST Files (Auditor Report)\r\n */\r\n public postAuditorFiles(body: any): Observable {\r\n return this.http.post(`${API.FILE_REPORT.offlineFilesManager()}`, body).pipe(\r\n tap((_) => this.logger.debug('fetched postAuditorFiles')),\r\n catchError(this.handleError('postAuditorFiles'))\r\n );\r\n }\r\n /**\r\n * Handle Http operation that failed.\r\n * Let the app continue.\r\n * @param operation - name of the operation that failed\r\n * @param result - optional value to return as the observable result\r\n */\r\n private handleError(operation = 'operation', result?: T): any {\r\n return (error: any): Observable => {\r\n this.cubeService.showMessage(MessageType.Error, error?.error?.error ? error?.error?.error : 'Failed');\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.logger.error(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport {API} from '../api.const';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserApiService {\r\n constructor(private http: HttpClient, private logger: NGXLogger) {}\r\n\r\n getAllTenants(username: string, solution: string): Observable {\r\n return this.http.get(`${API.ADMIN_TOOL.tenants(username, solution)}`).pipe(\r\n map((res: any[]) => res?.map(r => r.name)),\r\n tap(_ => this.logger.debug('getAllTenants')),\r\n catchError(this.handleError())\r\n );\r\n }\r\n\r\n getProfile(username: string): Observable {\r\n return this.http.get(`${API.ADMIN_TOOL.userProfile(username)}`).pipe(\r\n map(res => res),\r\n tap(_ => this.logger.debug('getProfile')),\r\n catchError(this.handleError())\r\n );\r\n }\r\n\r\n getRoleFeatures(role: string): Observable {\r\n return this.http.get(`${API.ADMIN_TOOL.roleFeatures(role)}`).pipe(\r\n map(res => res),\r\n tap(_ => this.logger.debug('getRoleFeatures')),\r\n catchError(this.handleError())\r\n );\r\n }\r\n\r\n getRoleMeasures(role: string): Observable {\r\n return this.http.get(`${API.ADMIN_TOOL.roleMeasures(role)}`).pipe(\r\n map(res => res),\r\n tap(_ => this.logger.debug('getRolesMeasures')),\r\n catchError(this.handleError())\r\n );\r\n }\r\n\r\n /**\r\n * Handle Http operation that failed.\r\n * Let the app continue.\r\n * @param operation - name of the operation that failed\r\n * @param result - optional value to return as the observable result\r\n */\r\n private handleError(operation = 'operation', result?: T): any {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.logger.error(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { KeycloakService, KeycloakAuthGuard } from 'keycloak-angular';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class AppAuthGuard extends KeycloakAuthGuard {\r\n constructor(protected router: Router, protected keycloakAngular: KeycloakService) {\r\n super(router, keycloakAngular);\r\n }\r\n\r\n isAccessAllowed(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n if (!this.authenticated) {\r\n this.keycloakAngular.login({ redirectUri: window.location.href });\r\n return;\r\n }\r\n\r\n if (environment.company.role !== '*' && this.roles.indexOf(environment.company.role) === -1) {\r\n this.router.navigate(['/error/unauthorized']);\r\n return;\r\n }\r\n\r\n const requiredRoles = route.data.roles;\r\n if (!requiredRoles || requiredRoles.length === 0) {\r\n return resolve(true);\r\n } else {\r\n if (!this.roles || this.roles.length === 0) {\r\n resolve(false);\r\n }\r\n let granted = false;\r\n for (const requiredRole of requiredRoles) {\r\n if (this.roles.indexOf(requiredRole) > -1) {\r\n granted = true;\r\n break;\r\n }\r\n }\r\n resolve(granted);\r\n }\r\n });\r\n }\r\n}\r\n","import { fromEvent as observableFromEvent, interval, Observable, of, Subject, Subscription } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { environment } from '../../../environments/environment';\r\nimport * as moment from 'moment';\r\nimport { UserService } from '../user/user.service';\r\nimport { TimeWindow } from '../../models/time-window.model';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport {STORAGE_KEYS, StorageService} from '../storage/storage.service';\r\nimport {VERSION} from '../../../environments/version';\r\nimport {AUTH_CONFIG, TENANT_CONFIG} from '../../../environments/config';\r\nimport {MODULES} from '../../../environments/module.config';\r\n\r\nexport const enum MessageType {\r\n Info,\r\n Error,\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CubeService {\r\n public changeCubeMenu$: Subject = new Subject();\r\n\r\n private _refreshing_time = 5000; // in milliseconds\r\n private _tokenSbj = new Subject();\r\n private _timeWindowSbj = new Subject();\r\n private _timeWindow: TimeWindow = new TimeWindow();\r\n private now: moment.Moment;\r\n private tsSbj = new Subject();\r\n public onlineStatus: Observable;\r\n public offlineStatus: Observable;\r\n public sidenavSbj: Subject = new Subject();\r\n public colorSeed = Date.now();\r\n private version = VERSION;\r\n public ws: Subject;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private keycloakService: KeycloakService,\r\n private logger: NGXLogger,\r\n private storage: StorageService,\r\n private snackBar: MatSnackBar\r\n ) {\r\n if (environment.refreshing_time) {\r\n const rt = +environment.refreshing_time.slice(0, -1);\r\n switch (environment.refreshing_time.charAt(environment.refreshing_time.length - 1)) {\r\n case 'm':\r\n this._refreshing_time = rt * 60000;\r\n break;\r\n case 's':\r\n default:\r\n this._refreshing_time = rt * 1000;\r\n break;\r\n }\r\n this.onlineStatus = observableFromEvent(window, 'online');\r\n this.offlineStatus = observableFromEvent(window, 'offline');\r\n }\r\n\r\n interval(this._refreshing_time).subscribe(\r\n (x) => this.updateTime(),\r\n (e) => this.handleError('CubeService interval: ' + e.message)\r\n );\r\n interval(this._refreshing_time).subscribe(\r\n (x) => this.setTimeSlider(),\r\n (e) => this.handleError('CubeService interval: ' + e.message)\r\n );\r\n interval(environment.auth.refreshing_time).subscribe(\r\n (x) => this.refreshSession(),\r\n (e) => this.handleError('CubeService interval: ' + e.message)\r\n );\r\n\r\n this.setTimeSlider();\r\n this.updateTime();\r\n }\r\n\r\n public getVersion(): string {\r\n return this.version.version + '-' + this.version.hash;\r\n }\r\n\r\n refreshSession(): void {\r\n this.keycloakService\r\n .updateToken(AUTH_CONFIG.token_lifespan)\r\n .then((updated: boolean) => {\r\n if (updated) {\r\n this.keycloakService.getToken().then((t) => {\r\n localStorage.setItem(STORAGE_KEYS.token, t);\r\n this.userService.updateToken(t);\r\n this._tokenSbj.next(t);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n // this.logger.error(e);\r\n window.location.reload();\r\n });\r\n }\r\n\r\n setTimeSlider(from?: moment.Moment, to?: moment.Moment): void {\r\n this._timeWindow.now = moment().utc();\r\n if (!environment.production) {\r\n this._timeWindow.now.subtract(1, 'years');\r\n }\r\n this._timeWindow.from = from || moment(this._timeWindow.now).subtract(7, 'days');\r\n this._timeWindow.to = to || moment(this._timeWindow.now);\r\n this._timeWindowSbj.next(this._timeWindow);\r\n }\r\n\r\n getTimeWindow(): TimeWindow {\r\n return this._timeWindow;\r\n }\r\n\r\n getTSObservable(): Observable {\r\n return this.tsSbj.asObservable();\r\n }\r\n\r\n timeWindow(): Observable {\r\n return this._timeWindowSbj.asObservable();\r\n }\r\n\r\n public token(): Observable {\r\n return this._tokenSbj.asObservable();\r\n }\r\n\r\n getTS(): moment.Moment {\r\n return this.now;\r\n }\r\n\r\n private updateTime(): void {\r\n this.now = moment().utc();\r\n this.tsSbj.next(this.now);\r\n }\r\n public getUserMenu(): any {\r\n const myMenu = [];\r\n\r\n Object.keys(MODULES).forEach((page: string) => {\r\n const module = { ...MODULES[page] } as any;\r\n if (module.menu && this.userService.hasTenantModules(module.roles)) {\r\n if (module.menu.sub) {\r\n module.menu.sub = module.menu.sub.filter(subMenuItem =>\r\n MODULES[subMenuItem.key] ? this.userService.hasTenantModules(MODULES[subMenuItem.key].roles) : false\r\n );\r\n }\r\n myMenu.push(module.menu);\r\n }\r\n });\r\n\r\n TENANT_CONFIG.settings.externalPages?.forEach((page: any) => {\r\n if (this.userService.hasTenantModules(page.roles)) {\r\n myMenu.push({\r\n name: page.name,\r\n mat_icon: page.icon,\r\n open: false,\r\n external: true,\r\n link: page.link\r\n });\r\n }\r\n });\r\n // console.log(myMenu);\r\n return myMenu;\r\n }\r\n public cleanCache(): void {\r\n this.storage.deleteFromStorage(STORAGE_KEYS.activeRole);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.selectedShips);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.selectedShip);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.activeRole);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.analyticsDashboard);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.excludedMap);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.kpiActivation);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.analyticsMode);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.syncAssetPicker);\r\n this.storage.deleteFromStorage(STORAGE_KEYS.userFilters);\r\n }\r\n\r\n public configureLocalStorageVariables(token, instance): void {\r\n if (\r\n (localStorage.getItem(STORAGE_KEYS.version) &&\r\n localStorage.getItem(STORAGE_KEYS.version) !== this.getVersion()) ||\r\n (localStorage.getItem(STORAGE_KEYS.sub) && localStorage.getItem(STORAGE_KEYS.sub) !== instance.idTokenParsed.sub)\r\n ) {\r\n localStorage.clear();\r\n indexedDB.deleteDatabase('ngStorage');\r\n localStorage.setItem(STORAGE_KEYS.currentTenant, this.userService.userTenantsList[0]);\r\n }\r\n\r\n localStorage.setItem(STORAGE_KEYS.token, token);\r\n localStorage.setItem(STORAGE_KEYS.version, this.getVersion());\r\n localStorage.setItem(STORAGE_KEYS.sub, instance.idTokenParsed.sub);\r\n }\r\n\r\n /**\r\n * Handle Http operation that failed.\r\n * Let the app continue.\r\n * @param operation - name of the operation that failed\r\n * @param result - optional value to return as the observable result\r\n */\r\n handleError(operation = 'operation', result?: T): any {\r\n return (error: any): Observable => {\r\n console.error(error.message);\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.logger.error(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n showMessage(type: MessageType, msg: string): void {\r\n const snackBarConfig = new MatSnackBarConfig();\r\n switch (type) {\r\n case MessageType.Info:\r\n snackBarConfig.duration = environment.snackbar_duration;\r\n snackBarConfig.panelClass = ['snackBarMessage', 'infoMessage'];\r\n break;\r\n case MessageType.Error:\r\n snackBarConfig.duration = environment.snackbar_error_duration;\r\n snackBarConfig.panelClass = ['snackBarMessage', 'errorMessage'];\r\n break;\r\n }\r\n this.snackBar.open(msg, 'close', snackBarConfig);\r\n }\r\n}\r\n","export * from './cube/cube.service';\r\nexport * from './user/user.service';\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UserService } from '..';\r\nimport {BASE_URL} from '../../../environments/commons/base-url';\r\nimport {BASE_URL_PROD} from '../../../environments/commons/base-url-prod';\r\nimport {environment} from \"../../../environments/environment\";\r\n\r\n@Injectable()\r\nexport class HeadersInterceptor implements HttpInterceptor {\r\n constructor(private userService: UserService) {}\r\n\r\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n if (this.userService.getCurrentTenant()) {\r\n if (req.url.includes(BASE_URL_PROD.REST)) {\r\n return next.handle(\r\n req.clone({\r\n headers: req.headers\r\n .set('x-company', this.userService.getCurrentTenant().toLowerCase())\r\n .set('x-user', this.userService.getUser().username)\r\n })\r\n );\r\n } else if (req.url.includes(BASE_URL.REST)) {\r\n return next.handle(\r\n req.clone({\r\n headers: req.headers\r\n .set('x-company', this.userService.getCurrentTenant().toLowerCase())\r\n .set('x-user', this.userService.getUser().username)\r\n .set('x-solution', environment.SOLUTION)\r\n })\r\n );\r\n } else {\r\n return next.handle(req);\r\n }\r\n } else {\r\n return next.handle(req);\r\n }\r\n }\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { UserService } from '..';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class TenantInterceptor implements HttpInterceptor {\r\n constructor(private userService: UserService) {}\r\n\r\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n if (req.url.includes('cube.rina.org')) {\r\n if (this.userService.getCurrentTenant()) {\r\n // console.log(this.userService.getCurrentTenant());\r\n return next.handle(\r\n req.clone({\r\n headers: req.headers\r\n .set('x-company', this.userService.getCurrentTenant().toLowerCase())\r\n .set('x-solution', environment.SOLUTION)\r\n })\r\n );\r\n } else {\r\n return next.handle(\r\n req.clone({\r\n headers: req.headers.set('x-solution', environment.SOLUTION)\r\n })\r\n );\r\n }\r\n } else {\r\n return next.handle(req);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n private readonly _storage = localStorage;\r\n\r\n constructor() {}\r\n\r\n addToStorage(key: string, value: any): void {\r\n this._storage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n getFromStorage(key: string): any {\r\n return JSON.parse(this._storage.getItem(key));\r\n }\r\n\r\n deleteFromStorage(key: string): any {\r\n this._storage.removeItem(key);\r\n }\r\n}\r\n\r\nexport const STORAGE_KEYS = {\r\n token: 'token',\r\n version: 'version',\r\n sub: 'sub',\r\n localTimeFormat: 'local_time_format',\r\n selectedShips: 'selected-ships',\r\n selectedShip: 'selected-ship',\r\n excludedMap: 'excluded-map',\r\n darkTheme: 'is-dark-theme',\r\n analyticsDashboard: 'analytics-dashboard',\r\n activeRole: 'active-role',\r\n userFilters: 'user-filters',\r\n shiplistLayout: 'shiplist-layout',\r\n mapBaseLayer: 'map-base-layer',\r\n syncAssetPicker: 'sync-asset-picker',\r\n analyticsMode: 'analytics-mode',\r\n currentTenant: 'current-tenant',\r\n kpiActivation: 'kpiActivation'\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {STORAGE_KEYS, StorageService} from '../storage/storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ThemeService {\r\n private _darkTheme: BehaviorSubject = new BehaviorSubject(false);\r\n isDarkTheme = this._darkTheme.asObservable();\r\n\r\n constructor(private storage: StorageService) {\r\n const themeFromStorage = this.storage.getFromStorage(STORAGE_KEYS.darkTheme);\r\n if (themeFromStorage === null) {\r\n this._darkTheme = new BehaviorSubject(true);\r\n } else {\r\n this._darkTheme = new BehaviorSubject(themeFromStorage);\r\n }\r\n this.isDarkTheme = this._darkTheme.asObservable();\r\n }\r\n\r\n setDarkTheme(isDarkTheme: boolean): void {\r\n this._darkTheme.next(isDarkTheme);\r\n this.storage.addToStorage(STORAGE_KEYS.darkTheme, this._darkTheme.value);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { User } from '../../models/user.model';\r\nimport { environment } from '../../../environments/environment';\r\nimport { PROFILE_NOT_VALID } from '../../../environments/config';\r\nimport { UserApiService } from '../api/user/user.api.service';\r\nimport { forkJoin, Observable, Subject } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\nimport { STORAGE_KEYS } from '../storage/storage.service';\r\nimport { intersection } from 'lodash';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserService {\r\n onDepartmentChange: Subject = new Subject();\r\n userTenantsList: string[] = [];\r\n private _role: string;\r\n private _user: User = null;\r\n private logoutRedirect: string = window.location.origin;\r\n private profileRedirect =\r\n environment.keycloak.url +\r\n '/realms/' +\r\n environment.keycloak.realm +\r\n '/account/';\r\n\r\n constructor(\r\n private userApiService: UserApiService,\r\n private keycloakService: KeycloakService\r\n ) {}\r\n\r\n isLoggedIn(): boolean {\r\n return this._user != null;\r\n }\r\n\r\n getUser(): User {\r\n return this._user;\r\n }\r\n getActiveRole = () => this._role;\r\n isAdmin = (): boolean => this._role === 'administrator';\r\n\r\n getActiveRoleScopes = () =>\r\n this._user?.rolesAndModules.find((r) => r.name === this._role).scopes\r\n\r\n getAllRoles = () => this._user?.rolesAndModules.map((r) => r.name);\r\n\r\n setUser(user: User): void {\r\n this._user = user;\r\n }\r\n\r\n updateToken(token: string): void {\r\n this._user.token = token;\r\n }\r\n\r\n doLogout(redirect?: string): void {\r\n this._user = null;\r\n this.keycloakService.logout(redirect || this.logoutRedirect);\r\n }\r\n\r\n doLogin(): void {\r\n this.keycloakService.login();\r\n }\r\n\r\n goToProfile(): void {\r\n window.location.href = this.profileRedirect;\r\n }\r\n\r\n getCurrentTenant(): any {\r\n return localStorage.getItem(STORAGE_KEYS.currentTenant);\r\n }\r\n\r\n hasRole(roles: string | string[]): boolean {\r\n roles = [].concat(roles);\r\n return (\r\n roles.includes('*') ||\r\n this._user.rolesAndModules\r\n .map((m) => m.name)\r\n .some((r) => roles.includes(r))\r\n );\r\n }\r\n\r\n setActiveRole(role): void {\r\n localStorage.setItem(STORAGE_KEYS.activeRole, role);\r\n this._role = role;\r\n this.onDepartmentChange.next(role);\r\n }\r\n\r\n configureCurrentTenant(username: string): Observable {\r\n return this.userApiService.getAllTenants(username, environment.SOLUTION).pipe(\r\n tap((tenants) => {\r\n if (tenants?.length) {\r\n this.userTenantsList = tenants.filter((t) => t !== 'root');\r\n if (!this.getCurrentTenant()) {\r\n localStorage.setItem(\r\n STORAGE_KEYS.currentTenant,\r\n this.userTenantsList[0]\r\n );\r\n }\r\n } else {\r\n throw PROFILE_NOT_VALID;\r\n }\r\n })\r\n );\r\n }\r\n\r\n hasTenantModules(featureName: string | string[], role: string = this._role): boolean {\r\n const features = [].concat(featureName);\r\n let has = false;\r\n const roleModulesFeatures = role\r\n ? [].concat(this._user.rolesAndModules.find((r) => r.name === role))\r\n : this._user.rolesAndModules;\r\n roleModulesFeatures.forEach((modulesList) => {\r\n modulesList.roleModules.forEach(module => {\r\n if (!!intersection(features, module.map((f) => f.name)).length) {\r\n has = true;\r\n }\r\n });\r\n });\r\n return has;\r\n }\r\n\r\n composeRoleFeatures(role: string): Observable {\r\n return forkJoin([this.userApiService.getRoleFeatures(role)]).pipe(\r\n map((features) => {\r\n if (this._user) {\r\n this._user.rolesAndModules.find((r) => r.name === role).roleModules =\r\n features;\r\n }\r\n return this._user;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport enum Errors {\r\n required = 'required',\r\n minLength = 'minlength',\r\n maxLength = 'maxlength',\r\n invalidName = 'invalidname',\r\n notInTheFuture = 'notinthefuture',\r\n invalidTotal = 'invalidtotal',\r\n alreadyExists = 'alreadyexists',\r\n alreadyAssigned = 'alreadyassigned',\r\n invalidNumber = 'invalidnumber',\r\n positiveNumber = 'positivenumber',\r\n invalidDecimalPlaces = 'decimalplaces',\r\n notANumber = 'notanumber',\r\n min = 'min',\r\n max = 'max',\r\n equalTo0 = 'equalto0',\r\n coeffNull = 'coeffnull',\r\n notAConst = 'notaconst'\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ValidationService {\r\n public getMessage(errorName: string, errorValue: any, fieldName: string): string {\r\n console.log(errorName, errorValue, fieldName)\r\n const minmax =\r\n fieldName === 't' || fieldName === 'threshold' ? `, ${fieldName} Min must be less than ${fieldName} Max` : ``;\r\n const errorMessages = {\r\n [Errors.required]: `Field is required`,\r\n [Errors.invalidName]: `Should be a valid name`,\r\n [Errors.alreadyExists]: `Already exists`,\r\n [Errors.alreadyAssigned]: `ID is already assigned. Choose different one.`,\r\n [Errors.notInTheFuture]: `Date in the Future`,\r\n [Errors.invalidTotal]: `Total is not valid`,\r\n [Errors.maxLength]: `Maximum ${errorValue.requiredLength} characters allowed`,\r\n [Errors.invalidNumber]: `Only decimal number allowed`,\r\n [Errors.positiveNumber]: `Only positive number allowed`,\r\n [Errors.invalidDecimalPlaces]: `Maximum ${errorValue.required} decimals allowed`,\r\n [Errors.notANumber]: `Unable to calculate`,\r\n [Errors.equalTo0]: `The denominator is equal to 0`,\r\n [Errors.coeffNull]: `At least one x coefficient must be nonzero`,\r\n [Errors.notAConst]: `Function cannot be a constant`,\r\n };\r\n return errorMessages[errorName];\r\n }\r\n\r\n public getDecimalRegex(decimals: number): RegExp {\r\n return new RegExp(`^-?\\\\d+(\\\\.\\\\d{1,${decimals}})?$`);\r\n }\r\n\r\n public regexValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (control.value == null) {\r\n return null;\r\n }\r\n return regex.test(control.value) ? null : error;\r\n };\r\n }\r\n}\r\n","import * as SystemActions from \"../actions/system.actions\";\r\n\r\nexport { SystemActions };","import { createAction, props } from \"@ngrx/store\";\r\nimport { SystemNotification } from \"src/app/components/core/notification-snackbar/models/system-notification.class\";\r\n\r\nexport const StartLoading = createAction('[System] Start loading');\r\nexport const StopLoading = createAction('[System] Stop loading');\r\nexport const SetNotification = createAction('[System] Set notification', props<{ notification: SystemNotification }>());\r\nexport const Redirect = createAction('[System] Redirect to', props<{ url: string }>());\r\nexport const Download = createAction('[System] Download file', props<{ mimeType: string, fileName: string, binary: Uint8Array | null, base64str?: string }>());\r\nexport const DownloadBlob = createAction('[System] Download blob file', props<{ mimeType: string, fileName: string, blob: Blob }>());","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport { SystemActions } from \"../action-types/system.action-types\";\r\n\r\n@Injectable()\r\nexport class SystemEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private router: Router,\r\n ) {}\r\n \r\n redirect$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(SystemActions.Redirect),\r\n tap(({ url }) => this.router.navigateByUrl(url))\r\n ),\r\n { dispatch: false }\r\n );\r\n}\r\n","import { Type } from \"@angular/core\";\r\nimport { ActionReducerMap, RuntimeChecks } from \"@ngrx/store\";\r\nimport { StoreDevtoolsConfig } from \"@ngrx/store-devtools\";\r\nimport { SystemEffects } from \"./effects/system.effects\";\r\nimport { systemReducers } from \"./reducers/system.reducers\";\r\nimport { AppState } from \"./states/app.state\";\r\n\r\nexport const reducers: ActionReducerMap = {\r\n\tsystem: systemReducers\r\n};\r\n\r\nexport const effects: Array> = [SystemEffects];\r\n\r\nexport const runtimeChecks: RuntimeChecks = {\r\n\tstrictActionImmutability: true,\r\n\tstrictActionSerializability: true,\r\n\tstrictActionWithinNgZone: true,\r\n\tstrictStateImmutability: true,\r\n\tstrictStateSerializability: true,\r\n\tstrictActionTypeUniqueness: true\r\n};\r\n\r\nexport const devtoolsConfig: StoreDevtoolsConfig = {\r\n maxAge: 25,\r\n logOnly: false\r\n};\r\n","import { createReducer, on } from \"@ngrx/store\";\r\nimport { SystemActions } from \"../action-types/system.action-types\";\r\nimport { SystemState } from \"../states/system.state\";\r\n\r\nconst INIT_STATE: SystemState = {\r\n loading: false,\r\n notification: undefined,\r\n};\r\n\r\nexport const systemReducers = createReducer(\r\n INIT_STATE,\r\n on(SystemActions.StartLoading, (state: SystemState) => ({ ...state, loading: true })),\r\n on(SystemActions.StopLoading, (state: SystemState) => ({ ...state, loading: false })),\r\n on(SystemActions.SetNotification, (state: SystemState, action) => ({ ...state, notification: action.notification })),\r\n);","import { createSelector } from \"@ngrx/store\";\r\nimport { SystemNotification } from \"src/app/components/core/notification-snackbar/models/system-notification.class\";\r\nimport { AppState } from \"../states/app.state\";\r\nimport { SystemState } from \"../states/system.state\";\r\n\r\nconst systemState = (state: AppState): SystemState => state.system;\r\nexport const selectLoading = createSelector(systemState, (state: SystemState): boolean => state.loading);\r\nexport const selectNotifications = createSelector(systemState, (state: SystemState): SystemNotification | undefined => state.notification);","export const BASE_URL_PROD = {\r\n ADMIN_TOOL_URL: 'https://gw.cube.rina.org/admin-tool',\r\n ADMIN_TOOL_WEB: 'https://admin.cube.rina.org',\r\n WEBSOCKET_URL: 'https://cube-socket.azurewebsites.net/api',\r\n REST: 'https://gw.cube.rina.org/diasarvedi-func'\r\n};\r\n","export const BASE_URL = {\r\n ADMIN_TOOL_URL: 'https://gw-dev.cube.rina.org/admin-tool',\r\n ADMIN_TOOL_WEB: 'https://admin-dev.cube.rina.org',\r\n WEBSOCKET_URL: 'https://cube-socket.azurewebsites.net/api',\r\n REST: 'https://digitalconsulting-api-dev.azure-api.net/diasarvedi-func/dev'\r\n};\r\n","import {Solutions} from '../../app/models/environment-configuration';\r\n\r\n\r\nexport const ARVEDI_COMMON_ENV = {\r\n SOLUTION: Solutions.ARVEDI,\r\n};\r\n\r\n","// import { GeofencingZone } from '@cube/lib-gis-editor/geofencing/api/api.helper';\r\nimport { NgxLoggerLevel } from 'ngx-logger';\r\nimport {EnvironmentConfiguration} from '../app/models/environment-configuration';\r\n\r\nexport const PROFILE_NOT_VALID = new Error('PROFILE NOT VALID');\r\nexport let TENANT_CONFIG: EnvironmentConfiguration = {\r\n settings: {\r\n routes: []\r\n }\r\n};\r\n\r\nexport const LOGGER_CONFIG = {\r\n serverLoggingUrl: '/gateway/logs',\r\n level: NgxLoggerLevel.WARN,\r\n serverLogLevel: NgxLoggerLevel.ERROR,\r\n enableSourceMaps: true\r\n};\r\n\r\nexport const MAX_SELECTABLE_SHIPS = 20;\r\n\r\nexport const DATE_FORMAT = 'MMM D, YYYY - HH:mm';\r\n\r\nexport const SHIP_COLOR_SETTINGS = {\r\n label_ship_status: 'status',\r\n STATUS_COLORS: {\r\n default: 'green'\r\n },\r\n VESSELS_COLORS: {\r\n default: './assets/vessels/arrow_green.svg'\r\n }\r\n};\r\n\r\nexport function changeConfig(configData: any): void {\r\n TENANT_CONFIG = configData;\r\n}\r\nexport function addConfig(tag: string, content: any): void {\r\n TENANT_CONFIG[tag] = content;\r\n}\r\n\r\nexport const AUTH_CONFIG = {\r\n refreshing_time: 5000,\r\n token_lifespan: 60\r\n};\r\n\r\nexport const TIMEOUTS_CONFIG = {\r\n render_delay: 400,\r\n refreshing_time: '7s',\r\n warn_timeout: 5000,\r\n error_timeout: 10000,\r\n snackbar_duration: 1500,\r\n snackbar_error_duration: 3000,\r\n es_reindex_duration: 2000\r\n};\r\n\r\nexport const MAP_CONFIGURATIONS = {\r\n mapbox: {\r\n accessToken: 'pk.eyJ1IjoiYWxibXUiLCJhIjoiY2p0eTN3emR5MGR1bDN5cjN3b2pvOW1pNSJ9.aB49CLoKOHwwUsnIPoFJgg',\r\n url: 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}'\r\n },\r\n navionics: {\r\n enabled: !TENANT_CONFIG.settings.onboard,\r\n accessToken: 'Navionics_webapi_03199'\r\n },\r\n tidetech: {\r\n enabled: true,\r\n protocol: 'https://',\r\n domain: 'wmts.tidetech.org',\r\n version: '1.0.0',\r\n key: 'ZVZvU3hURVZwcDhrTU1IcGpGbnQ6NjU3Q2o1Q0tsT0RKOWRLWFF3WWlVSzhXQ1dLdGNQaENzRUpPZFo4UExORFVrUzlMOFRRY0xhYWxwc3RU'\r\n }\r\n};\r\n\r\nexport const MAP_FILTERS = {\r\n syncAP: true,\r\n fleets: {\r\n values: []\r\n }\r\n};\r\n\r\n","import { globalEnvironment } from './global';\r\nimport {MODULES} from './module.config';\r\nimport {BASE_URL} from './commons/base-url';\r\nimport {ARVEDI_COMMON_ENV} from \"./commons/dias-arvedi\";\r\n\r\nexport const environment = {\r\n ...globalEnvironment,\r\n ...BASE_URL,\r\n ...ARVEDI_COMMON_ENV,\r\n auth: {\r\n ...globalEnvironment.auth,\r\n bearerExcludedUrls: [...globalEnvironment.auth.bearerExcludedUrls, '^https://diasarvedistorage.blob.core.windows.net/'], // url of pdf reports\r\n }\r\n};\r\n","import { KeycloakConfig } from 'keycloak-js';\r\nimport { NgxLoggerLevel } from 'ngx-logger';\r\n\r\nconst keycloakConfig: KeycloakConfig = {\r\n url: 'https://login.cube.rina.org/auth',\r\n realm: 'cube',\r\n clientId: 'arvedi',\r\n};\r\n\r\nconst companyConfig: any = {\r\n logo: './assets/arvedi/arvedi-logo-dark.png',\r\n logoBg: 'bg12294b',\r\n name: 'DIAS Arvedi',\r\n role: '*',\r\n};\r\n\r\nconst grantedMailAddresses: string[] = [];\r\n\r\nexport const globalEnvironment = {\r\n name: 'DIAS Arvedi',\r\n production: false,\r\n keycloak: keycloakConfig,\r\n company: companyConfig,\r\n routes: [],\r\n auth: {\r\n refreshing_time: 5000,\r\n token_lifespan: 60,\r\n bearerExcludedUrls: ['https://api.powerbi.com'],\r\n grantedMailAddresses,\r\n },\r\n api: {\r\n seismicEvents: 'seismic/events',\r\n geojson: 'seismic/geojson',\r\n },\r\n logger: {\r\n serverLoggingUrl: 'http://localhost:3000/logs',\r\n level: NgxLoggerLevel.DEBUG,\r\n serverLogLevel: NgxLoggerLevel.ERROR,\r\n },\r\n powerbi: {\r\n groupId: '1592c6ff-e53f-4888-9b1b-64c5ce8a6ac0',\r\n reportId: '0a0f5b21-1c6f-41ac-bf91-e60ce325ffa5',\r\n },\r\n render_delay: 400,\r\n refreshing_time: '10s',\r\n warn_timeout: 5000,\r\n error_timeout: 10000,\r\n snackbar_duration: 2000,\r\n snackbar_error_duration: 10000,\r\n date_format: 'MM-dd-yyyy HH:mm',\r\n first_available_date: '2021-01-01',\r\n supportUrl: 'https://support.cube.rina.org'\r\n};\r\n","export const MODULES = {\r\n homepage: {\r\n roles: ['AuditReports'],\r\n route: {\r\n path: 'homepage',\r\n loadChildren: () => import('../app/pages/homepage/homepage.module').then((m) => m.HomepageModule),\r\n data: { module: 'homepage' }\r\n },\r\n menu: {\r\n name: 'Homepage',\r\n mat_icon: 'home',\r\n open: true,\r\n link: 'homepage',\r\n }\r\n },\r\n 'carbon-credit': {\r\n roles: ['CarbonCreditsIngestion'],\r\n route: {\r\n path: 'carbon-credit',\r\n loadChildren: () => import('../app/pages/carbon-credit/carbon-credit.module').then(m => m.CarbonCreditModule),\r\n data: { module: 'carbon-credit' }\r\n },\r\n menu: {\r\n name: 'Carbon Credits',\r\n mat_icon: 'eco',\r\n open: false,\r\n link: 'carbon-credit',\r\n }\r\n },\r\n 'carbon-credit-validation': {\r\n roles: ['CarbonCreditsValidation'],\r\n route: {\r\n path: 'carbon-credit-validation',\r\n loadChildren: () => import('../app/pages/carbon-credit-validation/carbon-credit-validation.module').then(m => m.CarbonCreditValidationModule),\r\n data: { module: 'carbon-credit-validation' }\r\n },\r\n menu: {\r\n name: 'Carbon Credits Validation',\r\n mat_icon: 'pan_tool',\r\n open: false,\r\n link: 'carbon-credit-validation',\r\n }\r\n },\r\n 'carbon-function': {\r\n roles: ['CarbonFootprintCalculationIngestion'],\r\n route: {\r\n path: 'carbon-function',\r\n loadChildren: () => import('../app/pages/carbon-function/carbon-function.module').then(m => m.CarbonFunctionModule),\r\n data: { module: 'carbon-function' }\r\n },\r\n menu: {\r\n name: 'Carbon Function',\r\n mat_icon: 'functions',\r\n open: false,\r\n link: 'carbon-function',\r\n }\r\n },\r\n 'carbon-function-validation': {\r\n roles: ['CarbonFootprintCalculationValidation'],\r\n route: {\r\n path: 'carbon-function-validation',\r\n loadChildren: () => import('../app/pages/carbon-function-validation/carbon-function-validation.module').then(m => m.CarbonFunctionValidationModule),\r\n data: { module: 'carbon-function-validation' }\r\n },\r\n menu: {\r\n name: 'Carbon Function Validation',\r\n mat_icon: 'engineering',\r\n open: false,\r\n link: 'carbon-function-validation',\r\n }\r\n },\r\n 'carbon-production-management': {\r\n roles: ['CarbonProductionManagement'],\r\n route: {\r\n path: 'carbon-production-management',\r\n loadChildren: () => import('../app/pages/carbon-production-management/carbon-production-management.module').then(m => m.CarbonProductionManagementModule),\r\n data: { module: 'carbon-production-management' }\r\n },\r\n menu: {\r\n name: 'Carbon Production',\r\n mat_icon: 'factory',\r\n open: false,\r\n link: 'carbon-production-management',\r\n }\r\n },\r\n 'production-ddt-dashboard': {\r\n roles: ['PowerBiAnalytics_for_ProductionAndDDT'],\r\n route: {\r\n path: 'production-ddt-dashboard',\r\n loadChildren: () => import('../app/pages/production-ddt-analytics-dashboard/production-ddt-analytics-dashboard.module').then(m => m.ProductionDdtAnalyticsDashboardModule),\r\n data: { module: 'production-ddt-dashboard' }\r\n },\r\n menu: {\r\n name: 'Production & DDT Analytics',\r\n mat_icon: 'analytics',\r\n open: false,\r\n link: 'production-ddt-dashboard',\r\n }\r\n },\r\n 'customer-management': {\r\n roles: ['CustomerManagement'],\r\n route: {\r\n path: 'customer-management',\r\n loadChildren: () => import('../app/features/user-management/user-management.module').then(module => module.UserManagementModule),\r\n data: { module: 'customer-management' }\r\n },\r\n menu: {\r\n name: 'Customer Management',\r\n mat_icon: 'people',\r\n open: false,\r\n link: 'customer-management'\r\n }\r\n }\r\n};\r\n","// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\r\n/* tslint:disable */\r\nexport const VERSION = {\r\n \"dirty\": false,\r\n \"raw\": \"v0.0.5-17-g58e690d\",\r\n \"hash\": \"g58e690d\",\r\n \"distance\": 17,\r\n \"tag\": \"v0.0.5\",\r\n \"semver\": {\r\n \"options\": {\r\n \"loose\": false,\r\n \"includePrerelease\": false\r\n },\r\n \"loose\": false,\r\n \"raw\": \"v0.0.5\",\r\n \"major\": 0,\r\n \"minor\": 0,\r\n \"patch\": 5,\r\n \"prerelease\": [],\r\n \"build\": [],\r\n \"version\": \"0.0.5\"\r\n },\r\n \"suffix\": \"17-g58e690d\",\r\n \"semverString\": \"0.0.5+17.g58e690d\",\r\n \"version\": \"2.1.1\"\r\n};\r\n/* tslint:enable */\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 95682,\n\t\"./ar-tn.js\": 95682,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\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;"],"names":[],"sourceRoot":"webpack:///"}