{"version":3,"file":"main.js","mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,+HAA+H,YAAY,WAAW,UAAU,UAAU,UAAU,UAAU,MAAM,KAAK,YAAY,OAAO,KAAK,YAAY,yCAAyC,yBAAyB,aAAa,cAAc,eAAe,gBAAgB,oBAAoB,KAAK,4BAA4B,kDAAkD,KAAK,6BAA6B,gCAAgC,KAAK,uBAAuB;AACrjB;AACA;;;;;;;;;;;ACvBA;AACA,4CAA4C,mBAAO,CAAC,8EAAmE;AACvH,kCAAkC,mBAAO,CAAC,uEAA4D;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,+HAA+H,YAAY,WAAW,UAAU,UAAU,YAAY,WAAW,MAAM,KAAK,UAAU,YAAY,OAAO,KAAK,YAAY,WAAW,UAAU,YAAY,MAAM,MAAM,KAAK,YAAY,aAAa,WAAW,UAAU,UAAU,YAAY,aAAa,aAAa,WAAW,YAAY,MAAM,MAAM,KAAK,YAAY,WAAW,UAAU,UAAU,YAAY,aAAa,aAAa,aAAa,WAAW,YAAY,MAAM,MAAM,KAAK,YAAY,OAAO,KAAK,UAAU,UAAU,YAAY,WAAW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E;AAC1H,kCAAkC,mBAAO,CAAC,0EAA+D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kMAAkM,MAAM,UAAU,YAAY,aAAa,aAAa,WAAW,UAAU,UAAU,UAAU,MAAM,KAAK,YAAY,OAAO,KAAK,UAAU,YAAY,aAAa,WAAW,OAAO,KAAK,YAAY,OAAO,KAAK,YAAY,OAAO,KAAK,UAAU,YAAY,WAAW,MAAM,KAAK,UAAU,wBAAwB,OAAO,KAAK,UAAU,YAAY,aAAa,aAAa,WAAW,UAAU,MAAM,KAAK,UAAU,YAAY,aAAa,YAAY,UAAU,UAAU,YAAY,OAAO,KAAK,UAAU,YAAY,aAAa,OAAO,KAAK,UAAU,YAAY,WAAW,UAAU,MAAM,KAAK,YAAY,WAAW,wBAAwB,OAAO,KAAK,YAAY,WAAW,UAAU,MAAM,KAAK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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/core/interceptors/error-interceptor.ts","./src/app/core/interceptors/jwt-interceptor.ts","./src/app/core/models/comment.ts","./src/app/core/models/user.ts","./src/app/core/models/voyage-data-management.ts","./src/app/core/services/auth.service.ts","./src/app/core/services/breadcrumb-service.service.ts","./src/app/core/services/dashboard.service.ts","./src/app/core/services/fueleu-datamanagement.service.ts","./src/app/core/services/fueleu-types.service.ts","./src/app/core/services/users.service.ts","./src/app/layouts/auth-layout/auth-layout.component.ts","./src/app/layouts/layouts.module.ts","./src/app/layouts/main-layout/main-layout.component.ts","./src/app/shared/decorators/set-timeout.ts","./src/app/shared/directives/hover-menu.directive.ts","./src/app/shared/directives/min-max-validator.directive.ts","./src/app/shared/directives/toggable-input.directive.ts","./src/app/shared/directives/tooltip.directive.ts","./src/app/shared/pipes/date-normalized.pipe.ts","./src/app/shared/pipes/duration.pipe.ts","./src/app/shared/pipes/emission-eua-cost.ts","./src/app/shared/pipes/no-value.pipe.ts","./src/app/shared/pipes/order-by.pipe.ts","./src/app/shared/pipes/round.pipe.ts","./src/app/shared/pipes/unit.pipe.ts","./src/app/shared/services/auth.gaurd.ts","./src/app/shared/services/navigation.service.ts","./src/app/shared/shared-routing.module.ts","./src/app/shared/shared.module.ts","./src/app/shared/utils.ts","./src/app/shared/views/base-item-viewer/base-item-viewer.component.ts","./src/app/shared/views/base-map/base-map.component.ts","./src/app/shared/views/base-progress-bar/progress-bar.component.ts","./src/app/shared/views/base/base.component.ts","./src/app/shared/views/chart-card/chart-card.component.ts","./src/app/shared/views/comment/comment.component.ts","./src/app/shared/views/indeterminate-progress-bar/indeterminate-progress-bar.component.ts","./src/app/shared/views/kpi/kpi.component.ts","./src/app/shared/views/loading-view/loading-view.component.ts","./src/app/shared/views/range-slider/range-slider.component.ts","./src/app/shared/views/star/star.component.ts","./src/app/shared/views/toggable-input/toggable-input.component.ts","./src/app/shared/views/toggle-alert-button/toggle-alert-button.component.ts","./src/app/shared/views/toggle-button/toggle-button.component.ts","./src/app/shared/views/toggle-switch/toggle-switch.component.ts","./src/app/shared/views/tooltip/tooltip.component.ts","./src/app/shared/views/upload-button/upload-button.component.ts","./src/app/views/administration/admin/fuelseu/fuelseu-details/fuelseu-details.component.ts","./src/app/views/authentication/auth-routing.module.ts","./src/app/views/authentication/auth.module.ts","./src/app/views/authentication/forget-password/forget-password.component.ts","./src/app/views/authentication/login/login.component.ts","./src/app/views/authentication/process-2fa/process-2fa.component.ts","./src/app/views/authentication/reset-password/reset-password.component.ts","./src/app/views/authentication/two-step-verification/two-step-verification.component.ts","./src/app/views/authentication/verify-email/verify-email.component.ts","./src/app/views/breadcrumb/breadcrumb.component.ts","./src/app/views/compliance-management/eu-data-management/eu-data-management-detail/eu-data-management-detail.component.ts","./src/environments/environment.ts","./src/main.ts","./src/app/layouts/auth-layout/auth-layout.component.css","./src/app/layouts/main-layout/main-layout.component.css","./src/app/shared/views/chart-card/chart-card.component.css","./src/app/shared/views/comment/comment.component.css","./src/app/shared/views/indeterminate-progress-bar/indeterminate-progress-bar.component.css","./src/app/shared/views/kpi/kpi.component.css","./src/app/shared/views/loading-view/loading-view.component.css","./src/app/shared/views/range-slider/range-slider.component.css","./src/app/shared/views/star/star.component.css","./src/app/shared/views/toggable-input/toggable-input.component.css","./src/app/shared/views/toggle-switch/toggle-switch.component.css","./src/app/shared/views/tooltip/tooltip.component.css","./src/app/shared/views/upload-button/upload-button.component.css","./src/app/views/administration/admin/fuelseu/fuelseu-details/fuelseu-details.component.css","./src/app/views/authentication/forget-password/forget-password.component.css","./src/app/views/authentication/login/login.component.css","./src/app/views/authentication/process-2fa/process-2fa.component.css","./src/app/views/authentication/reset-password/reset-password.component.css","./src/app/views/authentication/two-step-verification/two-step-verification.component.css","./src/app/views/authentication/verify-email/verify-email.component.css","./src/app/views/breadcrumb/breadcrumb.component.css","./src/app/views/compliance-management/eu-data-management/eu-data-management-detail/eu-data-management-detail.component.css","./src/app/shared/views/toggle-alert-button/toggle-alert-button.component.scss","./src/app/shared/views/toggle-button/toggle-button.component.scss"],"sourcesContent":["import { NgModule } from '@angular/core'\r\nimport { Routes, RouterModule } from '@angular/router'\r\nimport { AuthLayoutComponent } from './layouts/auth-layout/auth-layout.component'\r\nimport { MainLayoutComponent } from './layouts/main-layout/main-layout.component'\r\nimport { AuthGaurd } from './shared/services/auth.gaurd'\r\n\r\nconst adminRoutes: Routes = [\r\n {\r\n path: 'dashboard',\r\n loadChildren: () =>\r\n import('./views/dashboard/dashboard.module').then(m => m.DashboardModule),\r\n },\r\n {\r\n path: 'dashboard/:id',\r\n loadChildren: () =>\r\n import('./views/dashboard/dashboard.module').then(m => m.DashboardModule),\r\n },\r\n {\r\n path: 'customers',\r\n loadChildren: () =>\r\n import('./views/customers/customers.module').then(m => m.CustomersModule),\r\n },\r\n {\r\n path: 'users',\r\n loadChildren: () =>\r\n import('./views/users/users.module').then(m => m.UsersModule),\r\n },\r\n {\r\n path: 'vessels',\r\n loadChildren: () =>\r\n import('./views/vessel/vessel.module').then(m => m.VesselModule),\r\n },\r\n {\r\n path: 'deliverables',\r\n loadChildren: () =>\r\n import('./views/deliverables/deliverables.module').then(\r\n m => m.DeliverablesModule\r\n ),\r\n },\r\n {\r\n path: 'administration',\r\n loadChildren: () =>\r\n import('./views/administration/administration.module').then(\r\n m => m.AdministrationModule\r\n ),\r\n },\r\n {\r\n path: 'suppliers',\r\n loadChildren: () =>\r\n import('./views/suppliers/suppliers.module').then(m => m.SupplierModule),\r\n },\r\n {\r\n path: 'reports',\r\n loadChildren: () =>\r\n import('./views/reports/reports.module').then(m => m.ReprotsModule),\r\n },\r\n {\r\n path: 'weather-report',\r\n loadChildren: () =>\r\n import('./views/weather-report/weather-report.module').then(\r\n m => m.WeatherReportModule\r\n ),\r\n },\r\n {\r\n path: 'alerts',\r\n loadChildren: () =>\r\n import('./views/alerts/alerts.module').then(m => m.AlertsModule),\r\n },\r\n {\r\n path: 'eua-inventory',\r\n loadChildren: () =>\r\n import('./views/eua-inventory/eua-inventory.module').then(\r\n m => m.EuaInventoryModule\r\n ),\r\n },\r\n\r\n {\r\n path: 'bunker-planning',\r\n loadChildren: () =>\r\n import('./views/bunker-planning/bunker-planning.module').then(\r\n m => m.BunkerPlanningModule\r\n ),\r\n },\r\n {\r\n path: 'voyage-overview',\r\n loadChildren: () =>\r\n import('./views/voyage-overview/voyage-overview.module').then(\r\n m => m.VoyageOverviewModule\r\n ),\r\n },\r\n {\r\n path: 'fuel-strategy',\r\n loadChildren: () =>\r\n import('./views/voyage-planner/voyage-planner.module').then(\r\n m => m.VoyagePlannerModule\r\n ),\r\n },\r\n {\r\n path: 'compliance-management',\r\n loadChildren: () =>\r\n import('./views/compliance-management/compliance-management.module').then(\r\n m => m.ComplianceManagementModule\r\n ),\r\n },\r\n]\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: '/dashboard',\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'error/404',\r\n },\r\n {\r\n path: '',\r\n component: AuthLayoutComponent,\r\n children: [\r\n {\r\n path: 'auth',\r\n loadChildren: () =>\r\n import('./views/authentication/auth.module').then(m => m.AuthModule),\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n component: MainLayoutComponent,\r\n canActivate: [AuthGaurd],\r\n children: adminRoutes,\r\n },\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { useHash: false })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n constructor() {\r\n console.log(this)\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser'\r\nimport { NgModule } from '@angular/core'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'\r\nimport { RouterModule } from '@angular/router'\r\n\r\nimport { AppComponent } from './app.component'\r\nimport { AppRoutingModule } from './app-routing.module'\r\nimport { MainLayoutComponent } from './layouts/main-layout/main-layout.component'\r\nimport { AuthLayoutComponent } from './layouts/auth-layout/auth-layout.component'\r\n\r\nimport { CommonModule } from '@angular/common'\r\n\r\nimport { ToastrModule } from 'ngx-toastr'\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations'\r\nimport { LayoutsModule } from './layouts/layouts.module'\r\nimport { AuthModule } from './views/authentication/auth.module'\r\nimport { JwtInterceptor } from './core/interceptors/jwt-interceptor'\r\nimport { ErrorInterceptor } from './core/interceptors/error-interceptor'\r\n\r\nimport {\r\n NgxUiLoaderConfig,\r\n NgxUiLoaderModule,\r\n PB_DIRECTION,\r\n POSITION,\r\n SPINNER,\r\n} from 'ngx-ui-loader'\r\nimport { AngularFireModule } from '@angular/fire/compat'\r\nimport { AngularFireDatabaseModule } from '@angular/fire/compat/database'\r\nimport { SharedModule } from './shared/shared.module'\r\nimport { environment } from '../environments/environment'\r\nimport { NgChartsModule } from 'ng2-charts'\r\n\r\nconst ngxUiLoaderConfig: NgxUiLoaderConfig = {\r\n fgsColor: '#D5E05B',\r\n fgsPosition: 'center-center',\r\n fgsSize: 100,\r\n fgsType: SPINNER.rectangleBounce, // foreground spinner type\r\n pbDirection: PB_DIRECTION.leftToRight, // progress bar direction\r\n pbThickness: 5, // progress bar thickness\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent, MainLayoutComponent, AuthLayoutComponent],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n AngularFireModule.initializeApp(environment.firebaseConfig),\r\n AngularFireDatabaseModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AppRoutingModule,\r\n CommonModule,\r\n SharedModule,\r\n LayoutsModule,\r\n AuthModule,\r\n RouterModule,\r\n NgChartsModule,\r\n NgxUiLoaderModule.forRoot(ngxUiLoaderConfig),\r\n ToastrModule.forRoot(),\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Injectable } from '@angular/core'\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http'\r\nimport { Observable, throwError } from 'rxjs'\r\nimport { catchError, first } from 'rxjs/operators'\r\n\r\nimport { AuthService } from '../services/auth.service'\r\nimport { ToastrService } from 'ngx-toastr'\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private authService: AuthService,\r\n private toastr: ToastrService\r\n ) {}\r\n\r\n intercept(\r\n request: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n return next.handle(request).pipe(\r\n catchError(err => {\r\n var user = this.authService.currentUserValue\r\n if (err.status === 401) {\r\n if (user) {\r\n setTimeout(() => {\r\n this.toastr.error(\r\n 'You dont have access to view this resource, Please Login again',\r\n 'Error'\r\n )\r\n }, 500)\r\n this.authService.logout()\r\n }\r\n }\r\n if (err.status === 409) {\r\n if (user) {\r\n setTimeout(() => {\r\n this.toastr.error(\r\n 'You have been logged out because you signed in from another browser',\r\n 'Error'\r\n )\r\n }, 500)\r\n this.authService.logout()\r\n }\r\n }\r\n\r\n const error = err.error?.message || err.error?.data || err.statusText\r\n return throwError(() => new Error(error))\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\n\r\nimport { AuthService } from '../../core/services/auth.service';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n constructor(private authService: AuthService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // add authorization header with jwt token if available\r\n let currentUser = this.authService.currentUserValue;\r\n if (currentUser && currentUser.access_token) {\r\n if (this.tokenExpired(currentUser.access_token)) {\r\n //this.authService.logout();\r\n //location.reload();\r\n this.authService.refreshToken().pipe(first())\r\n .subscribe(\r\n user => {\r\n location.reload();\r\n },\r\n error => {\r\n this.authService.logout();\r\n });\r\n }\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${currentUser.access_token}`\r\n }\r\n });\r\n }\r\n\r\n return next.handle(request);\r\n }\r\n\r\n private tokenExpired(token: string) {\r\n const expiry = (JSON.parse(atob(token.split('.')[1]))).exp;\r\n return (Math.floor((new Date).getTime() / 1000)) >= expiry;\r\n }\r\n}\r\n","export class Comment {\r\n userId?: string\r\n commentId?: string\r\n userName?: string\r\n commentDate?: string\r\n commentText: string\r\n updatedAt?: string\r\n\r\n constructor(params?: any) {\r\n this.commentId = params?.commentId\r\n this.userId = params?.userId ?? params.UserId\r\n this.userName = params?.userName ?? params.UserName\r\n this.commentDate = params?.commentDate ?? params.CommentDate\r\n this.commentText = params?.commentText ?? params.CommentText\r\n this.updatedAt = params?.updatedAt ?? params.UpdatedAt\r\n this.commentId = params?.commentId ?? params.CommentId\r\n }\r\n}\r\n","export class User {\r\n id?: string\r\n firstName?: string\r\n lastName?: string\r\n postFixPIC?: string\r\n email?: string\r\n role?: any\r\n roleString?: string\r\n customerId?: string\r\n customerName?: string\r\n password?: string\r\n access_token?: string\r\n refresh_token?: string\r\n expires_in?: number\r\n vesselIds?: string[]\r\n vesselId?: string\r\n createdAt?: Date\r\n portIds?: Array<{}>\r\n additionalEmails?: string\r\n secretKey?: string\r\n isValidated?: boolean\r\n twoFaType?: string\r\n validatedUsers?: string[]\r\n twoFactorEnabled?: boolean\r\n}\r\n\r\nexport class Surveyor {\r\n deliveryId?: string\r\n surveyorId?: string\r\n}\r\n\r\nexport const UserRoles = {\r\n '0': 'VESSEL',\r\n '1': 'C4',\r\n '2': 'SUPER_USER',\r\n '3': 'CUSTOMER1',\r\n '4': 'CUSTOMER2',\r\n '5': 'OPERATOR1',\r\n '6': 'SURVEYOR',\r\n '7': 'ROUTING_OPERATOR',\r\n '8': 'EUA_INVENTORY_MANAGER',\r\n '9': 'SUPER_OPERATOR',\r\n VESSEL: '0',\r\n C4: '1',\r\n SUPER_USER: '2',\r\n CUSTOMER1: '3',\r\n CUSTOMER2: '4',\r\n OPERATOR1: '5',\r\n SURVEYOR: '6',\r\n ROUTING_OPERATOR: '7',\r\n EUA_INVENTORY_MANAGER: '8',\r\n SUPER_OPERATOR: '9',\r\n}\r\n","export interface VoyageDataBioFuelPayload {\r\n fuelName: string\r\n consumedAtSea: number\r\n consumedAtPort: number\r\n lowerCalorificValue: number\r\n e: number\r\n isExist: boolean\r\n}\r\n\r\nexport class VoyageHistoryPayload {\r\n id: string\r\n voyageNo: string\r\n fromDate: string\r\n toDate: string\r\n fromPort: string\r\n toPort: string\r\n hfoConsumedAtSea: number\r\n mgoConsumedAtSea: number\r\n lfoConsumedAtSea: number\r\n hfoConsumedAtPort: number\r\n mgoConsumedAtPort: number\r\n lfoConsumedAtPort: number\r\n transportWork: number\r\n distanceTravelled: number\r\n hoursUnderway: number\r\n timeAtSea: number\r\n cargoCarried: number\r\n cO2EmittedAtSea: number\r\n cO2EmittedAtPort: number\r\n eu: string\r\n status: string\r\n createdAt: string\r\n updatedAt: string\r\n createdByUserName: string\r\n updatedByUserName: string\r\n inputSource: string\r\n isEUAConsumed: boolean\r\n vesselId: string\r\n vesselName: string\r\n isEUASurrendered: boolean\r\n opsConsumed: number\r\n bioFuelConsumptions: VoyageDataBioFuelPayload[]\r\n\r\n constructor(params: Partial) {\r\n this.id = params.id || ''\r\n this.voyageNo = params.voyageNo || ''\r\n this.fromDate = params.fromDate || ''\r\n this.toDate = params.toDate || ''\r\n this.fromPort = params.fromPort || ''\r\n this.toPort = params.toPort || ''\r\n this.hfoConsumedAtSea = params.hfoConsumedAtSea || 0\r\n this.mgoConsumedAtSea = params.mgoConsumedAtSea || 0\r\n this.lfoConsumedAtSea = params.lfoConsumedAtSea || 0\r\n this.hfoConsumedAtPort = params.hfoConsumedAtPort || 0\r\n this.mgoConsumedAtPort = params.mgoConsumedAtPort || 0\r\n this.lfoConsumedAtPort = params.lfoConsumedAtPort || 0\r\n this.transportWork = params.transportWork || 0\r\n this.distanceTravelled = params.distanceTravelled || 0\r\n this.hoursUnderway = params.hoursUnderway || 0\r\n this.timeAtSea = params.timeAtSea || 0\r\n this.cargoCarried = params.cargoCarried || 0\r\n this.cO2EmittedAtSea = params.cO2EmittedAtSea || 0\r\n this.cO2EmittedAtPort = params.cO2EmittedAtPort || 0\r\n this.eu = params.eu || ''\r\n this.status = params.status || ''\r\n this.createdAt = params.createdAt || ''\r\n this.updatedAt = params.updatedAt || ''\r\n this.createdByUserName = params.createdByUserName || ''\r\n this.updatedByUserName = params.updatedByUserName || ''\r\n this.inputSource = params.inputSource || ''\r\n this.isEUAConsumed = params.isEUAConsumed || false\r\n this.vesselId = params.vesselId || ''\r\n this.vesselName = params.vesselName || ''\r\n this.isEUASurrendered = params.isEUASurrendered || false\r\n this.opsConsumed = params.opsConsumed || 0\r\n this.bioFuelConsumptions = params.bioFuelConsumptions || []\r\n }\r\n}\r\n\r\nexport class SaveVoyageDataPayload {\r\n bioFuels: VoyageDataBioFuelPayload[] = []\r\n vesselVoyageHistories: VoyageHistoryPayload[]\r\n\r\n constructor(bioFuels: VoyageDataBioFuelPayload[], data: VoyageData[]) {\r\n this.bioFuels = [...bioFuels]\r\n this.vesselVoyageHistories = data.map(\r\n item => new VoyageHistoryPayload(item)\r\n )\r\n }\r\n}\r\n\r\nexport interface VoyageDataPortDetail {\r\n id: string\r\n name: string\r\n latitude: number\r\n longitude: number\r\n priceAdjustmentHSFO: number\r\n priceAdjustmentVLSFO: number\r\n priceAdjustmentLSMGO: number\r\n showOnGraph: boolean\r\n totalLift: number\r\n isParent: boolean\r\n isEuropean: boolean\r\n isEuropeanOuterMostRegions: boolean\r\n isConsumeDOatPort: boolean\r\n updatedAt: string\r\n unLoCode?: string\r\n flagId?: string\r\n hasBioFuels: boolean\r\n}\r\n\r\nexport class VoyageData {\r\n surrenderedEUA: number\r\n destinationPortDetail: VoyageDataPortDetail\r\n departurePortDetail: VoyageDataPortDetail\r\n emissionTaxType: number\r\n voyageCategory: string\r\n totalCO2Emitted: number\r\n liabaleCO2EmittedAtSea: number\r\n liabaleCO2EmittedAtPort: number\r\n expectedEUA: number\r\n errorMessages: string\r\n bioFuelConsumptions: any[]\r\n vesselIMO: number\r\n customerName: string\r\n id: string\r\n voyageNo: string\r\n fromDate: string\r\n toDate: string\r\n fromPort: string\r\n toPort: string\r\n hfoConsumedAtSea: number\r\n mgoConsumedAtSea: number\r\n lfoConsumedAtSea: number\r\n hfoConsumedAtPort: number\r\n mgoConsumedAtPort: number\r\n lfoConsumedAtPort: number\r\n transportWork: number\r\n distanceTravelled: number\r\n isLocked: boolean\r\n hoursUnderway: number\r\n timeAtSea: number\r\n cargoCarried: number\r\n cO2EmittedAtSea: number\r\n cO2EmittedAtPort: number\r\n eu: string\r\n createdAt: string\r\n updatedAt: string\r\n createdByUserName: string\r\n isEUAConsumed: boolean\r\n vesselId: string\r\n vesselName: string\r\n isEUASurrendered: boolean\r\n opsConsumed: number\r\n selected: boolean\r\n\r\n constructor(params: Partial) {\r\n Object.assign(this, params)\r\n this.selected = false\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { BehaviorSubject, Observable } from 'rxjs'\r\nimport { environment } from 'src/environments/environment'\r\nimport { User, UserRoles } from '../models/user'\r\nimport { map } from 'rxjs/operators'\r\nimport { PermissionSet } from '../models/permission-set'\r\nimport { Resources } from '../enums'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n private currentUserSubject: BehaviorSubject =\r\n new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')))\r\n public currentUser: Observable = this.currentUserSubject.asObservable()\r\n\r\n public isInImpersonatorModeSubject = new BehaviorSubject(\r\n !!localStorage.getItem('impersonatorUser')\r\n )\r\n public isInImpersonatorMode$ = this.isInImpersonatorModeSubject.asObservable()\r\n\r\n private tempUserSubject: BehaviorSubject\r\n public tempUser: Observable\r\n\r\n private _url: string = `${environment.apiUrl}/api/Auth/`\r\n\r\n rememberMe = false\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private route: ActivatedRoute,\r\n //private userService: UserService,\r\n private router: Router\r\n ) {\r\n var rememberMeSubject = new BehaviorSubject(\r\n JSON.parse(localStorage.getItem('rememberMe'))\r\n )\r\n if (rememberMeSubject.value != null) {\r\n this.rememberMe = rememberMeSubject.value\r\n }\r\n\r\n if (this.rememberMe) {\r\n this.currentUserSubject = new BehaviorSubject(\r\n JSON.parse(localStorage.getItem('currentUser'))\r\n )\r\n this.currentUser = this.currentUserSubject.asObservable()\r\n } else {\r\n this.currentUserSubject = new BehaviorSubject(\r\n JSON.parse(sessionStorage.getItem('currentUser'))\r\n )\r\n this.currentUser = this.currentUserSubject.asObservable()\r\n }\r\n const tempUserFromStorage = JSON.parse(localStorage.getItem('tempUser'))\r\n this.tempUserSubject = new BehaviorSubject(tempUserFromStorage)\r\n this.tempUser = this.tempUserSubject.asObservable()\r\n }\r\n\r\n authenticate(email: string, password: string) {\r\n return this.http\r\n .post(this._url + 'SignIn', { email: email, password: password })\r\n .pipe(\r\n map(responce => {\r\n var user: User = new User()\r\n user = responce['data']\r\n\r\n if (user.isValidated) {\r\n var isVerified = JSON.parse(localStorage.getItem('isValidated'))\r\n var validatedUsers = JSON.parse(\r\n localStorage.getItem('validatedUsers')\r\n )\r\n if (\r\n isVerified &&\r\n validatedUsers &&\r\n validatedUsers.includes(user.id)\r\n ) {\r\n localStorage.setItem('currentUser', JSON.stringify(user))\r\n this.currentUserSubject.next(user)\r\n return user\r\n } else {\r\n localStorage.setItem('tempUser', JSON.stringify(user))\r\n this.tempUserSubject.next(user)\r\n throw new Error('2FA Required')\r\n }\r\n }\r\n if (user.twoFactorEnabled && !user.isValidated) {\r\n localStorage.setItem('tempUser', JSON.stringify(user))\r\n this.tempUserSubject.next(user)\r\n\r\n // Retrieve redirect value from query parameter\r\n const redirectValue = this.route.snapshot.queryParamMap.get('redirect');\r\n\r\n // Navigate to process-2fa with the retrieved redirect value as query parameter\r\n const redirectUrl = '/auth/process-2fa';\r\n if (redirectValue) {\r\n const queryParams = { redirect: redirectValue };\r\n this.router.navigateByUrl(this.router.createUrlTree([redirectUrl], { queryParams }).toString());\r\n } else {\r\n this.router.navigateByUrl(redirectUrl); // Navigate without query parameter\r\n }\r\n\r\n // this.router.navigateByUrl('/auth/process-2fa')\r\n return\r\n }\r\n\r\n if (this.rememberMe) {\r\n localStorage.setItem('currentUser', JSON.stringify(user))\r\n this.currentUserSubject.next(user)\r\n } else {\r\n sessionStorage.setItem('currentUser', JSON.stringify(user))\r\n this.currentUserSubject.next(user)\r\n }\r\n\r\n return user\r\n })\r\n )\r\n }\r\n\r\n public get currentUserValue(): User {\r\n return this.currentUserSubject.value\r\n }\r\n\r\n public setCurrentUser(): void {\r\n if(!this.currentUserSubject.value)\r\n this.currentUserSubject.next(JSON.parse(localStorage.getItem('currentUser')));\r\n }\r\n\r\n get isInImpersonatorMode(): boolean {\r\n return this.isInImpersonatorModeSubject.getValue()\r\n }\r\n\r\n logout() {\r\n // remove user from local storage to log user out\r\n\r\n if (this.rememberMe) {\r\n localStorage.removeItem('currentUser')\r\n this.currentUserSubject.next(null)\r\n } else {\r\n sessionStorage.removeItem('currentUser')\r\n this.currentUserSubject.next(null)\r\n }\r\n if (this.isInImpersonatorMode$) this.exitImpersonatorMode()\r\n //localStorage.removeItem('isValidated');\r\n this.router.navigateByUrl('/auth/login')\r\n }\r\n\r\n changePassword(\r\n password: string,\r\n newPassword: string,\r\n confirmPassword: string\r\n ) {\r\n return this.http.post(this._url + 'ChangePassword', {\r\n currentPassword: password,\r\n newPassword: newPassword,\r\n '': confirmPassword,\r\n })\r\n }\r\n\r\n setPassword(userId: string, newPassword: string) {\r\n return this.http.post(this._url + 'SetPassword', {\r\n userId: userId,\r\n Password: newPassword,\r\n })\r\n }\r\n\r\n forgetPassword(email: string) {\r\n return this.http.post(this._url + 'ForgotPassword', { email: email })\r\n }\r\n\r\n resetPassword(token: string, userId: string, newPassword: string) {\r\n return this.http.post(this._url + 'ResetPassword', {\r\n token: token,\r\n userId: userId,\r\n Password: newPassword,\r\n })\r\n }\r\n\r\n refreshToken() {\r\n return this.http\r\n .post(this._url + 'RefreshToken', {\r\n refreshToken: this.currentUserValue.refresh_token,\r\n })\r\n .pipe(\r\n map(responce => {\r\n var user: User = new User()\r\n user = responce['data']\r\n\r\n if (this.rememberMe) {\r\n localStorage.setItem('currentUser', JSON.stringify(user))\r\n this.currentUserSubject.next(user)\r\n } else {\r\n sessionStorage.setItem('currentUser', JSON.stringify(user))\r\n this.currentUserSubject.next(user)\r\n }\r\n return user\r\n })\r\n )\r\n }\r\n getQRCodeImage(secretKey: string, userName: string) {\r\n return this.http.get(\r\n this._url +\r\n 'GenerateQRCode' +\r\n `?secretKey=${secretKey}&username=${userName}`\r\n )\r\n }\r\n verifyQRCode(secretKey: string, qrCode: string, userId: string) {\r\n return this.http.get(\r\n this._url +\r\n 'ValidateQRCode' +\r\n `?secretKey=${secretKey}&userProvidedCode=${qrCode}&userId=${userId}`\r\n )\r\n }\r\n disable2Fa(userId: string) {\r\n return this.http.get(this._url + 'Disable2FA' + `?userId=${userId}`)\r\n }\r\n send2FaEmail(userId: string) {\r\n return this.http.post(this._url + 'Send2FAEmail?id=' + userId, {})\r\n }\r\n verifyEmailCode(qrCode: string, userId: string) {\r\n return this.http.get(\r\n this._url +\r\n 'ValidateEmailCode' +\r\n `?userProvidedCode=${qrCode}&userId=${userId}`\r\n )\r\n }\r\n\r\n get userName(): string {\r\n const firstName = this.currentUserValue.firstName\r\n const lastName = this.currentUserValue.lastName\r\n const userName = `${firstName} ${lastName}`\r\n return userName\r\n }\r\n\r\n get userId(): string {\r\n return this.currentUserValue.id\r\n }\r\n\r\n get userRole(): string {\r\n return this.currentUserValue.role\r\n }\r\n\r\n get isAuthenticated(): boolean {\r\n return !!localStorage.getItem('currentUser')\r\n }\r\n\r\n getImpersonatedUserDetails(userId: string) {\r\n return this.http.post(this._url + 'Impersonate', { userId: userId })\r\n }\r\n\r\n getSavedImpersonatedUserDetails() {\r\n if (this.isInImpersonatorMode) {\r\n return JSON.parse(localStorage.getItem('currentUser'))\r\n } else null\r\n }\r\n\r\n enterImpersonatorMode(selectedUser: Partial) {\r\n const currentUser = localStorage.getItem('currentUser')\r\n const impersonatedUser = JSON.stringify(selectedUser)\r\n localStorage.setItem('impersonatorUser', currentUser)\r\n localStorage.setItem('currentUser', impersonatedUser)\r\n this.isInImpersonatorModeSubject.next(true)\r\n this.currentUserSubject.next(\r\n JSON.parse(localStorage.getItem('currentUser'))\r\n )\r\n this.router.navigate(['dashboard'])\r\n }\r\n\r\n exitImpersonatorMode() {\r\n const impersonatorUser = localStorage.getItem('impersonatorUser')\r\n localStorage.setItem('currentUser', impersonatorUser)\r\n localStorage.removeItem('impersonatorUser')\r\n this.isInImpersonatorModeSubject.next(false)\r\n this.currentUserSubject.next(\r\n JSON.parse(localStorage.getItem('currentUser'))\r\n )\r\n }\r\n\r\n afterUserLogin(role: number) {\r\n if (role == 1 || role == 2 || role == 5 || role == 6 || role == 7 || role == 9) {\r\n let redirectUrl = this.route.snapshot.queryParamMap.get('redirect')\r\n if (redirectUrl != null) {\r\n var urlRegex =\r\n /^(?:https?:\\/\\/)?(?:www\\.)?(?:localhost|\\b(?:[a-z0-9]+(?:-[a-z0-9]+)*\\.)+[a-z]{2,}\\b)(?::\\d{1,5})?(?:\\/[\\w.-]*)*(?:\\?.*)?$/i\r\n\r\n if (urlRegex.test(redirectUrl)) {\r\n var redirect = redirectUrl\r\n .split('://')[1]\r\n .split('/')\r\n .slice(1)\r\n .join('/')\r\n if(redirect !== null && redirect !== undefined && redirect.trim() !== '') {\r\n this.router.navigateByUrl('/' + redirect);\r\n return;\r\n }\r\n }\r\n }\r\n if (this.router.url.includes('/auth/login')){\r\n if (role == 6 )\r\n this.router.navigateByUrl(\"/deliverables\");\r\n else\r\n this.router.navigateByUrl(\"/dashboard\");\r\n }\r\n }\r\n else if (role == 8) {\r\n this.router.navigateByUrl('/eua-inventory')\r\n }\r\n else {\r\n this.router.navigateByUrl('/deliverables')\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BreadcrumbItem } from '../models/breadcrumb';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreadcrumbService {\r\n private breadcrumbs: BreadcrumbItem[] = [];\r\n breadcrumbsChanged: BehaviorSubject = new BehaviorSubject([]);\r\n getBreadcrumbs(): BreadcrumbItem[] {\r\n const data = JSON.parse(localStorage.getItem(\"breadcrumbs\"));\r\n if(data != null)\r\n this.breadcrumbs = data;\r\n this.breadcrumbsChanged.next(this.breadcrumbs);\r\n return this.breadcrumbs;\r\n }\r\n empty() {\r\n localStorage.removeItem(\"breadcrumbs\");\r\n return this.breadcrumbs = [];\r\n }\r\n addBreadcrumb(item: BreadcrumbItem) {\r\n if(!this.breadcrumbs.find(el => el.label === item.label))\r\n this.breadcrumbs.push(item);\r\n localStorage.setItem(\"breadcrumbs\", JSON.stringify(this.breadcrumbs));\r\n this.breadcrumbsChanged.next(this.breadcrumbs);\r\n }\r\n removeLastBreadcrumb() {\r\n this.breadcrumbs.pop();\r\n localStorage.setItem(\"breadcrumbs\", JSON.stringify(this.breadcrumbs));\r\n this.breadcrumbsChanged.next(this.breadcrumbs);\r\n }\r\n}","import { HttpClient } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\r\nimport { environment } from 'src/environments/environment'\r\nimport { VesselBunkerPlanningSchedule } from '../models/bunker-planning'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DashboardService {\r\n private _url: string = `${environment.apiUrl}/api/Dashboard/`\r\n refresh$: Subject = new Subject()\r\n toggleVessels$: Subject = new Subject()\r\n toggleFilters$: Subject = new Subject()\r\n scrollToBottom$: Subject = new Subject()\r\n\r\n activeVesselSchedules: BehaviorSubject =\r\n new BehaviorSubject([])\r\n activeVesselSchedules$: Observable =\r\n this.activeVesselSchedules.asObservable()\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getRouteLinkToken(): Observable {\r\n return this.http.get(this._url + 'RouteLinkMagicalToken')\r\n }\r\n\r\n refresh() {\r\n this.refresh$.next(true)\r\n }\r\n\r\n toggleVesselsList() {\r\n this.toggleVessels$.next(true)\r\n }\r\n\r\n toggleFilters() {\r\n this.toggleFilters$.next(true)\r\n }\r\n\r\n addSelectedActiveVesselSchedules(data: VesselBunkerPlanningSchedule[]) {\r\n this.activeVesselSchedules.next(data)\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { environment } from 'src/environments/environment'\r\nimport { VesselVoyageHistory } from '../models/voyage-history'\r\nimport {\r\n BehaviorSubject,\r\n catchError,\r\n forkJoin,\r\n Observable,\r\n Subject,\r\n tap,\r\n throwError,\r\n} from 'rxjs'\r\nimport { VesselVoyageHistoryFilter } from '../models/fueleu'\r\nimport {\r\n SaveVoyageDataPayload,\r\n VoyageHistoryPayload,\r\n} from '../models/voyage-data-management'\r\nimport { ToastrService } from 'ngx-toastr'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FueleuDataManagementService {\r\n private _url: string = `${environment.apiUrl}/api/VesselVoyageDataManagement`\r\n refreshData: Subject = new Subject()\r\n refreshData$: Observable = this.refreshData.asObservable()\r\n\r\n latestEuaPrice: BehaviorSubject = new BehaviorSubject(null)\r\n latestEuaPrice$: Observable =\r\n this.latestEuaPrice.asObservable()\r\n\r\n refreshVoyageHistories: Subject = new Subject()\r\n refreshVoyageHistories$: Observable =\r\n this.refreshVoyageHistories.asObservable()\r\n\r\n constructor(private http: HttpClient, private toastService: ToastrService) {}\r\n\r\n parseVoyages(id: string, file: FormData): Observable {\r\n return this.http.post(\r\n this._url + '/ParseCompletedVoyagesFile?id=' + id,\r\n file\r\n )\r\n }\r\n\r\n saveCompletedVoyages(\r\n model: SaveVoyageDataPayload,\r\n calculationModel: any\r\n ): Observable {\r\n return this.http.post(this._url + '/SaveCompletedVoyages', model)\r\n }\r\n\r\n updateVoyage(params: VoyageHistoryPayload) {\r\n return this.http.put(this._url, params)\r\n }\r\n\r\n getVoyageHistories(model: VesselVoyageHistoryFilter): Observable {\r\n return this.http.post(this._url + '/List', model)\r\n }\r\n\r\n deleteVoyage(id: string) {\r\n return this.http.delete(this._url + '/' + id)\r\n }\r\n\r\n deleteVoyages(ids: string[], customerId: string) {\r\n const params = new HttpParams().set('customerId', customerId)\r\n return this.http.post(this._url + '/DeleteVoyages', ids, { params })\r\n }\r\n\r\n toggleLock(id: string) {\r\n const params = new HttpParams().set('id', id)\r\n return this.http.patch(`${this._url}/SwitchLock`, {}, { params }).pipe(\r\n catchError(err => {\r\n this.toastService.error(err)\r\n return throwError(() => new Error(err))\r\n })\r\n )\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map, pluck, tap } from 'rxjs/operators';\r\nimport { FuelEUType } from '../models/fueleu';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FueleuTypesService {\r\n FuelEUTypeList: BehaviorSubject = new BehaviorSubject([])\r\n FuelEUTypeList$: Observable = this.FuelEUTypeList.asObservable()\r\n\r\n private _url: string = `${environment.apiUrl}/api/FuelTypes/`\r\n constructor(private http: HttpClient) { }\r\n\r\n getfuelTypes() {\r\n return this.http.get(this._url).pipe(map((res: any) => res.data), tap((data: FuelEUType[]) => this.FuelEUTypeList.next(data)))\r\n }\r\n\r\n createFuelEUType(FuelEUType: FuelEUType) {\r\n return this.http.post(this._url, FuelEUType)\r\n }\r\n\r\n getFuelEUType(id: string) {\r\n return this.http.get(this._url + id)\r\n }\r\n\r\n updateFuelEUType(id: string, FuelEUType: FuelEUType) {\r\n return this.http.put(this._url + id, FuelEUType)\r\n }\r\n\r\n deleteFuelEUType(id: string) {\r\n return this.http.delete(this._url + id)\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { BehaviorSubject, Observable, tap } from 'rxjs'\r\nimport { environment } from 'src/environments/environment'\r\nimport { User } from '../models/user'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UsersService {\r\n users = new BehaviorSubject([])\r\n\r\n private _url: string = `${environment.apiUrl}/api/User/`\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n createUser(user: User) {\r\n return this.http.post(this._url, user)\r\n }\r\n\r\n getUsers(): Observable {\r\n return this.http\r\n .get(this._url)\r\n .pipe(tap((res: any) => this.users.next(res.data)))\r\n }\r\n\r\n getPostFixUsers(): Observable {\r\n return this.http.get(this._url + 'PostFixPIC')\r\n }\r\n\r\n getUser(id: string): Observable {\r\n return this.http.get(this._url + id)\r\n }\r\n\r\n getSurveyorUsersByPortId(portId: string): Observable {\r\n return this.http.get(this._url + 'SurveyorUsers/' + portId)\r\n }\r\n\r\n updateUser(user: User, userId: string) {\r\n return this.http.put(this._url + userId, user)\r\n }\r\n\r\n deleteUser(id: string) {\r\n return this.http.delete(this._url + id)\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-auth-layout',\r\n templateUrl: './auth-layout.component.html',\r\n styleUrls: ['./auth-layout.component.css']\r\n})\r\nexport class AuthLayoutComponent implements OnInit {\r\n\r\n constructor(private route: ActivatedRoute,\r\n private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n if (params['logout']) {\r\n this.authService.logout();\r\n }\r\n }); \r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n//import { AuthLayoutComponent } from './auth-layout/auth-layout.component';\r\n//import { MainLayoutComponent } from './main-layout/main-layout.component';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgxSmartModalModule } from 'ngx-smart-modal';\r\n\r\n\r\nconst components = [\r\n //AuthLayoutComponent,\r\n //MainLayoutComponent,\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n //RouterModule,\r\n CommonModule,\r\n BrowserModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n NgxSmartModalModule.forRoot()\r\n ],\r\n declarations: components,\r\n exports: components,\r\n})\r\nexport class LayoutsModule { }\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n OnInit,\r\n} from '@angular/core'\r\nimport { BehaviorSubject, map } from 'rxjs'\r\nimport { Resources } from 'src/app/core/enums'\r\nimport { AuthService } from 'src/app/core/services/auth.service'\r\nimport { NavigationService } from 'src/app/shared/services/navigation.service'\r\nimport { NgxSmartModalService } from 'ngx-smart-modal'\r\nimport { DashboardService } from 'src/app/core/services/dashboard.service'\r\nimport { environment } from '../../../environments/environment'\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader'\r\nimport { HoverMenuItem } from 'src/app/shared/directives/hover-menu.directive'\r\n\r\ndeclare var $: any\r\n\r\nexport interface SidebarSubMenuItem extends HoverMenuItem {\r\n visible: boolean\r\n}\r\n\r\n@Component({\r\n selector: 'app-main-layout',\r\n templateUrl: './main-layout.component.html',\r\n styleUrls: ['./main-layout.component.css'],\r\n})\r\nexport class MainLayoutComponent implements OnInit {\r\n roleValue = -1\r\n\r\n isSidebarOpen = false\r\n\r\n showFilters = false\r\n\r\n darkMode = false\r\n isDashboard = false\r\n voyagesSubmenu: SidebarSubMenuItem[] = []\r\n complianceSubmenu: SidebarSubMenuItem[] = []\r\n reportsSubmenu: SidebarSubMenuItem[] = []\r\n administrationSubmenu: SidebarSubMenuItem[] = []\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private dashboardService: DashboardService,\r\n private ngxService: NgxUiLoaderService,\r\n public ngxSmartModalService: NgxSmartModalService,\r\n private changeDetector: ChangeDetectorRef,\r\n public navigationService: NavigationService\r\n ) {\r\n this.authService.currentUser\r\n .pipe(map(user => Number(user.role)))\r\n .subscribe(role => {\r\n this.roleValue = role\r\n this.authService.afterUserLogin(this.roleValue)\r\n this.initSubMenuItems()\r\n })\r\n this.navigationService.isDashboard.subscribe(e => {\r\n this.isDashboard = e\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.roleValue = this.authService.currentUserValue.role\r\n this.initSubMenuItems()\r\n this.loadJQuery()\r\n this.toggleMode()\r\n const darkModeSubject = new BehaviorSubject(\r\n JSON.parse(localStorage.getItem('darkMode'))\r\n )\r\n this.darkMode = darkModeSubject.value\r\n this.addPortObserver()\r\n }\r\n\r\n refresh() {\r\n this.dashboardService.refresh()\r\n }\r\n\r\n initSubMenuItems() {\r\n this.complianceSubmenu = [\r\n {\r\n name: 'FuelEU',\r\n url: '/compliance-management/dashboard',\r\n visible: [1, 2, 3, 5, 7, 9].includes(this.roleValue),\r\n },\r\n {\r\n name: 'EU ETS',\r\n url: '/eu-inventory',\r\n visible: [1, 2, 5, 8, 9].includes(this.roleValue),\r\n },\r\n {\r\n name: 'Data Management',\r\n url: '/compliance-management/eu-data-management',\r\n visible: [1, 2, 3, 5, 7, 9].includes(this.roleValue),\r\n },\r\n ]\r\n this.reportsSubmenu = [\r\n {\r\n name: 'General Reports',\r\n url: '/reports/reporting',\r\n visible: [1, 2, 3, 5, 7, 9].includes(this.roleValue),\r\n },\r\n {\r\n name: 'Weather Reports',\r\n url: '/weather-report',\r\n visible: this.roleValue === 2,\r\n },\r\n ]\r\n this.administrationSubmenu = [\r\n {\r\n name: 'Vessels',\r\n url: '/vessels',\r\n visible: [1, 2, 7].includes(this.roleValue),\r\n },\r\n {\r\n name: 'Operation Data',\r\n url: '/administration',\r\n visible: [1, 2, 7].includes(this.roleValue),\r\n },\r\n {\r\n name: 'Customers',\r\n url: '/customers',\r\n visible: [1, 2, 3, 7].includes(this.roleValue),\r\n },\r\n { name: 'Users', url: '/users', visible: this.roleValue === 2 },\r\n {\r\n name: 'Areas',\r\n url: '/administration/areas',\r\n visible: this.roleValue === 3,\r\n },\r\n ]\r\n }\r\n\r\n toggleVesselList() {\r\n this.dashboardService.toggleVesselsList()\r\n }\r\n\r\n toggleFilters() {\r\n this.showFilters = !this.showFilters\r\n this.dashboardService.toggleFilters()\r\n }\r\n\r\n portLoaded = false\r\n addPortObserver() {\r\n this.navigationService.portTrigger$.subscribe(status => {\r\n this.portLoaded = status\r\n })\r\n }\r\n\r\n toggleMode(isDarkMode = false) {\r\n localStorage.setItem('darkMode', JSON.stringify(isDarkMode))\r\n this.darkMode = isDarkMode\r\n this.navigationService.isDarkMode.next(isDarkMode)\r\n }\r\n\r\n toggleSidebar() {\r\n this.isSidebarOpen = !this.isSidebarOpen\r\n }\r\n\r\n logout() {\r\n this.authService.logout()\r\n }\r\n\r\n openChat() {\r\n window['fcWidget'].open()\r\n }\r\n\r\n emitShortcut(eventId: Number) {\r\n if (eventId == 5) {\r\n this.ngxService.startLoader('loader-01')\r\n this.dashboardService.getRouteLinkToken().subscribe(response => {\r\n let completeLink = environment.routelink + '?auth=' + response.data\r\n window.open(completeLink, '_blank')\r\n })\r\n this.ngxService.stopLoader('loader-01')\r\n }\r\n if (eventId == 2) {\r\n this.ngxSmartModalService.getModal('portSearchModal').open()\r\n }\r\n if (eventId === 3) {\r\n this.ngxSmartModalService.getModal('bunkerIndication').open()\r\n } else if (eventId === 1) {\r\n this.navigationService.triggerShortcut(eventId)\r\n } else {\r\n this.navigationService.triggerShortcut(eventId)\r\n }\r\n }\r\n\r\n loadJQuery() {\r\n $('#sidebarToggle, #sidebarToggleTop').on('click', function (e) {\r\n $('body').toggleClass('sidebar-toggled')\r\n $('.sidebar').toggleClass('toggled')\r\n if ($('.sidebar').hasClass('toggled')) {\r\n $('.sidebar .collapse').collapse('hide')\r\n }\r\n })\r\n\r\n // Close any open menu accordions when window is resized below 768px\r\n $(window).resize(function () {\r\n if ($(window).width() < 768) {\r\n $('.sidebar .collapse').collapse('hide')\r\n }\r\n\r\n // Toggle the side navigation when window is resized below 480px\r\n if ($(window).width() < 480 && !$('.sidebar').hasClass('toggled')) {\r\n $('body').addClass('sidebar-toggled')\r\n $('.sidebar').addClass('toggled')\r\n $('.sidebar .collapse').collapse('hide')\r\n }\r\n })\r\n\r\n // Prevent the content wrapper from scrolling when the fixed side navigation hovered over\r\n $('body.fixed-nav .sidebar').on(\r\n 'mousewheel DOMMouseScroll wheel',\r\n function (e) {\r\n if ($(window).width() > 768) {\r\n var e0 = e.originalEvent,\r\n delta = e0.wheelDelta || -e0.detail\r\n this.scrollTop += (delta < 0 ? 1 : -1) * 30\r\n e.preventDefault()\r\n }\r\n }\r\n )\r\n\r\n // Scroll to top button appear\r\n $(document).on('scroll', function () {\r\n var scrollDistance = $(this).scrollTop()\r\n if (scrollDistance > 100) {\r\n $('.scroll-to-top').fadeIn()\r\n } else {\r\n $('.scroll-to-top').fadeOut()\r\n }\r\n })\r\n\r\n // Smooth scrolling using jQuery easing\r\n $(document).on('click', 'a.scroll-to-top', function (e) {\r\n var $anchor = $(this)\r\n $('html, body')\r\n .stop()\r\n .animate(\r\n {\r\n scrollTop: $($anchor.attr('href')).offset().top,\r\n },\r\n 1000,\r\n 'easeInOutExpo'\r\n )\r\n e.preventDefault()\r\n })\r\n }\r\n}\r\n","/**\r\n * Set the current function as a callback to setTimeout\r\n * @param delay delay in milliseconds\r\n * @returns\r\n */\r\nexport function SetTimeout(delay: number = 0): MethodDecorator {\r\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\r\n const originalMethod = descriptor.value\r\n\r\n descriptor.value = function (...args: any[]) {\r\n setTimeout(() => {\r\n originalMethod.apply(this, args)\r\n }, delay)\r\n }\r\n\r\n return descriptor\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Renderer2,\r\n} from '@angular/core'\r\nimport { Router } from '@angular/router'\r\n\r\nexport interface HoverMenuItem {\r\n name: string\r\n url?: string\r\n visible?: boolean\r\n}\r\n\r\n@Directive({\r\n selector: '[appHoverMenu]',\r\n})\r\nexport class HoverMenuDirective implements OnDestroy, AfterViewInit {\r\n @Input() appHoverMenu: HoverMenuItem[]\r\n @Input() hoverMenuHidden: boolean = false\r\n\r\n private menuElement: HTMLElement | null = null\r\n private static activeMenuElement: HTMLElement | null = null\r\n private static listenersInitialized = false\r\n private static outsideClickListener: any\r\n private static mouseLeaveListener: any\r\n private static mouseLeaveOutsideMenuListener: any\r\n\r\n private menuContainer: HTMLElement | null = null\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private el: ElementRef,\r\n private router: Router\r\n ) {\r\n if (!HoverMenuDirective.listenersInitialized) {\r\n this.initializeDocumentClickListener()\r\n HoverMenuDirective.listenersInitialized = true\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Create a menuContainer around menus so if mouseLeave out of it ensure to remove active menu\r\n setTimeout(() => {\r\n this.createMenuContainer()\r\n })\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n HoverMenuDirective.removeActiveMenu()\r\n if (!this.hoverMenuHidden) {\r\n this.createMenu()\r\n this.positionMenu()\r\n }\r\n }\r\n\r\n private initializeDocumentClickListener() {\r\n // Listen for clicks anywhere in the document\r\n this.renderer.listen('document', 'click', (event: MouseEvent) => {\r\n if (\r\n HoverMenuDirective.activeMenuElement &&\r\n !this.el.nativeElement.contains(event.target) &&\r\n !HoverMenuDirective.activeMenuElement.contains(event.target as Node)\r\n ) {\r\n HoverMenuDirective.removeActiveMenu()\r\n }\r\n })\r\n }\r\n\r\n private createMenuContainer() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect()\r\n this.menuContainer = this.renderer.createElement('div')\r\n this.renderer.addClass(this.menuContainer, 'menu-container')\r\n this.renderer.setStyle(this.menuContainer, 'position', 'fixed')\r\n this.renderer.setStyle(this.menuContainer, 'top', '0')\r\n this.renderer.setStyle(this.menuContainer, 'left', '110px')\r\n this.renderer.setStyle(this.menuContainer, 'width', '1px')\r\n this.renderer.setStyle(this.menuContainer, 'bottom', '0')\r\n HoverMenuDirective.mouseLeaveOutsideMenuListener = this.renderer.listen(\r\n this.menuContainer,\r\n 'mouseenter',\r\n () => {\r\n setTimeout(() => {\r\n HoverMenuDirective.removeActiveMenu()\r\n }, 100)\r\n }\r\n )\r\n }\r\n\r\n createMenu() {\r\n this.menuElement = this.renderer.createElement('div')\r\n this.renderer.addClass(this.menuElement, 'menu-overlay')\r\n // Fill the menu with items based on appHoverMenu\r\n this.appHoverMenu.forEach(item => {\r\n if (item.visible !== false) {\r\n const itemElement = this.renderer.createElement('div')\r\n this.renderer.addClass(itemElement, 'clickable')\r\n const textNode = this.renderer.createText(item.name)\r\n this.renderer.appendChild(itemElement, textNode)\r\n if (item.url) {\r\n HoverMenuDirective.outsideClickListener = this.renderer.listen(\r\n itemElement,\r\n 'click',\r\n () => {\r\n this.router.navigateByUrl(item.url)\r\n this.removeMenu()\r\n }\r\n )\r\n }\r\n this.renderer.appendChild(this.menuElement, itemElement)\r\n }\r\n })\r\n this.renderer.appendChild(this.menuContainer, this.menuElement)\r\n this.renderer.appendChild(document.body, this.menuContainer)\r\n this.renderer.appendChild(document.body, this.menuElement)\r\n HoverMenuDirective.activeMenuElement = this.menuElement\r\n\r\n // On mouse leave remove the active menu\r\n HoverMenuDirective.mouseLeaveListener = this.renderer.listen(\r\n this.menuElement,\r\n 'mouseleave',\r\n () => {\r\n setTimeout(() => {\r\n HoverMenuDirective.removeActiveMenu()\r\n }, 100)\r\n }\r\n )\r\n }\r\n\r\n positionMenu() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect()\r\n const menuElement = this.menuElement as HTMLElement\r\n\r\n let top = hostPos.top\r\n let left = hostPos.left\r\n\r\n const viewportWidth = window.innerWidth\r\n const viewportHeight = window.innerHeight\r\n\r\n // Adjust if the host element is too close to the right side of the view\r\n if (viewportWidth - hostPos.right < menuElement.offsetWidth) {\r\n left = viewportWidth - menuElement.offsetWidth - 20\r\n }\r\n\r\n // Adjust if the host element is too close to the bottom of the view\r\n if (viewportHeight - hostPos.bottom < menuElement.offsetHeight) {\r\n top = hostPos.top - menuElement.offsetHeight + 10\r\n }\r\n\r\n // Additional adjustments: if the host element is too close to the left or top of the view\r\n if (hostPos.left < menuElement.offsetWidth) {\r\n left = hostPos.right + 10 // Position to the right of the host element\r\n }\r\n if (hostPos.top < menuElement.offsetHeight) {\r\n top = hostPos.bottom // Position below the host element\r\n }\r\n\r\n this.renderer.setStyle(menuElement, 'position', 'fixed')\r\n this.renderer.setStyle(menuElement, 'top', `${top}px`)\r\n this.renderer.setStyle(menuElement, 'left', `${left}px`)\r\n }\r\n\r\n removeMenu() {\r\n if (this.menuElement) {\r\n this.renderer.removeChild(document.body, this.menuElement)\r\n this.menuElement = null\r\n HoverMenuDirective.activeMenuElement = null\r\n }\r\n }\r\n\r\n public static removeActiveMenu() {\r\n if (HoverMenuDirective.activeMenuElement) {\r\n document.body.removeChild(HoverMenuDirective.activeMenuElement)\r\n HoverMenuDirective.activeMenuElement = null\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.menuElement === HoverMenuDirective.activeMenuElement) {\r\n HoverMenuDirective.removeActiveMenu()\r\n }\r\n if (HoverMenuDirective.mouseLeaveListener)\r\n HoverMenuDirective.mouseLeaveListener()\r\n if (HoverMenuDirective.outsideClickListener)\r\n HoverMenuDirective.outsideClickListener()\r\n\r\n if (HoverMenuDirective.mouseLeaveOutsideMenuListener)\r\n HoverMenuDirective.mouseLeaveOutsideMenuListener()\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appMinMaxValidator]'\r\n})\r\nexport class MinMaxValidatorDirective {\r\n @Input() min: number;\r\n @Input() max: number;\r\n\r\n constructor() { }\r\n\r\n @HostListener('input', ['$event.target.value'])\r\n onInput(value: string): void {\r\n const parsedValue = parseFloat(value);\r\n\r\n if (!isNaN(parsedValue)) {\r\n if (this.min !== undefined && parsedValue < this.min) {\r\n this.updateValue(this.min.toString());\r\n } else if (this.max !== undefined && parsedValue > this.max) {\r\n this.updateValue(this.max.toString());\r\n }\r\n }\r\n }\r\n\r\n private updateValue(value: string): void {\r\n (document.activeElement as HTMLInputElement).value = value;\r\n (document.activeElement as HTMLInputElement).dispatchEvent(new Event('input'));\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2, SimpleChanges } from '@angular/core'\r\nimport { RoundPipe } from '../pipes/round.pipe'\r\n\r\n@Directive({\r\n selector: '[appToggableInput]',\r\n providers: [\r\n RoundPipe\r\n ]\r\n})\r\nexport class ToggableInputDirective {\r\n private inputElement: HTMLInputElement\r\n private unit: string\r\n private value: string\r\n private valueWithoutUnit: string\r\n\r\n @Input() minValue: number\r\n @Input() maxValue: number\r\n @Input() roundPrecision: number\r\n @Input() disableInput: boolean = false\r\n @Input() displayInput: boolean = false\r\n @Output() valueChanged = new EventEmitter()\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2, private roundPipe: RoundPipe) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.disableInput && changes.disableInput.currentValue !== changes.disableInput.previousValue) {\r\n this.setDisabledStatus()\r\n }\r\n if (changes.displayInput && changes.displayInput.currentValue == true && changes.displayInput.currentValue !== changes.displayInput.previousValue) {\r\n this.turnIntoInput()\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n if (!this.inputElement) {\r\n this.turnIntoInput()\r\n }\r\n }\r\n\r\n private setDisabledStatus() {\r\n if (this.disableInput) this.renderer.setAttribute(this.inputElement, 'disabled', 'true')\r\n else this.renderer.removeAttribute(this.inputElement, 'disabled')\r\n }\r\n\r\n private turnIntoInput() {\r\n this.value = this.el.nativeElement.innerText\r\n this.valueWithoutUnit = this.value.split(' ')[0]\r\n this.unit = this.value.split(' ')[1]\r\n this.inputElement = this.renderer.createElement('input')\r\n this.renderer.addClass(this.inputElement, 'form-control')\r\n this.renderer.setAttribute(this.inputElement, 'type', 'number')\r\n this.inputElement.value = this.valueWithoutUnit\r\n this.renderer.setAttribute(this.inputElement, 'step', '0.01')\r\n if (this.disableInput) this.renderer.setAttribute(this.inputElement, 'disabled', 'true')\r\n else this.renderer.removeAttribute(this.inputElement, 'disabled')\r\n\r\n if ((this.minValue !== undefined && this.minValue !== null) && (this.maxValue !== undefined && this.minValue !== null)) {\r\n this.applyMinMaxValidator()\r\n }\r\n\r\n this.renderer.listen(this.inputElement, 'blur', () => this.onBlurOrEnter())\r\n this.renderer.listen(this.inputElement, 'keydown.enter', () => this.onBlurOrEnter())\r\n\r\n this.inputElement.style.width = '100px'\r\n\r\n this.renderer.removeChild(this.el.nativeElement.parentNode, this.el.nativeElement)\r\n this.renderer.appendChild(this.el.nativeElement.parentNode, this.inputElement)\r\n this.inputElement.focus()\r\n }\r\n\r\n private onBlurOrEnter() {\r\n const newValue = this.inputElement ? this.roundPrecision ? this.roundPipe.transform(parseFloat(this.inputElement.value), this.roundPrecision) : this.inputElement.value : '-'\r\n if (this.inputElement && this.inputElement.parentNode) {\r\n if (this.inputElement) this.valueChanged.emit(Number(newValue))\r\n const displayText = this.unit && this.unit.length ? `${newValue} ${this.unit}` : `${newValue}`;\r\n this.renderer.removeChild(this.inputElement.parentNode, this.inputElement);\r\n this.renderer.setProperty(this.el.nativeElement, 'textContent', displayText);\r\n this.renderer.appendChild(this.inputElement.parentNode, this.el.nativeElement);\r\n\r\n this.el.nativeElement.textContent = this.unit && this.unit.length ? `${newValue} ${this.unit}` : `${newValue}`\r\n }\r\n this.inputElement = undefined\r\n }\r\n\r\n private applyMinMaxValidator() {\r\n // No direct way to attach directive, but we can manually enforce min/max\r\n this.inputElement.min = this.minValue.toString();\r\n this.inputElement.max = this.maxValue.toString();\r\n\r\n // Listen to the input event to apply custom validation logic\r\n this.renderer.listen(this.inputElement, 'input', () => {\r\n const value = parseFloat(this.inputElement.value);\r\n if (value < this.minValue) {\r\n this.inputElement.value = this.minValue.toString();\r\n } else if (value > this.maxValue) {\r\n this.inputElement.value = this.roundPrecision ? this.roundPipe.transform(this.maxValue, this.roundPrecision) : this.maxValue.toString();\r\n }\r\n })\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, ComponentFactoryResolver, ApplicationRef, Injector, ComponentRef } from '@angular/core'\r\nimport { TooltipComponent } from '../views/tooltip/tooltip.component'\r\n\r\n@Directive({\r\n selector: '[appTooltipDirective]'\r\n})\r\nexport class TooltipDirective {\r\n @Input('appTooltipDirective') text: string = ''\r\n @Input() tooltipDelay: number = 0\r\n private tooltipComponentRef!: ComponentRef\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector\r\n ) { }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n setTimeout(() => {\r\n this.showTooltip()\r\n }, this.tooltipDelay)\r\n }\r\n\r\n private showTooltip() {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(TooltipComponent)\r\n this.tooltipComponentRef = componentFactory.create(this.injector)\r\n this.tooltipComponentRef.instance.text = this.text\r\n\r\n this.appRef.attachView(this.tooltipComponentRef.hostView)\r\n const domElem = (this.tooltipComponentRef.hostView as any).rootNodes[0] as HTMLElement\r\n document.body.appendChild(domElem)\r\n\r\n domElem.style.visibility = 'hidden'\r\n\r\n setTimeout(() => {\r\n const tooltipWidth = domElem.offsetWidth\r\n const tooltipHeight = domElem.offsetHeight\r\n const rect = this.el.nativeElement.getBoundingClientRect()\r\n const margin = 10\r\n\r\n let top = rect.top + (rect.height - tooltipHeight) / 2\r\n let left = rect.right + margin\r\n\r\n if (window.innerWidth < rect.right + tooltipWidth + margin) {\r\n if (rect.left > tooltipWidth + margin) {\r\n left = rect.left - tooltipWidth - margin\r\n } else {\r\n if (window.innerHeight < rect.bottom + tooltipHeight + margin) {\r\n top = rect.top - tooltipHeight - margin\r\n } else {\r\n top = rect.bottom + margin\r\n }\r\n left = rect.left\r\n }\r\n }\r\n\r\n this.tooltipComponentRef.instance.position = { left: `${left}px`, top: `${top}px` }\r\n\r\n domElem.style.visibility = 'visible'\r\n })\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n setTimeout(() => {\r\n if (this.tooltipComponentRef) {\r\n this.appRef.detachView(this.tooltipComponentRef.hostView)\r\n this.tooltipComponentRef.destroy()\r\n }\r\n }, this.tooltipDelay);\r\n\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dateNormalised'\r\n})\r\nexport class DateNormalisedPipe implements PipeTransform {\r\n transform(hours: number): string {\r\n let d = Math.floor(hours / 24)\r\n let h = Math.floor(hours % 24)\r\n let m = Math.floor((hours * 60) % 60)\r\n return `${d}d ${h}h ${m} min`\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n name: 'durationFormat',\r\n})\r\nexport class DurationFormatPipe implements PipeTransform {\r\n /**\r\n * Takes milliseconds or duration in days (string) and returns formatted duration\r\n * @param duration {milliseconds (number) or durationInDays (string)}\r\n * @param removeMinutesAndSeconds {boolean} If true, removes minutes and seconds from the result\r\n * @returns string (formatted duration)\r\n */\r\n transform(\r\n duration: number | string,\r\n removeMinutesAndSeconds: boolean = false\r\n ): string {\r\n if (typeof duration === 'number') {\r\n return this.transformMilliseconds(duration, removeMinutesAndSeconds)\r\n } else if (typeof duration === 'string') {\r\n return this.transformDurationString(duration, removeMinutesAndSeconds)\r\n } else {\r\n return duration\r\n }\r\n }\r\n\r\n private transformMilliseconds(\r\n milliseconds: number,\r\n removeMinutesAndSeconds: boolean\r\n ): string {\r\n const days = Math.floor(milliseconds / (1000 * 60 * 60 * 24))\r\n const hours = Math.floor(\r\n (milliseconds % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\r\n )\r\n\r\n let result = ''\r\n if (days > 0) {\r\n result += days + ' day'\r\n if (days > 1) result += 's'\r\n }\r\n if (hours > 0) {\r\n if (result) result += ' '\r\n result += hours + ' hour'\r\n if (hours > 1) result += 's'\r\n }\r\n\r\n if (!removeMinutesAndSeconds) {\r\n const minutes = Math.floor(\r\n (milliseconds % (1000 * 60 * 60)) / (1000 * 60)\r\n )\r\n const seconds = Math.floor((milliseconds % (1000 * 60)) / 1000)\r\n\r\n if (minutes > 0) {\r\n if (result) result += ' '\r\n result += minutes + ' minute'\r\n if (minutes > 1) result += 's'\r\n }\r\n if (seconds > 0) {\r\n if (result) result += ' '\r\n result += seconds + ' second'\r\n if (seconds > 1) result += 's'\r\n }\r\n }\r\n\r\n return result || '0 hours' // Fallback to avoid empty string\r\n }\r\n\r\n private transformDurationString(\r\n durationInDays: string,\r\n removeMinutesAndSeconds: boolean\r\n ): string {\r\n const matches = durationInDays\r\n .trim()\r\n .match(/(?:(\\d+)d)?(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+)s)?/)\r\n\r\n if (!matches) {\r\n return durationInDays\r\n }\r\n\r\n // Extract the days, hours, minutes, and seconds\r\n const days = matches[1] ? matches[1] + 'd' : ''\r\n const hours = matches[2] ? matches[2] + 'h' : ''\r\n const minutes = matches[3] ? matches[3] + 'm' : ''\r\n const seconds = matches[4] ? matches[4] + 's' : ''\r\n\r\n let result = `${days}${hours}`\r\n\r\n if (!removeMinutesAndSeconds) {\r\n result += `${minutes}${seconds}`\r\n }\r\n\r\n return result.trim() || '0 hours' // Fallback to avoid empty string\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'euaCostOfEmission',\r\n})\r\nexport class EuaCostOfEmissionPipe implements PipeTransform {\r\n\r\n transform(emission: number, euaPrice: number): number {\r\n return emission * euaPrice\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'noValue'\r\n})\r\nexport class NoValuePipe implements PipeTransform {\r\n transform(value: number | string): string | number {\r\n if (value === undefined || value === null)\r\n return '-'\r\n else return value\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({ name: 'orderBy' })\r\nexport class OrderByPipe implements PipeTransform {\r\n transform(value: any[], property: string, reverse: boolean = false): any[] {\r\n if (!value || !property) {\r\n return value\r\n }\r\n\r\n value.sort((a, b) => {\r\n if (a[property] < b[property]) {\r\n return reverse ? 1 : -1\r\n } else if (a[property] > b[property]) {\r\n return reverse ? -1 : 1\r\n } else {\r\n return 0\r\n }\r\n })\r\n\r\n return value\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n name: 'round',\r\n})\r\nexport class RoundPipe implements PipeTransform {\r\n transform(value: number, precision: number = 2): string {\r\n if (value === null || value === undefined) return '-'\r\n return Number(value).toFixed(precision)\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'unit' })\r\nexport class UnitPipe implements PipeTransform {\r\n transform(value: any, unitType: string): string {\r\n if (!value) return '-'\r\n switch (unitType) {\r\n case 'cargo':\r\n case 'capacity':\r\n case 'consumption':\r\n case 'emission':\r\n return value + ' mt'; // 'mt' for metric tons\r\n case 'EUA':\r\n return value + ' EUA'; // 'EUA' for Emissions Unit Allowances\r\n case 'emission-factor':\r\n return value + ' kg/mt'; // 'kg/mt' for kilograms per metric ton\r\n case 'distance':\r\n return value + ' nm'; // 'nm' for nautical miles\r\n case 'speed':\r\n return value + 'knots'\r\n default:\r\n return value; // Return value as is if unittype is not recognized\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n//import { AuthService } from '../core/services/auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGaurd {\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthService\r\n ) { }\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n const currentUser = this.authService.currentUserValue;\r\n if (currentUser) {\r\n //logged in so return true\r\n return true;\r\n }\r\n this.router.navigate(['/auth/login'], { queryParams: { redirect: window.location.href } });\r\n return false;\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core'\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\r\nimport { SetTimeout } from '../decorators/set-timeout'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NavigationService {\r\n public activatedPage: BehaviorSubject = new BehaviorSubject(\r\n 'Dashboard'\r\n )\r\n public activatedPage$: Observable = this.activatedPage.asObservable()\r\n public activatedPageSubtitle: string = null\r\n isDarkMode = new BehaviorSubject(false)\r\n //isDarkMode = new Subject();\r\n isDashboard = new Subject()\r\n public shortcutTrigger$: EventEmitter // 1 for search vessel, 2 for search port, 3 for search routes\r\n public portTrigger$: EventEmitter\r\n public startLatTrigger$: EventEmitter\r\n public startLngTrigger$: EventEmitter\r\n public stopLatTrigger$: EventEmitter\r\n public stopLngTrigger$: EventEmitter\r\n constructor() {\r\n this.shortcutTrigger$ = new EventEmitter()\r\n this.portTrigger$ = new EventEmitter()\r\n this.startLatTrigger$ = new EventEmitter()\r\n this.startLngTrigger$ = new EventEmitter()\r\n this.stopLatTrigger$ = new EventEmitter()\r\n this.stopLngTrigger$ = new EventEmitter()\r\n }\r\n\r\n public triggerShortcut(eventId: Number): void {\r\n this.shortcutTrigger$.emit(eventId)\r\n }\r\n\r\n public triggerStartLat(value: string): void {\r\n this.startLatTrigger$.emit(value)\r\n }\r\n\r\n public triggerStartLng(value: string): void {\r\n this.startLngTrigger$.emit(value)\r\n }\r\n\r\n public triggerStopLat(value: string): void {\r\n this.stopLatTrigger$.emit(value)\r\n }\r\n\r\n public triggerStopLng(value: string): void {\r\n this.stopLngTrigger$.emit(value)\r\n }\r\n\r\n public triggerPortLoaded(status: boolean): void {\r\n this.portTrigger$.emit(status)\r\n }\r\n\r\n @SetTimeout()\r\n public scrollToBottom(): void {\r\n document\r\n .getElementById('bottom')\r\n ?.scrollIntoView({ behavior: 'smooth', block: 'end' })\r\n }\r\n\r\n @SetTimeout()\r\n public scrollToTop(): void {\r\n document\r\n .getElementById('wrapper')\r\n ?.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n }\r\n\r\n @SetTimeout()\r\n focusSearch() {\r\n const searchInput = document.querySelector(\r\n '.dropdown-list li.filter-textbox>input'\r\n ) as HTMLElement\r\n if (searchInput) {\r\n searchInput.focus()\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\n\r\nconst routes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SharedRoutingModule { }\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\n\r\nimport { SharedRoutingModule } from './shared-routing.module'\r\nimport { StarComponent } from './views/star/star.component'\r\nimport { ToggleButtonComponent } from './views/toggle-button/toggle-button.component'\r\nimport { ToggleAlertButtonComponent } from './views/toggle-alert-button/toggle-alert-button.component'\r\nimport { DateNormalisedPipe } from './pipes/date-normalized.pipe'\r\nimport { NoValuePipe } from './pipes/no-value.pipe'\r\nimport { RoundPipe } from '././pipes/round.pipe'\r\nimport { KPIComponent } from './views/kpi/kpi.component'\r\nimport { BaseProgressBarComponent } from './views/base-progress-bar/progress-bar.component'\r\nimport { BaseItemViewerComponent } from './views/base-item-viewer/base-item-viewer.component'\r\nimport { BaseComponent } from './views/base/base.component'\r\nimport { TooltipDirective } from './directives/tooltip.directive'\r\nimport { TooltipComponent } from './views/tooltip/tooltip.component'\r\nimport { DurationFormatPipe } from './pipes/duration.pipe'\r\nimport { RangeSliderComponent } from './views/range-slider/range-slider.component'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { BaseMapComponent } from './views/base-map/base-map.component'\r\nimport { EuaCostOfEmissionPipe } from './pipes/emission-eua-cost'\r\nimport { UnitPipe } from './pipes/unit.pipe'\r\nimport { ToggableInputDirective } from './directives/toggable-input.directive'\r\nimport { MinMaxValidatorDirective } from './directives/min-max-validator.directive'\r\nimport { ToggableInputComponent } from './views/toggable-input/toggable-input.component'\r\nimport { HoverMenuDirective } from './directives/hover-menu.directive'\r\nimport { RouterModule } from '@angular/router'\r\nimport { OrderByPipe } from './pipes/order-by.pipe'\r\nimport { BreadcrumbComponent } from '../views/breadcrumb/breadcrumb.component'\r\nimport { LoadingViewComponent } from './views/loading-view/loading-view.component'\r\nimport { UploadButtonComponent } from './views/upload-button/upload-button.component'\r\nimport { CommentComponent } from './views/comment/comment.component'\r\nimport { ToggleSwitchComponent } from './views/toggle-switch/toggle-switch.component'\r\nimport { ChartCardComponent } from './views/chart-card/chart-card.component'\r\nimport { NgChartsModule } from 'ng2-charts'\r\nimport { EuDataManagementDetailComponent } from '../views/compliance-management/eu-data-management/eu-data-management-detail/eu-data-management-detail.component'\r\nimport { FuelsEUDetailsComponent } from '../views/administration/admin/fuelseu/fuelseu-details/fuelseu-details.component'\r\nimport { IndeterminateProgressBarComponent } from './views/indeterminate-progress-bar/indeterminate-progress-bar.component'\r\n\r\n@NgModule({\r\n declarations: [\r\n StarComponent,\r\n ToggleButtonComponent,\r\n ToggleAlertButtonComponent,\r\n DateNormalisedPipe,\r\n NoValuePipe,\r\n KPIComponent,\r\n BaseProgressBarComponent,\r\n BaseComponent,\r\n RoundPipe,\r\n BaseItemViewerComponent,\r\n TooltipDirective,\r\n TooltipComponent,\r\n RoundPipe,\r\n DurationFormatPipe,\r\n BaseMapComponent,\r\n RangeSliderComponent,\r\n EuaCostOfEmissionPipe,\r\n UnitPipe,\r\n ToggableInputDirective,\r\n ToggableInputComponent,\r\n MinMaxValidatorDirective,\r\n HoverMenuDirective,\r\n OrderByPipe,\r\n ToggleSwitchComponent,\r\n BreadcrumbComponent,\r\n LoadingViewComponent,\r\n EuDataManagementDetailComponent,\r\n UploadButtonComponent,\r\n CommentComponent,\r\n ChartCardComponent,\r\n FuelsEUDetailsComponent,\r\n IndeterminateProgressBarComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedRoutingModule,\r\n RouterModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n NgChartsModule,\r\n ],\r\n exports: [\r\n StarComponent,\r\n ToggleButtonComponent,\r\n ToggleAlertButtonComponent,\r\n DateNormalisedPipe,\r\n NoValuePipe,\r\n KPIComponent,\r\n BaseProgressBarComponent,\r\n BaseComponent,\r\n RoundPipe,\r\n BaseItemViewerComponent,\r\n TooltipDirective,\r\n TooltipComponent,\r\n RoundPipe,\r\n DurationFormatPipe,\r\n BaseMapComponent,\r\n EuaCostOfEmissionPipe,\r\n RangeSliderComponent,\r\n MinMaxValidatorDirective,\r\n UnitPipe,\r\n ToggableInputDirective,\r\n ToggableInputComponent,\r\n HoverMenuDirective,\r\n OrderByPipe,\r\n BreadcrumbComponent,\r\n LoadingViewComponent,\r\n UploadButtonComponent,\r\n CommentComponent,\r\n ToggleSwitchComponent,\r\n ChartCardComponent,\r\n EuDataManagementDetailComponent,\r\n FuelsEUDetailsComponent,\r\n IndeterminateProgressBarComponent,\r\n ],\r\n})\r\nexport class SharedModule {}\r\n","export class Utils {\r\n static isMobile() {\r\n return window && window.matchMedia('(max-width: 767px)').matches\r\n }\r\n static ngbDateToDate(ngbDate: { month; day; year }) {\r\n if (!ngbDate) {\r\n return null\r\n }\r\n return new Date(\r\n `${ngbDate.month}/${ngbDate.day}/${ngbDate.year} /$12:00:00`\r\n )\r\n }\r\n static ngbDateToDateStart(ngbDate: { month; day; year }) {\r\n if (!ngbDate) {\r\n return null\r\n }\r\n return new Date(\r\n `${ngbDate.month}/${ngbDate.day}/${ngbDate.year} /$00:00:00`\r\n )\r\n }\r\n static ngbDateToString(ngbDate) {\r\n if (!ngbDate) {\r\n return null\r\n }\r\n return new Date(\r\n `${ngbDate.month}/${ngbDate.day}/${ngbDate.year} /$00:00:00`\r\n )\r\n }\r\n static combineDateTime(dateTime) {\r\n if (!dateTime.date) return null\r\n const date = new Date(\r\n dateTime.date.year,\r\n dateTime.date.month - 1,\r\n dateTime.date.day\r\n )\r\n const hours = dateTime.hours ? dateTime.hours : 0\r\n const minutes = dateTime.minutes ? dateTime.minutes : 0\r\n date.setHours(hours, minutes)\r\n return date\r\n }\r\n\r\n static dateToNgbDate(date: Date) {\r\n if (!date) {\r\n return null\r\n }\r\n date = new Date(date)\r\n return {\r\n month: date.getMonth() + 1,\r\n day: date.getDate(),\r\n year: date.getFullYear(),\r\n }\r\n }\r\n static scrollToTop(selector: string) {\r\n if (document) {\r\n const element = document.querySelector(selector)\r\n element.scrollTop = 0\r\n }\r\n }\r\n static genId() {\r\n let text = ''\r\n const possible =\r\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\r\n for (let i = 0; i < 5; i++) {\r\n text += possible.charAt(Math.floor(Math.random() * possible.length))\r\n }\r\n return text\r\n }\r\n static isValidNumber(value: any, minimumValue?: number) {\r\n if (\r\n value != null &&\r\n String(value) &&\r\n String(value).trim() != '' &&\r\n Number(value) != null\r\n ) {\r\n return minimumValue == null ? true : Number(value) >= minimumValue\r\n }\r\n return false\r\n }\r\n static starHtml(value?: number) {\r\n if (!value) {\r\n value = 0\r\n }\r\n var htmlStr = ''\r\n ;[1, 2, 3, 4, 5].forEach(n => {\r\n htmlStr = htmlStr + '= value\r\n ? 'ti ti-star-half-filled'\r\n : 'ti ti-star')\r\n htmlStr = htmlStr + '\">'\r\n })\r\n return htmlStr\r\n }\r\n static toDegreesMinutesAndSeconds(coordinate) {\r\n var absolute = Math.abs(coordinate)\r\n var degrees = Math.floor(absolute)\r\n var minutesNotTruncated = (absolute - degrees) * 60\r\n var minutes = Math.floor(minutesNotTruncated)\r\n var seconds = Math.floor((minutesNotTruncated - minutes) * 60)\r\n\r\n return degrees + '° ' + minutes + \"' \" + seconds + '\"'\r\n }\r\n static convertDMS(lat, lng) {\r\n var latitude = this.toDegreesMinutesAndSeconds(lat)\r\n var latitudeCardinal = lat >= 0 ? 'N' : 'S'\r\n\r\n var longitude = this.toDegreesMinutesAndSeconds(lng)\r\n var longitudeCardinal = lng >= 0 ? 'E' : 'W'\r\n\r\n return (\r\n latitude +\r\n ' ' +\r\n latitudeCardinal +\r\n ' / ' +\r\n longitude +\r\n ' ' +\r\n longitudeCardinal\r\n )\r\n }\r\n\r\n // Rhumbline Distances\r\n static modulo180(val) {\r\n if (Math.abs(val) > 180) {\r\n val = -(val % 180)\r\n }\r\n return val\r\n }\r\n\r\n //custom function\r\n static inc_lat(lat) {\r\n var result = Math.log(Math.tan(this.toRad(45 + lat / 2)))\r\n return this.toDeg(result)\r\n }\r\n\r\n static toDeg(rad) {\r\n return (180 * rad) / Math.PI\r\n }\r\n\r\n static toRad(deg) {\r\n return (Math.PI * deg) / 180\r\n }\r\n\r\n static rhumbLineDistance(a, b, c, d) {\r\n // Differences latLon\r\n var dlat = c - a,\r\n dlon = this.modulo180(-d + b)\r\n\r\n var bearing = 0,\r\n distance = 0\r\n\r\n // Computes the bearing\r\n // Increasing latitudes\r\n var inc_latA = this.inc_lat(a),\r\n inc_latB = this.inc_lat(c)\r\n // Special cases\r\n if (dlat === 0) {\r\n // East-West track\r\n bearing = 90\r\n } else if (dlon === 0) {\r\n // North-South track\r\n bearing = 0\r\n } else {\r\n // Default case\r\n bearing = this.toDeg(Math.atan(dlon / (inc_latA - inc_latB)))\r\n }\r\n\r\n // Applying correction depending of relative position of A vs. B\r\n if (dlon > 0 && bearing < 0) {\r\n // Case North West\r\n bearing += 360\r\n } else {\r\n bearing += 180\r\n }\r\n\r\n // Computes the distance\r\n // No horizontal track\r\n if (dlat !== 0) {\r\n distance = Math.abs(dlat / Math.cos(this.toRad(bearing)))\r\n } else {\r\n // Horizontal track\r\n distance = Math.abs(dlon * Math.cos(this.toRad(a)))\r\n }\r\n distance *= 60\r\n\r\n // Return\r\n return distance\r\n }\r\n\r\n static isEqualDate(date: Date, compareWith: Date): boolean {\r\n return (\r\n date.getDate() === compareWith.getDate() &&\r\n date.getMonth() === compareWith.getMonth() &&\r\n date.getFullYear() === compareWith.getFullYear()\r\n )\r\n }\r\n\r\n //custom RL distance\r\n static totalRLdistance(coords) {\r\n var totalLength = 0\r\n for (let a = 1; a < coords.length; a++) {\r\n totalLength += this.rhumbLineDistance(\r\n coords[a - 1]['lat'],\r\n coords[a - 1]['lng'],\r\n coords[a]['lat'],\r\n coords[a]['lng']\r\n )\r\n }\r\n return totalLength\r\n }\r\n\r\n static getColor(index: number, reverse = false): string {\r\n const colors: string[] = [\r\n '#206A5D',\r\n '#9a95cc',\r\n '#427D9D',\r\n '#9BBEC8',\r\n '#DDF2FD',\r\n '#ECE3CE',\r\n '#363062',\r\n '#a8be94',\r\n '#64CCC5',\r\n '#4F709C',\r\n ]\r\n const reversed = [...colors].reverse()\r\n return reverse\r\n ? reversed[index] || reversed[index - reversed.length]\r\n : colors[index] || colors[index - colors.length]\r\n }\r\n\r\n static round(number: number, precision: number = 2): number {\r\n return Number(number.toFixed(precision))\r\n }\r\n\r\n static isOdd(num: number): boolean {\r\n return num % 2 !== 0\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseComponent } from '../base/base.component';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { catchError, finalize, map, switchMap, switchMapTo, takeUntil } from 'rxjs/operators';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { NavigationService } from '../../services/navigation.service';\r\n\r\n/** Use this component to display an item based on the id retrieved from router params */\r\n@Component({\r\n template: '',\r\n})\r\nexport class BaseItemViewerComponent extends BaseComponent implements OnInit {\r\n\r\n pageName: string\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected loaderService: NgxUiLoaderService,\r\n ) {\r\n super()\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n /**\r\n * id param of activated route\r\n */\r\n get itemId(): string {\r\n return this.route.snapshot.paramMap.get('id')\r\n }\r\n\r\n /**\r\n * Loads entity based on activated route id\r\n * @param loadFunction {Observable} - provide observable loading the item\r\n * @returns {T} entity type\r\n */\r\n protected loadItemDetails(loadFunction: (id: string) => Observable): Observable {\r\n return this.route.params.pipe(\r\n switchMap(params => loadFunction(params.id)),\r\n catchError(error => throwError(() => new Error(error))),\r\n takeUntil(this.$destroyed),\r\n finalize(() => this.loaderService.stopLoader('loader-01'))\r\n )\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { SetTimeout } from '../../decorators/set-timeout'\r\nimport { BaseComponent } from '../base/base.component'\r\n\r\n@Component({\r\n template: '',\r\n})\r\nexport class BaseMapComponent extends BaseComponent implements OnInit {\r\n map: google.maps.Map\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n ngOnInit() {}\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BaseProgressBarComponent implements OnInit {\r\n\r\n @Input() startValue: any\r\n @Input() endValue: any\r\n @Input() currentValue: any\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n // You can add common logic for progress calculation here\r\n get progress(): number {\r\n return ((this.currentValue - this.startValue) / (this.endValue - this.startValue)) * 100;\r\n }\r\n\r\n}\r\n","import { Component, inject, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { NavigationService } from '../../services/navigation.service';\r\n\r\n@Component({\r\n template: '',\r\n})\r\nexport class BaseComponent implements OnDestroy {\r\n\r\n protected navivationService = inject(NavigationService)\r\n\r\n activePage: string\r\n $destroyed: Subject = new Subject()\r\n\r\n constructor(\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n this.$destroyed.next(true)\r\n this.$destroyed.complete()\r\n }\r\n\r\n setActivePage(page: string) {\r\n this.navivationService.activatedPage.next(page || this.activePage)\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n Input,\r\n SimpleChanges,\r\n} from '@angular/core'\r\nimport { ChartOptions, ChartType } from 'chart.js'\r\nimport { Utils } from '../../utils'\r\nimport * as pluginDataLabels from 'chartjs-plugin-datalabels'\r\n\r\n@Component({\r\n selector: 'app-chart-card',\r\n templateUrl: './chart-card.component.html',\r\n styleUrl: './chart-card.component.css',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChartCardComponent {\r\n @Input() chartData: number[]\r\n @Input() chartLabels: string[]\r\n @Input() chartTitle: string\r\n @Input() colorSet: 1 | 2 | 3 = 1\r\n @Input() unit: string\r\n @Input() type: 'string' | 'number'\r\n\r\n public doughnutChartOptions: ChartOptions = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n plugins: {\r\n datalabels: {\r\n formatter: (value, ctx) => {\r\n const dataArr = ctx.chart.data.datasets[0].data as number[]\r\n const sum = dataArr.reduce((acc, val) => acc + val, 0)\r\n const percentage = ((value / sum) * 100).toFixed(2) + '%'\r\n return percentage\r\n },\r\n color: 'black',\r\n },\r\n },\r\n }\r\n public chartType: ChartType = 'doughnut'\r\n public doughnutChartColors: any[] = [{ backgroundColor: [] }]\r\n public doughnutChartLegend = false\r\n public doughnutChartPlugins = [pluginDataLabels]\r\n\r\n getColor(i: number) {\r\n return Utils.getColor(\r\n this.colorSet === 1 ? i : this.colorSet === 2 ? i + 2 : i + 7\r\n )\r\n }\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n showChart = () => this.chartData.some(item => item)\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.chartData?.currentValue?.length) {\r\n this.doughnutChartColors[0].backgroundColor = this.chartData.map(\r\n (_item, i) => this.getColor(i)\r\n )\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core'\r\nimport { Comment } from 'src/app/core/models/comment'\r\nimport { AuthService } from 'src/app/core/services/auth.service'\r\n\r\n@Component({\r\n selector: 'app-comment',\r\n templateUrl: './comment.component.html',\r\n styleUrl: './comment.component.css',\r\n})\r\nexport class CommentComponent {\r\n @Input() index: number\r\n @Input() comment: Comment\r\n @Output() onDelete = new EventEmitter()\r\n @Output() onEdit = new EventEmitter()\r\n\r\n enableEdit = false\r\n\r\n originalComment: Comment\r\n\r\n constructor(private authService: AuthService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.originalComment = new Comment({\r\n ...changes.comment.currentValue,\r\n })\r\n }\r\n\r\n editComment(_comment: Comment) {\r\n if (!this.canEdit) return\r\n const comment = new Comment({\r\n ..._comment,\r\n })\r\n this.onEdit.emit(comment)\r\n this.enableEdit = false\r\n }\r\n\r\n deleteComment(commentIndex: number, comment: Comment) {\r\n if (!this.canEdit) return\r\n this.onDelete.emit({ index: commentIndex, comment: comment })\r\n }\r\n\r\n cancel() {\r\n this.comment = this.originalComment\r\n this.enableEdit = false\r\n }\r\n\r\n get canEdit(): boolean {\r\n return this.comment?.userId === this.authService.userId\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'app-indeterminate-progress-bar',\r\n templateUrl: './indeterminate-progress-bar.component.html',\r\n styleUrl: './indeterminate-progress-bar.component.css',\r\n})\r\nexport class IndeterminateProgressBarComponent {\r\n @Input() style: any\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core'\r\n\r\n/** Component representing a KPI (Key Performance Indicator) */\r\n@Component({\r\n selector: 'app-kpi',\r\n templateUrl: './kpi.component.html',\r\n styleUrls: ['./kpi.component.css'],\r\n})\r\nexport class KPIComponent implements OnInit {\r\n /** KPI title/name @type {string} */\r\n @Input() title: string\r\n /** KPI value @type {number | string} */\r\n @Input() value: number | string = 0\r\n /** KPI value type @type {KPIType} (e.g., 'EUAs', 'currency' etc.) */\r\n @Input() valueType: KPIType\r\n /** Total value if applicable */\r\n @Input() total: number = null\r\n @Input() size: 'large' | 'medium' = 'large'\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n get isCurrency(): boolean {\r\n return this.valueType === 'currency'\r\n }\r\n\r\n get isString(): boolean {\r\n return this.valueType === 'string'\r\n }\r\n}\r\n\r\nexport type KPIType =\r\n | 'EUA'\r\n | 'currency'\r\n | 'mt'\r\n | 'time'\r\n | 'string'\r\n | 'kwh'\r\n | 'vessels'\r\n | 'gCO2e/MJ'\r\n","import { Component, input, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loading-view',\r\n templateUrl: './loading-view.component.html',\r\n styleUrls: ['./loading-view.component.css']\r\n})\r\nexport class LoadingViewComponent {\r\n\r\n /** Show dark background of loader spinner */\r\n background = input(true)\r\n\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { PortLegFossilFuelGrades } from 'src/app/core/models/fuel';\r\nimport { Utils } from '../../utils';\r\n\r\n@Component({\r\n selector: 'app-range-slider',\r\n templateUrl: './range-slider.component.html',\r\n styleUrls: ['./range-slider.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class RangeSliderComponent implements AfterViewInit {\r\n @Input() value: number = 0\r\n @Input() min: number = 0 // Default minimum value\r\n @Input() max: number = 100 // Default maximum value\r\n @Input() step: number = 1\r\n @Input() disable = true\r\n @Output() updatedValue = new EventEmitter()\r\n @Input() fossilFuelGrades: PortLegFossilFuelGrades\r\n @Input() rightColor = '#206A5D'\r\n\r\n percentage: number = 50\r\n\r\n hoveredIndex = -1\r\n\r\n @ViewChild('slider', { static: false }) slider: ElementRef\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.updateSliderStyle()\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.value || changes.fossilFuelGrades) {\r\n setTimeout(() => {\r\n this.updateSliderStyle()\r\n })\r\n }\r\n }\r\n\r\n updateValue(): void {\r\n this.updateSliderStyle()\r\n this.updatedValue.emit(Utils.round(this.value, 3))\r\n }\r\n\r\n addHoverIndex(index: number) {\r\n this.changeDetector.detach()\r\n this.hoveredIndex = index\r\n this.changeDetector.reattach()\r\n }\r\n\r\n removeHoverIndex() {\r\n this.changeDetector.detach()\r\n this.hoveredIndex = -1\r\n this.changeDetector.reattach()\r\n }\r\n\r\n updateSliderStyle(): void {\r\n this.percentage = this.value / this.max * 100\r\n const percentageNumber = this.percentage / 100\r\n let leftColors = []\r\n\r\n leftColors = this.fossilFuelGrades.grades.map((grade, index) => {\r\n const startPercentage = index === 0 ? 0 : Number(this.fossilFuelGrades.grades[index - 1].percentage) * percentageNumber * 100\r\n const endPercentage = (index === this.fossilFuelGrades.grades.length - 1 ? this.percentage : Number(grade.percentage) * percentageNumber * 100)\r\n return `${grade.color} ${startPercentage}%, ${grade.color} ${endPercentage}%`\r\n })\r\n\r\n let gradient = `linear-gradient(to right, ${[...leftColors, `${this.rightColor} ${this.percentage}%`].join(', ')})`\r\n\r\n this.slider.nativeElement.style.setProperty('--slider-gradient', gradient)\r\n this.changeDetector.detectChanges()\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-star',\r\n templateUrl: './star.component.html',\r\n styleUrls: ['./star.component.css']\r\n})\r\nexport class StarComponent {\r\n\r\n @Input() stars: number = 0;\r\n @Input() flavor: string = \"primary\";\r\n \r\n constructor() { }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { RoundPipe } from '../../pipes/round.pipe';\r\nimport { UnitPipe } from '../../pipes/unit.pipe';\r\n\r\n@Component({\r\n selector: 'app-toggable-input',\r\n templateUrl: './toggable-input.component.html',\r\n styleUrls: ['./toggable-input.component.css'],\r\n providers: [RoundPipe, UnitPipe]\r\n})\r\nexport class ToggableInputComponent implements AfterViewInit {\r\n @Input() minValue: number;\r\n @Input() maxValue: number;\r\n @Input() value: any\r\n @Input() roundPrecision: number;\r\n @Input() disableInput: boolean = false;\r\n @Input() displayInput: boolean = false;\r\n @Input() unit: string\r\n @Output() valueChanged = new EventEmitter()\r\n\r\n public isEditing = false;\r\n public editableValue: number;\r\n\r\n @ViewChild('input', { static: true }) input: ElementRef\r\n\r\n constructor(private roundPipe: RoundPipe, private unitPipe: UnitPipe) { }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.input) this.input.nativeElement.focus()\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.displayInput && !this.disableInput) {\r\n this.isEditing = true\r\n this.setInputValue()\r\n }\r\n }\r\n\r\n toggleEdit(): void {\r\n if (!this.displayInput && !this.disableInput) {\r\n this.isEditing = !this.isEditing;\r\n if (this.isEditing && !this.disableInput) {\r\n this.setInputValue()\r\n }\r\n }\r\n }\r\n\r\n setInputValue(): void {\r\n this.value = this.value.toString().split(' ')[0]\r\n this.editableValue = (this.roundPrecision) ? Number(this.roundPipe.transform(Number(this.value), this.roundPrecision)) : this.value\r\n this.input.nativeElement.focus()\r\n }\r\n\r\n onBlurOrEnter(): void {\r\n this.isEditing = false;\r\n this.value = this.editableValue\r\n this.valueChanged.emit(Number(this.value))\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'toggle-alert-button',\r\n templateUrl: './toggle-alert-button.component.html',\r\n styleUrls: ['./toggle-alert-button.component.scss']\r\n})\r\nexport class ToggleAlertButtonComponent {\r\n @Output() changed = new EventEmitter();\r\n @Input() disabled = null;\r\n @Input() checked = false;\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'toggle-button',\r\n templateUrl: './toggle-button.component.html',\r\n styleUrls: ['./toggle-button.component.scss']\r\n})\r\nexport class ToggleButtonComponent {\r\n @Output() changed = new EventEmitter();\r\n @Input() disabled = null;\r\n @Input() checked = false;\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'app-toggle-switch',\r\n templateUrl: './toggle-switch.component.html',\r\n styleUrls: ['./toggle-switch.component.css'],\r\n})\r\nexport class ToggleSwitchComponent {\r\n @Input() tabs: TabSwitchModel[] = [\r\n { id: 0, title: 'Tab 1', isActive: true, danger: false },\r\n { id: 1, title: 'Tab 2', isActive: false, danger: true },\r\n ]\r\n\r\n @Output() selected = new EventEmitter()\r\n\r\n toggleTab(index: number) {\r\n this.tabs = this.tabs.map((tab, i) => ({\r\n ...tab,\r\n isActive: i === index,\r\n }))\r\n this.selected.emit(index)\r\n }\r\n}\r\n\r\nexport interface TabSwitchModel {\r\n id: number\r\n title: string\r\n isActive: boolean\r\n danger?: boolean\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.css']\r\n})\r\nexport class TooltipComponent implements AfterViewInit {\r\n @Input() text: string = ''\r\n @Input() position = { top: '0px', left: '0px' }\r\n @ViewChild('tooltipContent', { static: false }) tooltipContent!: ElementRef\r\n\r\n constructor() { }\r\n\r\n ngAfterViewInit() {\r\n this.showTooltip()\r\n }\r\n\r\n showTooltip() {\r\n if (this.tooltipContent) {\r\n this.tooltipContent.nativeElement.classList.add('show')\r\n }\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'app-upload-button',\r\n templateUrl: './upload-button.component.html',\r\n styleUrls: ['./upload-button.component.css']\r\n})\r\nexport class UploadButtonComponent {\r\n\r\n @Output() fileSelected = new EventEmitter()\r\n @Output() fileRemoved = new EventEmitter()\r\n @Input() filename: string | null = null\r\n @Input() buttonLabel = 'Upload'\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes && changes.filename.currentValue === null && changes.filename.currentValue !== changes.filename.previousValue) {\r\n this.buttonLabel = 'Upload'\r\n this.resetFileInput()\r\n }\r\n }\r\n\r\n onFileSelected(event: any) {\r\n const file: File = event.target.files[0]\r\n if (file) {\r\n this.filename = file.name\r\n this.fileSelected.emit(file)\r\n }\r\n }\r\n\r\n removeFile(event: MouseEvent) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n this.filename = null\r\n this.resetFileInput()\r\n }\r\n\r\n private resetFileInput() {\r\n const input = document.getElementById('file') as HTMLInputElement\r\n input.value = ''\r\n this.fileRemoved.emit()\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n} from '@angular/core'\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms'\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'\r\nimport { IDropdownSettings } from 'ng-multiselect-dropdown'\r\nimport { ToastrService } from 'ngx-toastr'\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader'\r\nimport { throwError } from 'rxjs'\r\nimport { catchError, finalize, first, map, switchMap } from 'rxjs/operators'\r\nimport { FuelCategory } from 'src/app/core/enums'\r\nimport { Flag } from 'src/app/core/models/flag'\r\nimport { FuelEUType } from 'src/app/core/models/fueleu'\r\nimport { VoyageDataBioFuelPayload } from 'src/app/core/models/voyage-data-management'\r\nimport { FueleuTypesService } from 'src/app/core/services/fueleu-types.service'\r\n\r\n@Component({\r\n selector: 'fuelseu-details',\r\n templateUrl: './fuelseu-details.component.html',\r\n styleUrls: ['./fuelseu-details.component.css'],\r\n})\r\nexport class FuelsEUDetailsComponent implements OnInit {\r\n @Input('fueltype') FuelseuId: string\r\n @Input() modal: NgbActiveModal\r\n @Input() fuelEuDetails: VoyageDataBioFuelPayload\r\n\r\n @Output() onDetails = new EventEmitter()\r\n\r\n formGroup!: FormGroup\r\n dropdownSettings: IDropdownSettings\r\n\r\n constructor(\r\n private ngxService: NgxUiLoaderService,\r\n private fuelseuTypesService: FueleuTypesService,\r\n private toastr: ToastrService,\r\n private renderer: Renderer2\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.formGroup = new FormGroup({\r\n fuelName: new FormControl(this.fuelEuDetails?.fuelName || '', [\r\n Validators.required,\r\n ]),\r\n fuelCategory: new FormControl(-1, [Validators.required]),\r\n lowerCalorificValue: new FormControl(\r\n this.fuelEuDetails?.lowerCalorificValue || 0,\r\n [Validators.required]\r\n ),\r\n cO2eqWtT: new FormControl(0, [Validators.required]),\r\n cO2eqWtW: new FormControl(0, [Validators.required]),\r\n cO2eqTtWInclSlip: new FormControl(0, [Validators.required]),\r\n cO2ConversionFactor: new FormControl(0, [Validators.required]),\r\n cH4ConversionFactor: new FormControl(0, [Validators.required]),\r\n n2OConversionFactor: new FormControl(0, [Validators.required]),\r\n e: new FormControl(this.fuelEuDetails?.e || 0, [Validators.required]),\r\n })\r\n\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'name',\r\n itemsShowLimit: 5,\r\n allowSearchFilter: true,\r\n defaultOpen: false,\r\n }\r\n\r\n if (this.FuelseuId) this.getFuelseuDetails()\r\n }\r\n\r\n getFuelseuDetails() {\r\n this.ngxService.startLoader('loader-01')\r\n this.fuelseuTypesService.getFuelEUType(this.FuelseuId).subscribe(\r\n res => {\r\n const data = res['data']\r\n const editFormValue = {\r\n fuelName: data.fuelName,\r\n fuelCategory: data.fuelCategory,\r\n lowerCalorificValue: data.lowerCalorificValue,\r\n cO2eqWtT: data.cO2eqWtT,\r\n cO2eqWtW: data.cO2eqWtW,\r\n cO2eqTtWInclSlip: data.cO2eqTtWInclSlip,\r\n cO2ConversionFactor: data.cO2ConversionFactor,\r\n cH4ConversionFactor: data.cH4ConversionFactor,\r\n n2OConversionFactor: data.n2OConversionFactor,\r\n e: data.e,\r\n }\r\n this.formGroup.patchValue(editFormValue)\r\n this.ngxService.stopLoader('loader-01')\r\n },\r\n error => {\r\n this.ngxService.stopLoader('loader-01')\r\n console.error('Error fetching fuel type details:', error)\r\n }\r\n )\r\n }\r\n\r\n onSave() {\r\n const formValues = this.formGroup.value\r\n if (this.formGroup.invalid || formValues.fuelCategory == -1) {\r\n this.toastr.error('Please fill in all fields', 'Form validation error')\r\n return\r\n }\r\n this.ngxService.startLoader('loader-01')\r\n const Fuelseu: FuelEUType = {\r\n fuelName: formValues.fuelName || '',\r\n fuelCategory:\r\n formValues.fuelCategory !== undefined\r\n ? Number(formValues.fuelCategory)\r\n : 0,\r\n lowerCalorificValue:\r\n formValues.lowerCalorificValue !== undefined\r\n ? Number(formValues.lowerCalorificValue)\r\n : 0,\r\n cO2eqWtT:\r\n formValues.cO2eqWtT !== undefined ? Number(formValues.cO2eqWtT) : 0,\r\n cO2eqWtW:\r\n formValues.cO2eqWtW !== undefined ? Number(formValues.cO2eqWtW) : 0,\r\n cO2eqTtWInclSlip:\r\n formValues.cO2eqTtWInclSlip !== undefined\r\n ? Number(formValues.cO2eqTtWInclSlip)\r\n : 0,\r\n cO2ConversionFactor:\r\n formValues.cO2ConversionFactor !== undefined\r\n ? Number(formValues.cO2ConversionFactor)\r\n : 0,\r\n cH4ConversionFactor:\r\n formValues.cH4ConversionFactor !== undefined\r\n ? Number(formValues.cH4ConversionFactor)\r\n : 0,\r\n n2OConversionFactor:\r\n formValues.n2OConversionFactor !== undefined\r\n ? Number(formValues.n2OConversionFactor)\r\n : 0,\r\n e: formValues.e !== undefined ? Number(formValues.e) : 0,\r\n }\r\n\r\n if (this.FuelseuId) {\r\n // Update existing FuelEUType\r\n this.fuelseuTypesService\r\n .updateFuelEUType(this.FuelseuId, Fuelseu)\r\n .pipe(\r\n first(),\r\n catchError(error => {\r\n this.toastr.error(\"Couldn't update FuelType\")\r\n return throwError(() => new Error(error))\r\n }),\r\n finalize(() => this.ngxService.stopLoader('loader-01'))\r\n )\r\n .subscribe(() => {\r\n this.toastr.success('FuelType updated successfully')\r\n this.onDetails.emit(this.formGroup.value)\r\n this.modal.close({ action: 'Save', data: this.formGroup.value })\r\n })\r\n } else {\r\n // Create new FuelEUType\r\n this.fuelseuTypesService\r\n .createFuelEUType(Fuelseu)\r\n .pipe(\r\n first(),\r\n catchError(error => {\r\n this.toastr.error(\"Couldn't create FuelType\")\r\n return throwError(() => new Error(error))\r\n }),\r\n finalize(() => this.ngxService.stopLoader('loader-01'))\r\n )\r\n .subscribe(() => {\r\n this.toastr.success('FuelType created successfully')\r\n this.onDetails.emit(this.formGroup.value)\r\n this.modal.close({ action: 'Save', data: this.formGroup.value })\r\n })\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ForgetPasswordComponent } from './forget-password/forget-password.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { TwoStepVerificationComponent } from './two-step-verification/two-step-verification.component';\r\nimport { Process2faComponent } from './process-2fa/process-2fa.component';\r\nimport { VerifyEmailComponent } from './verify-email/verify-email.component';\r\nimport { ResetPasswordComponent } from './reset-password/reset-password.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: LoginComponent},\r\n { path: 'forgot', component: ForgetPasswordComponent},\r\n { path: 'two-step-verification', component: TwoStepVerificationComponent},\r\n { path: 'process-2fa', component: Process2faComponent},\r\n { path: 'verify-email', component: VerifyEmailComponent},\r\n { path: 'reset-password', component: ResetPasswordComponent},\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AuthRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { AuthRoutingModule } from './auth-routing.module';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ForgetPasswordComponent } from './forget-password/forget-password.component';\r\n\r\nimport { NgxUiLoaderModule } from \"ngx-ui-loader\";\r\nimport { TwoStepVerificationComponent } from './two-step-verification/two-step-verification.component';\r\nimport { Process2faComponent } from './process-2fa/process-2fa.component';\r\nimport { VerifyEmailComponent } from './verify-email/verify-email.component';\r\nimport { ResetPasswordComponent } from './reset-password/reset-password.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginComponent,\r\n ForgetPasswordComponent,\r\n TwoStepVerificationComponent,\r\n Process2faComponent,\r\n VerifyEmailComponent,\r\n ResetPasswordComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n AuthRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxUiLoaderModule,\r\n ]\r\n})\r\nexport class AuthModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-forget-password',\r\n templateUrl: './forget-password.component.html',\r\n styleUrls: ['./forget-password.component.css']\r\n})\r\nexport class ForgetPasswordComponent implements OnInit {\r\n email = new UntypedFormControl('', [Validators.required,Validators.email]);\r\n\r\n isError = false;\r\n errorMessage = \"\";\r\n\r\n constructor(private authService: AuthService,\r\n private router: Router,\r\n private ngxService: NgxUiLoaderService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n forgotpassword() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.forgetPassword(this.email.value)\r\n .subscribe(\r\n user => {\r\n setTimeout(() => {\r\n this.toastr.success(\"A link to your new password has been sent to your email\", \"success\");\r\n this.router.navigateByUrl('/auth/login');\r\n }, 500);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n },\r\n error => {\r\n this.errorMessage = error;\r\n this.isError = true;\r\n setTimeout(() => {\r\n this.toastr.error(error, \"Error\");\r\n }, 500);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { UntypedFormControl, Validators } from '@angular/forms'\r\nimport { first } from 'rxjs/operators'\r\nimport { AuthService } from 'src/app/core/services/auth.service'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { ToastrService } from 'ngx-toastr'\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader'\r\nimport { BehaviorSubject, Observable } from 'rxjs'\r\nimport { User } from '../../../core/models/user'\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css'],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n email = new UntypedFormControl('', [Validators.required, Validators.email])\r\n password = new UntypedFormControl('', [Validators.required])\r\n\r\n isError = false\r\n errorMessage = ''\r\n roleValue = -1\r\n rememberMe = false\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private toastr: ToastrService,\r\n private ngxService: NgxUiLoaderService\r\n ) {}\r\n\r\n ngOnInit() {\r\n var rememberMeSubject = new BehaviorSubject(\r\n JSON.parse(localStorage.getItem('rememberMe'))\r\n )\r\n if (rememberMeSubject.value != null) {\r\n this.rememberMe = rememberMeSubject.value\r\n }\r\n\r\n if (this.rememberMe) {\r\n var currentUserSubject = new BehaviorSubject(\r\n JSON.parse(localStorage.getItem('currentUser'))\r\n )\r\n var user: User = currentUserSubject.value\r\n\r\n this.email.setValue(user.email)\r\n this.password.setValue(user.password)\r\n }\r\n }\r\n\r\n rememberMeChanged(event) {\r\n localStorage.setItem('rememberMe', JSON.stringify(event.target.checked))\r\n }\r\n\r\n showPassword = false\r\n showOrHidePassword() {\r\n this.showPassword = !this.showPassword\r\n var passwordField = document.getElementById('exampleInputPassword')\r\n if (this.showPassword) passwordField.setAttribute('type', 'text')\r\n else passwordField.setAttribute('type', 'password')\r\n }\r\n\r\n termOfUse = false\r\n termsOfUse(event) {\r\n this.termOfUse = event.target.checked\r\n }\r\n\r\n signin() {\r\n if (!this.termOfUse) {\r\n setTimeout(() => {\r\n this.toastr.error('Please accept terms of use', 'Error')\r\n }, 500)\r\n return\r\n }\r\n\r\n this.ngxService.startLoader('loader-01')\r\n this.authService\r\n .authenticate(this.email.value, this.password.value)\r\n .pipe(first())\r\n .subscribe(\r\n user => {\r\n this.roleValue = user.role\r\n this.authService.afterUserLogin(this.roleValue)\r\n this.ngxService.stopLoader('loader-01')\r\n },\r\n error => {\r\n this.errorMessage = error\r\n this.isError = true\r\n if (this.errorMessage.toString().includes('2FA Required')) {\r\n // this.router.navigateByUrl('/auth/two-step-verification')\r\n\r\n // Retrieve redirect value from query parameter\r\n const redirectValue = this.route.snapshot.queryParamMap.get('redirect');\r\n\r\n // Navigate to process-2fa with the retrieved redirect value as query parameter\r\n const redirectUrl = '/auth/two-step-verification';\r\n if (redirectValue) {\r\n const queryParams = { redirect: redirectValue };\r\n this.router.navigateByUrl(this.router.createUrlTree([redirectUrl], { queryParams }).toString());\r\n } else {\r\n this.router.navigateByUrl(redirectUrl); // Navigate without query parameter\r\n }\r\n\r\n } else {\r\n setTimeout(() => {\r\n this.toastr.error(error, 'Error')\r\n }, 500)\r\n }\r\n this.ngxService.stopLoader('loader-01')\r\n }\r\n )\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { first, map } from 'rxjs/operators';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { User } from '../../../core/models/user';\r\nimport { UsersService } from 'src/app/core/services/users.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-process-2fa-verification',\r\n templateUrl: './process-2fa.component.html',\r\n styleUrls: ['./process-2fa.component.css']\r\n})\r\nexport class Process2faComponent implements OnInit {\r\n\r\n imageData: string | null = null; // Initialize as null or with appropriate data type\r\n state$: Observable;\r\n verificationCode: string = '';\r\n errorMessage = \"\";\r\n roleValue = -1;\r\n user: User;\r\n emailVerification = false;\r\n selectedMethod: string;\r\n twoFactorEnabled = false;\r\n secretKey = \"\";\r\n twoFaModal: boolean = true;\r\n qrModal: boolean = false;\r\n emailModal: boolean = false;\r\n successModal: boolean = false;\r\n\r\n constructor(private authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private toastr: ToastrService,\r\n private ngxService: NgxUiLoaderService,\r\n private usersService: UsersService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.authService.tempUser.subscribe(user => {\r\n this.user = user;\r\n });\r\n\r\n }\r\n\r\n onCheckboxChange(event: any, method: string) {\r\n if (event.target.checked) {\r\n this.selectedMethod = method;\r\n } else {\r\n this.selectedMethod = '';\r\n }\r\n }\r\n\r\n onContinueClick() {\r\n if (this.selectedMethod == \"app\") {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.secretKey = this.user.secretKey;\r\n if (!this.secretKey) {\r\n this.usersService.getUser(this.user.id).subscribe(\r\n (result) => {\r\n this.secretKey = result.secretKey;\r\n },\r\n (error) => {\r\n console.error('Error fetching user:', error);\r\n }\r\n );\r\n }\r\n this.authService.getQRCodeImage(this.secretKey,this.user.email).subscribe(\r\n (imageData) => {\r\n this.imageData = imageData[\"data\"]\r\n this.ngxService.stopLoader(\"loader-01\");\r\n },\r\n (error) => {\r\n console.error(\"Error fetching two-factor image:\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n this.twoFaModal = false;\r\n this.emailModal = false;\r\n this.qrModal = true;\r\n\r\n }\r\n else {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.send2FaEmail(this.user.id).subscribe(\r\n (result) => {\r\n this.qrModal = false;\r\n this.twoFaModal = false;\r\n this.emailModal = true;\r\n this.ngxService.stopLoader(\"loader-01\");\r\n },\r\n (error) => {\r\n console.error(\"Error sending email\", error);\r\n this.toastr.error(\"Error in sending verification code to email, try again\")\r\n const customSwitch1Checkbox = document.getElementById('customSwitch1') as HTMLInputElement;\r\n customSwitch1Checkbox.checked = false;\r\n this.twoFactorEnabled = false;\r\n this.twoFaModal = true;\r\n this.qrModal = false;\r\n this.emailModal = false;\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n verifyQRCode() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.verifyQRCode(this.secretKey, this.verificationCode, this.user.id).subscribe(\r\n (isValid) => {\r\n if (isValid[\"data\"]) {\r\n // Code is valid\r\n this.errorMessage = '';\r\n this.ngxService.stopLoader(\"loader-01\");\r\n localStorage.setItem('isValidated', 'true');\r\n var validatedUsers = JSON.parse(localStorage.getItem('validatedUsers')) || [];\r\n validatedUsers.push(this.user.id);\r\n var updatedValidatedUsers = JSON.stringify(validatedUsers);\r\n localStorage.setItem('validatedUsers', updatedValidatedUsers);\r\n this.user.isValidated = true;\r\n localStorage.setItem('currentUser', JSON.stringify(this.user));\r\n this.authService.setCurrentUser();\r\n this.qrModal = false;\r\n this.emailModal = false;\r\n this.twoFaModal = false;\r\n this.successModal = true;\r\n } else {\r\n // Code is expired\r\n this.errorMessage = \"The code is incorrect - check your app and try again\";\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Error fetching two-factor image:\", error);\r\n // Handle error appropriately\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n\r\n }\r\n\r\n verifyEmailCode() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.verifyEmailCode(this.verificationCode, this.user.id).subscribe(\r\n (isValid) => {\r\n if (isValid[\"data\"]) {\r\n // Code is valid\r\n this.errorMessage = '';\r\n this.ngxService.stopLoader(\"loader-01\");\r\n localStorage.setItem('isValidated', 'true');\r\n var validatedUsers = JSON.parse(localStorage.getItem('validatedUsers')) || [];\r\n validatedUsers.push(this.user.id);\r\n var updatedValidatedUsers = JSON.stringify(validatedUsers);\r\n localStorage.setItem('validatedUsers', updatedValidatedUsers);\r\n this.user.isValidated = true;\r\n localStorage.setItem('currentUser', JSON.stringify(this.user));\r\n this.authService.setCurrentUser();\r\n this.qrModal = false;\r\n this.emailModal = false;\r\n this.twoFaModal = false;\r\n this.successModal = true;\r\n } else {\r\n this.errorMessage = \"The code is incorrect or expired - try again\";\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Error fetching two-factor image:\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n\r\n\r\n signin() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n if (this.user.twoFaType == \"app\") {\r\n this.authService.verifyQRCode(this.user.secretKey, this.verificationCode, this.user.id).subscribe(\r\n (isValid) => {\r\n if (isValid[\"data\"]) {\r\n this.handleCodeVerification();\r\n } else {\r\n // Code is expired\r\n this.errorMessage = \"The code is incorrect - check your app and try again\";\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Error fetching two-factor image:\", error);\r\n // Handle error appropriately\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n\r\n }\r\n else {\r\n this.authService.verifyEmailCode(this.verificationCode, this.user.id).subscribe(\r\n (isValid) => {\r\n if (isValid[\"data\"]) {\r\n this.handleCodeVerification();\r\n } else {\r\n this.errorMessage = \"The code is incorrect - check your email and try again\";\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Error fetching two-factor image:\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n }\r\n\r\n }\r\n send2FaEmail() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.send2FaEmail(this.user.id).subscribe(\r\n (result) => {\r\n this.ngxService.stopLoader(\"loader-01\");\r\n },\r\n (error) => {\r\n console.error(\"Error sending email\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n }\r\nhandleCodeVerification() {\r\n this.ngxService.stopLoader(\"loader-01\");\r\n this.roleValue = this.user.role;\r\n if (this.roleValue == 1 || this.roleValue == 2|| this.roleValue == 5|| this.roleValue == 6|| this.roleValue == 7 || this.roleValue == 9) {\r\n let redirectUrl = this.route.snapshot.queryParamMap.get('redirect');\r\n if(redirectUrl != null){\r\n var urlRegex = /^(?:https?:\\/\\/)?(?:www\\.)?(?:localhost|\\b(?:[a-z0-9]+(?:-[a-z0-9]+)*\\.)+[a-z]{2,}\\b)(?::\\d{1,5})?(?:\\/[\\w.-]*)*(?:\\?.*)?$/i;\r\n\r\n if (urlRegex.test(redirectUrl)) {\r\n var redirect = redirectUrl.split(\"://\")[1].split(\"/\").slice(1).join(\"/\");\r\n if(redirect !== null && redirect !== undefined && redirect.trim() !== '') {\r\n this.router.navigateByUrl('/' + redirect);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (this.roleValue == 6 )\r\n this.router.navigateByUrl(\"/deliverables\");\r\n else\r\n this.router.navigateByUrl(\"/dashboard\");\r\n\r\n}\r\n // else if (this.roleValue == 6){\r\n // let redirectUrl = this.route.snapshot.queryParamMap.get('redirect');\r\n // this.router.navigateByUrl(\"/\" + redirectUrl.slice(redirectUrl.indexOf('deliverables')));\r\n // }\r\n else if (this.roleValue == 8){\r\n this.router.navigateByUrl(\"/eua-inventory\");\r\n }\r\n else {\r\n this.router.navigateByUrl(\"/deliverables\");\r\n }\r\n\r\n}\r\n\r\n\r\nsendAgain() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.send2FaEmail(this.user.id).subscribe(\r\n (result) => {\r\n this.toastr.success(\"Verification code sent successfully\",\"success\")\r\n this.ngxService.stopLoader(\"loader-01\");\r\n },\r\n (error) => {\r\n console.error(\"Error sending email\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n}\r\n}\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-reset-password',\r\n templateUrl: './reset-password.component.html',\r\n styleUrls: ['./reset-password.component.css']\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n password = new FormControl('', [Validators.required]);\r\n confirmPassword = new FormControl('', [Validators.required]);\r\n\r\n isError = false;\r\n errorMessage = \"\";\r\n token = \"\";\r\n userId = \"\";\r\n\r\n constructor(private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private ngxService: NgxUiLoaderService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n if (params['id']) {\r\n this.token = params['token'];\r\n this.userId = params['id']\r\n } \r\n\r\n });\r\n}\r\n\r\n validatePassword(): boolean {\r\n if (!this.password.valid) {\r\n setTimeout(() => {\r\n this.toastr.error(\"Password field Required\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n if (!this.confirmPassword.valid) {\r\n setTimeout(() => {\r\n this.toastr.error(\"New Password field Required\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n if (!this.confirmPassword.valid) {\r\n setTimeout(() => {\r\n this.toastr.error(\"Confirm password field Required\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n\r\n if (this.password.value != this.confirmPassword.value) {\r\n setTimeout(() => {\r\n this.toastr.error(\"Confirm password is different from the password\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n return true;\r\n }\r\n resetPassword() {\r\n if (this.validatePassword()) {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.resetPassword(this.token, this.userId, this.password.value)\r\n .subscribe(\r\n user => {\r\n setTimeout(() => {\r\n this.toastr.success(\"Password Updated Successfully\", \"Success\");\r\n }, 500);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n this.router.navigateByUrl(\"/auth/login\");\r\n },\r\n error => {\r\n\r\n setTimeout(() => {\r\n\r\n this.toastr.error(error);\r\n }, 500);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n });\r\n }\r\n\r\n }\r\n\r\n showPasswords: boolean[] = [false, false];\r\n \r\n showOrHidePassword(index: number): void {\r\n this.showPasswords[index] = !this.showPasswords[index];\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { first, map } from 'rxjs/operators';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { User } from '../../../core/models/user';\r\n\r\n\r\n@Component({\r\n selector: 'app-two-step-verification',\r\n templateUrl: './two-step-verification.component.html',\r\n styleUrls: ['./two-step-verification.component.css']\r\n})\r\nexport class TwoStepVerificationComponent implements OnInit {\r\n\r\n imageData: string | null = null; // Initialize as null or with appropriate data type\r\n state$: Observable;\r\n verificationCode: string = '';\r\n errorMessage = \"\";\r\n roleValue = -1;\r\n user: User;\r\n emailVerification = false;\r\n\r\n constructor(private authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private toastr: ToastrService,\r\n private ngxService: NgxUiLoaderService,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.authService.tempUser.subscribe(user => {\r\n this.user = user;\r\n this.emailVerification = user.twoFaType === \"email\";\r\n if (this.emailVerification) {\r\n this.send2FaEmail();\r\n }\r\n });\r\n\r\n }\r\n\r\n signin() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n if (this.user.twoFaType == \"app\") {\r\n this.authService.verifyQRCode(this.user.secretKey, this.verificationCode, this.user.id).subscribe(\r\n (isValid) => {\r\n if (isValid[\"data\"]) {\r\n this.handleCodeVerification();\r\n } else {\r\n // Code is expired\r\n this.errorMessage = \"The code is incorrect - check your app and try again\";\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Error fetching two-factor image:\", error);\r\n // Handle error appropriately\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n\r\n }\r\n else {\r\n this.authService.verifyEmailCode(this.verificationCode, this.user.id).subscribe(\r\n (isValid) => {\r\n if (isValid[\"data\"]) {\r\n this.handleCodeVerification();\r\n } else {\r\n this.errorMessage = \"The code is incorrect - check your email and try again\";\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n },\r\n (error) => {\r\n console.error(\"Error fetching two-factor image:\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n }\r\n\r\n }\r\n send2FaEmail() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.send2FaEmail(this.user.id).subscribe(\r\n (result) => {\r\n this.ngxService.stopLoader(\"loader-01\");\r\n },\r\n (error) => {\r\n console.error(\"Error sending email\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n }\r\nhandleCodeVerification() {\r\n this.ngxService.stopLoader(\"loader-01\");\r\n localStorage.setItem('isValidated', 'true');\r\n var validatedUsers = JSON.parse(localStorage.getItem('validatedUsers')) || [];\r\n validatedUsers.push(this.user.id);\r\n var updatedValidatedUsers = JSON.stringify(validatedUsers);\r\n localStorage.setItem('validatedUsers', updatedValidatedUsers);\r\n localStorage.setItem('currentUser', JSON.stringify(this.user));\r\n localStorage.removeItem('tempUser');\r\n this.authService.setCurrentUser();\r\n this.roleValue = this.user.role;\r\n if (this.roleValue == 1 || this.roleValue == 2|| this.roleValue == 5|| this.roleValue == 6|| this.roleValue == 7 || this.roleValue == 9) {\r\n let redirectUrl = this.route.snapshot.queryParamMap.get('redirect');\r\n if(redirectUrl != null){\r\n var urlRegex = /^(?:https?:\\/\\/)?(?:www\\.)?(?:localhost|\\b(?:[a-z0-9]+(?:-[a-z0-9]+)*\\.)+[a-z]{2,}\\b)(?::\\d{1,5})?(?:\\/[\\w.-]*)*(?:\\?.*)?$/i;\r\n\r\n if (urlRegex.test(redirectUrl)) {\r\n var redirect = redirectUrl.split(\"://\")[1].split(\"/\").slice(1).join(\"/\");\r\n if(redirect !== null && redirect !== undefined && redirect.trim() !== '') {\r\n this.router.navigateByUrl('/' + redirect);\r\n return;\r\n }\r\n }\r\n }\r\n if (this.roleValue == 6 )\r\n this.router.navigateByUrl(\"/deliverables\");\r\n else\r\n this.router.navigateByUrl(\"/dashboard\");\r\n }\r\n // else if (this.roleValue == 6){\r\n // let redirectUrl = this.route.snapshot.queryParamMap.get('redirect');\r\n // this.router.navigateByUrl(\"/\" + redirectUrl.slice(redirectUrl.indexOf('deliverables')));\r\n // }\r\n else if (this.roleValue == 8){\r\n this.router.navigateByUrl(\"/eua-inventory\");\r\n }\r\n else {\r\n this.router.navigateByUrl(\"/deliverables\");\r\n }\r\n\r\n}\r\n\r\n\r\nsendAgain() {\r\n this.ngxService.startLoader(\"loader-01\");\r\n this.authService.send2FaEmail(this.user.id).subscribe(\r\n (result) => {\r\n this.toastr.success(\"Verification code sent successfully\",\"success\")\r\n this.ngxService.stopLoader(\"loader-01\");\r\n },\r\n (error) => {\r\n console.error(\"Error sending email\", error);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n }\r\n );\r\n}\r\n}\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { AuthService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-verify-email',\r\n templateUrl: './verify-email.component.html',\r\n styleUrls: ['./verify-email.component.css']\r\n})\r\nexport class VerifyEmailComponent implements OnInit {\r\n password = new FormControl('', [Validators.required]);\r\n confirmPassword = new FormControl('', [Validators.required]);\r\n\r\n isError = false;\r\n errorMessage = \"\";\r\n userId = \"\";\r\n\r\n constructor(private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private ngxService: NgxUiLoaderService,\r\n private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n if (params['id']) {\r\n this.userId = params['id'];\r\n } \r\n\r\n });\r\n}\r\n\r\n validatePassword(): boolean {\r\n if (!this.password.valid) {\r\n setTimeout(() => {\r\n this.toastr.error(\"Password field Required\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n if (!this.confirmPassword.valid) {\r\n setTimeout(() => {\r\n this.toastr.error(\"New Password field Required\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n if (!this.confirmPassword.valid) {\r\n setTimeout(() => {\r\n this.toastr.error(\"Confirm password field Required\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n\r\n if (this.password.value != this.confirmPassword.value) {\r\n setTimeout(() => {\r\n this.toastr.error(\"Confirm password is different from the password\", \"Error\");\r\n }, 500);\r\n\r\n return false;\r\n }\r\n return true;\r\n }\r\n updatePassword() {\r\n if (this.validatePassword()) {\r\n this.ngxService.startLoader(\"loader-01\");\r\n\r\n this.authService.setPassword(this.userId, this.password.value)\r\n .subscribe(\r\n user => {\r\n setTimeout(() => {\r\n this.toastr.success(\"Password Set Successfully\", \"Success\");\r\n }, 500);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n this.router.navigateByUrl(\"/auth/login\");\r\n },\r\n error => {\r\n\r\n setTimeout(() => {\r\n\r\n this.toastr.error(error);\r\n }, 500);\r\n this.ngxService.stopLoader(\"loader-01\");\r\n });\r\n }\r\n\r\n }\r\n\r\n showPasswords: boolean[] = [false, false];\r\n \r\n showOrHidePassword(index: number): void {\r\n this.showPasswords[index] = !this.showPasswords[index];\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BreadcrumbItem } from 'src/app/core/models/breadcrumb';\r\nimport { BreadcrumbService } from 'src/app/core/services/breadcrumb-service.service';\r\nimport { DashboardService } from 'src/app/core/services/dashboard.service';\r\nimport { NavigationService } from 'src/app/shared/services/navigation.service';\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.css']\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n @Input() isDashboard = false\r\n breadcrumbs: BreadcrumbItem[]\r\n\r\n constructor(private breadcrumbService: BreadcrumbService,\r\n private dashboardService: DashboardService,\r\n private router: Router,\r\n public navigationService: NavigationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.breadcrumbs = this.breadcrumbService.getBreadcrumbs();\r\n this.breadcrumbService.breadcrumbsChanged.subscribe((breadcrumbs: BreadcrumbItem[]) => {\r\n this.breadcrumbs = breadcrumbs;\r\n });\r\n }\r\n\r\n removeElementAndNavigate(el, url) {\r\n // remove elements to the right of the clicked one\r\n const labelToKeep = el;\r\n let indexToKeep: number | null = null;\r\n for (let i = 0; i < this.breadcrumbs.length; i++) {\r\n if (this.breadcrumbs[i].label === labelToKeep) {\r\n indexToKeep = i\r\n break\r\n }\r\n }\r\n\r\n if (indexToKeep !== null) {\r\n this.breadcrumbs = this.breadcrumbs.slice(0, indexToKeep + 1)\r\n }\r\n\r\n localStorage.setItem('breadcrumbs', JSON.stringify(this.breadcrumbs))\r\n\r\n // Navigate to the specified url\r\n if (url == '/dashboard') {\r\n this.dashboardService.refresh()\r\n this.router.navigateByUrl(url)\r\n }\r\n else {\r\n this.router.navigateByUrl(url)\r\n }\r\n\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core'\r\nimport { NgbActiveModal, NgbDate, NgbModal } from '@ng-bootstrap/ng-bootstrap'\r\nimport { round } from '@turf/turf'\r\nimport { ToastrService } from 'ngx-toastr'\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader'\r\nimport { throwError } from 'rxjs'\r\nimport {\r\n catchError,\r\n finalize,\r\n first,\r\n map,\r\n pluck,\r\n switchMap,\r\n takeUntil,\r\n} from 'rxjs/operators'\r\nimport {\r\n SaveVoyageDataPayload,\r\n VoyageData,\r\n VoyageHistoryPayload,\r\n} from 'src/app/core/models/voyage-data-management'\r\nimport { VoyageStrategiesSavePayload } from 'src/app/core/models/voyage-planner'\r\nimport { FueleuDataManagementService } from 'src/app/core/services/fueleu-datamanagement.service'\r\n\r\n@Component({\r\n selector: 'eu-data-management-detail',\r\n templateUrl: './eu-data-management-detail.component.html',\r\n styleUrls: ['./eu-data-management-detail.component.css'],\r\n})\r\nexport class EuDataManagementDetailComponent implements OnInit {\r\n @Input() voyageData: VoyageData\r\n @Input() modal: NgbActiveModal\r\n @Input() readonly = false\r\n\r\n constructor(\r\n private ngxService: NgxUiLoaderService,\r\n private toastrService: ToastrService,\r\n private fueleuDataManagementService: FueleuDataManagementService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.formatDates()\r\n }\r\n\r\n formatDates() {\r\n if (this.voyageData.fromDate) {\r\n this.voyageData.fromDate = this.voyageData.fromDate.split('T')[0]\r\n }\r\n if (this.voyageData.toDate) {\r\n this.voyageData.toDate = this.voyageData.toDate.split('T')[0]\r\n }\r\n this.voyageData.cO2EmittedAtPort = round(this.voyageData.cO2EmittedAtPort,2);\r\n this.voyageData.cO2EmittedAtSea = round(this.voyageData.cO2EmittedAtSea,2);\r\n this.voyageData.lfoConsumedAtPort = round(this.voyageData.lfoConsumedAtPort,2);\r\n this.voyageData.lfoConsumedAtSea = round(this.voyageData.lfoConsumedAtSea,2);\r\n this.voyageData.mgoConsumedAtPort = round(this.voyageData.mgoConsumedAtPort,2);\r\n this.voyageData.mgoConsumedAtSea = round(this.voyageData.mgoConsumedAtSea,2);\r\n \r\n\r\n }\r\n\r\n selectedTab: string = 'general'\r\n\r\n selectTab(tab: string): void {\r\n this.selectedTab = tab\r\n }\r\n\r\n editVoyageDetails(voyageId: number): void {\r\n this.ngxService.start()\r\n const model: VoyageHistoryPayload = this.updateVoyageDetailsPayload\r\n this.fueleuDataManagementService\r\n .updateVoyage(model)\r\n .pipe(\r\n catchError(error => {\r\n this.toastrService.error(\r\n error.message,\r\n 'Failed to update voyage details'\r\n )\r\n return throwError(() => new Error(error))\r\n }),\r\n finalize(() => this.ngxService.stop())\r\n )\r\n .subscribe(() => {\r\n this.toastrService.success('Voyage details updated successfully')\r\n })\r\n }\r\n\r\n toggleLock(voyageData: VoyageData) {\r\n this.fueleuDataManagementService\r\n .toggleLock(voyageData.id)\r\n .pipe(first())\r\n .subscribe(() => (voyageData.isLocked = !voyageData.isLocked))\r\n }\r\n\r\n get saveVoyageDetailsPayload(): SaveVoyageDataPayload {\r\n const payload = new SaveVoyageDataPayload([], [this.voyageData])\r\n return payload\r\n }\r\n\r\n get updateVoyageDetailsPayload(): VoyageHistoryPayload {\r\n const payload = new VoyageHistoryPayload(this.voyageData)\r\n return payload\r\n }\r\n}\r\n","export const environment = {\r\n production: true,\r\n downloadSurveyorFiles: \"https://pordstoragec4bunkers.blob.core.windows.net/c4bunkers-attachments/SurveyorFiles.zip\",\r\n etaCcEmail: \"postfix@base-blue.com;global@base-blue.com\",\r\n //routelink: \"https://web-routelink-stage3.azurewebsites.net/\",\r\n routelink: \"https://web-routelink-prod-c4bunkers.azurewebsites.net/\",\r\n apiUrl: \"https://api-prod-c4bunkers.azurewebsites.net\",\r\n //apiUrl: \"https://api-bunkernet.azurewebsites.net\"\r\n //apiUrl: \"https://api-qa-bunkernet-stage3.azurewebsites.net\",\r\n //apiUrl: \"https://localhost:44319\"\r\n firebaseConfig: {\r\n apiKey: \"AIzaSyClCLATYwDrUkaQvcScNB2WpfmcaCWYiGA\",\r\n authDomain: \"g-map-e547b.firebaseapp.com\",\r\n databaseURL: \"https://g-map-e547b-default-rtdb.firebaseio.com\",\r\n projectId: \"g-map-e547b\",\r\n storageBucket: \"g-map-e547b.appspot.com\",\r\n messagingSenderId: \"1071734281860\",\r\n appId: \"1:1071734281860:web:ae6fb912df4e7babb994d1\",\r\n measurementId: \"G-T4DGJWPG14\"\r\n }\r\n};\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\nimport { 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\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\r\n .sidebar{\r\n position: sticky;\r\n top:0;\r\n height: 100%;\r\n }\r\n \r\n /* Tooltip text */\r\n .tooltiptext {\r\n width: 180px;\r\n background-color: #27b374;\r\n opacity: 0.8;\r\n color: #fff;\r\n text-align: center;\r\n padding: 5px 0;\r\n border-radius: 6px;\r\n display: none;\r\n \r\n /* Position the tooltip text - see examples below! */\r\n position: absolute;\r\n top: 5px;\r\n left: 80%;\r\n z-index: 20;\r\n }\r\n\r\n .tooltiptext::after {\r\n content: \" \";\r\n position: absolute;\r\n top: 50%;\r\n right: 100%; /* To the left of the tooltip */\r\n margin-top: -5px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: transparent #27b374 transparent transparent;\r\n }\r\n\r\n .tooltiptext-mirror {\r\n width: 180px;\r\n background-color: #27b374;\r\n opacity: 0.8;\r\n color: #fff;\r\n text-align: center;\r\n padding: 5px 0;\r\n border-radius: 6px;\r\n \r\n /* Position the tooltip text - see examples below! */\r\n position: absolute;\r\n top: 5px;\r\n left: 80%;\r\n z-index: 20;\r\n transform: scaleX(-1);\r\n }\r\n\r\n `, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/layouts/main-layout/main-layout.component.css\"],\"names\":[],\"mappings\":\";EACE;IACE,gBAAgB;IAChB,KAAK;IACL,YAAY;EACd;;EAEA,iBAAiB;EACjB;IACE,YAAY;IACZ,yBAAyB;IACzB,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,aAAa;;IAEb,oDAAoD;IACpD,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,WAAW;EACb;;EAEA;IACE,aAAa;IACb,kBAAkB;IAClB,QAAQ;IACR,WAAW,EAAE,+BAA+B;IAC5C,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,yDAAyD;EAC3D;;EAEA;IACE,YAAY;IACZ,yBAAyB;IACzB,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,kBAAkB;;IAElB,oDAAoD;IACpD,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,WAAW;IAIX,qBAAqB;EACvB\",\"sourcesContent\":[\"\\r\\n .sidebar{\\r\\n position: sticky;\\r\\n top:0;\\r\\n height: 100%;\\r\\n }\\r\\n \\r\\n /* Tooltip text */\\r\\n .tooltiptext {\\r\\n width: 180px;\\r\\n background-color: #27b374;\\r\\n opacity: 0.8;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n padding: 5px 0;\\r\\n border-radius: 6px;\\r\\n display: none;\\r\\n \\r\\n /* Position the tooltip text - see examples below! */\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n left: 80%;\\r\\n z-index: 20;\\r\\n }\\r\\n\\r\\n .tooltiptext::after {\\r\\n content: \\\" \\\";\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n right: 100%; /* To the left of the tooltip */\\r\\n margin-top: -5px;\\r\\n border-width: 5px;\\r\\n border-style: solid;\\r\\n border-color: transparent #27b374 transparent transparent;\\r\\n }\\r\\n\\r\\n .tooltiptext-mirror {\\r\\n width: 180px;\\r\\n background-color: #27b374;\\r\\n opacity: 0.8;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n padding: 5px 0;\\r\\n border-radius: 6px;\\r\\n \\r\\n /* Position the tooltip text - see examples below! */\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n left: 80%;\\r\\n z-index: 20;\\r\\n\\r\\n\\r\\n -webkit-transform: scaleX(-1);\\r\\n transform: scaleX(-1);\\r\\n }\\r\\n\\r\\n \"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dot {\r\n height: 8px;\r\n width: 8px;\r\n border-radius: 50%;\r\n display: inline-block;\r\n vertical-align: middle;\r\n margin-right: 8px;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/chart-card/chart-card.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,WAAW;EACX,UAAU;EACV,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,iBAAiB;AACnB\",\"sourcesContent\":[\".dot {\\r\\n height: 8px;\\r\\n width: 8px;\\r\\n border-radius: 50%;\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n margin-right: 8px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.progress-bar-indeterminate {\r\n height: 1rem;\r\n width: 55%;\r\n background: linear-gradient(\r\n 90deg,\r\n #60b0e2,\r\n #4ac0c9,\r\n #4ac0c9,\r\n #4dd066,\r\n #6bcb27\r\n );\r\n position: relative;\r\n animation: move-indeterminate 1.5s linear infinite;\r\n}\r\n\r\n@keyframes move-indeterminate {\r\n 0% {\r\n left: -20%;\r\n width: 30%;\r\n }\r\n 15% {\r\n left: 5%;\r\n width: 40%;\r\n }\r\n 25% {\r\n width: 50%;\r\n left: 20%;\r\n }\r\n 50% {\r\n width: 65%;\r\n left: 40%;\r\n }\r\n 75% {\r\n width: 45%;\r\n left: 65%;\r\n }\r\n 85% {\r\n width: 50%;\r\n left: 90%;\r\n }\r\n 100% {\r\n left: 100%;\r\n width: 30%;\r\n }\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/indeterminate-progress-bar/indeterminate-progress-bar.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,YAAY;EACZ,UAAU;EACV;;;;;;;GAOC;EACD,kBAAkB;EAClB,kDAAkD;AACpD;;AAEA;EACE;IACE,UAAU;IACV,UAAU;EACZ;EACA;IACE,QAAQ;IACR,UAAU;EACZ;EACA;IACE,UAAU;IACV,SAAS;EACX;EACA;IACE,UAAU;IACV,SAAS;EACX;EACA;IACE,UAAU;IACV,SAAS;EACX;EACA;IACE,UAAU;IACV,SAAS;EACX;EACA;IACE,UAAU;IACV,UAAU;EACZ;AACF\",\"sourcesContent\":[\".progress-bar-indeterminate {\\r\\n height: 1rem;\\r\\n width: 55%;\\r\\n background: linear-gradient(\\r\\n 90deg,\\r\\n #60b0e2,\\r\\n #4ac0c9,\\r\\n #4ac0c9,\\r\\n #4dd066,\\r\\n #6bcb27\\r\\n );\\r\\n position: relative;\\r\\n animation: move-indeterminate 1.5s linear infinite;\\r\\n}\\r\\n\\r\\n@keyframes move-indeterminate {\\r\\n 0% {\\r\\n left: -20%;\\r\\n width: 30%;\\r\\n }\\r\\n 15% {\\r\\n left: 5%;\\r\\n width: 40%;\\r\\n }\\r\\n 25% {\\r\\n width: 50%;\\r\\n left: 20%;\\r\\n }\\r\\n 50% {\\r\\n width: 65%;\\r\\n left: 40%;\\r\\n }\\r\\n 75% {\\r\\n width: 45%;\\r\\n left: 65%;\\r\\n }\\r\\n 85% {\\r\\n width: 50%;\\r\\n left: 90%;\\r\\n }\\r\\n 100% {\\r\\n left: 100%;\\r\\n width: 30%;\\r\\n }\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.loading-view {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 1000;\r\n}\r\n\r\n.loading-view-dark {\r\n background-color:rgba(189, 189, 189, 0.397);\r\n}\r\n\r\n.loading-view-light {\r\n background-color: inherit;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/loading-view/loading-view.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,aAAa;AACf;;AAEA;EACE,2CAA2C;AAC7C;;AAEA;EACE,yBAAyB;AAC3B\",\"sourcesContent\":[\".loading-view {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n.loading-view-dark {\\r\\n background-color:rgba(189, 189, 189, 0.397);\\r\\n}\\r\\n\\r\\n.loading-view-light {\\r\\n background-color: inherit;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.custom-range {\r\n -webkit-appearance: none;\r\n width: 100%;\r\n margin: 0;\r\n height: 6px;\r\n border-radius: 5px;\r\n outline: none;\r\n}\r\n\r\ninput[type=\"range\"].custom-range:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n}\r\n\r\ninput[type=\"range\"].custom-range::-webkit-slider-runnable-track {\r\n -webkit-appearance: none;\r\n height: 6px;\r\n z-index: 1;\r\n border-radius: 5px;\r\n background: var(--slider-gradient, linear-gradient(to right, #206A5D 50%, #F6995C 50%))\r\n}\r\n\r\n.custom-range::-webkit-slider-thumb {\r\n -webkit-appearance: none;\r\n appearance: none;\r\n width: 20px;\r\n z-index: 3;\r\n height: 20px;\r\n background: #206A5D;\r\n border: 3px solid #fff;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n margin-top: -6px;\r\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\r\n}\r\n\r\n.custom-thumb {\r\n position: absolute;\r\n width: 20px;\r\n z-index: 4;\r\n height: 20px;\r\n background: #206A5D;\r\n border: 3px solid #fff;\r\n transform: var(--transform-custom-thumb, translateX(0%));\r\n border-radius: 50%;\r\n cursor: pointer;\r\n margin-top: -6px;\r\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\r\n}\r\n\r\n.custom-range:disabled::-webkit-slider-thumb {\r\n cursor: not-allowed;\r\n}\r\n\r\n.custom-range::-moz-range-thumb {\r\n width: 20px;\r\n height: 20px;\r\n background: #206A5D;\r\n z-index: 3;\r\n border: 3px solid #fff;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\r\n}\r\n\r\n.custom-range::-ms-thumb {\r\n width: 20px;\r\n z-index: 3;\r\n height: 20px;\r\n background: #206A5D;\r\n border: 3px solid #fff;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\r\n}\r\n\r\n.fuel-percentages {\r\n height: 40px;\r\n min-height: 40px;\r\n transform: translateY(-15px);\r\n align-items: end;\r\n}\r\n\r\n.grade-name {\r\n margin-top: 3rem;\r\n margin: 0 auto;\r\n}\r\n\r\n.grade-value {\r\n background-color: #fff;\r\n position: relative;\r\n z-index: 2;\r\n filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.1));\r\n}\r\n\r\n.grade-value-container {\r\n position: relative;\r\n}\r\n\r\n.grade-value-container::before {\r\n content: '';\r\n position: absolute;\r\n left: 50%;\r\n top: -15px;\r\n z-index: 1;\r\n transform: translateX(-50%);\r\n width: 0;\r\n height: 0;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-bottom: 12px solid #FFF;\r\n filter: drop-shadow(0 2px 2px rgba(0,0,0,0.1)); /* Adjust the shadow as needed */\r\n}\r\n\r\n.dot {\r\n height: 8px;\r\n width: 8px;\r\n border-radius: 50%;\r\n display: inline-block;\r\n vertical-align: middle;\r\n margin-right: 8px;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/range-slider/range-slider.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,wBAAwB;EACxB,WAAW;EACX,UAAU;EACV,WAAW;EACX,kBAAkB;EAClB,aAAa;AACf;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,wBAAwB;EACxB,WAAW;EACX,UAAU;EACV,kBAAkB;EAClB;AACF;;AAEA;EACE,wBAAwB;EACxB,gBAAgB;EAChB,WAAW;EACX,UAAU;EACV,YAAY;EACZ,mBAAmB;EACnB,sBAAsB;EACtB,kBAAkB;EAClB,eAAe;EACf,gBAAgB;EAChB;AACF;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,UAAU;EACV,YAAY;EACZ,mBAAmB;EACnB,sBAAsB;EACtB,wDAAwD;EACxD,kBAAkB;EAClB,eAAe;EACf,gBAAgB;EAChB;AACF;;AAEA;EACE,oBAAoB;AACtB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,UAAU;EACV,sBAAsB;EACtB,kBAAkB;EAClB,eAAe;EACf;AACF;;AAEA;EACE,WAAW;EACX,UAAU;EACV,YAAY;EACZ,mBAAmB;EACnB,sBAAsB;EACtB,kBAAkB;EAClB,eAAe;EACf;AACF;;AAEA;EACE,YAAY;EACZ,gBAAgB;EAChB,4BAA4B;EAC5B,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,UAAU;EACV,iDAAiD;AACnD;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,UAAU;EACV,2BAA2B;EAC3B,QAAQ;EACR,SAAS;EACT,kCAAkC;EAClC,mCAAmC;EACnC,8BAA8B;EAC9B,8CAA8C,EAAE,gCAAgC;AAClF;;AAEA;EACE,WAAW;EACX,UAAU;EACV,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,iBAAiB;AACnB\",\"sourcesContent\":[\".custom-range {\\r\\n -webkit-appearance: none;\\r\\n width: 100%;\\r\\n margin: 0;\\r\\n height: 6px;\\r\\n border-radius: 5px;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\ninput[type=\\\"range\\\"].custom-range:disabled {\\r\\n opacity: 0.5;\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\\r\\ninput[type=\\\"range\\\"].custom-range::-webkit-slider-runnable-track {\\r\\n -webkit-appearance: none;\\r\\n height: 6px;\\r\\n z-index: 1;\\r\\n border-radius: 5px;\\r\\n background: var(--slider-gradient, linear-gradient(to right, #206A5D 50%, #F6995C 50%))\\r\\n}\\r\\n\\r\\n.custom-range::-webkit-slider-thumb {\\r\\n -webkit-appearance: none;\\r\\n appearance: none;\\r\\n width: 20px;\\r\\n z-index: 3;\\r\\n height: 20px;\\r\\n background: #206A5D;\\r\\n border: 3px solid #fff;\\r\\n border-radius: 50%;\\r\\n cursor: pointer;\\r\\n margin-top: -6px;\\r\\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\\r\\n}\\r\\n\\r\\n.custom-thumb {\\r\\n position: absolute;\\r\\n width: 20px;\\r\\n z-index: 4;\\r\\n height: 20px;\\r\\n background: #206A5D;\\r\\n border: 3px solid #fff;\\r\\n transform: var(--transform-custom-thumb, translateX(0%));\\r\\n border-radius: 50%;\\r\\n cursor: pointer;\\r\\n margin-top: -6px;\\r\\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\\r\\n}\\r\\n\\r\\n.custom-range:disabled::-webkit-slider-thumb {\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\\r\\n.custom-range::-moz-range-thumb {\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n background: #206A5D;\\r\\n z-index: 3;\\r\\n border: 3px solid #fff;\\r\\n border-radius: 50%;\\r\\n cursor: pointer;\\r\\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\\r\\n}\\r\\n\\r\\n.custom-range::-ms-thumb {\\r\\n width: 20px;\\r\\n z-index: 3;\\r\\n height: 20px;\\r\\n background: #206A5D;\\r\\n border: 3px solid #fff;\\r\\n border-radius: 50%;\\r\\n cursor: pointer;\\r\\n box-shadow: 0 0 4px 2px rgba(0, 0, 0, 0.2)\\r\\n}\\r\\n\\r\\n.fuel-percentages {\\r\\n height: 40px;\\r\\n min-height: 40px;\\r\\n transform: translateY(-15px);\\r\\n align-items: end;\\r\\n}\\r\\n\\r\\n.grade-name {\\r\\n margin-top: 3rem;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.grade-value {\\r\\n background-color: #fff;\\r\\n position: relative;\\r\\n z-index: 2;\\r\\n filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.1));\\r\\n}\\r\\n\\r\\n.grade-value-container {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.grade-value-container::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n top: -15px;\\r\\n z-index: 1;\\r\\n transform: translateX(-50%);\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-left: 8px solid transparent;\\r\\n border-right: 8px solid transparent;\\r\\n border-bottom: 12px solid #FFF;\\r\\n filter: drop-shadow(0 2px 2px rgba(0,0,0,0.1)); /* Adjust the shadow as needed */\\r\\n}\\r\\n\\r\\n.dot {\\r\\n height: 8px;\\r\\n width: 8px;\\r\\n border-radius: 50%;\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n margin-right: 8px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* app.component.css */\r\n.nav-pills {\r\n border-radius: 10px;\r\n border: 1.2px solid #eaeaea;\r\n margin-right: 5px;\r\n}\r\n\r\n.nav-pills .nav-link {\r\n border-radius: 8px;\r\n margin: 3px;\r\n padding: 4px 12px;\r\n}\r\n.nav-pills .nav-link.active,\r\n.nav-pills .show > .nav-link {\r\n border-bottom: 0 !important;\r\n}\r\n\r\n.nav-pills .nav-link.active {\r\n background-color: #def6e5;\r\n color: #437869;\r\n}\r\n\r\n.nav-pills .nav-link.active.danger {\r\n background-color: #fbe7e9;\r\n color: #753e54;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/toggle-switch/toggle-switch.component.css\"],\"names\":[],\"mappings\":\"AAAA,sBAAsB;AACtB;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,iBAAiB;AACnB;AACA;;EAEE,2BAA2B;AAC7B;;AAEA;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE,yBAAyB;EACzB,cAAc;AAChB\",\"sourcesContent\":[\"/* app.component.css */\\r\\n.nav-pills {\\r\\n border-radius: 10px;\\r\\n border: 1.2px solid #eaeaea;\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.nav-pills .nav-link {\\r\\n border-radius: 8px;\\r\\n margin: 3px;\\r\\n padding: 4px 12px;\\r\\n}\\r\\n.nav-pills .nav-link.active,\\r\\n.nav-pills .show > .nav-link {\\r\\n border-bottom: 0 !important;\\r\\n}\\r\\n\\r\\n.nav-pills .nav-link.active {\\r\\n background-color: #def6e5;\\r\\n color: #437869;\\r\\n}\\r\\n\\r\\n.nav-pills .nav-link.active.danger {\\r\\n background-color: #fbe7e9;\\r\\n color: #753e54;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.file-upload {\r\n position: relative;\r\n display: inline-block;\r\n}\r\n\r\n.upload-btn {\r\n padding: 6px 12px;\r\n background-color: #fff;\r\n border-radius: 5px;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.remove-btn {\r\n margin-left: 10px;\r\n cursor: pointer;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/upload-button/upload-button.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;;AAEA;EACE,iBAAiB;EACjB,sBAAsB;EACtB,kBAAkB;EAClB,eAAe;EACf,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,iBAAiB;EACjB,eAAe;AACjB\",\"sourcesContent\":[\".file-upload {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.upload-btn {\\r\\n padding: 6px 12px;\\r\\n background-color: #fff;\\r\\n border-radius: 5px;\\r\\n cursor: pointer;\\r\\n display: inline-flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.remove-btn {\\r\\n margin-left: 10px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `::ng-deep\r\n .multiselect-dropdown {\r\n transform: translate(-3px, -7px);\r\n z-index: 10000 !important\r\n }\r\n::ng-deep\r\n .multiselect-dropdown .dropdown-btn {\r\n border: none !important\r\n }\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/views/administration/admin/fuelseu/fuelseu-details/fuelseu-details.component.css\"],\"names\":[],\"mappings\":\"AAAA;;IAEI,gCAAgC;IAChC;EACF;AACF;;IAEI;EACF\",\"sourcesContent\":[\"::ng-deep\\r\\n .multiselect-dropdown {\\r\\n transform: translate(-3px, -7px);\\r\\n z-index: 10000 !important\\r\\n }\\r\\n::ng-deep\\r\\n .multiselect-dropdown .dropdown-btn {\\r\\n border: none !important\\r\\n }\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-card {\r\n width: 25rem\r\n}\r\n\r\n@media (max-width: 425px) {\r\n .login-card {\r\n margin: 5%;\r\n width: 100%;\r\n }\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/views/authentication/login/login.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE;AACF;;AAEA;CACC;IACG,UAAU;IACV,WAAW;EACb;AACF\",\"sourcesContent\":[\".login-card {\\r\\n width: 25rem\\r\\n}\\r\\n\\r\\n@media (max-width: 425px) {\\r\\n .login-card {\\r\\n margin: 5%;\\r\\n width: 100%;\\r\\n }\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `nav > ol.breadcrumb-nav {\r\n background-color: none !important;\r\n list-style: none;\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/views/breadcrumb/breadcrumb.component.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,iCAAiC;EACjC,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,eAAe;AACjB\",\"sourcesContent\":[\"nav > ol.breadcrumb-nav {\\r\\n background-color: none !important;\\r\\n list-style: none;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n flex-wrap: wrap;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* Container for the row */\r\n.row-container {\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: flex-end;\r\n padding: 0px;\r\n margin: 0 auto;\r\n width: 1444px;\r\n height: 36px;\r\n}\r\n\r\n.row-container .form-group {\r\n margin-bottom: 0;\r\n}\r\n\r\n.input-group .btn-light.calendar {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0 12px;\r\n}\r\n\r\ninput[type=\"text\"].form-control {\r\n padding: 6px 12px;\r\n}\r\n\r\nselect.form-control {\r\n padding: 6px 12px;\r\n}\r\n\r\n.modal-divider {\r\n border: none;\r\n border-top: 1px solid #e5e5e5;\r\n margin: 0;\r\n}\r\n\r\n.modal-body {\r\n display: flex;\r\n align-items: stretch; /* Ensure children stretch to fill container height */\r\n}\r\n\r\n.col-md-3 {\r\n display: flex;\r\n align-items: stretch;\r\n position: relative;\r\n box-sizing: border-box;\r\n width: 202px;\r\n height: 500px;\r\n}\r\n\r\n.ul-container {\r\n display: flex;\r\n flex-direction: column;\r\n padding: 4px 8px;\r\n gap: 10px;\r\n \r\n width: 170px;\r\n height: 28px;\r\n border-radius: 8px;\r\n}\r\n\r\n.vertical-line-container {\r\n display: flex;\r\n align-items: stretch;\r\n margin-left: 100px;\r\n}\r\n\r\n.vertical-line {\r\n border: none;\r\n border-left: 1px solid #e5e5e5;\r\n height: 100%;\r\n margin: 0;\r\n}\r\n\r\n.nav-item {\r\n padding: 4px 8px;\r\n cursor: pointer;\r\n border-radius: 4px; /* Optional: for better appearance */\r\n}\r\n\r\n.nav-item a {\r\n text-decoration: none;\r\n display: block;\r\n width: 100%;\r\n}\r\n\r\n.nav-item.active {\r\n background-color: rgba(55, 137, 112, 0.1);\r\n font-weight: bold;\r\n}\r\n\r\n\r\n.dropdown-container {\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 8px 12px;\r\n gap: 8px;\r\n width: 239.5px;\r\n height: 36px;\r\n background: #FFFFFF;\r\n border: 1px solid #D0D5DD;\r\n border-radius: 8px;\r\n}\r\n\r\n.label {\r\n flex: none;\r\n order: 0;\r\n flex-grow: 1;\r\n}\r\n\r\n.dropdown {\r\n flex: none;\r\n order: 1;\r\n flex-grow: 1;\r\n border: none;\r\n outline: none;\r\n background: none;\r\n}\r\n\r\n.date-input {\r\n flex: none;\r\n order: 1;\r\n flex-grow: 1;\r\n border: none;\r\n outline: none;\r\n background: none;\r\n}\r\n\r\n.button-container {\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100%;\r\n}\r\n\r\n.button-group {\r\n display: flex;\r\n gap: 10px; /* Adjust the gap as needed */\r\n}\r\n\r\n.button-group.start {\r\n justify-content: flex-start;\r\n}\r\n\r\n.button-group.end {\r\n justify-content: flex-end;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/views/compliance-management/eu-data-management/eu-data-management-detail/eu-data-management-detail.component.css\"],\"names\":[],\"mappings\":\"AAAA,0BAA0B;AAC1B;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,qBAAqB;EACrB,YAAY;EACZ,cAAc;EACd,aAAa;EACb,YAAY;AACd;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;AACjB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,YAAY;EACZ,6BAA6B;EAC7B,SAAS;AACX;;AAEA;EACE,aAAa;EACb,oBAAoB,EAAE,qDAAqD;AAC7E;;AAEA;EACE,aAAa;EACb,oBAAoB;EACpB,kBAAkB;EAClB,sBAAsB;EACtB,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;EAChB,SAAS;;EAET,YAAY;EACZ,YAAY;EACZ,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,oBAAoB;EACpB,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,8BAA8B;EAC9B,YAAY;EACZ,SAAS;AACX;;AAEA;EACE,gBAAgB;EAChB,eAAe;EACf,kBAAkB,EAAE,oCAAoC;AAC1D;;AAEA;EACE,qBAAqB;EACrB,cAAc;EACd,WAAW;AACb;;AAEA;EACE,yCAAyC;EACzC,iBAAiB;AACnB;;;AAGA;EACE,sBAAsB;EACtB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,mBAAmB;EACnB,iBAAiB;EACjB,QAAQ;EACR,cAAc;EACd,YAAY;EACZ,mBAAmB;EACnB,yBAAyB;EACzB,kBAAkB;AACpB;;AAEA;EACE,UAAU;EACV,QAAQ;EACR,YAAY;AACd;;AAEA;EACE,UAAU;EACV,QAAQ;EACR,YAAY;EACZ,YAAY;EACZ,aAAa;EACb,gBAAgB;AAClB;;AAEA;EACE,UAAU;EACV,QAAQ;EACR,YAAY;EACZ,YAAY;EACZ,aAAa;EACb,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,8BAA8B;EAC9B,WAAW;AACb;;AAEA;EACE,aAAa;EACb,SAAS,EAAE,6BAA6B;AAC1C;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,yBAAyB;AAC3B\",\"sourcesContent\":[\"/* Container for the row */\\r\\n.row-container {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n justify-content: space-between;\\r\\n align-items: flex-end;\\r\\n padding: 0px;\\r\\n margin: 0 auto;\\r\\n width: 1444px;\\r\\n height: 36px;\\r\\n}\\r\\n\\r\\n.row-container .form-group {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.input-group .btn-light.calendar {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n padding: 0 12px;\\r\\n}\\r\\n\\r\\ninput[type=\\\"text\\\"].form-control {\\r\\n padding: 6px 12px;\\r\\n}\\r\\n\\r\\nselect.form-control {\\r\\n padding: 6px 12px;\\r\\n}\\r\\n\\r\\n.modal-divider {\\r\\n border: none;\\r\\n border-top: 1px solid #e5e5e5;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n display: flex;\\r\\n align-items: stretch; /* Ensure children stretch to fill container height */\\r\\n}\\r\\n\\r\\n.col-md-3 {\\r\\n display: flex;\\r\\n align-items: stretch;\\r\\n position: relative;\\r\\n box-sizing: border-box;\\r\\n width: 202px;\\r\\n height: 500px;\\r\\n}\\r\\n\\r\\n.ul-container {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n padding: 4px 8px;\\r\\n gap: 10px;\\r\\n \\r\\n width: 170px;\\r\\n height: 28px;\\r\\n border-radius: 8px;\\r\\n}\\r\\n\\r\\n.vertical-line-container {\\r\\n display: flex;\\r\\n align-items: stretch;\\r\\n margin-left: 100px;\\r\\n}\\r\\n\\r\\n.vertical-line {\\r\\n border: none;\\r\\n border-left: 1px solid #e5e5e5;\\r\\n height: 100%;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.nav-item {\\r\\n padding: 4px 8px;\\r\\n cursor: pointer;\\r\\n border-radius: 4px; /* Optional: for better appearance */\\r\\n}\\r\\n\\r\\n.nav-item a {\\r\\n text-decoration: none;\\r\\n display: block;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.nav-item.active {\\r\\n background-color: rgba(55, 137, 112, 0.1);\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n\\r\\n.dropdown-container {\\r\\n box-sizing: border-box;\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n padding: 8px 12px;\\r\\n gap: 8px;\\r\\n width: 239.5px;\\r\\n height: 36px;\\r\\n background: #FFFFFF;\\r\\n border: 1px solid #D0D5DD;\\r\\n border-radius: 8px;\\r\\n}\\r\\n\\r\\n.label {\\r\\n flex: none;\\r\\n order: 0;\\r\\n flex-grow: 1;\\r\\n}\\r\\n\\r\\n.dropdown {\\r\\n flex: none;\\r\\n order: 1;\\r\\n flex-grow: 1;\\r\\n border: none;\\r\\n outline: none;\\r\\n background: none;\\r\\n}\\r\\n\\r\\n.date-input {\\r\\n flex: none;\\r\\n order: 1;\\r\\n flex-grow: 1;\\r\\n border: none;\\r\\n outline: none;\\r\\n background: none;\\r\\n}\\r\\n\\r\\n.button-container {\\r\\n display: flex;\\r\\n justify-content: space-between;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.button-group {\\r\\n display: flex;\\r\\n gap: 10px; /* Adjust the gap as needed */\\r\\n}\\r\\n\\r\\n.button-group.start {\\r\\n justify-content: flex-start;\\r\\n}\\r\\n\\r\\n.button-group.end {\\r\\n justify-content: flex-end;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host {\n display: block;\n position: relative;\n width: 80px;\n}\n\ninput[type=checkbox] {\n display: none;\n}\n\n.toggle-alert-button-switch {\n position: absolute;\n top: -2px;\n left: 2px;\n width: 36px;\n height: 36px;\n background-color: #fff;\n border-radius: 100%;\n cursor: pointer;\n z-index: 100;\n transition: left 0.3s;\n}\n\n.toggle-alert-button-text {\n -webkit-user-select: none;\n /* Safari */\n /* Firefox */\n /* IE10+/Edge */\n user-select: none;\n /* Standard */\n overflow: hidden;\n background-color: #fc3164;\n border-radius: 25px;\n box-shadow: 2px 2px 5px 0 rgba(50, 50, 50, 0.75);\n transition: background-color 0.3s;\n}\n\ninput[type=checkbox]:disabled ~ .toggle-alert-button-text {\n opacity: 50%;\n}\n\n.toggle-alert-button-text-on,\n.toggle-alert-button-text-off {\n float: left;\n width: 50%;\n height: 100%;\n line-height: 30px;\n font-family: Lato, sans-serif;\n font-weight: bold;\n color: #fff;\n text-align: center;\n}\n\ninput[type=checkbox]:checked ~ .toggle-alert-button-switch {\n left: 42px;\n}\n\ninput[type=checkbox]:checked ~ .toggle-alert-button-text {\n background-color: #2196f3;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/toggle-alert-button/toggle-alert-button.component.scss\"],\"names\":[],\"mappings\":\"AAAA;EACI,cAAA;EACA,kBAAA;EACA,WAAA;AACJ;;AAEA;EACI,aAAA;AACJ;;AAEA;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,mBAAA;EACA,eAAA;EACA,YAAA;EACA,qBAAA;AACJ;;AAEA;EACI,yBAAA;EACA,WAAA;EAEA,YAAA;EAEA,eAAA;EACA,iBAAA;EACA,aAAA;EACA,gBAAA;EACA,yBAAA;EACA,mBAAA;EACA,gDAAA;EACA,iCAAA;AACJ;;AAEA;EACI,YAAA;AACJ;;AAEA;;EAEI,WAAA;EACA,UAAA;EACA,YAAA;EACA,iBAAA;EACA,6BAAA;EACA,iBAAA;EACA,WAAA;EACA,kBAAA;AACJ;;AAEA;EACI,UAAA;AACJ;;AAEA;EACI,yBAAA;AACJ\",\"sourcesContent\":[\":host {\\r\\n display: block;\\r\\n position: relative;\\r\\n width: 80px;\\r\\n}\\r\\n\\r\\ninput[type='checkbox'] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.toggle-alert-button-switch {\\r\\n position: absolute;\\r\\n top: -2px;\\r\\n left: 2px;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n background-color: #fff;\\r\\n border-radius: 100%;\\r\\n cursor: pointer;\\r\\n z-index: 100;\\r\\n transition: left 0.3s;\\r\\n}\\r\\n\\r\\n.toggle-alert-button-text {\\r\\n -webkit-user-select: none;\\r\\n /* Safari */\\r\\n -moz-user-select: none;\\r\\n /* Firefox */\\r\\n -ms-user-select: none;\\r\\n /* IE10+/Edge */\\r\\n user-select: none;\\r\\n /* Standard */\\r\\n overflow: hidden;\\r\\n background-color: #fc3164;\\r\\n border-radius: 25px;\\r\\n box-shadow: 2px 2px 5px 0 rgba(50, 50, 50, 0.75);\\r\\n transition: background-color 0.3s;\\r\\n}\\r\\n\\r\\ninput[type='checkbox']:disabled~.toggle-alert-button-text {\\r\\n opacity: 50%;\\r\\n}\\r\\n\\r\\n.toggle-alert-button-text-on,\\r\\n.toggle-alert-button-text-off {\\r\\n float: left;\\r\\n width: 50%;\\r\\n height: 100%;\\r\\n line-height: 30px;\\r\\n font-family: Lato, sans-serif;\\r\\n font-weight: bold;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\ninput[type='checkbox']:checked~.toggle-alert-button-switch {\\r\\n left: 42px;\\r\\n}\\r\\n\\r\\ninput[type='checkbox']:checked~.toggle-alert-button-text {\\r\\n background-color: #2196f3;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host {\n display: block;\n position: relative;\n width: 80px;\n}\n\ninput[type=checkbox] {\n display: none;\n}\n\n.toggle-button-switch {\n position: absolute;\n top: -2px;\n left: 2px;\n width: 36px;\n height: 36px;\n background-color: #fff;\n border-radius: 100%;\n cursor: pointer;\n z-index: 100;\n transition: left 0.3s;\n}\n\n.toggle-button-text {\n -webkit-user-select: none;\n /* Safari */\n /* Firefox */\n /* IE10+/Edge */\n user-select: none;\n /* Standard */\n overflow: hidden;\n background-color: #fc3164;\n border-radius: 25px;\n box-shadow: 2px 2px 5px 0 rgba(50, 50, 50, 0.75);\n transition: background-color 0.3s;\n}\n\ninput[type=checkbox]:disabled ~ .toggle-button-text {\n opacity: 50%;\n}\n\n.toggle-button-text-on,\n.toggle-button-text-off {\n float: left;\n width: 50%;\n height: 100%;\n line-height: 30px;\n font-family: Lato, sans-serif;\n font-weight: bold;\n color: #fff;\n text-align: center;\n}\n\ninput[type=checkbox]:checked ~ .toggle-button-switch {\n left: 42px;\n}\n\ninput[type=checkbox]:checked ~ .toggle-button-text {\n background-color: #2196f3;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/shared/views/toggle-button/toggle-button.component.scss\"],\"names\":[],\"mappings\":\"AAAA;EACI,cAAA;EACA,kBAAA;EACA,WAAA;AACJ;;AAEA;EACI,aAAA;AACJ;;AAEA;EACI,kBAAA;EACA,SAAA;EACA,SAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,mBAAA;EACA,eAAA;EACA,YAAA;EACA,qBAAA;AACJ;;AAEA;EACI,yBAAA;EACA,WAAA;EAEA,YAAA;EAEA,eAAA;EACA,iBAAA;EACA,aAAA;EACA,gBAAA;EACA,yBAAA;EACA,mBAAA;EACA,gDAAA;EACA,iCAAA;AACJ;;AAEA;EACI,YAAA;AACJ;;AAEA;;EAEI,WAAA;EACA,UAAA;EACA,YAAA;EACA,iBAAA;EACA,6BAAA;EACA,iBAAA;EACA,WAAA;EACA,kBAAA;AACJ;;AAEA;EACI,UAAA;AACJ;;AAEA;EACI,yBAAA;AACJ\",\"sourcesContent\":[\":host {\\r\\n display: block;\\r\\n position: relative;\\r\\n width: 80px;\\r\\n}\\r\\n\\r\\ninput[type='checkbox'] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.toggle-button-switch {\\r\\n position: absolute;\\r\\n top: -2px;\\r\\n left: 2px;\\r\\n width: 36px;\\r\\n height: 36px;\\r\\n background-color: #fff;\\r\\n border-radius: 100%;\\r\\n cursor: pointer;\\r\\n z-index: 100;\\r\\n transition: left 0.3s;\\r\\n}\\r\\n\\r\\n.toggle-button-text {\\r\\n -webkit-user-select: none;\\r\\n /* Safari */\\r\\n -moz-user-select: none;\\r\\n /* Firefox */\\r\\n -ms-user-select: none;\\r\\n /* IE10+/Edge */\\r\\n user-select: none;\\r\\n /* Standard */\\r\\n overflow: hidden;\\r\\n background-color: #fc3164;\\r\\n border-radius: 25px;\\r\\n box-shadow: 2px 2px 5px 0 rgba(50, 50, 50, 0.75);\\r\\n transition: background-color 0.3s;\\r\\n}\\r\\n\\r\\ninput[type='checkbox']:disabled~.toggle-button-text {\\r\\n opacity: 50%;\\r\\n}\\r\\n\\r\\n.toggle-button-text-on,\\r\\n.toggle-button-text-off {\\r\\n float: left;\\r\\n width: 50%;\\r\\n height: 100%;\\r\\n line-height: 30px;\\r\\n font-family: Lato, sans-serif;\\r\\n font-weight: bold;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\ninput[type='checkbox']:checked~.toggle-button-switch {\\r\\n left: 42px;\\r\\n}\\r\\n\\r\\ninput[type='checkbox']:checked~.toggle-button-text {\\r\\n background-color: #2196f3;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n"],"names":["NgModule","RouterModule","AuthLayoutComponent","MainLayoutComponent","AuthGaurd","adminRoutes","path","loadChildren","then","m","DashboardModule","CustomersModule","UsersModule","VesselModule","DeliverablesModule","AdministrationModule","SupplierModule","ReprotsModule","WeatherReportModule","AlertsModule","EuaInventoryModule","BunkerPlanningModule","VoyageOverviewModule","VoyagePlannerModule","ComplianceManagementModule","routes","redirectTo","pathMatch","component","children","AuthModule","canActivate","AppRoutingModule","__decorate","imports","forRoot","useHash","exports","Component","AppComponent","constructor","title","console","log","_","selector","template","__NG_CLI_RESOURCE__0","BrowserModule","FormsModule","ReactiveFormsModule","HttpClientModule","HTTP_INTERCEPTORS","CommonModule","ToastrModule","BrowserAnimationsModule","LayoutsModule","JwtInterceptor","ErrorInterceptor","NgxUiLoaderModule","PB_DIRECTION","SPINNER","AngularFireModule","AngularFireDatabaseModule","SharedModule","environment","NgChartsModule","ngxUiLoaderConfig","fgsColor","fgsPosition","fgsSize","fgsType","rectangleBounce","pbDirection","leftToRight","pbThickness","AppModule","declarations","initializeApp","firebaseConfig","providers","provide","useClass","multi","bootstrap","Injectable","throwError","catchError","AuthService","ToastrService","authService","toastr","intercept","request","next","handle","pipe","err","user","currentUserValue","status","setTimeout","error","logout","message","data","statusText","Error","first","currentUser","access_token","tokenExpired","refreshToken","subscribe","location","reload","clone","setHeaders","Authorization","token","expiry","JSON","parse","atob","split","exp","Math","floor","Date","getTime","Comment","params","commentId","userId","UserId","userName","UserName","commentDate","CommentDate","commentText","CommentText","updatedAt","UpdatedAt","CommentId","User","Surveyor","UserRoles","VESSEL","C4","SUPER_USER","CUSTOMER1","CUSTOMER2","OPERATOR1","SURVEYOR","ROUTING_OPERATOR","EUA_INVENTORY_MANAGER","SUPER_OPERATOR","VoyageHistoryPayload","id","voyageNo","fromDate","toDate","fromPort","toPort","hfoConsumedAtSea","mgoConsumedAtSea","lfoConsumedAtSea","hfoConsumedAtPort","mgoConsumedAtPort","lfoConsumedAtPort","transportWork","distanceTravelled","hoursUnderway","timeAtSea","cargoCarried","cO2EmittedAtSea","cO2EmittedAtPort","eu","createdAt","createdByUserName","updatedByUserName","inputSource","isEUAConsumed","vesselId","vesselName","isEUASurrendered","opsConsumed","bioFuelConsumptions","SaveVoyageDataPayload","bioFuels","vesselVoyageHistories","map","item","VoyageData","Object","assign","selected","HttpClient","ActivatedRoute","Router","BehaviorSubject","http","route","router","currentUserSubject","localStorage","getItem","asObservable","isInImpersonatorModeSubject","isInImpersonatorMode$","_url","apiUrl","rememberMe","rememberMeSubject","value","sessionStorage","tempUserFromStorage","tempUserSubject","tempUser","authenticate","email","password","post","responce","isValidated","isVerified","validatedUsers","includes","setItem","stringify","twoFactorEnabled","redirectValue","snapshot","queryParamMap","get","redirectUrl","queryParams","redirect","navigateByUrl","createUrlTree","toString","setCurrentUser","isInImpersonatorMode","getValue","removeItem","exitImpersonatorMode","changePassword","newPassword","confirmPassword","currentPassword","setPassword","Password","forgetPassword","resetPassword","refresh_token","getQRCodeImage","secretKey","verifyQRCode","qrCode","disable2Fa","send2FaEmail","verifyEmailCode","firstName","lastName","userRole","role","isAuthenticated","getImpersonatedUserDetails","getSavedImpersonatedUserDetails","enterImpersonatorMode","selectedUser","impersonatedUser","navigate","impersonatorUser","afterUserLogin","urlRegex","test","slice","join","undefined","trim","url","providedIn","BreadcrumbService","breadcrumbs","breadcrumbsChanged","getBreadcrumbs","empty","addBreadcrumb","find","el","label","push","removeLastBreadcrumb","pop","Subject","DashboardService","refresh$","toggleVessels$","toggleFilters$","scrollToBottom$","activeVesselSchedules","activeVesselSchedules$","getRouteLinkToken","refresh","toggleVesselsList","toggleFilters","addSelectedActiveVesselSchedules","HttpParams","FueleuDataManagementService","toastService","refreshData","refreshData$","latestEuaPrice","latestEuaPrice$","refreshVoyageHistories","refreshVoyageHistories$","parseVoyages","file","saveCompletedVoyages","model","calculationModel","updateVoyage","put","getVoyageHistories","deleteVoyage","delete","deleteVoyages","ids","customerId","set","toggleLock","patch","tap","FueleuTypesService","FuelEUTypeList","FuelEUTypeList$","getfuelTypes","res","createFuelEUType","FuelEUType","getFuelEUType","updateFuelEUType","deleteFuelEUType","UsersService","users","createUser","getUsers","getPostFixUsers","getUser","getSurveyorUsersByPortId","portId","updateUser","deleteUser","ngOnInit","NgxSmartModalModule","components","ChangeDetectorRef","NavigationService","NgxSmartModalService","NgxUiLoaderService","dashboardService","ngxService","ngxSmartModalService","changeDetector","navigationService","roleValue","isSidebarOpen","showFilters","darkMode","isDashboard","voyagesSubmenu","complianceSubmenu","reportsSubmenu","administrationSubmenu","portLoaded","Number","initSubMenuItems","e","loadJQuery","toggleMode","darkModeSubject","addPortObserver","name","visible","toggleVesselList","portTrigger$","isDarkMode","toggleSidebar","openChat","window","open","emitShortcut","eventId","startLoader","response","completeLink","routelink","stopLoader","getModal","triggerShortcut","$","on","toggleClass","hasClass","collapse","resize","width","addClass","e0","originalEvent","delta","wheelDelta","detail","scrollTop","preventDefault","document","scrollDistance","fadeIn","fadeOut","$anchor","stop","animate","attr","offset","top","SetTimeout","delay","target","propertyKey","descriptor","originalMethod","args","apply","Directive","ElementRef","HostListener","Input","Renderer2","HoverMenuDirective","activeMenuElement","_3","listenersInitialized","renderer","hoverMenuHidden","menuElement","menuContainer","HoverMenuDirective_1","initializeDocumentClickListener","ngAfterViewInit","createMenuContainer","onMouseEnter","removeActiveMenu","createMenu","positionMenu","listen","event","nativeElement","contains","hostPos","getBoundingClientRect","createElement","setStyle","mouseLeaveOutsideMenuListener","appHoverMenu","forEach","itemElement","textNode","createText","appendChild","outsideClickListener","removeMenu","body","mouseLeaveListener","left","viewportWidth","innerWidth","viewportHeight","innerHeight","right","offsetWidth","bottom","offsetHeight","removeChild","ngOnDestroy","_4","MinMaxValidatorDirective","onInput","parsedValue","parseFloat","isNaN","min","updateValue","max","activeElement","dispatchEvent","Event","EventEmitter","Output","RoundPipe","ToggableInputDirective","roundPipe","disableInput","displayInput","valueChanged","ngOnChanges","changes","currentValue","previousValue","setDisabledStatus","turnIntoInput","onClick","inputElement","setAttribute","removeAttribute","innerText","valueWithoutUnit","unit","minValue","maxValue","applyMinMaxValidator","onBlurOrEnter","style","parentNode","focus","newValue","roundPrecision","transform","emit","displayText","length","setProperty","textContent","ComponentFactoryResolver","ApplicationRef","Injector","TooltipComponent","TooltipDirective","componentFactoryResolver","appRef","injector","text","tooltipDelay","showTooltip","componentFactory","resolveComponentFactory","tooltipComponentRef","create","instance","attachView","hostView","domElem","rootNodes","visibility","tooltipWidth","tooltipHeight","rect","margin","height","position","onMouseLeave","detachView","destroy","Pipe","DateNormalisedPipe","hours","d","h","DurationFormatPipe","duration","removeMinutesAndSeconds","transformMilliseconds","transformDurationString","milliseconds","days","result","minutes","seconds","durationInDays","matches","match","EuaCostOfEmissionPipe","emission","euaPrice","NoValuePipe","OrderByPipe","property","reverse","sort","a","b","precision","toFixed","UnitPipe","unitType","state","href","activatedPage","activatedPage$","activatedPageSubtitle","shortcutTrigger$","startLatTrigger$","startLngTrigger$","stopLatTrigger$","stopLngTrigger$","triggerStartLat","triggerStartLng","triggerStopLat","triggerStopLng","triggerPortLoaded","scrollToBottom","getElementById","scrollIntoView","behavior","block","scrollToTop","focusSearch","searchInput","querySelector","SharedRoutingModule","forChild","StarComponent","ToggleButtonComponent","ToggleAlertButtonComponent","KPIComponent","BaseProgressBarComponent","BaseItemViewerComponent","BaseComponent","RangeSliderComponent","BaseMapComponent","ToggableInputComponent","BreadcrumbComponent","LoadingViewComponent","UploadButtonComponent","CommentComponent","ToggleSwitchComponent","ChartCardComponent","EuDataManagementDetailComponent","FuelsEUDetailsComponent","IndeterminateProgressBarComponent","Utils","isMobile","matchMedia","ngbDateToDate","ngbDate","month","day","year","ngbDateToDateStart","ngbDateToString","combineDateTime","dateTime","date","setHours","dateToNgbDate","getMonth","getDate","getFullYear","element","genId","possible","i","charAt","random","isValidNumber","minimumValue","String","starHtml","htmlStr","n","toDegreesMinutesAndSeconds","coordinate","absolute","abs","degrees","minutesNotTruncated","convertDMS","lat","lng","latitude","latitudeCardinal","longitude","longitudeCardinal","modulo180","val","inc_lat","tan","toRad","toDeg","rad","PI","deg","rhumbLineDistance","c","dlat","dlon","bearing","distance","inc_latA","inc_latB","atan","cos","isEqualDate","compareWith","totalRLdistance","coords","totalLength","getColor","index","colors","reversed","round","number","isOdd","num","finalize","switchMap","takeUntil","loaderService","itemId","paramMap","loadItemDetails","loadFunction","$destroyed","ChangeDetectionStrategy","progress","startValue","endValue","changeDetection","OnPush","inject","navivationService","complete","setActivePage","page","activePage","pluginDataLabels","colorSet","doughnutChartOptions","responsive","maintainAspectRatio","plugins","datalabels","formatter","ctx","dataArr","chart","datasets","sum","reduce","acc","percentage","color","chartType","doughnutChartColors","backgroundColor","doughnutChartLegend","doughnutChartPlugins","showChart","chartData","some","_item","onDelete","onEdit","enableEdit","originalComment","comment","editComment","_comment","canEdit","deleteComment","commentIndex","cancel","total","size","isCurrency","valueType","isString","input","ViewChild","step","disable","updatedValue","rightColor","hoveredIndex","updateSliderStyle","fossilFuelGrades","addHoverIndex","detach","reattach","removeHoverIndex","percentageNumber","leftColors","grades","grade","startPercentage","endPercentage","gradient","slider","detectChanges","static","stars","flavor","unitPipe","isEditing","setInputValue","toggleEdit","editableValue","changed","disabled","checked","tabs","isActive","danger","toggleTab","tab","tooltipContent","classList","add","fileSelected","fileRemoved","filename","buttonLabel","resetFileInput","onFileSelected","files","removeFile","stopPropagation","FormControl","FormGroup","Validators","fuelseuTypesService","onDetails","formGroup","fuelName","fuelEuDetails","required","fuelCategory","lowerCalorificValue","cO2eqWtT","cO2eqWtW","cO2eqTtWInclSlip","cO2ConversionFactor","cH4ConversionFactor","n2OConversionFactor","dropdownSettings","singleSelection","idField","textField","itemsShowLimit","allowSearchFilter","defaultOpen","FuelseuId","getFuelseuDetails","editFormValue","patchValue","onSave","formValues","invalid","Fuelseu","success","modal","close","action","ForgetPasswordComponent","LoginComponent","TwoStepVerificationComponent","Process2faComponent","VerifyEmailComponent","ResetPasswordComponent","AuthRoutingModule","UntypedFormControl","isError","errorMessage","forgotpassword","showPassword","termOfUse","setValue","rememberMeChanged","showOrHidePassword","passwordField","termsOfUse","signin","usersService","imageData","verificationCode","emailVerification","twoFaModal","qrModal","emailModal","successModal","onCheckboxChange","method","selectedMethod","onContinueClick","customSwitch1Checkbox","isValid","updatedValidatedUsers","twoFaType","handleCodeVerification","sendAgain","showPasswords","validatePassword","valid","updatePassword","breadcrumbService","removeElementAndNavigate","labelToKeep","indexToKeep","toastrService","fueleuDataManagementService","readonly","selectedTab","formatDates","voyageData","selectTab","editVoyageDetails","voyageId","start","updateVoyageDetailsPayload","isLocked","saveVoyageDetailsPayload","payload","production","downloadSurveyorFiles","etaCcEmail","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","enableProdMode","platformBrowserDynamic","getBaseUrl","getElementsByTagName","useFactory","deps","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}