{"version":3,"file":"main.js","mappings":"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CAAC/E,8DAAiB,CAACmtB,gBAAgB,EAAEF,GAAG,CAAC;IAErED,aAAa,CAAC7c,OAAO,CAAE8U,IAAiC,IAAI;MAC1D,IAAI,CAACpkB,mBAAmB,CAACkE,GAAG,CAAC/E,8DAAiB,CAACmtB,gBAAgB,GAAG,GAAG,GAAGlI,IAAI,CAACsD,EAAE,EAAEtD,IAAI,CAAC;IACxF,CAAC,CAAC;EACJ;EAAC,QAAA7qB,CAAA;qCArIUkN,yBAAyB,EAAAjN,sDAAA,CAAAE,iEAAA,GAAAF,sDAAA,CAAAqC,iEAAA,GAAArC,sDAAA,CAAAkN,mFAAA,GAAAlN,sDAAA,CAAAoN,iFAAA,GAAApN,sDAAA,CAAAsN,+DAAA;EAAA;EAAA,QAAAlN,EAAA;WAAzB6M,yBAAyB;IAAA5M,OAAA,EAAzB4M,yBAAyB,CAAA3M,IAAA;IAAAiC,UAAA,EAFxB;EAAM;;;;;;;;;;;;;;;;;;ACNd,MAAO2O,oBAAoB;EAE/BhS,YAAA,GAAgB;EAEhB;EACA6zB,QAAQA,CAAA;IAEN,MAAMC,YAAY,GAA6B,EAAE;IAEjD,MAAMC,aAAa,GAA6B,EAAE;IAElD,MAAMC,qBAAqB,GAAsB;MAC/C;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IAAA,CACD;IAED,MAAMC,mBAAmB,GAAoC;MAC7D;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IAAA,CACC;IAED,MAAMC,gBAAgB,GAAG,EAAE;IAE3B,OAAO;MACLJ,YAAY;MACZC,aAAa;MACb;MACAE,mBAAmB;MACnB;MACAC;KACD;EACH;EAAC,QAAArzB,CAAA;qCA1PUmR,oBAAoB;EAAA;EAAA,QAAA9Q,EAAA;WAApB8Q,oBAAoB;IAAA7Q,OAAA,EAApB6Q,oBAAoB,CAAA5Q;EAAA;;;;;;;;;;;;;;;;ACdjC;AACA;AACA;AAEO,MAAM+yB,WAAW,GAAG;EACzBC,UAAU,EAAE;CACb;AAED;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;ACfqB;AACH;AAE6B;AAGF;AACY;AAEzD,IAAID,kEAAW,CAACC,UAAU,EAAE;EAC1BC,6DAAc,EAAE;AAClB;AAEAC,sEAAA,EAAwB,CACrBE,eAAe,CAACphB,sDAAS,CAAC,CAC1BqhB,KAAK,CAACC,GAAG,IAAIrwB,OAAO,CAACtC,KAAK,CAAC2yB,GAAG,CAAC,CAAC;;;;;;;;;;;;;;;ACfnC;;;AAGgC;AAChC;;;;;;;;;;;;;;;AAgBA;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;AAwBA;;;AAGiB,CAAE;AAGnB;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/_directive/Pagination/paginationLanguage.ts","./src/app/_enums/logtype.enum.ts","./src/app/_enums/userrole.enum.ts","./src/app/_enums/usertype.enum.ts","./src/app/_handlers/global-error-handler.ts","./src/app/_handlers/retry-strategy.ts","./src/app/_interceptors/http-error.interceptor.ts","./src/app/app-routes.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/core.statics.ts","./src/app/core/helpers/text.helper.ts","./src/app/core/items/sidebar/service/sidebar.service.ts","./src/app/core/items/size-detector/resize.service.ts","./src/app/core/items/size-detector/screen-size.enum.ts","./src/app/core/items/size-detector/size-detector.component.ts","./src/app/core/items/size-detector/size-detector.component.html","./src/app/core/items/spinner/service/spinner.service.ts","./src/app/core/items/spinner/spinner.component.ts","./src/app/core/items/spinner/spinner.component.html","./src/app/core/model/about.model.ts","./src/app/core/model/authentication.model.ts","./src/app/core/model/configuration.model.ts","./src/app/core/model/inapp.model.ts","./src/app/core/model/loggermessage.model.ts","./src/app/core/model/tenant.model.ts","./src/app/core/model/user.model.ts","./src/app/core/services/authentication.service.ts","./src/app/core/services/configuration.service.ts","./src/app/core/services/home.service.ts","./src/app/core/services/inapp.service.ts","./src/app/core/services/language-db-.service.ts","./src/app/core/services/logger.service.ts","./src/app/core/services/texts.service.ts","./src/app/core/services/themeskin.service.ts","./src/app/core/shared/error-dialog/error-dialog.component.ts","./src/app/core/shared/error-dialog/error-dialog.component.html","./src/app/core/shared/sencha/model/sencha.model.ts","./src/app/core/shared/sencha/sencha.statics.ts","./src/app/core/shared/sencha/service/sencha-localstorage.service.ts","./src/app/mocks/in-mem-data.service.ts","./src/environments/environment.ts","./src/main.ts","./src/polyfills.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CustomPaginatorIntl extends MatPaginatorIntl implements OnDestroy {\r\n unsubscribe: Subject = new Subject();\r\n\r\n constructor(private translate: TranslateService) {\r\n super();\r\n\r\n this.translate.onLangChange\r\n .subscribe(() => {\r\n this.getAndInitTranslations();\r\n });\r\n\r\n this.getAndInitTranslations();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n\r\n getAndInitTranslations() {\r\n this.translate\r\n .get(['Pagination.ItemsPerPage'])\r\n .subscribe((translation) => {\r\n this.itemsPerPageLabel = translation['Pagination.ItemsPerPage'];\r\n this.changes.next();\r\n });\r\n }\r\n}\r\n","export enum LogTypeEnum {\r\n debug = \"debug\",\r\n error = \"error\",\r\n warning = \"warning\",\r\n info = \"info\"\r\n}\r\n","export enum UserRoleEnum {\r\n None = 0,\r\n Disabled = 1,\r\n User = 2,\r\n SuperUser = 3, //3\r\n CustomerAdministrator = 4, //8,\r\n InPortExternalApps = 5, //16,\r\n GateGuard = 6, //32,\r\n ContentAdministrator = 7, //64,\r\n EamWorkOrder = 8, //128,\r\n MaintenanceRequestor = 9, //256,\r\n MaintenanceExternalTechnician = 10, //512,\r\n MaintenanceTechnician = 11, //1024,\r\n MaintenanceManager = 12, //2048,\r\n AgentPortalShipTerminalOperator = 13, //4096,\r\n AgentPortalShipAgent = 14, //8192,\r\n GateHarbourSecurityOfficer = 15, //16384,\r\n GateCustomerReceiver = 16, //32768,\r\n AgentPortalGoodsOwner = 17, //65536,\r\n AgentPortalPortControl = 18, //131072,\r\n GateCustomerReceiverAdmin = 19, //262144,\r\n HarbourVgmAdministrator = 20, //524288,\r\n VgmCustomer = 21, //1048576,\r\n VgmCustomerAdministrator = 22, //2097152,\r\n AgentPortalSteveDoringCo = 23, //4194304,\r\n WorkOrderDocker = 25, //16777216,\r\n WorkOrderExternal = 26, //33554432,\r\n WorkOrderForeman = 27, //67108864,\r\n WorkOrderHarbourAdministrator = 28, //134217728,\r\n BunkerOperatorAdmin = 29, //268435456,\r\n BunkerPortControl = 30, //536870912,\r\n GateUserAccessCardHolder = 31, //1073741824, //This is a temporary role, it's set for all users who have an access card\r\n BunkerOperator = 32, //2147483648,\r\n BunkerMobileUser = 33, //4294967296,\r\n DockerDocker = 34, //8589934592,\r\n DockerPlanner = 35, //17179869184,\r\n DockerCatering = 36, //34359738368,\r\n DockerExtra = 37, //68719476736,\r\n DockerManager = 38, //137438953472,\r\n AgentPortalSecurityGuard = 39, //274877906944\r\n \r\n SystemAdministrators = 40,\r\n CustomerAdministration = 41,\r\n Customer = 42,\r\n Public = 43,\r\n\r\n DockerTVUser = 44,\r\n \r\n ContainerWeb = 45, \r\n PreAdvice = 46 \r\n}\r\n","export enum UserTypeEnum {\r\n Internal = 0,\r\n External = 1,\r\n None = 2\r\n}\r\n","import { ErrorHandler, Injectable, NgZone } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ErrorDialogComponent } from '../core/shared/error-dialog/error-dialog.component'\r\n\r\nimport { LoggerService } from '../core/services/logger.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n\r\n constructor(\r\n private zone: NgZone,\r\n private loggerService: LoggerService,\r\n public dialog: MatDialog\r\n ) {}\r\n\r\n handleError(error: HttpErrorResponse|Error|any) {\r\n\r\n this.zone.run(() => {\r\n var errorMessage = ``;\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n errorMessage += JSON.stringify(error, null, 2);\r\n }\r\n // stack is a non-standard property so we check if it is present\r\n else if (error.stack) {\r\n errorMessage += `${error.message}\\n${error.stack}`;\r\n }\r\n else {\r\n errorMessage += `${error.message}`;\r\n }\r\n\r\n this.loggerService.error(errorMessage);\r\n\r\n if (!!this.dialog.openDialogs && this.dialog.openDialogs.length > 0)\r\n return;\r\n\r\n this.dialog.open(ErrorDialogComponent, {\r\n data: {\r\n message: errorMessage,\r\n type: error.name\r\n },\r\n maxHeight: \"100%\",\r\n width: \"540px\",\r\n maxWidth: \"100%\",\r\n disableClose: true,\r\n hasBackdrop: true\r\n });\r\n });\r\n }\r\n}\r\n","import { Observable, throwError, timer } from 'rxjs';\r\nimport { mergeMap, finalize } from 'rxjs/operators';\r\n\r\nexport const RetryStrategy = ({\r\n maxRetryAttempts = 3,\r\n scalingDuration = 1000,\r\n excludedStatusCodes = [400,401,402,403,404,410,500,501,502,505]\r\n }: {\r\n maxRetryAttempts?: number,\r\n scalingDuration?: number,\r\n excludedStatusCodes?: number[]\r\n } = {}\r\n) => (attempts: Observable) => {\r\n return attempts.pipe(\r\n mergeMap((error, i) => {\r\n const retryAttempt = i + 1;\r\n\r\n // if maximum number of retries have been met\r\n // or response is a status code we don't wish to retry, throw error\r\n if (retryAttempt > maxRetryAttempts || excludedStatusCodes.find(e => e === error.status)) {\r\n return throwError(error);\r\n }\r\n\r\n console.log(`Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`);\r\n\r\n // retry after 1s, 2s, etc...\r\n return timer(retryAttempt * scalingDuration);\r\n }),\r\n finalize(() =>\r\n console.log('We are done!')\r\n )\r\n );\r\n};\r\n","import { Injectable, Injector } from \"@angular/core\";\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { retry, catchError } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class HttpErrorInterceptor implements HttpInterceptor {\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable>\r\n {\r\n return next.handle(request)\r\n .pipe(\r\n // retry(1),\r\n catchError((error: HttpErrorResponse) => {\r\n return throwError(error);\r\n })\r\n ) as Observable>;\r\n }\r\n}\r\n","import { faTachometerAlt, faTasks, faPowerOff } from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport { RouteInfo } from './core/model/routeInfo.model';\r\n\r\nexport const MainPath: string = '/home';\r\nexport const LoginPath: string = '/login';\r\nexport const LogoutPath: string = '/logout';\r\nexport const GdprConfirmPath: string = '/user/gdpr';\r\nexport const UnAuthorize: string = '/unAuthoize';\r\nexport const NorrkopingMainPath: string = '/nhome';\r\n/*this array has to include every major route that the webportal is offering.*/\r\n\r\nexport const ROUTES: RouteInfo[] = [\r\n {\r\n path: MainPath, title: 'Home', secure: true, icon: faTachometerAlt, class: '', sortValue: 1, hidden: false,\r\n }\r\n /*,{\r\n path: LogoutPath, title: 'Logout', secure: false, icon: faPowerOff, class: '', sortValue: 99, hidden: false,\r\n }*/\r\n];\r\n\r\n","\r\nimport { Routes } from '@angular/router';\r\n\r\nexport const AppRoutes: Routes = [\r\n {\r\n path: '',\r\n loadChildren: () => import('./core/core.module').then(m => m.CoreModule)\r\n },\r\n {\r\n path: 'docker',\r\n loadChildren: () => import('./docker/docker.module').then(m => m.DockerModule)\r\n },\r\n {\r\n path: 'workorder',\r\n loadChildren: () => import('./workorder/workorder.module').then(m => m.WorkorderModule)\r\n },\r\n {\r\n path: 'Gate',\r\n loadChildren: () => import('./gate/gate.module').then(m => m.GateModule)\r\n },\r\n {\r\n path: 'pipeplanner',\r\n loadChildren: () => import('./pipebooking/pipebooking.module').then(p=> p.PipeBookingModule)\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'error'\r\n }\r\n]\r\n","import { Component, HostListener, Inject, OnInit, AfterViewInit, Renderer2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport * as moment from 'moment';\r\n\r\nimport { TranslateService, LangChangeEvent } from '@ngx-translate/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { LocalStorageService } from 'ngx-localstorage';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n\r\n//import { SplashService } from './core/items/splash/service/splash.service';\r\nimport { SpinnerService } from './core/items/spinner/service/spinner.service';\r\nimport { SenchaLocalStorageService } from './core/shared/sencha/service/sencha-localstorage.service';\r\n\r\nimport { ConfigurationService } from './core/services/configuration.service';\r\nimport { AuthenticationService } from './core/services/authentication.service';\r\nimport { LoggerService } from './core/services/logger.service';\r\nimport { InAppService } from './core/services/inapp.service';\r\nimport { ThemeSkinService } from './core/services/themeskin.service';\r\n\r\nimport { InAppModel } from './core/model/inapp.model';\r\nimport { UserInformationModel } from './core/model/user.model';\r\nimport { InportAccessAuthDataModel, SecurityTokenModel } from './core/model/authentication.model';\r\n\r\nimport { LocalStorageNames } from './core/core.statics';\r\nimport { MainPath, GdprConfirmPath, NorrkopingMainPath } from './app-routes';\r\nimport { TextHelper } from './core/helpers/text.helper';\r\nimport { LanguageDbService } from './core/services/language-db-.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n styleTag: string = \"\";\r\n\r\n userSelectedLang: boolean = false;\r\n currentLang: string = 'en';\r\n \r\n currentUser: UserInformationModel;\r\n appInitMode: string = 'normal'; // normal or inapp\r\n\r\n private inAppModel: InAppModel;\r\n\r\n private afterInitNavigation: string = '';\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n private renderer: Renderer2,\r\n private titleService: Title,\r\n //private splashService: SplashService,\r\n private senchaService: SenchaLocalStorageService,\r\n private spinnerService: SpinnerService,\r\n private configurationService: ConfigurationService,\r\n private authenticationService: AuthenticationService,\r\n private logger: LoggerService,\r\n private inAppService: InAppService,\r\n private themeSkinService: ThemeSkinService,\r\n private translate: TranslateService,\r\n private cookieService: CookieService,\r\n private localStorageService: LocalStorageService,\r\n private deviceDetectorService: DeviceDetectorService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private textHelper: TextHelper,\r\n private langDbService: LanguageDbService\r\n ) {\r\n /*this.param1 = this.route.snapshot.params.param1;\r\n this.param2 = this.route.snapshot.params.param2;\r\n\r\n this.param1 = this.route.snapshot.fragment;*/\r\n\r\n /*TODO: split below code into 2 setup strategies:\r\n 1. if the Inport Access app fragments are present, setup the confingurations based on the dataParam values\r\n 2. start the application as normal if the fragments are missing.\r\n */\r\n this.logger.debug(\"app.component::constructor\");\r\n\r\n this.inAppModel = inAppService.parseWindowLocation(window.location);\r\n\r\n if (this.inAppModel && this.inAppModel.InAppLaunchedParam === true && this.inAppModel.DataParam !== undefined)\r\n {\r\n this.userSelectedLang = true;\r\n this.currentLang = this.inAppModel.LangParam;\r\n\r\n this.appInitMode = \"inapp\";\r\n this.doInAppInit();\r\n }\r\n else {\r\n this.appInitMode = \"normal\";\r\n this.doNormalInit();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.appInitMode == \"inapp\") {\r\n /**/\r\n this.configurationService.loadAllConfigurations();\r\n }\r\n else {\r\n /*normal*/\r\n this.configurationService.loadAllConfigurations();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n /**/\r\n }\r\n\r\n scrolled: boolean = false;\r\n\r\n navUp: boolean = false;\r\n private lastScrollTop: number = 0;\r\n private readonly scrollDelta: number = 5;\r\n private readonly navUpThreshold: number = 58;\r\n\r\n @HostListener('window:scroll', [])\r\n onWindowScroll() {\r\n var st = (\r\n document.body.scrollTop > 0 ?\r\n document.body.scrollTop :\r\n (\r\n document.documentElement.scrollTop > 0 ?\r\n document.documentElement.scrollTop :\r\n 0\r\n )\r\n );\r\n\r\n if (Math.abs(this.lastScrollTop - st) <= this.scrollDelta)\r\n return;\r\n\r\n this.scrolled = (st > this.scrollDelta);\r\n\r\n if (st > this.lastScrollTop && st > this.navUpThreshold) {\r\n this.navUp = true;\r\n }\r\n else {\r\n this.navUp = false;\r\n }\r\n\r\n this.lastScrollTop = st;\r\n }\r\n\r\n private readonly shiftKeyPressDelta: number = 1000;\r\n private lastShiftKeyPress: number = 0;\r\n private shiftKeyPressCounter: number = 0;\r\n\r\n @HostListener('document:keydown.shift', ['$event'])\r\n onShiftKeydownHandler(event: KeyboardEvent) {\r\n \r\n var t: number = (new Date()).getTime();\r\n var d: number = t - this.lastShiftKeyPress;\r\n\r\n if (d > this.shiftKeyPressDelta)\r\n this.shiftKeyPressCounter = 0;\r\n else\r\n this.shiftKeyPressCounter++;\r\n\r\n if (this.shiftKeyPressCounter > 1) {\r\n\r\n //this.themeSkinService.toggleDarkMode();\r\n\r\n this.shiftKeyPressCounter = 0;\r\n }\r\n\r\n this.lastShiftKeyPress = t;\r\n }\r\n\r\n private readonly ctrlKeyPressDelta: number = 1000;\r\n private lastCtrlKeyPress: number = 0;\r\n private ctrlKeyPressCounter: number = 0;\r\n\r\n @HostListener('document:keydown.control', ['$event'])\r\n onCtrlKeydownHandler(event: KeyboardEvent) {\r\n\r\n //throw Error(\"Throwing a test error\");\r\n\r\n var t: number = (new Date()).getTime();\r\n var d: number = t - this.lastCtrlKeyPress;\r\n\r\n if (d > this.ctrlKeyPressDelta)\r\n this.ctrlKeyPressCounter = 0;\r\n else\r\n this.ctrlKeyPressCounter++;\r\n\r\n if (this.ctrlKeyPressCounter > 1) {\r\n\r\n //this.themeSkinService.toggleAltSkin();\r\n\r\n this.ctrlKeyPressCounter = 0;\r\n }\r\n\r\n this.lastCtrlKeyPress = t;\r\n }\r\n\r\n useLanguage(language: string) {\r\n this.translate.use(language);\r\n moment.locale(this.currentLang);\r\n }\r\n\r\n private doNormalInit(): void\r\n {\r\n this.translate.setDefaultLang(this.currentLang);\r\n\r\n var local = this.localStorageService.get(LocalStorageNames.Locale);\r\n if (local != null) {\r\n this.userSelectedLang = true;\r\n this.currentLang = local;\r\n }\r\n else if (this.cookieService.check(LocalStorageNames.Locale)) {\r\n this.userSelectedLang = true;\r\n this.currentLang = this.cookieService.get(LocalStorageNames.Locale);\r\n }\r\n\r\n this.translate.onLangChange.subscribe(lang => {\r\n this._onLanguageChanged(lang);\r\n });\r\n\r\n this.configurationService.allConfigsLoaded\r\n .subscribe(z => {\r\n if (z === true)\r\n {\r\n this._onAllConfigLoaded();\r\n }\r\n });\r\n }\r\n\r\n private doInAppInit(): void {\r\n /**/\r\n this.translate.setDefaultLang(this.currentLang);\r\n\r\n this.translate.onLangChange.subscribe(lang => {\r\n this._onLanguageChanged(lang);\r\n });\r\n\r\n this.localStorageService.set(LocalStorageNames.DeviceToken, this.inAppModel.Data.DeviceApplicationToken);\r\n\r\n var st: SecurityTokenModel = new SecurityTokenModel\r\n st.SecurityToken = this.inAppModel.Data.SecurityToken;\r\n st.ValidUntil = new Date(this.inAppModel.Data.UtcValidUntil);\r\n\r\n this.localStorageService.set(LocalStorageNames.SecurityToken, st);\r\n\r\n this.authenticationService.setCurrentUserValue(\r\n this.inAppModel.Data.UserInformation,\r\n this.inAppModel.Data.UserType,\r\n this.inAppModel.Data.UserRoles\r\n );\r\n\r\n this.configurationService.allConfigsLoaded\r\n .subscribe(z => {\r\n if (z === true) {\r\n this._onAllConfigLoaded();\r\n }\r\n });\r\n }\r\n\r\n private _onLanguageChanged(lang: LangChangeEvent): void {\r\n this.currentLang = lang.lang;\r\n this.localStorageService.set(LocalStorageNames.Locale, this.currentLang);\r\n this.langDbService.updateLanguage(this.currentLang);\r\n\r\n //this.titleService.setTitle(this.translate.instant('app.title'));\r\n }\r\n\r\n configurationModel: any;\r\n tenantModel: any;\r\n\r\n isDevMode: boolean = false;\r\n configurationModelStr: string = '';\r\n tenantModelStr: string = '';\r\n\r\n private _onAllConfigLoaded(): void {\r\n\r\n this.configurationModel = this.configurationService.getCurrentConfiguration();\r\n this.configurationModelStr = JSON.stringify(this.configurationModel);\r\n\r\n this.isDevMode = (this.configurationModel.ApplicationMode.toUpperCase() == \"DEV\");\r\n\r\n if (!this.userSelectedLang && this.currentLang != this.configurationModel.Locale) {\r\n this.currentLang = this.configurationModel.Locale;\r\n }\r\n\r\n this.useLanguage(this.currentLang);\r\n\r\n this.tenantModel = this.configurationService.getCurrentTenant();\r\n this.tenantModelStr = JSON.stringify(this.tenantModel);\r\n\r\n if (this.tenantModel && this.tenantModel.StyleKey) {\r\n if (this.styleTag && this.styleTag.length > 0)\r\n this.renderer.removeClass(document.body, this.styleTag);\r\n\r\n this.styleTag = this.tenantModel.StyleKey;\r\n\r\n this.renderer.addClass(document.body, this.styleTag);\r\n }\r\n\r\n var osStyleTag = this.deviceDetectorService.os.toLowerCase();\r\n this.renderer.addClass(document.body, osStyleTag);\r\n\r\n \r\n if (this.deviceDetectorService.isMobile())\r\n this.renderer.addClass(document.body, \"mobile\");\r\n else if (this.deviceDetectorService.isTablet())\r\n this.renderer.addClass(document.body, \"tablet\");\r\n else\r\n this.renderer.addClass(document.body, \"desktop\");\r\n\r\n this.authenticationService.currentUser.subscribe(\r\n x => {\r\n this.currentUser = x;\r\n }\r\n );\r\n\r\n var appTitle = this.textHelper.resolveTranslation(this.tenantModel.HarbourName); \r\n\r\n this.titleService.setTitle(appTitle);\r\n\r\n this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n\r\n this.useLanguage(event.lang);\r\n });\r\n\r\n if (this.appInitMode == \"inapp\")\r\n {\r\n /**/\r\n if (this.inAppModel.Data.UserInformation.GdprConfirmRequired && !this.inAppModel.Data.UserInformation.GdprConfirmed) {\r\n this.router.navigate([GdprConfirmPath]);\r\n }\r\n else {\r\n if (this.tenantModel.IsNorrkopingEnv) {\r\n this.router.navigate([NorrkopingMainPath]);\r\n }\r\n else {\r\n this.router.navigate([MainPath]);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { NgModule, ErrorHandler } from '@angular/core';\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule, registerLocaleData, PathLocationStrategy } from '@angular/common';\r\nimport { HttpClient, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from \"@angular/common/http\";\r\n\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatDialogModule, MatDialog, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\n\r\nimport { ToastrModule } from \"ngx-toastr\";\r\nimport { NgxSpinnerModule } from \"ngx-spinner\";\r\nimport { NgxLocalStorageModule } from \"ngx-localstorage\";\r\n import { AvatarModule, AvatarSource } from \"ngx-avatars\";\r\n\r\nimport { GlobalErrorHandler } from \"./_handlers/global-error-handler\";\r\nimport { HttpErrorInterceptor } from \"./_interceptors/http-error.interceptor\";\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutes } from './app-routing.module';\r\nimport { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api';\r\n\r\nimport { InMemProgDataService } from './mocks/in-mem-data.service';\r\n\r\n// import ngx-translate and the http loader\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\n//import { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\n\r\nimport { SizeDetectorComponent } from './core/items/size-detector/size-detector.component';\r\nimport { SpinnerComponent } from './core/items/spinner/spinner.component';\r\n//import { SplashComponent } from './core/items/splash/splash.component';\r\n//import { DevFooterComponent } from './core/shared/dev-footer/dev-footer.component';\r\nimport { ErrorDialogComponent } from './core/shared/error-dialog/error-dialog.component';\r\n\r\n//import { SplashService } from './core/items/splash/service/splash.service';\r\nimport { SpinnerService } from './core/items/spinner/service/spinner.service';\r\nimport { ResizeService } from './core/items/size-detector/resize.service';\r\n\r\nimport { ConfigurationService } from './core/services/configuration.service';\r\nimport { AuthenticationService } from './core/services/authentication.service';\r\nimport { TextService } from './core/services/texts.service';\r\nimport { LoggerService } from './core/services/logger.service';\r\nimport { InAppService } from './core/services/inapp.service';\r\nimport { ThemeSkinService } from './core/services/themeskin.service';\r\nimport { SidebarService} from './core/items/sidebar/service/sidebar.service'\r\nimport { GoogleMapsModule } from \"@angular/google-maps\";\r\n//import { ErrorDialogService } from \"./core/services/error-dialog.service\";\r\n\r\nimport { SenchaLocalStorageService } from './core/shared/sencha/service/sencha-localstorage.service';\r\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common';\r\nconst avatarSourcesOrder = [AvatarSource.CUSTOM, AvatarSource.INITIALS, AvatarSource.VALUE];\r\n\r\nimport localeSv from '@angular/common/locales/sv';\r\nimport localeNb from '@angular/common/locales/nb';\r\nimport localeDa from '@angular/common/locales/da';\r\nimport localeIs from '@angular/common/locales/is';\r\nimport { ScrollingModule, ScrollDispatcher } from '@angular/cdk/scrolling';\r\nimport { CustomPaginatorIntl } from './_directive/Pagination/paginationLanguage';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nregisterLocaleData(localeSv);\r\nregisterLocaleData(localeNb);\r\nregisterLocaleData(localeDa);\r\nregisterLocaleData(localeIs);\r\n\r\n@NgModule(\r\n { declarations: [\r\n AppComponent,\r\n SizeDetectorComponent,\r\n SpinnerComponent,\r\n //SplashComponent,\r\n //DevFooterComponent,\r\n ErrorDialogComponent\r\n ], \r\n providers: [ \r\n provideHttpClient(),\r\n //ErrorDialogService,\r\n { provide: ErrorHandler, useClass: GlobalErrorHandler },\r\n { provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true },\r\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: false } },\r\n { provide: LocationStrategy, useClass: PathLocationStrategy },\r\n { provide: MatPaginatorIntl, useClass: CustomPaginatorIntl },\r\n ConfigurationService,\r\n AuthenticationService,\r\n TextService,\r\n ResizeService,\r\n //SplashService,\r\n SpinnerService,\r\n //CookieService,\r\n SenchaLocalStorageService,\r\n LoggerService,\r\n InAppService,\r\n ThemeSkinService,\r\n SidebarService\r\n \r\n ] ,\r\n bootstrap: [AppComponent], \r\n exports: [\r\n TranslateModule,\r\n NgxSpinnerModule\r\n ], imports: [BrowserAnimationsModule,\r\n RouterModule.forRoot(AppRoutes, {\r\n useHash: false\r\n }),\r\n //HttpClientModule,\r\n HttpClientInMemoryWebApiModule.forRoot(InMemProgDataService, { delay: 0, passThruUnknownUrl: true }),\r\n ToastrModule.forRoot({\r\n timeOut: 5000,\r\n positionClass: 'toast-bottom-right',\r\n preventDuplicates: true,\r\n countDuplicates: true,\r\n }),\r\n AvatarModule,\r\n CommonModule,\r\n MatButtonModule,\r\n MatSnackBarModule,\r\n MatDialogModule,\r\n BrowserModule,\r\n NgxSpinnerModule,\r\n ScrollingModule,\r\n GoogleMapsModule,\r\n NgxLocalStorageModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }), \r\n ], \r\n })\r\nexport class AppModule {}\r\n\r\n// required for AOT compilation\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http, '/assets/i18n/', '.json');\r\n}\r\n","export enum CookieNames {\r\n Locale = \"Locale\",\r\n DeviceToken = \"device-token\",\r\n SecurityToken = \"security-token\"\r\n};\r\n\r\nexport enum LocalStorageNames {\r\n Locale = \"Locale\",\r\n DeviceToken = \"DeviceToken\",\r\n SecurityToken = \"SecurityToken\",\r\n TenantInfo = \"TenantInfo\",\r\n UserInfo = \"UserInfo\",\r\n HideNonLeaveMenus = \"HideNonLeaveMenus\",\r\n LeaveAndAbsenceFilterData = \"leaveAndAbsenceFilterData\",\r\n FoodMenuTabData = \"foodMenuTabData\",\r\n WorkPlanning = \"workPlanningLocalStorageData\",\r\n EnableGateArrivalsMenu = \"EnableGateArrivalsMenu\",\r\n FuelBookingListFilterModel = \"pipeBookingFilterData\",\r\n EnableWorkOverViewMenu = \"EnableWorkOverViewMenu\",\r\n EnableWorkReport =\"EnableWorkReport\"\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { ConfigurationService } from '../services/configuration.service';\r\nimport { TenantModel } from '../model/tenant.model';\r\nimport { TextModel } from '../model/text.model';\r\nimport { UserModel, UserInformationModel } from '../model/user.model';\r\n\r\nimport { UserTypeEnum } from '../../_enums/usertype.enum';\r\nimport { UserRoleEnum } from '../../_enums/userrole.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TextHelper\r\n{\r\n private tenantModel: TenantModel;\r\n\r\n constructor(\r\n private configurationService: ConfigurationService,\r\n private translate: TranslateService\r\n ) {\r\n this.configurationService.tenant\r\n .subscribe(x => {\r\n this.tenantModel = x;\r\n });\r\n }\r\n\r\n public toTitleCase(theString: string, seperator: string = ' '): string {\r\n var s = theString.toLowerCase();\r\n var parts = s.split(seperator);\r\n var transforms: string[] = [];\r\n for (var i = 0; i < parts.length; i++) {\r\n var p = parts[i];\r\n if (p.length > 1) {\r\n p = p[0].toUpperCase() + p.substr(1);\r\n transforms.push(p);\r\n }\r\n else if (p.length == 1) {\r\n p = p[0].toUpperCase();\r\n transforms.push(p);\r\n }\r\n }\r\n return transforms.join(seperator);\r\n }\r\n\r\n public resolveTranslation(key: string): string {\r\n if (key && key.substr(0, 1) == '_') {\r\n var k = key.substr(1);\r\n var p = {};\r\n\r\n switch (k) {\r\n case \"about.title\": {\r\n p[\"harbour\"] = '' + (this.tenantModel ? this.tenantModel.HarbourName : '');\r\n } break;\r\n }\r\n\r\n return this.translate.instant(k, p);\r\n }\r\n else {\r\n return key;\r\n }\r\n }\r\n\r\n public getTenantText(key: string): string {\r\n if (this.tenantModel.Texts.length <= 0)\r\n return null;\r\n\r\n var tmp = this.tenantModel.Texts.find(t => t.Name == key);\r\n if (tmp !== undefined) {\r\n return tmp.Text;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getTenantTextModel(key: string): TextModel {\r\n if (this.tenantModel.Texts.length <= 0)\r\n return null;\r\n\r\n var tmp = this.tenantModel.Texts.find(t => t.Name == key);\r\n if (tmp !== undefined) {\r\n return tmp;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public generateUserTypeSummery(user: UserInformationModel): string {\r\n var out: string = \"\";\r\n\r\n switch (user.UserType) {\r\n case UserTypeEnum.Internal: { out += this.translate.instant(\"usertype.internal\"); } break;\r\n case UserTypeEnum.External: { out += this.translate.instant(\"usertype.external\"); } break;\r\n case UserTypeEnum.None: { out += this.translate.instant(\"usertype.none\"); } break;\r\n }\r\n\r\n return out;\r\n }\r\n\r\n public generateUserRolesSummery(user: UserInformationModel, separator?: string): string {\r\n var sep: string = (separator ? separator : \",\");\r\n var out: string = \"\";\r\n var userRoles: number[] = [];\r\n var checkForArray: Array = user.UserRoles;\r\n if (!(checkForArray instanceof Array)) {\r\n userRoles.push(checkForArray as number)\r\n }\r\n else {\r\n userRoles = user.UserRoles;\r\n }\r\n userRoles.forEach((r) => {\r\n if (out.length > 0)\r\n out += sep;\r\n\r\n switch (r) {\r\n case UserRoleEnum.Disabled: { out += this.translate.instant(\"userrole.disabled\"); } break;\r\n case UserRoleEnum.User: { out += this.translate.instant(\"userrole.user\"); } break;\r\n case UserRoleEnum.SuperUser: { out += this.translate.instant(\"userrole.superuser\"); } break;\r\n\r\n case UserRoleEnum.CustomerAdministrator: { out += this.translate.instant(\"userrole.customerAdmin\"); } break;\r\n case UserRoleEnum.ContentAdministrator: { out += this.translate.instant(\"userrole.contentAdmin\"); } break;\r\n case UserRoleEnum.InPortExternalApps: { out += this.translate.instant(\"userrole.inportExternalApps\"); } break;\r\n\r\n case UserRoleEnum.GateCustomerReceiver: { out += this.translate.instant(\"userrole.gateCustomerReceiver\"); } break;\r\n case UserRoleEnum.GateCustomerReceiverAdmin: { out += this.translate.instant(\"userrole.gateCustomerReceiverAdmin\"); } break;\r\n case UserRoleEnum.GateHarbourSecurityOfficer: { out += this.translate.instant(\"userrole.gateHarbourSecurityOfficer\"); } break;\r\n case UserRoleEnum.GateGuard: { out += this.translate.instant(\"userrole.gateGuard\"); } break;\r\n case UserRoleEnum.GateUserAccessCardHolder: { out += this.translate.instant(\"userrole.gateUserAccessCardHolder\"); } break;\r\n\r\n case UserRoleEnum.EamWorkOrder: { out += this.translate.instant(\"userrole.eamWorkOrder\"); } break;\r\n case UserRoleEnum.MaintenanceRequestor: { out += this.translate.instant(\"userrole.maintenanceRequestor\"); } break;\r\n case UserRoleEnum.MaintenanceExternalTechnician: { out += this.translate.instant(\"userrole.maintenanceExternalTechnician\"); } break;\r\n case UserRoleEnum.MaintenanceTechnician: { out += this.translate.instant(\"userrole.maintenanceTechnician\"); } break;\r\n case UserRoleEnum.MaintenanceManager: { out += this.translate.instant(\"userrole.maintenanceManager\"); } break;\r\n\r\n case UserRoleEnum.AgentPortalShipAgent: { out += this.translate.instant(\"userrole.agentPortalShipAgent\"); } break;\r\n case UserRoleEnum.AgentPortalShipTerminalOperator: { out += this.translate.instant(\"userrole.agentPortalShipTerminalOperator\"); } break;\r\n case UserRoleEnum.AgentPortalGoodsOwner: { out += this.translate.instant(\"userrole.agentPortalGoodsOwner\"); } break;\r\n case UserRoleEnum.AgentPortalPortControl: { out += this.translate.instant(\"userrole.agentPortalPortControl\"); } break;\r\n case UserRoleEnum.AgentPortalSteveDoringCo: { out += this.translate.instant(\"userrole.agentPortalSteveDoringCo\"); } break;\r\n\r\n case UserRoleEnum.HarbourVgmAdministrator: { out += this.translate.instant(\"userrole.harbourVgmAdministrator\"); } break;\r\n case UserRoleEnum.VgmCustomer: { out += this.translate.instant(\"userrole.vgmCustomer\"); } break;\r\n case UserRoleEnum.VgmCustomerAdministrator: { out += this.translate.instant(\"userrole.vgmCustomerAdministrator\"); } break;\r\n\r\n case UserRoleEnum.WorkOrderDocker: { out += this.translate.instant(\"userrole.workOrderDocker\"); } break;\r\n case UserRoleEnum.WorkOrderExternal: { out += this.translate.instant(\"userrole.workOrderExternal\"); } break;\r\n case UserRoleEnum.WorkOrderForeman: { out += this.translate.instant(\"userrole.workOrderForeman\"); } break;\r\n case UserRoleEnum.WorkOrderHarbourAdministrator: { out += this.translate.instant(\"userrole.workOrderHarbourAdministrator\"); } break;\r\n\r\n case UserRoleEnum.BunkerPortControl: { out += this.translate.instant(\"userrole.bunkerPortControl\"); } break;\r\n case UserRoleEnum.BunkerOperatorAdmin: { out += this.translate.instant(\"userrole.bunkerOperatorAdmin\"); } break;\r\n case UserRoleEnum.BunkerOperator: { out += this.translate.instant(\"userrole.bunkerOperator\"); } break;\r\n case UserRoleEnum.BunkerMobileUser: { out += this.translate.instant(\"userrole.bunkerMobileUser\"); } break;\r\n\r\n case UserRoleEnum.DockerDocker: { out += this.translate.instant(\"userrole.dockerDocker\"); } break;\r\n case UserRoleEnum.DockerExtra: { out += this.translate.instant(\"userrole.dockerExtra\"); } break;\r\n case UserRoleEnum.DockerCatering: { out += this.translate.instant(\"userrole.dockerCatering\"); } break;\r\n case UserRoleEnum.DockerPlanner: { out += this.translate.instant(\"userrole.dockerPlanner\"); } break;\r\n case UserRoleEnum.DockerManager: { out += this.translate.instant(\"userrole.dockerManager\"); } break;\r\n }\r\n });\r\n return out;\r\n }\r\n}\r\n","import { Output, EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class SidebarService {\r\n @Output() afterModeChange$: EventEmitter = new EventEmitter();\r\n constructor() {\r\n\r\n }\r\n afterModeChange(isCompactMode: boolean) {\r\n this.afterModeChange$.emit(isCompactMode);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ScreenSize } from './screen-size.enum';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ResizeService {\r\n\r\n get onResize$(): Observable {\r\n return this.resizeSubject.asObservable().pipe(distinctUntilChanged());\r\n }\r\n\r\n private resizeSubject: Subject;\r\n\r\n constructor() {\r\n this.resizeSubject = new Subject();\r\n }\r\n\r\n private currentSize: ScreenSize;\r\n\r\n public getCurrentSize() {\r\n return this.currentSize;\r\n }\r\n\r\n onResize(size: ScreenSize) {\r\n this.currentSize = size;\r\n\r\n this.resizeSubject.next(size);\r\n }\r\n}\r\n","export enum ScreenSize {\r\n XS,\r\n SM,\r\n MD,\r\n LG,\r\n XL\r\n}\r\n","import { Component, HostListener, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { ScreenSize } from './screen-size.enum';\r\nimport { ResizeService } from './resize.service';\r\n\r\n@Component({\r\n selector: 'app-size-detector',\r\n templateUrl: './size-detector.component.html',\r\n styleUrls: ['./size-detector.component.scss']\r\n})\r\nexport class SizeDetectorComponent implements AfterViewInit {\r\n\r\n prefix = 'is-';\r\n sizes = [\r\n {\r\n id: ScreenSize.XS, name: 'xs', css: `d-block d-sm-none`\r\n },\r\n {\r\n id: ScreenSize.SM, name: 'sm', css: `d-none d-sm-block d-md-none`\r\n },\r\n {\r\n id: ScreenSize.MD, name: 'md', css: `d-none d-md-block d-lg-none`\r\n },\r\n {\r\n id: ScreenSize.LG, name: 'lg', css: `d-none d-lg-block d-xl-none`\r\n },\r\n {\r\n id: ScreenSize.XL, name: 'xl', css: `d-none d-xl-block`\r\n },\r\n ];\r\n\r\n constructor(private elementRef: ElementRef, private resizeSvc: ResizeService) { }\r\n\r\n @HostListener(\"window:resize\", [])\r\n onResize() {\r\n this.detectScreenSize();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.detectScreenSize();\r\n }\r\n\r\n private detectScreenSize() {\r\n\r\n const currentSize = this.sizes.find(x => {\r\n // get the HTML element\r\n const el = this.elementRef.nativeElement.querySelector(`.${this.prefix}${x.id}`);\r\n\r\n // check its display property value\r\n const isVisible = window.getComputedStyle(el).display != 'none';\r\n\r\n return isVisible;\r\n });\r\n\r\n this.resizeSvc.onResize(currentSize.id);\r\n }\r\n}\r\n","
\r\n
{{s.name}}
\r\n
\r\n\r\n","import { Subject } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\n@Injectable()\r\nexport class SpinnerService {\r\n private showSpinner = new Subject();\r\n private delayedShow: boolean = false;\r\n\r\n getData() {\r\n return this.showSpinner;\r\n }\r\n\r\n show(delay: number = 0)\r\n {\r\n if (delay > 0) {\r\n this.delayedShow = true;\r\n setTimeout(() => {\r\n if (this.delayedShow) {\r\n this.delayedShow = false;\r\n this.showSpinner.next(true);\r\n return;\r\n }\r\n\r\n this.delayedShow = false;\r\n }, delay);\r\n }\r\n else {\r\n this.showSpinner.next(true);\r\n }\r\n }\r\n\r\n hide() {\r\n this.delayedShow = false;\r\n\r\n this.showSpinner.next(false);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { SpinnerService } from './service/spinner.service';\r\nconst SPINNER_MESSAGE = 'Loading...';\r\n@Component({\r\n selector: 'app-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.css']\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n @Input() show: boolean;\r\n LOADING_TEXT: string;\r\n constructor(private spinner: NgxSpinnerService,\r\n private spinnerService: SpinnerService) { }\r\n ngOnInit() {\r\n //this.LOADING_TEXT = SPINNER_MESSAGE;\r\n this.spinnerService.getData().subscribe(data => {\r\n if (data) {\r\n this.spinner.show();\r\n } else {\r\n this.spinner.hide();\r\n }\r\n });\r\n }\r\n}","\r\n\r\n","export class AboutModel {\r\n AboutText: string = \"\";\r\n ContactName: string = \"\";\r\n Email: string = \"\";\r\n LogoFileId: string = \"\";\r\n Phone: string = \"\";\r\n TenantName: string = \"\";\r\n Url: string = \"\";\r\n}\r\n","import { TokenModel } from './token.model';\r\nimport { UserInformationModel } from './user.model';\r\n\r\nexport class AuthenticationBasicRequestModel {\r\n username: string = \"\";\r\n password: string = \"\";\r\n pincode: string = \"\";\r\n}\r\n\r\nexport class AuthenticationBasicResponseModel {\r\n Success: boolean;\r\n UserType: number;\r\n UserRoles: any;\r\n Reason: string;\r\n SecurityToken: TokenModel;\r\n UtcValidUntil: Date = new Date(2000, 0, 1);\r\n UserInformation: UserInformationModel;\r\n HideNonLeaveMenus: boolean;\r\n EnableGateArrivalsMenu: boolean;\r\n EnableWorkOverViewMenu: boolean;\r\n EnableWorkReport: boolean;\r\n}\r\n\r\nexport class AuthenticationPrepareResponseModel {\r\n Success: boolean;\r\n Data: string;\r\n Reason: string;\r\n UtcValidUntil: Date = new Date(2000, 0, 1);\r\n}\r\n\r\nexport class SecurityTokenModel {\r\n SecurityToken: string = \"\";\r\n ValidUntil: Date = new Date(2000, 0, 1);\r\n}\r\n\r\nexport class ChangePasswordModel {\r\n oldPassword: string = \"\";\r\n newPassword: string = \"\";\r\n newPassword2: string = \"\";\r\n}\r\n\r\nexport class ChangePasswordResponseModel {\r\n Success: boolean;\r\n Reason: string;\r\n}\r\n\r\nexport class RecoverPasswordResponseModel {\r\n Success: boolean;\r\n Reason: string;\r\n}\r\n\r\nexport class GdprConfirmResponseModel {\r\n Success: boolean;\r\n Reason: string;\r\n}\r\n\r\nexport class InportAccessAuthDataModel {\r\n Success: boolean;\r\n WebbAppUrl: string = \"\";\r\n ReIssueUntil: Date = new Date(2000, 0, 1);\r\n UtcValidUntil: Date = new Date(2000, 0, 1);\r\n DeviceApplicationToken: string;\r\n SecurityToken: string;\r\n UserType: number;\r\n UserRoles: Array;\r\n UserInformation: UserInformationModel;\r\n}\r\n","export class ConfigurationModel {\r\n ApplicationMode: string = \"\";\r\n LoggerMode: string = \"R\"; // (C)onsole,(R)emote,(B)oth\r\n UseBinaryPlaceholder: string = \"\";\r\n ShowDevFooter: string = \"\";\r\n ConfigurationKey: string;\r\n ApiBaseUrl: string;\r\n ApiClientName: string;\r\n Locale: string;\r\n\r\n isDevMode(): boolean { return this.ApplicationMode == \"DEV\"; }\r\n}\r\n","import { InportAccessAuthDataModel, SecurityTokenModel } from './authentication.model';\r\n\r\nexport class InAppModel {\r\n RouteHash: string = \"\";\r\n RouteSearch: string = \"\";\r\n InAppLaunchedParam: boolean = false;\r\n LangParam: string = \"\";\r\n DataParam: string = \"\";\r\n Data: InportAccessAuthDataModel = null;\r\n}\r\n","import { LogTypeEnum } from '../../_enums/logtype.enum';\r\n\r\nexport class LoggerMessageModel {\r\n Id: number;\r\n Message: string;\r\n Type: LogTypeEnum;\r\n};\r\n","import { AboutModel } from './about.model';\r\nimport { TextModel } from './text.model';\r\n\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\n\r\nexport class TenantModel {\r\n Version: number = 0;\r\n StyleKey: string = \"DEMO\";\r\n\r\n DefaultLanguage: string = \"en\";\r\n SupportedLanguages: Array = new Array('en');\r\n\r\n Licenses: Array = new Array();\r\n\r\n DefaultLatitude: number = 0;\r\n DefaultLongitude: number = 0;\r\n\r\n LoginLogoFileId: string = \"\";\r\n LoginType: string = \"\";\r\n LoginRecoverPasswordType: string = \"\";\r\n LoginNumbersOnly: boolean = false;\r\n\r\n DateFormat: string = \"yyyy-mm-dd\";\r\n DateTimeFormat: string = \"yyyy-mm-dd hh:mm\";\r\n\r\n ApplicationTitle: string = \"\";\r\n //DisplayApplicationTitle: string = \"\";\r\n\r\n HarbourName: string = \"\";\r\n //DisplayHarbourName: string = \"\";\r\n IsNorrkopingEnv: boolean = false;\r\n AppBaseUrl: string = \"\";\r\n AdminUrl: string = \"\";\r\n AdminRoles: Array = new Array();\r\n\r\n Applications: Array = new Array();\r\n NorrkopingApplications: Array = new Array();\r\n HomeLinksAnonymus: Array = new Array();\r\n HomeLinksLoggedin: Array = new Array();\r\n\r\n About: AboutModel = new AboutModel();\r\n Contact: AboutModel = new AboutModel();\r\n\r\n Texts: Array = new Array();\r\n\r\n public constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport class SubAppModel {\r\n Promo: boolean = false;\r\n Icon: string = \"\";\r\n Color: string = \"\";\r\n Text: string = \"\";\r\n DisplayText: string = \"\";\r\n RouteMode: string = \"\";\r\n NavRoute: string = \"\";\r\n Route: string = \"\";\r\n Roles: Array = new Array();\r\n Licenses: Array = new Array();\r\n //CssClass: string = \"\";\r\n faIcon: IconDefinition;\r\n faIconColor: string = \"\";\r\n isHidden: boolean;\r\n\r\n public constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { EmployeeModel } from './employee.model'\r\n\r\nexport class UserModel {\r\n id: number;\r\n username: string;\r\n password: string;\r\n lastName: string;\r\n firstName: string;\r\n phoneNumber: string;\r\n email: string;\r\n company: string;\r\n active: boolean;\r\n locale: string;\r\n}\r\n\r\nexport class UserInformationModel {\r\n UserId: number;\r\n UserType: number;\r\n UserRoles: Array;\r\n UserName: string;\r\n FirstName: string;\r\n LastName: string;\r\n Email: string;\r\n MobilePhone: string;\r\n Remark: string;\r\n GdprConfirmRequired: boolean;\r\n GdprConfirmed: boolean;\r\n Employee?: EmployeeModel;\r\n DefaultSecuredArea: number;\r\n Initials: string;\r\n ImageUrl: string;\r\n CustomerId: number;\r\n}\r\n\r\nfunction roleCheck(userRoles: any, roleChallanger: number) {\r\n if (userRoles instanceof Array) {\r\n return userRoles.includes(roleChallanger);\r\n }\r\n else {\r\n return userRoles == roleChallanger;\r\n }\r\n\r\n}\r\n\r\nexport function isInRole(userRoles: any, roleChallanger: any): boolean {\r\n if (!userRoles)\r\n return false;\r\n\r\n if (!roleChallanger)\r\n return true;\r\n\r\n if (roleChallanger instanceof Array) {\r\n for (var r in roleChallanger) {\r\n var rc = roleChallanger[r];\r\n // if we are checking a role that passed the 32 bit mark, we need to shift all the above bits into a lower window.\r\n // this is because the & operator doesn't support bit operations for integers larger then 32 bits\r\n if (roleCheck(userRoles, rc))\r\n return true;\r\n }\r\n return false;\r\n }\r\n else {\r\n return roleCheck(userRoles, roleChallanger);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { timeout, tap, catchError, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { LocalStorageService } from 'ngx-localstorage';\r\n\r\nimport {\r\n AuthenticationBasicResponseModel, ChangePasswordModel,\r\n ChangePasswordResponseModel, RecoverPasswordResponseModel,\r\n GdprConfirmResponseModel, AuthenticationPrepareResponseModel, SecurityTokenModel\r\n} from '../model/authentication.model';\r\n\r\nimport { UserInformationModel } from '../model/user.model';\r\nimport { UserInfoModel } from '../model/userinfo.model';\r\nimport { TokenModel } from '../model/token.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { LocalStorageNames } from '../core.statics';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthenticationService {\r\n private _bsCurrentUser: BehaviorSubject;\r\n\r\n readonly currentUser: Observable;\r\n\r\n private _bsSecurityToken: BehaviorSubject;\r\n\r\n readonly securityToken: Observable;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configurationService: ConfigurationService,\r\n private localStorageService: LocalStorageService\r\n ) {\r\n var userInfo = this.localStorageService.get(LocalStorageNames.UserInfo);\r\n var securityInfo = this.localStorageService.get(LocalStorageNames.SecurityToken);\r\n\r\n this._bsCurrentUser = new BehaviorSubject(userInfo);\r\n this._bsSecurityToken = new BehaviorSubject(securityInfo);\r\n\r\n this.currentUser = this._bsCurrentUser.asObservable().pipe(distinctUntilChanged());\r\n this.securityToken = this._bsSecurityToken.asObservable().pipe(distinctUntilChanged());\r\n }\r\n\r\n public get currentUserValue(): UserInformationModel {\r\n return this._bsCurrentUser.value;\r\n }\r\n\r\n public get securityTokenValue(): SecurityTokenModel {\r\n return this._bsSecurityToken.value;\r\n }\r\n\r\n public get securityTokenValueFromLocalStorage(): SecurityTokenModel {\r\n var ss = this.localStorageService.get(LocalStorageNames.SecurityToken);\r\n if (ss != null)\r\n this._bsSecurityToken.next(ss);\r\n else\r\n this._bsSecurityToken.next(undefined);\r\n return this._bsSecurityToken.value;\r\n }\r\n\r\n public setCurrentUserValue(userInfo: UserInformationModel, userType?: number, userRoles?: Array, hideNonLeaveMenus?: boolean, securityToken?: TokenModel, validUntil?: Date, enableGateArrivalsMenu?: boolean, enableWorkOverViewMenu?: boolean, enableWorkReport?: boolean): void {\r\n\r\n if (!!userType)\r\n userInfo.UserType = userType;\r\n\r\n if (!!userRoles)\r\n userInfo.UserRoles = userRoles;\r\n\r\n userInfo.Initials = this.generateInitials(userInfo.FirstName, userInfo.LastName);\r\n userInfo.CustomerId = userInfo.CustomerId;\r\n\r\n this.localStorageService.set(LocalStorageNames.UserInfo, userInfo);\r\n this.localStorageService.set(LocalStorageNames.HideNonLeaveMenus, hideNonLeaveMenus);\r\n this.localStorageService.set(LocalStorageNames.EnableGateArrivalsMenu, enableGateArrivalsMenu);\r\n this.localStorageService.set(LocalStorageNames.EnableWorkOverViewMenu, enableWorkOverViewMenu);\r\n this.localStorageService.set(LocalStorageNames.EnableWorkReport, enableWorkReport);\r\n var s: SecurityTokenModel = new SecurityTokenModel\r\n s.SecurityToken = securityToken.Value;\r\n s.ValidUntil = new Date(validUntil);\r\n\r\n this.localStorageService.set(LocalStorageNames.SecurityToken, s);\r\n\r\n this._bsCurrentUser.next(userInfo);\r\n this._bsSecurityToken.next(s);\r\n }\r\n\r\n private generateInitials(fn?: string, ln?: string): string {\r\n var o: string = '' + (fn && fn.length > 0 ? fn.substr(0, 1) : '');\r\n return o + (ln && ln.length > 0 ? ln.substr(0, 1) : '');\r\n }\r\n\r\n public updateUserValues(model: UserInfoModel): void {\r\n var userInfo: UserInformationModel = JSON.parse(JSON.stringify(this._bsCurrentUser.value));\r\n\r\n userInfo.FirstName = model.firstname;\r\n userInfo.LastName = model.lastname;\r\n userInfo.MobilePhone = model.phonenumber;\r\n userInfo.Email = model.email;\r\n\r\n userInfo.Initials = this.generateInitials(userInfo.FirstName, userInfo.LastName);\r\n\r\n this.localStorageService.set(LocalStorageNames.UserInfo, userInfo);\r\n\r\n this._bsCurrentUser.next(userInfo);\r\n }\r\n\r\n public basicLogin(username: string, password: string): Observable {\r\n var loginUrl = this.configurationService.getApiUrl(\"Authentication/Basic\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n var body = JSON.stringify({\r\n \"Username\": username,\r\n \"Password\": password\r\n });\r\n\r\n return this.http.post(loginUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n tap(\r\n data => {\r\n if (data.Success && data.UserInformation) {\r\n this.setCurrentUserValue(data.UserInformation, data.UserType, data.UserRoles, data.HideNonLeaveMenus, data.SecurityToken, data.UtcValidUntil, data.EnableGateArrivalsMenu, data.EnableWorkOverViewMenu, data.EnableWorkReport);\r\n }\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public preparePinCodeLogin(username: string, password: string): Observable {\r\n var loginUrl = this.configurationService.getApiUrl(\"Authentication/SMS\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n var body = JSON.stringify({\r\n \"Username\": username,\r\n \"Password\": password\r\n });\r\n\r\n return this.http.post(loginUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public verifyPinCodeLogin(username: string, pincode: string): Observable {\r\n var loginUrl = this.configurationService.getApiUrl(\"Authentication/SMS\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n var body = JSON.stringify({\r\n \"Username\": username,\r\n \"Password\": pincode\r\n });\r\n\r\n return this.http.put(loginUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n tap(\r\n data => {\r\n if (data.Success && data.UserInformation) {\r\n this.setCurrentUserValue(data.UserInformation, data.UserType, data.UserRoles, data.HideNonLeaveMenus, data.SecurityToken, data.UtcValidUntil, data.EnableGateArrivalsMenu, data.EnableWorkOverViewMenu, data.EnableWorkReport);\r\n }\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public logout(): Observable {\r\n var logoutUrl = this.configurationService.getApiUrl(\"Authentication/Basic\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n return this.http.delete(logoutUrl, { headers: apiHeaders })\r\n .pipe(\r\n tap(\r\n data => {\r\n this.logoutSoft();\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public logoutSoft(): void {\r\n this.configurationService.clearAuthenticationInfo();\r\n\r\n // remove user from local storage to log user out\r\n this.localStorageService.remove(LocalStorageNames.UserInfo);\r\n this.localStorageService.remove(LocalStorageNames.LeaveAndAbsenceFilterData);\r\n this.localStorageService.remove(LocalStorageNames.FuelBookingListFilterModel);\r\n this.localStorageService.remove(LocalStorageNames.HideNonLeaveMenus);\r\n this.localStorageService.remove(LocalStorageNames.EnableGateArrivalsMenu);\r\n this.localStorageService.remove(LocalStorageNames.FoodMenuTabData);\r\n this.localStorageService.remove(LocalStorageNames.WorkPlanning);\r\n this.localStorageService.remove(LocalStorageNames.SecurityToken);\r\n this.localStorageService.remove(LocalStorageNames.EnableWorkOverViewMenu);\r\n this.localStorageService.remove(LocalStorageNames.EnableWorkReport);\r\n\r\n this._bsCurrentUser.next(undefined);\r\n this._bsSecurityToken.next(undefined);\r\n }\r\n\r\n public getSingleSignOnToken(paramUrl: string): Observable {\r\n var loginUrl = this.configurationService.getApiUrl(\"Authentication/SingleSignOn/RequestToken\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n var tenantModel = this.configurationService.getCurrentTenant();\r\n var body = JSON.stringify({\r\n \"Url\": paramUrl\r\n });\r\n\r\n return this.http.post(loginUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n tap(\r\n data => {\r\n /*if (data && data.Value != null) {\r\n console.info(\"Got token \" + data.Value);\r\n }*/\r\n } \r\n ),\r\n catchError((error: HttpErrorResponse): Observable => {\r\n if (error.status === 401) {\r\n alert(\"Session expired!\");\r\n let logoutUrl = tenantModel.AdminUrl + '/Logout';\r\n window.location.href = logoutUrl;\r\n }\r\n \r\n return throwError(() => error);\r\n },)\r\n );\r\n }\r\n\r\n public changePassword(model: ChangePasswordModel): Observable {\r\n var changePasswordUrl = this.configurationService.getApiUrl(\"Authentication/Change/Password\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n var body = JSON.stringify({\r\n \"CurrentPassword\": model.oldPassword,\r\n \"NewPassword\": model.newPassword,\r\n \"RepeatNewPassword\": model.newPassword2\r\n });\r\n\r\n return this.http.post(changePasswordUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public recoverPassword(username: string): Observable {\r\n var changePasswordUrl = this.configurationService.getApiUrl(\"Authentication/Recover/Password\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n var body = JSON.stringify({\r\n \"Username\": username\r\n });\r\n\r\n return this.http.post(changePasswordUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public acceptGdprTerms(): Observable {\r\n var gdprConfirmUrl = this.configurationService.getApiUrl(\"GdprConfrm\");\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n return this.http.post(gdprConfirmUrl, \"\", { headers: apiHeaders })\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(error: any) {\r\n // In a real world app, we might send the error to remote logging infrastructure\r\n // and reformat for user consumption\r\n console.error(error); // log to console instead\r\n // this.logoutSoft();\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject, Observable, throwError, timer } from 'rxjs';\r\nimport { timeout, retry, retryWhen, delayWhen, catchError, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { LocalStorageService } from 'ngx-localstorage';\r\n\r\nimport { ConfigurationModel } from '../model/configuration.model';\r\nimport { TenantModel } from '../model/tenant.model';\r\nimport { TokenModel } from '../model/token.model';\r\nimport { AuthenticationBasicResponseModel, SecurityTokenModel } from '../model/authentication.model';\r\n\r\nimport { LocalStorageNames } from '../core.statics';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\nimport { RetryStrategy } from 'src/app/_handlers/retry-strategy';\r\nimport { ConfigurationValueModel } from '../model/configurationvalue.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConfigurationService {\r\n private configurationUrl: string = '/assets/config.json';\r\n\r\n private _bsAllConfigsLoaded = new BehaviorSubject(false);\r\n private _bsConfiguration = new BehaviorSubject(new ConfigurationModel);\r\n private _bsTenant = new BehaviorSubject(new TenantModel);\r\n private _bsDeviceToken = new BehaviorSubject(\"\");\r\n private _bsSecurityToken = new BehaviorSubject(new SecurityTokenModel);\r\n\r\n private _deviceInfo: any = null;\r\n\r\n readonly allConfigsLoaded = this._bsAllConfigsLoaded.asObservable().pipe(distinctUntilChanged());\r\n readonly configuration = this._bsConfiguration.asObservable().pipe(distinctUntilChanged());\r\n readonly tenant = this._bsTenant.asObservable().pipe(distinctUntilChanged());\r\n readonly deviceToken = this._bsDeviceToken.asObservable().pipe(distinctUntilChanged());\r\n\r\n constructor(private http: HttpClient,\r\n private localStorageService: LocalStorageService,\r\n private ddService: DeviceDetectorService, private cookieService: CookieService,\r\n ) {\r\n this._deviceInfo = this.ddService.getDeviceInfo();\r\n }\r\n\r\n getApiUrl(apiFunction: string): string {\r\n return this._bsConfiguration.value.ApiBaseUrl +\r\n \"/\" + this._bsConfiguration.value.ConfigurationKey +\r\n \"/\" + this._bsConfiguration.value.ApiClientName +\r\n \"/\" + apiFunction;\r\n }\r\n\r\n getDockerApiUrl(apiFunction: string): string {\r\n return this._bsConfiguration.value.ApiBaseUrl +\r\n \"/\" + this._bsConfiguration.value.ConfigurationKey +\r\n \"/\" + apiFunction;\r\n }\r\n getWorkorderApiUrl(apiFunction: string): string {\r\n return this._bsConfiguration.value.ApiBaseUrl +\r\n \"/\" + this._bsConfiguration.value.ConfigurationKey +\r\n \"/\" + apiFunction;\r\n }\r\n getPipeBookingApiUrl(apiFunction: string): string {\r\n return this._bsConfiguration.value.ApiBaseUrl +\r\n \"/\" + this._bsConfiguration.value.ConfigurationKey +\r\n \"/\" + apiFunction;\r\n }\r\n getGateApiUrl(apiFunction: string): string {\r\n return \"/gate-api\" +\r\n \"/\" + this._bsConfiguration.value.ConfigurationKey +\r\n \"/\" + apiFunction;\r\n }\r\n\r\n getApiBinaryUrl(id: string, thumbnail?: boolean): string {\r\n if (this._bsConfiguration.value.UseBinaryPlaceholder != \"true\") {\r\n return this._bsTenant.value.AppBaseUrl +\r\n this._bsConfiguration.value.ApiBaseUrl +\r\n \"/Binary?id=\" + id +\r\n \"&token=\" + this._bsDeviceToken.value +\r\n \"&key=\" + this._bsConfiguration.value.ConfigurationKey +\r\n \"&thumbnail=\" + (thumbnail === true ? \"true\" : \"false\");\r\n }\r\n else {\r\n return this.getApiBinaryPlaceholderUrl(thumbnail);\r\n }\r\n }\r\n\r\n private getApiBinaryPlaceholderUrl(thumbnail?: boolean): string {\r\n if (thumbnail === true) {\r\n return \"/assets/img/placeholder-thumbnail.jpg\";\r\n }\r\n else {\r\n return \"/assets/img/placeholder.jpg\";\r\n }\r\n }\r\n\r\n getApiHeaders(contentType?: string): HttpHeaders {\r\n var h = {\r\n 'Accept': '*/*'\r\n };\r\n\r\n switch (contentType) {\r\n case 'text': {\r\n h['Content-Type'] = 'text/plain';\r\n } break;\r\n case 'application/octet-stream': {\r\n h['Content-Type'] = 'application/octet-stream';\r\n } break;\r\n case 'json':\r\n default: {\r\n h['Content-Type'] = 'application/json';\r\n } break;\r\n }\r\n\r\n h['Device-Token'] = !!this._bsDeviceToken.value ? this._bsDeviceToken.value : this.getDeviceTokenFromLocalStorage();\r\n h['Security-Token'] = !!this._bsSecurityToken.value && !!this._bsSecurityToken.value.SecurityToken ? this._bsSecurityToken.value.SecurityToken : this.getSecurityTokenFromLocalStorage();\r\n\r\n return new HttpHeaders(h);\r\n }\r\n getDeviceTokenFromLocalStorage() {\r\n if (this.localStorageService) {\r\n let deviceToken = this.localStorageService.get('DeviceToken');\r\n if (deviceToken) {\r\n return deviceToken;\r\n }\r\n else {\r\n console.log('deviceToken is null');\r\n return \"null\";\r\n }\r\n }\r\n console.log('localStorageService is null');\r\n return \"null\";\r\n \r\n }\r\n getSecurityTokenFromLocalStorage() {\r\n if (this.localStorageService) {\r\n let token: SecurityTokenModel = this.localStorageService.get('SecurityToken');\r\n if (token && typeof token === 'object' && token.hasOwnProperty('SecurityToken')) {\r\n return token.SecurityToken;\r\n }\r\n }\r\n console.log('localStorageService is null');\r\n return \"null\";\r\n }\r\n\r\n getCurrentConfiguration(): ConfigurationModel {\r\n return this._bsConfiguration.value;\r\n }\r\n\r\n getCurrentTenant(): TenantModel {\r\n return this._bsTenant.value;\r\n }\r\n\r\n getCurrentDeviceToken(): string {\r\n return this._bsDeviceToken.value;\r\n }\r\n\r\n getCurrentSecurityToken(): SecurityTokenModel {\r\n return this._bsSecurityToken.value;\r\n }\r\n\r\n getCurrentLanguage(): string {\r\n var local = this.localStorageService.get(LocalStorageNames.Locale);\r\n if (local != null) {\r\n return local;\r\n }\r\n else if (this.cookieService.check(LocalStorageNames.Locale)) {\r\n return this.cookieService.get(LocalStorageNames.Locale);\r\n }\r\n else {\r\n return 'en';\r\n }\r\n }\r\n public updateFromAuthenticationReponse(authResponse: AuthenticationBasicResponseModel): void {\r\n\r\n var s: SecurityTokenModel = new SecurityTokenModel\r\n s.SecurityToken = authResponse.SecurityToken.Value;\r\n s.ValidUntil = new Date(authResponse.UtcValidUntil);\r\n\r\n this.localStorageService.set(LocalStorageNames.SecurityToken, s);\r\n this.localStorageService.set(LocalStorageNames.HideNonLeaveMenus, authResponse.HideNonLeaveMenus);\r\n this.localStorageService.set(LocalStorageNames.EnableGateArrivalsMenu, authResponse.EnableGateArrivalsMenu);\r\n\r\n this._bsSecurityToken.next(s);\r\n }\r\n\r\n public clearAuthenticationInfo(): void {\r\n\r\n this.localStorageService.remove(LocalStorageNames.SecurityToken);\r\n\r\n this._bsSecurityToken.next(new SecurityTokenModel);\r\n }\r\n\r\n public loadAllConfigurations(): void {\r\n\r\n this._bsAllConfigsLoaded.next(false);\r\n\r\n this.http.get(this.configurationUrl)\r\n .pipe(\r\n timeout(30000), // 30 sec\r\n //retry(3),\r\n retryWhen(RetryStrategy()),\r\n catchError(this.handleError)\r\n )\r\n .subscribe(x => {\r\n\r\n this._bsConfiguration.next(x);\r\n\r\n this.getTenantConfigurations$().subscribe(x => {\r\n\r\n this._bsTenant.next(x);\r\n\r\n this.localStorageService.set(LocalStorageNames.TenantInfo, x);\r\n\r\n var tmpDeviceToken = this.localStorageService.get(LocalStorageNames.DeviceToken);\r\n if (tmpDeviceToken != null) {\r\n this._bsDeviceToken.next(tmpDeviceToken);\r\n\r\n var tmpSecurityToken: SecurityTokenModel = this.localStorageService.get(LocalStorageNames.SecurityToken);\r\n if (tmpSecurityToken != null) {\r\n this._bsSecurityToken.next(tmpSecurityToken);\r\n }\r\n\r\n this._bsAllConfigsLoaded.next(true);\r\n }\r\n else {\r\n this.registerApplication$().subscribe(x => {\r\n\r\n this.localStorageService.set(LocalStorageNames.DeviceToken, x.Value);\r\n\r\n this._bsDeviceToken.next(x.Value);\r\n\r\n this._bsAllConfigsLoaded.next(true);\r\n });\r\n }\r\n });\r\n });\r\n }\r\n public getDBConfigurationsValues(keys: string[]): Observable {\r\n var configValuesUrl = this.getApiUrl('ConfigValues');\r\n return this.http.post(configValuesUrl, keys)\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n private getTenantConfigurations$(): Observable {\r\n\r\n var tenantConfigUrl = this.getApiUrl('TenantConfigurations');\r\n\r\n return this.http.get(tenantConfigUrl)\r\n .pipe(\r\n timeout(30000), // 30 sec\r\n //retry(3),\r\n retryWhen(RetryStrategy()),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private registerApplication$(): Observable {\r\n var registerUrl = this.getApiUrl('RegisterApplication');\r\n var apiHeaders = this.getApiHeaders();\r\n\r\n var body = JSON.stringify({\r\n \"ApplicationVersion\": this._bsTenant.value.Version,\r\n \"OperatingSystem\": this._deviceInfo.os + (this.ddService.isTablet() ? \" [Tablet]\" : \"\"),\r\n \"OperatingSystemVersion\": this._deviceInfo.os_version,\r\n \"WebDevice\": true,\r\n \"Language\": this.getCurrentLanguage()\r\n });\r\n\r\n return this.http.post(registerUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n timeout(30000), // 30 sec\r\n //retry(3),\r\n retryWhen(RetryStrategy()),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(error: any) {\r\n // In a real world app, we might send the error to remote logging infrastructure\r\n // and reformat for user consumption\r\n console.error(error); // log to console instead\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, tap, distinctUntilChanged } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport {\r\n IconDefinition,\r\n faKey, faShip, faClipboardList, faMap, faWrench, faBinoculars, faCogs,\r\n faAnchor, faUnlockAlt, faMailBulk, faTools, faUserClock,\r\n faRoute, faBox, faBullhorn, faBalanceScaleLeft, faHouseUser\r\n} from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { ConfigurationModel } from '../model/configuration.model';\r\nimport { TenantModel, SubAppModel } from '../model/tenant.model';\r\nimport { NewsItemModel } from '../model/newsitem.model';\r\nimport { UserInformationModel, isInRole } from '../model/user.model';\r\n\r\nimport { TextHelper } from '../helpers/text.helper';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomeService {\r\n private configurationModel: ConfigurationModel;\r\n private tenantModel: TenantModel;\r\n private currentUser: UserInformationModel;\r\n\r\n private _bsNewsItems = new BehaviorSubject(new Array());\r\n private _bsApplications = new BehaviorSubject(new Array());\r\n private _bsLoggedinLinks = new BehaviorSubject(new Array());\r\n private _bsAnonymousLinks = new BehaviorSubject(new Array());\r\n\r\n readonly newsItems = this._bsNewsItems.asObservable().pipe(distinctUntilChanged());\r\n readonly applicationLinks = this._bsApplications.asObservable().pipe(distinctUntilChanged());\r\n readonly loggedinLinks = this._bsLoggedinLinks.asObservable().pipe(distinctUntilChanged());\r\n readonly anonymousLinks = this._bsAnonymousLinks.asObservable().pipe(distinctUntilChanged());\r\n\r\n newsItemsValue: NewsItemModel[];\r\n applicationLinksValue: SubAppModel[];\r\n loggedinLinksValue: SubAppModel[];\r\n anonymousLinksValue: SubAppModel[];\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authenticationService: AuthenticationService,\r\n private configurationService: ConfigurationService,\r\n private translate: TranslateService,\r\n private translationHelper: TextHelper\r\n ) {\r\n this.authenticationService.currentUser\r\n .subscribe(x => {\r\n this.currentUser = x;\r\n\r\n if (this.tenantModel) {\r\n this.doFilterCheck();\r\n }\r\n });\r\n\r\n this.configurationService.allConfigsLoaded\r\n .subscribe(x => {\r\n\r\n if (x === true) {\r\n this.configurationModel = this.configurationService.getCurrentConfiguration();\r\n this.tenantModel = this.configurationService.getCurrentTenant();\r\n\r\n this.doFilterCheck();\r\n\r\n this.getHomeItems()\r\n .subscribe(data => {\r\n this.newsItemsValue = data;\r\n this._bsNewsItems.next(data);\r\n });\r\n }\r\n });\r\n \r\n this.translate.onLangChange\r\n .subscribe(langObj => {\r\n this.onLangUpdate();\r\n })\r\n }\r\n\r\n private doFilterCheck(): void {\r\n\r\n var apps = this._tapApplications(\r\n this.tenantModel.Applications.filter(app =>\r\n this._filterCheck(app)\r\n )\r\n );\r\n this.applicationLinksValue = apps;\r\n this._bsApplications.next(apps);\r\n var links = this._tapActionLinks(\r\n this.tenantModel.HomeLinksAnonymus.filter(link =>\r\n this._filterCheck(link)\r\n )\r\n );\r\n this.anonymousLinksValue = links;\r\n this._bsAnonymousLinks.next(links);\r\n\r\n var links2 = this._tapActionLinks(\r\n this.tenantModel.HomeLinksLoggedin.filter(link =>\r\n this._filterCheck(link)\r\n )\r\n );\r\n this.loggedinLinksValue = links2;\r\n this._bsLoggedinLinks.next(links2);\r\n }\r\n\r\n private onLangUpdate(): void {\r\n\r\n var homeApps = this.applicationLinksValue;\r\n if (homeApps)\r\n {\r\n homeApps.forEach(app => {\r\n app.DisplayText = this.translationHelper.resolveTranslation(app.Text);\r\n });\r\n\r\n this._bsApplications.next(homeApps);\r\n }\r\n\r\n var homeItems = this.newsItemsValue;\r\n if (homeItems)\r\n {\r\n homeItems.forEach(item => {\r\n item.DisplayHeading = this.translationHelper.resolveTranslation(item.Heading);\r\n item.DisplayInformation = this.translationHelper.resolveTranslation(item.Information);\r\n });\r\n\r\n this._bsNewsItems.next(homeItems);\r\n }\r\n\r\n var anonLinks = this.anonymousLinksValue;\r\n if (anonLinks)\r\n {\r\n anonLinks.forEach(link => {\r\n link.DisplayText = this.translationHelper.resolveTranslation(link.Text);\r\n });\r\n\r\n this._bsAnonymousLinks.next(anonLinks);\r\n }\r\n\r\n var loggedinLinks = this.loggedinLinksValue;\r\n if (loggedinLinks)\r\n {\r\n loggedinLinks.forEach(link => {\r\n link.DisplayText = this.translationHelper.resolveTranslation(link.Text);\r\n });\r\n\r\n this._bsLoggedinLinks.next(loggedinLinks);\r\n }\r\n }\r\n\r\n public getHomeItems(): Observable {\r\n\r\n var newsItemsUrl = this.configurationService.getApiUrl('HeroCarousel');\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n return this.http.get(newsItemsUrl + (this.tenantModel.IsNorrkopingEnv ? \"/1\" : \"\"), { headers: apiHeaders })\r\n .pipe(\r\n tap(data => {\r\n this._tapNewsItems(data);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private _tapNewsItems(items: NewsItemModel[]): NewsItemModel[] {\r\n items.forEach(item => {\r\n item.DisplayHeading = this.translationHelper.resolveTranslation(item.Heading);\r\n item.DisplayInformation = this.translationHelper.resolveTranslation(item.Information);\r\n\r\n if (item.FileId) {\r\n item.FileUrl = this.configurationService.getApiBinaryUrl(item.FileId);\r\n }\r\n });\r\n return items;\r\n }\r\n\r\n private _filterCheck(model: SubAppModel): boolean {\r\n\r\n if (model.Licenses.length > 0 && this.tenantModel.Licenses.length > 0)\r\n {\r\n var tmp: boolean = model.Licenses.find(l => this.tenantModel.Licenses.indexOf(l) >= 0) !== undefined;\r\n if (!tmp) {\r\n return false;\r\n }\r\n }\r\n\r\n if (model.Roles.length > 0)\r\n {\r\n if (this.currentUser) {\r\n var tmp: boolean = model.Roles.find(r => isInRole(this.currentUser.UserRoles, r)) !== undefined;\r\n if (!tmp) {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _mapIcon(icon: string): IconDefinition {\r\n var out: IconDefinition;\r\n\r\n switch (icon)\r\n {\r\n case 'key': { out = faKey } break;\r\n case 'unlock': { out = faUnlockAlt } break;\r\n case 'ship': { out = faShip } break;\r\n case 'anchor': { out = faAnchor } break;\r\n case 'clipboard': { out = faClipboardList } break;\r\n case 'map': { out = faMap } break;\r\n case 'wrench': { out = faWrench } break;\r\n case 'tools': { out = faTools } break;\r\n case 'binoculars': { out = faBinoculars } break;\r\n case 'cogs': { out = faCogs } break;\r\n case 'mailbulk': { out = faMailBulk } break;\r\n case 'user-clock': { out = faUserClock } break;\r\n case 'route': { out = faRoute } break;\r\n case 'containerWeb':{ out = faBox } break;\r\n case 'preAdvice': { out = faBullhorn } break;\r\n case 'scale': { out = faBalanceScaleLeft } break;\r\n case 'people-roof': { out = faHouseUser } break;\r\n }\r\n\r\n return out;\r\n }\r\n\r\n private _tapApplications(items: SubAppModel[]): SubAppModel[] {\r\n items.forEach(app => {\r\n app.faIcon = this._mapIcon(app.Icon);\r\n app.faIconColor = app.Color;\r\n\r\n app.DisplayText = this.translationHelper.resolveTranslation(app.Text);\r\n\r\n if(app.NavRoute) {\r\n app.Route = this.resolveSubAppRoute(app);\r\n }\r\n });\r\n return items;\r\n }\r\n\r\n private _tapActionLinks(items: SubAppModel[]): SubAppModel[] {\r\n items.forEach(link => {\r\n link.faIcon = this._mapIcon(link.Icon);\r\n link.faIconColor = link.Color;\r\n\r\n link.DisplayText = this.translationHelper.resolveTranslation(link.Text);\r\n\r\n if (link.NavRoute) {\r\n link.Route = this.resolveSubAppRoute(link);\r\n }\r\n });\r\n return items;\r\n }\r\n\r\n private resolveSubAppRoute(subApp: SubAppModel): string {\r\n var outNav = \"\";\r\n\r\n switch (subApp.RouteMode) {\r\n case 'legacy': {\r\n outNav = this.tenantModel.AppBaseUrl + (subApp.NavRoute.substr(0, 1) == \"/\" ? \"\" : \"/\") + subApp.NavRoute;\r\n } break;\r\n case 'url':\r\n case 'blank':\r\n default: {\r\n outNav = subApp.NavRoute;\r\n } break;\r\n }\r\n\r\n if (this.configurationModel.ApplicationMode == \"DEV\") {\r\n switch (subApp.RouteMode) {\r\n case 'legacy': {\r\n subApp.RouteMode = \"url\";\r\n } break;\r\n }\r\n }\r\n\r\n return outNav;\r\n }\r\n\r\n private handleError(error: any) {\r\n // In a real world app, we might send the error to remote logging infrastructure\r\n // and reformat for user consumption\r\n console.error(error); // log to console instead\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { timeout, catchError, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { InAppModel } from '../model/inapp.model';\r\n\r\nimport { LoggerService } from './logger.service';\r\nimport { InportAccessAuthDataModel } from '../model/authentication.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InAppService {\r\n\r\n private _bsInApp = new BehaviorSubject(new InAppModel);\r\n\r\n readonly inApp = this._bsInApp.asObservable().pipe(distinctUntilChanged());\r\n\r\n constructor(\r\n private logger: LoggerService\r\n ) {\r\n }\r\n\r\n public parseWindowLocation(windowLocation: any): InAppModel\r\n {\r\n var inAppLaunchedParam: boolean = false;\r\n var routeHash: string = windowLocation.hash;\r\n var routeSearch: string = windowLocation.search;\r\n var langParam: string = \"\";\r\n var dataParam: string = \"\";\r\n var dataModel: InportAccessAuthDataModel;\r\n\r\n var frag = '';\r\n var uriParams = '';\r\n if (routeHash) {\r\n this.logger.debug(\"window.location.hash: \" + routeHash);\r\n\r\n frag = routeHash;\r\n if (frag[0] == '#') {\r\n frag = frag.substr(1);\r\n }\r\n\r\n var s = frag.indexOf('?');\r\n if (s) {\r\n uriParams = frag.substr(s + 1);\r\n }\r\n }\r\n else if (routeSearch) {\r\n this.logger.debug(\"window.location.search: \" + routeSearch);\r\n\r\n uriParams = routeSearch;\r\n if (uriParams[0] == '?') {\r\n uriParams = uriParams.substr(1);\r\n }\r\n }\r\n\r\n if (uriParams) {\r\n var params = uriParams.split('&');\r\n params.forEach(param => {\r\n\r\n var parts = [];\r\n var s = param.indexOf('=');\r\n if (s) {\r\n parts.push(param.substr(0, s));\r\n parts.push(param.substr(s + 1));\r\n }\r\n\r\n if (parts.length == 2) {\r\n switch (parts[0]) {\r\n case 'app': {\r\n inAppLaunchedParam = parts[1] === \"true\";\r\n } break;\r\n case 'lang': {\r\n langParam = parts[1];\r\n } break;\r\n case 'data': {\r\n var d = atob(decodeURIComponent(parts[1]));\r\n this.logger.debug(\"inapp data-parameter: \" + d);\r\n dataModel = JSON.parse(d);\r\n\r\n dataParam = JSON.stringify(dataModel, undefined, 2);\r\n } break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n var model = new InAppModel;\r\n model.RouteHash = routeHash;\r\n model.RouteSearch = routeSearch;\r\n model.InAppLaunchedParam = inAppLaunchedParam;\r\n model.LangParam = langParam;\r\n model.DataParam = dataParam;\r\n model.Data = dataModel;\r\n\r\n this._bsInApp.next(model);\r\n\r\n return model;\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ConfigurationService } from \"./configuration.service\";\r\nimport { catchError, tap } from \"rxjs/operators\";\r\nimport { throwError } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageDbService {\r\n constructor(private http: HttpClient, private configurationService: ConfigurationService) {\r\n\r\n }\r\n public updateLanguage(langKey: string) {\r\n var langChangeUrl = this.configurationService.getApiUrl('RegisterApplication');\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n this.http.get(langChangeUrl, { headers: apiHeaders, params: { languageKey: langKey } }).subscribe();\r\n }\r\n private handleError(error: any) {\r\n // In a real world app, we might send the error to remote logging infrastructure\r\n // and reformat for user consumption\r\n console.error(error); // log to console instead\r\n return throwError(error);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, retryWhen, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { LogTypeEnum } from '../../_enums/logtype.enum';\r\nimport { ConfigurationModel } from '../model/configuration.model';\r\nimport { LoggerMessageModel } from '../model/loggermessage.model';\r\n\r\nimport { RetryStrategy } from 'src/app/_handlers/retry-strategy';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggerService {\r\n private devMode: boolean = false;\r\n private loggerMode: number = 0; // 0 = console, 1 = remote, 2 = both\r\n private configurationModel: ConfigurationModel;\r\n\r\n private _allMessageCounter: number = 0;\r\n private _bsAllMessages = new BehaviorSubject([]);\r\n readonly allMessages = this._bsAllMessages.asObservable().pipe(distinctUntilChanged());\r\n\r\n private _delayedRemoteMessages: Array = [];\r\n\r\n private _forcedDisabled: boolean = false;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configurationService: ConfigurationService\r\n ) {\r\n\r\n this.configurationService.configuration\r\n .subscribe(x => {\r\n\r\n this.configurationModel = x;\r\n this.devMode = (this.configurationModel.ApplicationMode == \"DEV\");\r\n\r\n switch (this.configurationModel.LoggerMode.toUpperCase()) {\r\n case \"R\": { this.loggerMode = 1; } break;\r\n case \"B\": { this.loggerMode = 2; } break;\r\n default: { this.loggerMode = 0; } break;\r\n }\r\n });\r\n\r\n this.configurationService.allConfigsLoaded\r\n .subscribe(x => {\r\n\r\n if (x != true)\r\n return;\r\n \r\n if (this.loggerMode >= 1 && this._delayedRemoteMessages.length > 0)\r\n {\r\n this._delayedRemoteMessages.forEach(\r\n (m) => {\r\n this._doSendRemoteLog(m.Message, m.Type);\r\n }\r\n );\r\n }\r\n\r\n this._delayedRemoteMessages = [];\r\n });\r\n }\r\n\r\n private _addToAll(message: string, logType: LogTypeEnum): void {\r\n if (this.configurationModel.ApplicationMode == \"DEV\") {\r\n var b = this._bsAllMessages.value;\r\n\r\n b = (b.length > 49 ? b.splice(b.length - 1, 1) : b);\r\n\r\n var m = new LoggerMessageModel();\r\n m.Id = this._allMessageCounter++;\r\n m.Message = message;\r\n m.Type = logType;\r\n\r\n b.unshift(m);\r\n\r\n this._bsAllMessages.next(b);\r\n }\r\n }\r\n\r\n private _log(message: string, logType: LogTypeEnum): Promise {\r\n\r\n this._addToAll(message, logType);\r\n\r\n if (this.loggerMode == 0 || this.loggerMode == 2)\r\n {\r\n switch (logType) {\r\n case LogTypeEnum.info: { console.info(message); } break;\r\n case LogTypeEnum.warning: { console.warn(message); } break;\r\n case LogTypeEnum.error: { console.error(message); } break;\r\n case LogTypeEnum.debug: { console.debug(message); } break;\r\n }\r\n }\r\n\r\n var ret: Promise;\r\n\r\n if (this.loggerMode == 1 || this.loggerMode == 2) {\r\n ret = this._remoteLog(message, logType);\r\n }\r\n else {\r\n ret = new Observable().toPromise();\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n public log(message: string): Promise {\r\n return this._log(message, LogTypeEnum.info);\r\n }\r\n\r\n public info(message: string): Promise {\r\n return this._log(message, LogTypeEnum.info);\r\n }\r\n\r\n public warn(message: string): Promise {\r\n return this._log(message, LogTypeEnum.warning);\r\n }\r\n\r\n public error(message: string): Promise {\r\n return this._log(message, LogTypeEnum.error);\r\n }\r\n\r\n public debug(message: string): Promise {\r\n return this._log(message, LogTypeEnum.debug);\r\n }\r\n\r\n private _remoteLog(message: string, type: LogTypeEnum): Promise {\r\n\r\n if (!this.configurationModel.ConfigurationKey && !this._forcedDisabled) {\r\n\r\n var m = new LoggerMessageModel();\r\n m.Type = type;\r\n m.Message = message;\r\n\r\n this._delayedRemoteMessages.push(m);\r\n\r\n return new Observable().toPromise();\r\n }\r\n\r\n return this._doSendRemoteLog(message, type);\r\n }\r\n\r\n private _doSendRemoteLog(message: string, type: LogTypeEnum): Promise\r\n {\r\n var logUrl = this.configurationService.getApiUrl('Log');\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n var body = JSON.stringify({\r\n Type: type,\r\n Message: message\r\n });\r\n\r\n return this.http.post(logUrl, body, { headers: apiHeaders })\r\n .pipe(\r\n retryWhen(RetryStrategy()),\r\n catchError(this.handleError) \r\n )\r\n .toPromise();\r\n }\r\n\r\n private handleError = (error: HttpErrorResponse): Observable => {\r\n // In a real world app, we might send the error to remote logging infrastructure\r\n // and reformat for user consumption\r\n console.error(error); // log to console instead\r\n\r\n if (error.status == 401)\r\n this._forcedDisabled = true;\r\n\r\n // we do not want to throw an exception here, because it will create an infinit loop of exceptions.\r\n // instead add the message to the all message so it will displayed in the dev-panel.\r\n this._addToAll(JSON.stringify(error, null, 2), LogTypeEnum.error)\r\n\r\n return of();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, tap, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { TextModel } from '../model/text.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TextService {\r\n\r\n private _bsTexts = new BehaviorSubject([]);\r\n\r\n readonly texts = this._bsTexts.asObservable().pipe(distinctUntilChanged());\r\n\r\n textsValue: TextModel[] = [];\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private configurationService: ConfigurationService\r\n ) {\r\n }\r\n\r\n public fetchTexts(): Observable {\r\n\r\n var textsUrl = this.configurationService.getApiUrl('Text');\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n return this.http.get(textsUrl, { headers: apiHeaders })\r\n .pipe(\r\n tap(data => {\r\n this.textsValue = data;\r\n this._bsTexts.next(data);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public fetchTextByKeys(key: string, langKey: string): Observable {\r\n\r\n var textsUrl = this.configurationService.getApiUrl('Text/ByKeys');\r\n\r\n textsUrl += \"/\" + key + \"/\" + langKey;\r\n\r\n var apiHeaders = this.configurationService.getApiHeaders();\r\n\r\n return this.http.get(textsUrl, { headers: apiHeaders })\r\n .pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(error: any) {\r\n // In a real world app, we might send the error to remote logging infrastructure\r\n // and reformat for user consumption\r\n console.error(error); // log to console instead\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable, Inject, Renderer2, RendererFactory2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { timeout, catchError, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ThemeSkinService {\r\n\r\n private renderer: Renderer2;\r\n\r\n styleTag: string = \"\";\r\n\r\n private _bsDarkMode = new BehaviorSubject(false);\r\n private _bsAltSkin = new BehaviorSubject(false);\r\n\r\n readonly darkMode = this._bsDarkMode.asObservable().pipe(distinctUntilChanged());\r\n readonly altSkin = this._bsAltSkin.asObservable().pipe(distinctUntilChanged());\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document, \r\n rendererFactory: RendererFactory2,\r\n private configurationService: ConfigurationService\r\n ) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this.configurationService.tenant.subscribe(x => {\r\n\r\n if (x && x.StyleKey) {\r\n this.styleTag = x.StyleKey;\r\n }\r\n });\r\n }\r\n\r\n public toggleDarkMode(): boolean {\r\n var newValue = !this._bsDarkMode.value;\r\n\r\n if (newValue) {\r\n this.renderer.addClass(document.body, 'dark');\r\n }\r\n else {\r\n this.renderer.removeClass(document.body, 'dark');\r\n }\r\n\r\n this._bsDarkMode.next(newValue);\r\n\r\n return newValue;\r\n }\r\n\r\n public toggleAltSkin(): boolean {\r\n var newValue = !this._bsAltSkin.value;\r\n\r\n if (newValue) {\r\n this.renderer.addClass(document.body, 'STAVANGER');\r\n this.renderer.removeClass(document.body, this.styleTag);\r\n }\r\n else {\r\n this.renderer.addClass(document.body, this.styleTag);\r\n this.renderer.removeClass(document.body, 'STAVANGER');\r\n }\r\n\r\n this._bsAltSkin.next(newValue);\r\n\r\n return newValue;\r\n }\r\n}\r\n","import { Component, Inject } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: \"app-error-dialog\",\r\n templateUrl: \"./error-dialog.component.html\",\r\n styleUrls: [\"./error-dialog.component.css\"]\r\n})\r\nexport class ErrorDialogComponent {\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n title?: string;\r\n message?: string;\r\n type?: string;\r\n status?: string;\r\n content?: string;\r\n }\r\n ) {\r\n }\r\n}\r\n","

\r\n \r\n {{data.title}}\r\n \r\n\r\n \r\n {{ 'errordialog.dialogTitle' | translate }}\r\n \r\n

\r\n
\r\n

{{ 'errordialog.statusCodeLabel' | translate }}: {{data.status}}

\r\n

{{ 'errordialog.typeLabel' | translate }}: {{data.type}}

\r\n
{{data.message}}
\r\n

{{data.content}}

\r\n
\r\n
\r\n \r\n
","export class SenchaSettingModel {\r\n DefaultSecuredArea: number = 0;\r\n DeviceToken: string = \"\";\r\n Id: number = 0;\r\n InAppLaunched: boolean = false;\r\n Key: string = \"\";\r\n Language: string = \"\";\r\n LocalStoragePath: string = \"\";\r\n PushToken: string = \"\";\r\n SecurityToken: string = \"\";\r\n SecurityTokenExpires: number = 0;\r\n UserInformation: SenchaUserInformationModel = new SenchaUserInformationModel();\r\n UserRoles: Array;\r\n UserType: number = 0;\r\n Version: number = 0;\r\n}\r\n\r\nexport class SenchaUserInformationModel {\r\n Email: string = \"\";\r\n Employee: SenchaEmployeeModel = new SenchaEmployeeModel;\r\n FirstName: string = \"\";\r\n GdprConfirmRequired: boolean = false;\r\n LastName: string = \"\";\r\n MobilePhone: string = \"\";\r\n Remark: string = \"\";\r\n UserId: number = 0;\r\n UserName: string = \"\";\r\n}\r\n\r\nexport class SenchaEmployeeModel {\r\n Active: boolean = false;\r\n Code: string = \"\";\r\n Description: string = \"\"\r\n EmployeeGroups: Array = new Array();\r\n EmployeeTrades: Array = new Array();\r\n Id: number = 0;\r\n Name: string = \"\";\r\n}\r\n\r\nexport class SenchaEmployeeGroupModel {\r\n Active: boolean = false;\r\n Code: string = \"\";\r\n Description: string = \"\";\r\n Id: number = 0;\r\n Name: string = \"\";\r\n}\r\n\r\nexport class SenchaEmployeeTradeModel {\r\n Active: boolean = false;\r\n Code: string = \"\";\r\n Description: string = \"\";\r\n Id: number = 0;;\r\n Name: string = \"\";\r\n}\r\n\r\nexport class SenchaHeroCarouselItemModel {\r\n Category: string = \"\";\r\n Changed: Date = new Date(2000, 0, 1);\r\n FileId: string = \"\";\r\n Heading: string = \"\";\r\n Id: string = \"\";\r\n Image: string = \"\";\r\n Information: string = \"\";\r\n LinkDestination: string = \"\";\r\n LinkType: string = \"\";\r\n SortOrder: number = 0;\r\n}\r\n","export enum LocalStorageNames {\r\n HeroCarouselItem = \"Application.model.HeroCarouselItem\",\r\n SettingsModel = \"Application.model.SettingsModel\",\r\n AboutModel = \"Application.model.AboutModel\",\r\n};\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { LocalStorageService } from 'ngx-localstorage';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { HomeService } from '../../../services/home.service';\r\n\r\nimport { ConfigurationModel } from '../../../model/configuration.model';\r\nimport { TenantModel } from '../../../model/tenant.model';\r\nimport { UserInformationModel } from '../../../model/user.model';\r\nimport { NewsItemModel } from '../../../model/newsitem.model';\r\n\r\nimport {\r\n SenchaSettingModel, SenchaUserInformationModel, SenchaEmployeeModel, SenchaHeroCarouselItemModel\r\n} from '../model/sencha.model';\r\nimport { LocalStorageNames } from '../sencha.statics';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SenchaLocalStorageService {\r\n private currentUser: UserInformationModel;\r\n private configurationModel: ConfigurationModel;\r\n private tenantModel: TenantModel;\r\n private homeItems = [];\r\n private currentLang: string = \"en\";\r\n\r\n constructor(\r\n private localStorageService: LocalStorageService,\r\n private translate: TranslateService,\r\n private authenticationService: AuthenticationService,\r\n private configurationService: ConfigurationService,\r\n private homeService: HomeService,\r\n ) {\r\n this.authenticationService.currentUser\r\n .subscribe(x => {\r\n this.currentUser = x;\r\n\r\n this.writeSettingsModel();\r\n });\r\n\r\n this.translate.onLangChange\r\n .subscribe(lang => {\r\n this.currentLang = lang.lang;\r\n\r\n this.writeSettingsModel();\r\n });\r\n\r\n this.configurationService.allConfigsLoaded\r\n .subscribe(x => {\r\n\r\n if (x === true) {\r\n this.configurationModel = this.configurationService.getCurrentConfiguration();\r\n this.tenantModel = this.configurationService.getCurrentTenant();\r\n\r\n this.writeSettingsModel();\r\n }\r\n });\r\n\r\n this.homeService.newsItems\r\n .subscribe(x => {\r\n this.homeItems = x;\r\n\r\n this.writeHeroCarouselItems();\r\n });\r\n }\r\n\r\n private writeSettingsModel(): void\r\n {\r\n if (!this.configurationModel) {\r\n return;\r\n }\r\n\r\n if (!this.tenantModel) {\r\n return;\r\n }\r\n\r\n var deviceToken = this.configurationService.getCurrentDeviceToken();\r\n var securityToken = this.configurationService.getCurrentSecurityToken();\r\n\r\n var model = new SenchaSettingModel;\r\n model.DeviceToken = deviceToken;\r\n model.Id = 0;\r\n model.InAppLaunched = false;\r\n model.Key = this.configurationModel.ConfigurationKey;\r\n model.Language = this.currentLang;\r\n model.Version = this.tenantModel.Version;\r\n\r\n if (securityToken) {\r\n model.SecurityToken = securityToken.SecurityToken;\r\n model.SecurityTokenExpires = (new Date(securityToken.ValidUntil)).getTime();\r\n }\r\n\r\n if (this.currentUser)\r\n {\r\n model.DefaultSecuredArea = this.currentUser.DefaultSecuredArea;\r\n model.UserType = this.currentUser.UserType;\r\n model.UserRoles = this.currentUser.UserRoles;\r\n\r\n model.UserInformation = new SenchaUserInformationModel;\r\n model.UserInformation.Email = this.currentUser.Email;\r\n model.UserInformation.FirstName = this.currentUser.FirstName;\r\n model.UserInformation.GdprConfirmRequired = this.currentUser.GdprConfirmRequired;\r\n model.UserInformation.LastName = this.currentUser.LastName;\r\n model.UserInformation.MobilePhone = this.currentUser.MobilePhone;\r\n model.UserInformation.Remark = this.currentUser.Remark;\r\n model.UserInformation.UserId = this.currentUser.UserId;\r\n model.UserInformation.UserName = this.currentUser.UserName;\r\n\r\n model.UserInformation.Employee = new SenchaEmployeeModel;\r\n if (this.currentUser.Employee)\r\n {\r\n model.UserInformation.Employee.Active = this.currentUser.Employee.Active;\r\n model.UserInformation.Employee.Code = this.currentUser.Employee.Code;\r\n model.UserInformation.Employee.Description = this.currentUser.Employee.Description;\r\n model.UserInformation.Employee.EmployeeGroups = this.currentUser.Employee.EmployeeGroups.splice(0);\r\n model.UserInformation.Employee.EmployeeTrades = this.currentUser.Employee.EmployeeTrades.splice(0);\r\n model.UserInformation.Employee.Id = this.currentUser.Employee.Id;\r\n model.UserInformation.Employee.Name = this.currentUser.Employee.Name;\r\n }\r\n }\r\n\r\n this.localStorageService.set(LocalStorageNames.SettingsModel, model.Id);\r\n this.localStorageService.set(LocalStorageNames.SettingsModel + \"-\" + model.Id, model);\r\n }\r\n\r\n private writeHeroCarouselItems(): void {\r\n\r\n var carouselItems = new Array();\r\n\r\n this.homeItems.forEach((item: NewsItemModel) => {\r\n var model = new SenchaHeroCarouselItemModel;\r\n model.Category = item.Category;\r\n model.Changed = item.Changed;\r\n model.FileId = item.FileId;\r\n model.Heading = item.Heading;\r\n model.Id = (\"_\" + item.Id);\r\n model.Image = item.Image;\r\n model.Information = item.Information;\r\n model.LinkDestination = item.LinkDestination;\r\n model.LinkType = item.LinkType;\r\n model.SortOrder = item.SortOrder;\r\n\r\n carouselItems.push(model);\r\n });\r\n\r\n\r\n var ids: any = carouselItems.map(x => x.Id).join(\",\");\r\n this.localStorageService.set(LocalStorageNames.HeroCarouselItem, ids);\r\n\r\n carouselItems.forEach((item: SenchaHeroCarouselItemModel) => {\r\n this.localStorageService.set(LocalStorageNames.HeroCarouselItem + \"-\" + item.Id, item);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { InMemoryDbService } from 'angular-in-memory-web-api';\r\n\r\nimport {\r\n OvertimeMealLabelEnum, OvertimeMealStaticCodesEnum\r\n} from '../docker/_enums/docker.enum';\r\n\r\nimport { DockerUserModel } from '../docker/model/docker-user.model';\r\n/*import { DockerLeaveModel } from '../docker/model/docker-leave.model';\r\nimport { DockerAbsenceModel } from '../docker/model/docker-absence.model';*/\r\nimport { DockerLeaveReportModel } from '../docker/model/docker-leave-report.model';\r\nimport { DockerOvertimeMealOptionModel } from '../docker/model/docker-work-interest.model';\r\n\r\n@Injectable()\r\nexport class InMemProgDataService implements InMemoryDbService {\r\n\r\n constructor() { }\r\n\r\n // createDb(reqInfo?: RequestInfo) {\r\n createDb() {\r\n\r\n const requestLeave: DockerLeaveReportModel[] = [];\r\n\r\n const reportAbsence: DockerLeaveReportModel[] = [];\r\n\r\n const dockerUserInformation: DockerUserModel[] = [\r\n // {\r\n // id: 2166,\r\n // userFullname: \"Niclas Hällgren\",\r\n // userId: 2166,\r\n // employeeId: 53,\r\n // employeeCode: \"1-80\",\r\n // dailyActivityItems: [\r\n // {\r\n // todayOffset: -1,\r\n // dateString: \"2021-03-25\",\r\n // activities: [\r\n // {\r\n // displayStartEndSpan: \"07:00-15:45\",\r\n // displayText: \"Vård av barn\",\r\n // displayLocationQuay: \"\"\r\n\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // todayOffset: 0,\r\n // dateString: \"2021-03-26\",\r\n // activities: [\r\n // {\r\n // displayStartEndSpan: \"07:00-15:45\",\r\n // displayText: \"Containerterminalen\",\r\n // displayLocationQuay: \"\",\r\n // },\r\n // {\r\n // displayStartEndSpan: \"15:45-19:00\",\r\n // displayText: \"Färdigkörning fartyg\",\r\n // displayLocationQuay: \"\"\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // todayOffset: 1,\r\n // dateString: \"2021-03-27\",\r\n // activities: []\r\n // }\r\n // ],\r\n // vacationDaysLeft: 25,\r\n // compensationBalance: 12,\r\n // messageItems: [\r\n // // {\r\n // // titleString: \"Behov av övertid\",\r\n // // dateString: \"2021-03-25\",\r\n // // bodyString: \"Behov av övertid för containerterminalen lördag och söndag.\"\r\n // // },\r\n // // {\r\n // // titleString: \"Ledighet beviljad\",\r\n // // dateString: \"2021-03-24\",\r\n // // bodyString: \"Du har fått följande ledighetsansökan beviljad: Semester 2021-06-02 - 2021-06-08.\"\r\n // // }\r\n // ],\r\n // leaveItems: [\r\n // requestLeave[3],\r\n // requestLeave[2],\r\n // requestLeave[1],\r\n // requestLeave[0]\r\n // ],\r\n // absenceItems: [\r\n // reportAbsence[2],\r\n // reportAbsence[1],\r\n // reportAbsence[0]\r\n // ]\r\n // },\r\n // ,\r\n // {\r\n // id: 3388,\r\n // userFullname: \"Niclas Hällgren\",\r\n // userId: 3388,\r\n // employeeId: 60,\r\n // employeeCode: \"1-90\",\r\n // dailyActivityItems: [\r\n // {\r\n // todayOffset: -1,\r\n // dateString: \"2021-03-25\",\r\n // activities: [\r\n // {\r\n // displayStartEndSpan: \"07:00-15:45\",\r\n // displayText: \"Vård av barn\",\r\n // displayLocationQuay: \"\"\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // todayOffset: 0,\r\n // dateString: \"2021-03-26\",\r\n // activities: [\r\n // {\r\n // displayStartEndSpan: \"07:00-15:45\",\r\n // displayText: \"Containerterminalen\",\r\n // displayLocationQuay: \"\"\r\n // },\r\n // {\r\n // displayStartEndSpan: \"15:45-19:00\",\r\n // displayText: \"Färdigkörning fartyg\",\r\n // displayLocationQuay: \"\"\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // todayOffset: 1,\r\n // dateString: \"2021-03-27\",\r\n // activities: []\r\n // }\r\n // ],\r\n // vacationDaysLeft: 25,\r\n // compensationBalance: 12,\r\n // messageItems: [\r\n // // {\r\n // // titleString: \"Behov av övertid\",\r\n // // dateString: \"2021-03-25\",\r\n // // bodyString: \"Behov av övertid för containerterminalen lördag och söndag.\"\r\n // // },\r\n // // {\r\n // // titleString: \"Ledighet beviljad\",\r\n // // dateString: \"2021-03-24\",\r\n // // bodyString: \"Du har fått följande ledighetsansökan beviljad: Semester 2021-06-02 - 2021-06-08.\"\r\n // // }\r\n // ],\r\n // leaveItems: [\r\n // requestLeave[3],\r\n // requestLeave[2],\r\n // requestLeave[1],\r\n // requestLeave[0]\r\n // ],\r\n // absenceItems: [\r\n // reportAbsence[2],\r\n // reportAbsence[1],\r\n // reportAbsence[0]\r\n // ]\r\n // }\r\n ];\r\n\r\n const overtimeMealOptions: DockerOvertimeMealOptionModel[] = [\r\n // {\r\n // Id: 2,\r\n // code: OvertimeMealStaticCodesEnum.NOMEAL,\r\n // title: \"docker.mealOptions.noMeal.title\",\r\n // description: \"docker.mealOptions.noMeal.description\",\r\n // food : null\r\n // },\r\n // {\r\n // Id: 3,\r\n // code: \"M1\",\r\n // title: \"Köttbullar och mos\",\r\n // description: \"Köttbullar, mos, lingonsylt\",\r\n // food\r\n // //labels: [OvertimeMealLabelEnum.LactosFree]\r\n // },\r\n // {\r\n // Id: 4,\r\n // code: \"M2\",\r\n // title: \"Veckans Vegetariska\",\r\n // description: \"Chorizo, bulgur med rostade nudlar samt tzatziki\",\r\n // //labels: [OvertimeMealLabelEnum.Vegetarian, OvertimeMealLabelEnum.GlutenFree]\r\n // },\r\n // {\r\n // Id: 5,\r\n // code: \"M3\",\r\n // title: \"Veckans sallad\",\r\n // description: \"BBQ Kyckling, grönsakscouscous, tomat, gurka, ananas, majs toppad med ruccola\",\r\n // //labels: [OvertimeMealLabelEnum.GlutenFree]\r\n // },\r\n // {\r\n // Id: 6,\r\n // code: \"M4\",\r\n // title: \"Veckans extra\",\r\n // description: \"Kebab med pommes och mild sås\"\r\n // },\r\n // {\r\n // Id: 7,\r\n // code: \"M5\",\r\n // title: \"Kåldolmar med potatis\",\r\n // description: \"Serveras med gräddsås och lingonsylt\",\r\n // //labels: [OvertimeMealLabelEnum.GlutenFree]\r\n // },\r\n // {\r\n // Id: 8,\r\n // code: \"M6\",\r\n // title: \"Sprödbakad flundrafilé\",\r\n // description: \"Serveras med kall dillsås och kokt potatis\",\r\n // //labels: [OvertimeMealLabelEnum.LactosFree]\r\n // }\r\n //];\r\n\r\n //const overtimeSnackOptions: DockerOvertimeMealOptionModel[] = [\r\n // {\r\n // Id: 9,\r\n // code: OvertimeMealStaticCodesEnum.NOSNACK,\r\n // title: \"docker.mealOptions.noSnack.title\",\r\n // description: \"docker.mealOptions.noSnack.description\"\r\n // },\r\n // {\r\n // Id: 10,\r\n // code: \"S1\",\r\n // title: \"Foccaccia kyckling curry\",\r\n // description: \"Foccaccia på surdegsbröd med kyckling i curryröra och soltorkade tomater\"\r\n // },\r\n // {\r\n // Id: 11,\r\n // code: \"S2\",\r\n // title: \"Foccaccia kyckling feta\",\r\n // description: \"Foccaccia på surdegsbröd med kyckling i fetaostkräm\"\r\n // },\r\n // {\r\n // Id: 12,\r\n // code: \"S3\",\r\n // title: \"Vegetarisk\",\r\n // description: \"Hållkaka med ost, tomat, gurka\",\r\n // //labels: [OvertimeMealLabelEnum.Vegetarian]\r\n // },\r\n // {\r\n // Id: 13,\r\n // code: \"S4\",\r\n // title: \"Surdegsbröd bacon ägg\",\r\n // description: \"Två skivor stekta surdegsbröd med nystekt bacon, stekt ägg, och rödlök\"\r\n // },\r\n // {\r\n // Id: 14,\r\n // code: \"S5\",\r\n // title: \"Mörk baugette köttbullar\",\r\n // description: \"Mörk baugette med köttbullar och rödbetssallad\"\r\n // }\r\n ];\r\n\r\n const leaveaAndAbsence = [];\r\n\r\n return {\r\n requestLeave,\r\n reportAbsence,\r\n //dockerUserInformation,\r\n overtimeMealOptions,\r\n //overtimeSnackOptions,\r\n leaveaAndAbsence\r\n };\r\n }\r\n\r\n}\r\n\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import \"./polyfills\";\r\nimport 'hammerjs';\r\n\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\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\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\n/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags.ts';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js'; // Included with Angular CLI.\r\n\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\n","var map = {\n\t\"./af\": 85637,\n\t\"./af.js\": 85637,\n\t\"./ar\": 6777,\n\t\"./ar-dz\": 74508,\n\t\"./ar-dz.js\": 74508,\n\t\"./ar-kw\": 67504,\n\t\"./ar-kw.js\": 67504,\n\t\"./ar-ly\": 95373,\n\t\"./ar-ly.js\": 95373,\n\t\"./ar-ma\": 92412,\n\t\"./ar-ma.js\": 92412,\n\t\"./ar-ps\": 78823,\n\t\"./ar-ps.js\": 78823,\n\t\"./ar-sa\": 36670,\n\t\"./ar-sa.js\": 36670,\n\t\"./ar-tn\": 36448,\n\t\"./ar-tn.js\": 36448,\n\t\"./ar.js\": 6777,\n\t\"./az\": 23009,\n\t\"./az.js\": 23009,\n\t\"./be\": 28299,\n\t\"./be.js\": 28299,\n\t\"./bg\": 4685,\n\t\"./bg.js\": 4685,\n\t\"./bm\": 11171,\n\t\"./bm.js\": 11171,\n\t\"./bn\": 23590,\n\t\"./bn-bd\": 5841,\n\t\"./bn-bd.js\": 5841,\n\t\"./bn.js\": 23590,\n\t\"./bo\": 54309,\n\t\"./bo.js\": 54309,\n\t\"./br\": 54130,\n\t\"./br.js\": 54130,\n\t\"./bs\": 8033,\n\t\"./bs.js\": 8033,\n\t\"./ca\": 55294,\n\t\"./ca.js\": 55294,\n\t\"./cs\": 53028,\n\t\"./cs.js\": 53028,\n\t\"./cv\": 5807,\n\t\"./cv.js\": 5807,\n\t\"./cy\": 70342,\n\t\"./cy.js\": 70342,\n\t\"./da\": 38269,\n\t\"./da.js\": 38269,\n\t\"./de\": 11489,\n\t\"./de-at\": 42123,\n\t\"./de-at.js\": 42123,\n\t\"./de-ch\": 17757,\n\t\"./de-ch.js\": 17757,\n\t\"./de.js\": 11489,\n\t\"./dv\": 28152,\n\t\"./dv.js\": 28152,\n\t\"./el\": 7687,\n\t\"./el.js\": 7687,\n\t\"./en-au\": 46668,\n\t\"./en-au.js\": 46668,\n\t\"./en-ca\": 76798,\n\t\"./en-ca.js\": 76798,\n\t\"./en-gb\": 53615,\n\t\"./en-gb.js\": 53615,\n\t\"./en-ie\": 91364,\n\t\"./en-ie.js\": 91364,\n\t\"./en-il\": 79907,\n\t\"./en-il.js\": 79907,\n\t\"./en-in\": 70533,\n\t\"./en-in.js\": 70533,\n\t\"./en-nz\": 33190,\n\t\"./en-nz.js\": 33190,\n\t\"./en-sg\": 51096,\n\t\"./en-sg.js\": 51096,\n\t\"./eo\": 3962,\n\t\"./eo.js\": 3962,\n\t\"./es\": 37726,\n\t\"./es-do\": 65010,\n\t\"./es-do.js\": 65010,\n\t\"./es-mx\": 63654,\n\t\"./es-mx.js\": 63654,\n\t\"./es-us\": 59043,\n\t\"./es-us.js\": 59043,\n\t\"./es.js\": 37726,\n\t\"./et\": 25343,\n\t\"./et.js\": 25343,\n\t\"./eu\": 90728,\n\t\"./eu.js\": 90728,\n\t\"./fa\": 60787,\n\t\"./fa.js\": 60787,\n\t\"./fi\": 71771,\n\t\"./fi.js\": 71771,\n\t\"./fil\": 45335,\n\t\"./fil.js\": 45335,\n\t\"./fo\": 69761,\n\t\"./fo.js\": 69761,\n\t\"./fr\": 1670,\n\t\"./fr-ca\": 28991,\n\t\"./fr-ca.js\": 28991,\n\t\"./fr-ch\": 97280,\n\t\"./fr-ch.js\": 97280,\n\t\"./fr.js\": 1670,\n\t\"./fy\": 24203,\n\t\"./fy.js\": 24203,\n\t\"./ga\": 69858,\n\t\"./ga.js\": 69858,\n\t\"./gd\": 38605,\n\t\"./gd.js\": 38605,\n\t\"./gl\": 27365,\n\t\"./gl.js\": 27365,\n\t\"./gom-deva\": 33896,\n\t\"./gom-deva.js\": 33896,\n\t\"./gom-latn\": 95587,\n\t\"./gom-latn.js\": 95587,\n\t\"./gu\": 97950,\n\t\"./gu.js\": 97950,\n\t\"./he\": 92029,\n\t\"./he.js\": 92029,\n\t\"./hi\": 51897,\n\t\"./hi.js\": 51897,\n\t\"./hr\": 29816,\n\t\"./hr.js\": 29816,\n\t\"./hu\": 22253,\n\t\"./hu.js\": 22253,\n\t\"./hy-am\": 28196,\n\t\"./hy-am.js\": 28196,\n\t\"./id\": 51307,\n\t\"./id.js\": 51307,\n\t\"./is\": 95474,\n\t\"./is.js\": 95474,\n\t\"./it\": 23099,\n\t\"./it-ch\": 45807,\n\t\"./it-ch.js\": 45807,\n\t\"./it.js\": 23099,\n\t\"./ja\": 19127,\n\t\"./ja.js\": 19127,\n\t\"./jv\": 30182,\n\t\"./jv.js\": 30182,\n\t\"./ka\": 10758,\n\t\"./ka.js\": 10758,\n\t\"./kk\": 93444,\n\t\"./kk.js\": 93444,\n\t\"./km\": 72034,\n\t\"./km.js\": 72034,\n\t\"./kn\": 46223,\n\t\"./kn.js\": 46223,\n\t\"./ko\": 83064,\n\t\"./ko.js\": 83064,\n\t\"./ku\": 8714,\n\t\"./ku-kmr\": 10961,\n\t\"./ku-kmr.js\": 10961,\n\t\"./ku.js\": 8714,\n\t\"./ky\": 12062,\n\t\"./ky.js\": 12062,\n\t\"./lb\": 84796,\n\t\"./lb.js\": 84796,\n\t\"./lo\": 19279,\n\t\"./lo.js\": 19279,\n\t\"./lt\": 106,\n\t\"./lt.js\": 106,\n\t\"./lv\": 11840,\n\t\"./lv.js\": 11840,\n\t\"./me\": 42240,\n\t\"./me.js\": 42240,\n\t\"./mi\": 13588,\n\t\"./mi.js\": 13588,\n\t\"./mk\": 15518,\n\t\"./mk.js\": 15518,\n\t\"./ml\": 37823,\n\t\"./ml.js\": 37823,\n\t\"./mn\": 98657,\n\t\"./mn.js\": 98657,\n\t\"./mr\": 61285,\n\t\"./mr.js\": 61285,\n\t\"./ms\": 43014,\n\t\"./ms-my\": 86253,\n\t\"./ms-my.js\": 86253,\n\t\"./ms.js\": 43014,\n\t\"./mt\": 20167,\n\t\"./mt.js\": 20167,\n\t\"./my\": 47940,\n\t\"./my.js\": 47940,\n\t\"./nb\": 50014,\n\t\"./nb.js\": 50014,\n\t\"./ne\": 49023,\n\t\"./ne.js\": 49023,\n\t\"./nl\": 34208,\n\t\"./nl-be\": 71412,\n\t\"./nl-be.js\": 71412,\n\t\"./nl.js\": 34208,\n\t\"./nn\": 81354,\n\t\"./nn.js\": 81354,\n\t\"./oc-lnc\": 40870,\n\t\"./oc-lnc.js\": 40870,\n\t\"./pa-in\": 80389,\n\t\"./pa-in.js\": 80389,\n\t\"./pl\": 7342,\n\t\"./pl.js\": 7342,\n\t\"./pt\": 34774,\n\t\"./pt-br\": 73003,\n\t\"./pt-br.js\": 73003,\n\t\"./pt.js\": 34774,\n\t\"./ro\": 85333,\n\t\"./ro.js\": 85333,\n\t\"./ru\": 73451,\n\t\"./ru.js\": 73451,\n\t\"./sd\": 43921,\n\t\"./sd.js\": 43921,\n\t\"./se\": 59682,\n\t\"./se.js\": 59682,\n\t\"./si\": 80582,\n\t\"./si.js\": 80582,\n\t\"./sk\": 4348,\n\t\"./sk.js\": 4348,\n\t\"./sl\": 95337,\n\t\"./sl.js\": 95337,\n\t\"./sq\": 39358,\n\t\"./sq.js\": 39358,\n\t\"./sr\": 50683,\n\t\"./sr-cyrl\": 69382,\n\t\"./sr-cyrl.js\": 69382,\n\t\"./sr.js\": 50683,\n\t\"./ss\": 51156,\n\t\"./ss.js\": 51156,\n\t\"./sv\": 29855,\n\t\"./sv.js\": 29855,\n\t\"./sw\": 18536,\n\t\"./sw.js\": 18536,\n\t\"./ta\": 15373,\n\t\"./ta.js\": 15373,\n\t\"./te\": 37809,\n\t\"./te.js\": 37809,\n\t\"./tet\": 61297,\n\t\"./tet.js\": 61297,\n\t\"./tg\": 92527,\n\t\"./tg.js\": 92527,\n\t\"./th\": 85862,\n\t\"./th.js\": 85862,\n\t\"./tk\": 79331,\n\t\"./tk.js\": 79331,\n\t\"./tl-ph\": 44387,\n\t\"./tl-ph.js\": 44387,\n\t\"./tlh\": 3592,\n\t\"./tlh.js\": 3592,\n\t\"./tr\": 79732,\n\t\"./tr.js\": 79732,\n\t\"./tzl\": 99570,\n\t\"./tzl.js\": 99570,\n\t\"./tzm\": 83553,\n\t\"./tzm-latn\": 7699,\n\t\"./tzm-latn.js\": 7699,\n\t\"./tzm.js\": 83553,\n\t\"./ug-cn\": 25674,\n\t\"./ug-cn.js\": 25674,\n\t\"./uk\": 69974,\n\t\"./uk.js\": 69974,\n\t\"./ur\": 45773,\n\t\"./ur.js\": 45773,\n\t\"./uz\": 357,\n\t\"./uz-latn\": 77135,\n\t\"./uz-latn.js\": 77135,\n\t\"./uz.js\": 357,\n\t\"./vi\": 20043,\n\t\"./vi.js\": 20043,\n\t\"./x-pseudo\": 40767,\n\t\"./x-pseudo.js\": 40767,\n\t\"./yo\": 80150,\n\t\"./yo.js\": 80150,\n\t\"./zh-cn\": 21828,\n\t\"./zh-cn.js\": 21828,\n\t\"./zh-hk\": 86644,\n\t\"./zh-hk.js\": 86644,\n\t\"./zh-mo\": 79305,\n\t\"./zh-mo.js\": 79305,\n\t\"./zh-tw\": 31860,\n\t\"./zh-tw.js\": 31860\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;"],"names":["MatPaginatorIntl","Subject","CustomPaginatorIntl","constructor","translate","unsubscribe","onLangChange","subscribe","getAndInitTranslations","ngOnDestroy","next","complete","get","translation","itemsPerPageLabel","changes","_","i0","ɵɵinject","i1","TranslateService","_2","factory","ɵfac","LogTypeEnum","UserRoleEnum","UserTypeEnum","HttpErrorResponse","ErrorDialogComponent","GlobalErrorHandler","zone","loggerService","dialog","handleError","error","run","errorMessage","JSON","stringify","stack","message","openDialogs","length","open","data","type","name","maxHeight","width","maxWidth","disableClose","hasBackdrop","NgZone","LoggerService","i2","MatDialog","providedIn","throwError","timer","mergeMap","finalize","RetryStrategy","maxRetryAttempts","scalingDuration","excludedStatusCodes","attempts","pipe","i","retryAttempt","find","e","status","console","log","catchError","HttpErrorInterceptor","intercept","request","handle","faTachometerAlt","MainPath","LoginPath","LogoutPath","GdprConfirmPath","UnAuthorize","NorrkopingMainPath","ROUTES","path","title","secure","icon","class","sortValue","hidden","AppRoutes","loadChildren","then","m","CoreModule","DockerModule","WorkorderModule","GateModule","p","PipeBookingModule","redirectTo","DOCUMENT","moment","SecurityTokenModel","LocalStorageNames","AppComponent","document","renderer","titleService","senchaService","spinnerService","configurationService","authenticationService","logger","inAppService","themeSkinService","cookieService","localStorageService","deviceDetectorService","router","route","textHelper","langDbService","styleTag","userSelectedLang","currentLang","appInitMode","afterInitNavigation","scrolled","navUp","lastScrollTop","scrollDelta","navUpThreshold","shiftKeyPressDelta","lastShiftKeyPress","shiftKeyPressCounter","ctrlKeyPressDelta","lastCtrlKeyPress","ctrlKeyPressCounter","isDevMode","configurationModelStr","tenantModelStr","debug","inAppModel","parseWindowLocation","window","location","InAppLaunchedParam","DataParam","undefined","LangParam","doInAppInit","doNormalInit","ngOnInit","loadAllConfigurations","ngAfterViewInit","onWindowScroll","st","body","scrollTop","documentElement","Math","abs","onShiftKeydownHandler","event","t","Date","getTime","d","onCtrlKeydownHandler","useLanguage","language","use","locale","setDefaultLang","local","Locale","check","lang","_onLanguageChanged","allConfigsLoaded","z","_onAllConfigLoaded","set","DeviceToken","Data","DeviceApplicationToken","SecurityToken","ValidUntil","UtcValidUntil","setCurrentUserValue","UserInformation","UserType","UserRoles","updateLanguage","configurationModel","getCurrentConfiguration","ApplicationMode","toUpperCase","tenantModel","getCurrentTenant","StyleKey","removeClass","addClass","osStyleTag","os","toLowerCase","isMobile","isTablet","currentUser","x","appTitle","resolveTranslation","HarbourName","setTitle","GdprConfirmRequired","GdprConfirmed","navigate","IsNorrkopingEnv","ɵɵdirectiveInject","Renderer2","Title","SenchaLocalStorageService","i3","SpinnerService","i4","ConfigurationService","i5","AuthenticationService","i6","i7","InAppService","i8","ThemeSkinService","i9","i10","CookieService","i11","LocalStorageService","i12","DeviceDetectorService","i13","Router","ActivatedRoute","i14","TextHelper","i15","LanguageDbService","selectors","hostBindings","AppComponent_HostBindings","rf","ctx","ɵɵlistener","AppComponent_scroll_HostBindingHandler","ɵɵresolveWindow","AppComponent_keydown_shift_HostBindingHandler","$event","ɵɵresolveDocument","AppComponent_keydown_control_HostBindingHandler","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","_c0","ErrorHandler","RouterModule","CommonModule","registerLocaleData","PathLocationStrategy","HttpClient","HTTP_INTERCEPTORS","provideHttpClient","BrowserModule","BrowserAnimationsModule","MatButtonModule","MatSnackBarModule","MatDialogModule","MAT_DIALOG_DEFAULT_OPTIONS","ToastrModule","NgxSpinnerModule","NgxLocalStorageModule","AvatarModule","AvatarSource","HttpClientInMemoryWebApiModule","InMemProgDataService","TranslateLoader","TranslateModule","TranslateHttpLoader","SizeDetectorComponent","SpinnerComponent","ResizeService","TextService","SidebarService","GoogleMapsModule","LocationStrategy","localeSv","localeNb","localeDa","localeIs","ScrollingModule","avatarSourcesOrder","CUSTOM","INITIALS","VALUE","AppModule","bootstrap","_3","provide","useClass","multi","useValue","imports","forRoot","useHash","delay","passThruUnknownUrl","timeOut","positionClass","preventDuplicates","countDuplicates","loader","useFactory","HttpLoaderFactory","deps","declarations","exports","http","CookieNames","tenant","toTitleCase","theString","seperator","s","parts","split","transforms","substr","push","join","key","k","instant","getTenantText","Texts","tmp","Name","Text","getTenantTextModel","generateUserTypeSummery","user","out","Internal","External","None","generateUserRolesSummery","separator","sep","userRoles","checkForArray","Array","forEach","r","Disabled","User","SuperUser","CustomerAdministrator","ContentAdministrator","InPortExternalApps","GateCustomerReceiver","GateCustomerReceiverAdmin","GateHarbourSecurityOfficer","GateGuard","GateUserAccessCardHolder","EamWorkOrder","MaintenanceRequestor","MaintenanceExternalTechnician","MaintenanceTechnician","MaintenanceManager","AgentPortalShipAgent","AgentPortalShipTerminalOperator","AgentPortalGoodsOwner","AgentPortalPortControl","AgentPortalSteveDoringCo","HarbourVgmAdministrator","VgmCustomer","VgmCustomerAdministrator","WorkOrderDocker","WorkOrderExternal","WorkOrderForeman","WorkOrderHarbourAdministrator","BunkerPortControl","BunkerOperatorAdmin","BunkerOperator","BunkerMobileUser","DockerDocker","DockerExtra","DockerCatering","DockerPlanner","DockerManager","EventEmitter","afterModeChange$","afterModeChange","isCompactMode","emit","distinctUntilChanged","onResize$","resizeSubject","asObservable","getCurrentSize","currentSize","onResize","size","ScreenSize","ɵɵtext","ɵɵclassMap","s_r1","css","ctx_r1","prefix","id","ɵɵtextInterpolate","elementRef","resizeSvc","sizes","XS","SM","MD","LG","XL","detectScreenSize","el","nativeElement","querySelector","isVisible","getComputedStyle","display","ElementRef","SizeDetectorComponent_HostBindings","SizeDetectorComponent_resize_HostBindingHandler","ɵɵtemplate","SizeDetectorComponent_div_1_Template","ɵɵprojection","showSpinner","delayedShow","getData","show","setTimeout","hide","SPINNER_MESSAGE","spinner","NgxSpinnerService","inputs","decls","vars","consts","template","SpinnerComponent_Template","AboutModel","AboutText","ContactName","Email","LogoFileId","Phone","TenantName","Url","AuthenticationBasicRequestModel","username","password","pincode","AuthenticationBasicResponseModel","AuthenticationPrepareResponseModel","ChangePasswordModel","oldPassword","newPassword","newPassword2","ChangePasswordResponseModel","RecoverPasswordResponseModel","GdprConfirmResponseModel","InportAccessAuthDataModel","WebbAppUrl","ReIssueUntil","ConfigurationModel","LoggerMode","UseBinaryPlaceholder","ShowDevFooter","InAppModel","RouteHash","RouteSearch","LoggerMessageModel","TenantModel","init","Version","DefaultLanguage","SupportedLanguages","Licenses","DefaultLatitude","DefaultLongitude","LoginLogoFileId","LoginType","LoginRecoverPasswordType","LoginNumbersOnly","DateFormat","DateTimeFormat","ApplicationTitle","AppBaseUrl","AdminUrl","AdminRoles","Applications","NorrkopingApplications","HomeLinksAnonymus","HomeLinksLoggedin","About","Contact","Object","assign","SubAppModel","Promo","Icon","Color","DisplayText","RouteMode","NavRoute","Route","Roles","faIconColor","UserModel","UserInformationModel","roleCheck","roleChallanger","includes","isInRole","rc","BehaviorSubject","tap","userInfo","UserInfo","securityInfo","_bsCurrentUser","_bsSecurityToken","securityToken","currentUserValue","value","securityTokenValue","securityTokenValueFromLocalStorage","ss","userType","hideNonLeaveMenus","validUntil","enableGateArrivalsMenu","enableWorkOverViewMenu","enableWorkReport","Initials","generateInitials","FirstName","LastName","CustomerId","HideNonLeaveMenus","EnableGateArrivalsMenu","EnableWorkOverViewMenu","EnableWorkReport","Value","fn","ln","o","updateUserValues","model","parse","firstname","lastname","MobilePhone","phonenumber","email","basicLogin","loginUrl","getApiUrl","apiHeaders","getApiHeaders","post","headers","Success","preparePinCodeLogin","verifyPinCodeLogin","put","logout","logoutUrl","delete","logoutSoft","clearAuthenticationInfo","remove","LeaveAndAbsenceFilterData","FuelBookingListFilterModel","FoodMenuTabData","WorkPlanning","getSingleSignOnToken","paramUrl","alert","href","changePassword","changePasswordUrl","recoverPassword","acceptGdprTerms","gdprConfirmUrl","HttpHeaders","timeout","retryWhen","ddService","configurationUrl","_bsAllConfigsLoaded","_bsConfiguration","_bsTenant","_bsDeviceToken","_deviceInfo","configuration","deviceToken","getDeviceInfo","apiFunction","ApiBaseUrl","ConfigurationKey","ApiClientName","getDockerApiUrl","getWorkorderApiUrl","getPipeBookingApiUrl","getGateApiUrl","getApiBinaryUrl","thumbnail","getApiBinaryPlaceholderUrl","contentType","h","getDeviceTokenFromLocalStorage","getSecurityTokenFromLocalStorage","token","hasOwnProperty","getCurrentDeviceToken","getCurrentSecurityToken","getCurrentLanguage","updateFromAuthenticationReponse","authResponse","getTenantConfigurations$","TenantInfo","tmpDeviceToken","tmpSecurityToken","registerApplication$","getDBConfigurationsValues","keys","configValuesUrl","tenantConfigUrl","registerUrl","os_version","faKey","faShip","faClipboardList","faMap","faWrench","faBinoculars","faCogs","faAnchor","faUnlockAlt","faMailBulk","faTools","faUserClock","faRoute","faBox","faBullhorn","faBalanceScaleLeft","faHouseUser","HomeService","translationHelper","_bsNewsItems","_bsApplications","_bsLoggedinLinks","_bsAnonymousLinks","newsItems","applicationLinks","loggedinLinks","anonymousLinks","doFilterCheck","getHomeItems","newsItemsValue","langObj","onLangUpdate","apps","_tapApplications","filter","app","_filterCheck","applicationLinksValue","links","_tapActionLinks","link","anonymousLinksValue","links2","loggedinLinksValue","homeApps","homeItems","item","DisplayHeading","Heading","DisplayInformation","Information","anonLinks","newsItemsUrl","_tapNewsItems","items","FileId","FileUrl","l","indexOf","_mapIcon","faIcon","resolveSubAppRoute","subApp","outNav","_bsInApp","inApp","windowLocation","inAppLaunchedParam","routeHash","hash","routeSearch","search","langParam","dataParam","dataModel","frag","uriParams","params","param","atob","decodeURIComponent","langKey","langChangeUrl","languageKey","Observable","of","devMode","loggerMode","_allMessageCounter","_bsAllMessages","allMessages","_delayedRemoteMessages","_forcedDisabled","_addToAll","_doSendRemoteLog","Message","Type","logType","b","splice","Id","unshift","_log","info","warning","warn","ret","_remoteLog","toPromise","logUrl","_bsTexts","texts","textsValue","fetchTexts","textsUrl","fetchTextByKeys","rendererFactory","_bsDarkMode","_bsAltSkin","darkMode","altSkin","createRenderer","toggleDarkMode","newValue","toggleAltSkin","RendererFactory2","MAT_DIALOG_DATA","ɵɵtextInterpolate1","ctx_r0","ɵɵpipeBind1","ɵɵtextInterpolate2","content","ErrorDialogComponent_Template","ErrorDialogComponent_ng_template_1_Template","ErrorDialogComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","ErrorDialogComponent_p_5_Template","ErrorDialogComponent_p_6_Template","ErrorDialogComponent_pre_7_Template","ErrorDialogComponent_p_8_Template","defaultTitle_r2","SenchaSettingModel","DefaultSecuredArea","InAppLaunched","Key","Language","LocalStoragePath","PushToken","SecurityTokenExpires","SenchaUserInformationModel","Employee","SenchaEmployeeModel","Remark","UserId","UserName","Active","Code","Description","EmployeeGroups","EmployeeTrades","SenchaEmployeeGroupModel","SenchaEmployeeTradeModel","SenchaHeroCarouselItemModel","Category","Changed","Image","LinkDestination","LinkType","SortOrder","homeService","writeSettingsModel","writeHeroCarouselItems","SettingsModel","carouselItems","ids","map","HeroCarouselItem","createDb","requestLeave","reportAbsence","dockerUserInformation","overtimeMealOptions","leaveaAndAbsence","environment","production","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch","err"],"sourceRoot":"webpack:///","x_google_ignoreList":[46]}