{"version":3,"file":"main.js","mappings":"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","sources":["./src/api-authorization/api-authorization.constants.ts","./src/api-authorization/api-authorization.module.ts","./src/api-authorization/authorize.guard.ts","./src/api-authorization/authorize.interceptor.ts","./src/api-authorization/authorize.service.ts","./src/api-authorization/confirmation-popup/confirmation-popup.component.ts","./src/api-authorization/confirmation-popup/confirmation-popup.component.html","./src/api-authorization/confirmation-popup/confirmation-popup.service.ts","./src/api-authorization/login-menu/login-menu.component.ts","./src/api-authorization/login-menu/login-menu.component.html","./src/api-authorization/login/login.component.ts","./src/api-authorization/login/login.component.html","./src/api-authorization/logout/logout.component.ts","./src/api-authorization/logout/logout.component.html","./src/app/_shared/Enums.ts","./src/app/_shared/Utils.ts","./src/app/_shared/camera-snap/camera-snap.component.ts","./src/app/_shared/camera-snap/camera-snap.component.html","./src/app/_shared/change-password/change-password/change-password.component.ts","./src/app/_shared/change-password/change-password/change-password.component.html","./src/app/_shared/common-navigate/common-navigate.component.ts","./src/app/_shared/common-navigate/common-navigate.component.html","./src/app/_shared/directives/context-menu/context-menu.directive.ts","./src/app/_shared/directives/context-menu/context-menu/context-menu.component.ts","./src/app/_shared/directives/context-menu/context-menu/context-menu.component.html","./src/app/_shared/directives/double-click/double-click.directive.ts","./src/app/_shared/file-upload/file-upload.component.ts","./src/app/_shared/file-upload/file-upload.component.html","./src/app/_shared/geo-fencing/geo-fencing.component.ts","./src/app/_shared/geo-fencing/geo-fencing.component.html","./src/app/_shared/geo-map/geo-map.component.ts","./src/app/_shared/geo-map/geo-map.component.html","./src/app/_shared/log-storage.service.ts","./src/app/_shared/notification.service.ts","./src/app/_shared/nz/nz.module.ts","./src/app/_shared/page-header/page-header.component.ts","./src/app/_shared/page-header/page-header.component.html","./src/app/_shared/shared.module.ts","./src/app/_shared/user-menu/user-menu.component.ts","./src/app/_shared/user-menu/user-menu.component.html","./src/app/admin/_entities/PasswordResetModel.ts","./src/app/admin/_services/user.service.ts","./src/app/admin/_services/usersetting.service.ts","./src/app/admin/admin.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/compliance/_entities/Enums.ts","./src/app/compliance/_entities/Form.ts","./src/app/compliance/_state/supplier.state.ts","./src/app/compliance/evbex-common/Utils.ts","./src/app/fulfillment/_state/fullfillment.state.ts","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["export const ApplicationName = 'Evbex.Frp.Web';\r\n\r\nexport const ReturnUrlType = 'returnUrl';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: ReturnUrlType,\r\n Message: 'message',\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out',\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register',\r\n};\r\n\r\nlet applicationPaths: ApplicationPathsType = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `_configuration/${ApplicationName}`,\r\n Login: `authentication/${LoginActions.Login}`,\r\n LoginFailed: `authentication/${LoginActions.LoginFailed}`,\r\n LoginCallback: `authentication/${LoginActions.LoginCallback}`,\r\n Register: `authentication/${LoginActions.Register}`,\r\n Profile: `authentication/${LoginActions.Profile}`,\r\n LogOut: `authentication/${LogoutActions.Logout}`,\r\n LoggedOut: `authentication/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `authentication/${LogoutActions.LogoutCallback}`,\r\n LoginPathComponents: [],\r\n LoginFailedPathComponents: [],\r\n LoginCallbackPathComponents: [],\r\n RegisterPathComponents: [],\r\n ProfilePathComponents: [],\r\n LogOutPathComponents: [],\r\n LoggedOutPathComponents: [],\r\n LogOutCallbackPathComponents: [],\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage',\r\n};\r\n\r\napplicationPaths = {\r\n ...applicationPaths,\r\n LoginPathComponents: applicationPaths.Login.split('/'),\r\n LoginFailedPathComponents: applicationPaths.LoginFailed.split('/'),\r\n RegisterPathComponents: applicationPaths.Register.split('/'),\r\n ProfilePathComponents: applicationPaths.Profile.split('/'),\r\n LogOutPathComponents: applicationPaths.LogOut.split('/'),\r\n LoggedOutPathComponents: applicationPaths.LoggedOut.split('/'),\r\n LogOutCallbackPathComponents: applicationPaths.LogOutCallback.split('/'),\r\n};\r\n\r\ninterface ApplicationPathsType {\r\n readonly DefaultLoginRedirectPath: string;\r\n readonly ApiAuthorizationClientConfigurationUrl: string;\r\n readonly Login: string;\r\n readonly LoginFailed: string;\r\n readonly LoginCallback: string;\r\n readonly Register: string;\r\n readonly Profile: string;\r\n readonly LogOut: string;\r\n readonly LoggedOut: string;\r\n readonly LogOutCallback: string;\r\n readonly LoginPathComponents: string[];\r\n readonly LoginFailedPathComponents: string[];\r\n readonly LoginCallbackPathComponents: string[];\r\n readonly RegisterPathComponents: string[];\r\n readonly ProfilePathComponents: string[];\r\n readonly LogOutPathComponents: string[];\r\n readonly LoggedOutPathComponents: string[];\r\n readonly LogOutCallbackPathComponents: string[];\r\n readonly IdentityRegisterPath: string;\r\n readonly IdentityManagePath: string;\r\n}\r\n\r\nexport const ApplicationPaths: ApplicationPathsType = applicationPaths;\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginMenuComponent } from './login-menu/login-menu.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { LogoutComponent } from './logout/logout.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ApplicationPaths } from './api-authorization.constants';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { SharedModule } from '../app/_shared/shared.module';\r\nimport { AppNgZorroAntdModule } from '../app/_shared/nz/nz.module';\r\nimport { ConfirmationPopupComponent } from './confirmation-popup/confirmation-popup.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n SharedModule,\r\n AppNgZorroAntdModule,\r\n RouterModule.forChild([\r\n { path: ApplicationPaths.Register, component: LoginComponent },\r\n { path: ApplicationPaths.Profile, component: LoginComponent },\r\n { path: ApplicationPaths.Login, component: LoginComponent },\r\n { path: ApplicationPaths.LoginFailed, component: LoginComponent },\r\n { path: ApplicationPaths.LoginCallback, component: LoginComponent },\r\n { path: ApplicationPaths.LogOut, component: LogoutComponent },\r\n { path: ApplicationPaths.LoggedOut, component: LogoutComponent },\r\n { path: ApplicationPaths.LogOutCallback, component: LogoutComponent },\r\n ]),\r\n ],\r\n declarations: [LoginMenuComponent, LoginComponent, LogoutComponent, ConfirmationPopupComponent],\r\n exports: [LoginMenuComponent, LoginComponent, LogoutComponent],\r\n})\r\nexport class ApiAuthorizationModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router,\r\n} from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthorizeService } from './authorize.service';\r\nimport { tap } from 'rxjs/operators';\r\nimport {\r\n ApplicationPaths,\r\n QueryParameterNames,\r\n} from './api-authorization.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthorizeGuard implements CanActivate {\r\n constructor(private authorize: AuthorizeService, private router: Router) {}\r\n canActivate(\r\n _next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean {\r\n return this.authorize\r\n .isAuthenticated()\r\n .pipe(\r\n tap((isAuthenticated) =>\r\n this.handleAuthorization(isAuthenticated, state)\r\n )\r\n );\r\n }\r\n\r\n private handleAuthorization(\r\n isAuthenticated: boolean,\r\n state: RouterStateSnapshot\r\n ) {\r\n if (!isAuthenticated) {\r\n this.router.navigate(ApplicationPaths.LoginPathComponents, {\r\n queryParams: {\r\n [QueryParameterNames.ReturnUrl]: state.url,\r\n },\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthorizeService } from './authorize.service';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthorizeInterceptor implements HttpInterceptor {\r\n constructor(private authorize: AuthorizeService) {}\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return this.authorize.getAccessToken().pipe(mergeMap((token) => this.processRequestWithToken(token, req, next)));\r\n }\r\n\r\n // Checks if there is an access_token available in the authorize service\r\n // and adds it to the request in case it's targeted at the same origin as the\r\n // single page application.\r\n private processRequestWithToken(token: string, req: HttpRequest, next: HttpHandler) {\r\n if (!!token && this.isSameOriginUrl(req)) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n\r\n return next.handle(req);\r\n }\r\n\r\n private isSameOriginUrl(req: any) {\r\n // It's an absolute url with the same origin.\r\n if (req.url.startsWith(`${window.location.origin}/`)) {\r\n return true;\r\n }\r\n\r\n // It's a protocol relative url with the same origin.\r\n // For example: //www.example.com/api/Products\r\n if (req.url.startsWith(`//${window.location.host}/`)) {\r\n return true;\r\n }\r\n\r\n // It's a relative url like /api/Products\r\n if (/^\\/[^\\/].*/.test(req.url)) {\r\n return true;\r\n }\r\n\r\n // It's an absolute or protocol relative url that\r\n // doesn't have the same origin.\r\n return false;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { User, UserManager } from 'oidc-client';\r\nimport { BehaviorSubject, concat, from, Observable } from 'rxjs';\r\nimport { filter, map, mergeMap, take, tap } from 'rxjs/operators';\r\nimport { Tenant, UserProfile } from '../app/_shared/Models';\r\nimport { ApplicationName, ApplicationPaths, ReturnUrlType } from './api-authorization.constants';\r\n\r\nexport type IAuthenticationResult = SuccessAuthenticationResult | FailureAuthenticationResult | RedirectAuthenticationResult;\r\n\r\nexport interface SuccessAuthenticationResult {\r\n status: AuthenticationResultStatus.Success;\r\n state: any;\r\n}\r\n\r\nexport interface FailureAuthenticationResult {\r\n status: AuthenticationResultStatus.Fail;\r\n message: string;\r\n}\r\n\r\nexport interface RedirectAuthenticationResult {\r\n status: AuthenticationResultStatus.Redirect;\r\n}\r\n\r\nexport enum AuthenticationResultStatus {\r\n Success,\r\n Redirect,\r\n Fail,\r\n}\r\n\r\nexport interface IUser {\r\n name?: string;\r\n}\r\n\r\nconst FULL_USER_PROFILE = 'fulluserprofile';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthorizeService {\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n\r\n private popUpDisabled = true;\r\n private userManager: UserManager;\r\n private userSubject: BehaviorSubject = new BehaviorSubject(null);\r\n private baseUrl: string = window.location.origin;\r\n constructor(private http: HttpClient, private activatedRoute: ActivatedRoute, private router: Router) {}\r\n\r\n public isAuthenticated(): Observable {\r\n return this.getUser().pipe(map((u) => !!u));\r\n }\r\n\r\n public getUser(): Observable {\r\n return concat(\r\n this.userSubject.pipe(\r\n take(1),\r\n filter((u) => !!u)\r\n ),\r\n this.getUserFromStorage().pipe(\r\n filter((u) => !!u),\r\n tap((u) => this.userSubject.next(u))\r\n ),\r\n this.userSubject.asObservable()\r\n );\r\n }\r\n\r\n public getAccessToken(): Observable {\r\n return from(this.ensureUserManagerInitialized()).pipe(\r\n mergeMap(() => from(this.userManager.getUser())),\r\n map((user) => user && user.access_token)\r\n );\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n public async signIn(state: any): Promise {\r\n await this.ensureUserManagerInitialized();\r\n let user: User = null;\r\n try {\r\n user = await this.userManager.signinSilent(this.createArguments());\r\n this.userSubject.next(user.profile);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log('Silent authentication error: ', silentError);\r\n\r\n try {\r\n if (this.popUpDisabled) {\r\n throw new Error('Popup disabled. Change \"authorize.service.ts:AuthorizeService.popupDisabled\" to false to enable it.');\r\n }\r\n user = await this.userManager.signinPopup(this.createArguments());\r\n this.userSubject.next(user.profile);\r\n return this.success(state);\r\n } catch (popupError) {\r\n if (popupError.message === 'Popup window closed') {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error('The user closed the window.');\r\n } else if (!this.popUpDisabled) {\r\n console.log('Popup authentication error: ', popupError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log('Redirect authentication error: ', redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public getSessionSetting(): Observable {\r\n return this.http.get(`${this.baseUrl}/api/useractive/getSession`);\r\n }\r\n\r\n public async completeSignIn(url: string): Promise {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.userSubject.next(user && user.profile);\r\n\r\n // Setting userprofile in the local storage\r\n const token = await this.getAccessToken().toPromise();\r\n\r\n const response = await fetch(`/api/userprofile/${user.profile.sub}/getuserprofile`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n if (!response.ok) {\r\n throw new Error(`Could not load User Profile for '${user.profile.sub}'`);\r\n }\r\n const userProfile: UserProfile = await response.json();\r\n localStorage.removeItem(FULL_USER_PROFILE);\r\n localStorage.setItem(FULL_USER_PROFILE, JSON.stringify(userProfile));\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n public async autoLogout() {\r\n // setTimeout(() => {\r\n // console.log(expirationDate);\r\n this.clearFullUserProfile();\r\n let returnUrl = this.getReturnUrl();\r\n const state: INavigationState = { returnUrl};\r\n const isauthenticated = this.isAuthenticated().pipe(take(1)).toPromise();\r\n if (isauthenticated) {\r\n this.signOut(state);\r\n this.navigateToReturnUrl(returnUrl);\r\n }\r\n // }, expirationDate);\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true,\r\n });\r\n }\r\n\r\n public getFullUserProfile(): UserProfile {\r\n return JSON.parse(localStorage.getItem(FULL_USER_PROFILE));\r\n }\r\n\r\n public clearFullUserProfile() {\r\n localStorage.removeItem(FULL_USER_PROFILE);\r\n }\r\n\r\n public async signOut(state: any): Promise {\r\n try {\r\n if (this.popUpDisabled) {\r\n throw new Error('Popup disabled. Change \"authorize.service.ts:AuthorizeService.popupDisabled\" to false to enable it.');\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.userSubject.next(null);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log('Popup signout error: ', popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log('Redirect signout error: ', popupSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n public async completeSignOut(url: string): Promise {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.userSubject.next(null);\r\n return this.success(response && response.state);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n public getCurrentTenant(): Observable {\r\n return this.http.get(`/api/admin/tenant/getcurrenttenant`);\r\n }\r\n\r\n private createArguments(state?: any): any {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n private error(message: string): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n private success(state: any): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n private redirect(): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n private async ensureUserManagerInitialized(): Promise {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n const response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n const settings: any = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.userSubject.next(null);\r\n });\r\n }\r\n\r\n private getUserFromStorage(): Observable {\r\n return from(this.ensureUserManagerInitialized()).pipe(\r\n mergeMap(() => this.userManager.getUser()),\r\n map((u) => u && u.profile)\r\n );\r\n }\r\n\r\n private getReturnUrl(state?: INavigationState): string {\r\n const fromQuery = (this.activatedRoute.snapshot.queryParams as INavigationState).returnUrl;\r\n // If the url is comming from the query string, check that is either\r\n // a relative url or an absolute url\r\n if (fromQuery && !(fromQuery.startsWith(`${window.location.origin}/`) || /\\/[^\\/].*/.test(fromQuery))) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) || fromQuery || ApplicationPaths.LoggedOut;\r\n }\r\n\r\n loginIssueComplain(): Observable {\r\n return this.http.get(`${this.baseUrl}/api/system/TroubleManage/login_failed`,);\r\n }\r\n}\r\n\r\ninterface INavigationState {\r\n [ReturnUrlType]: string;\r\n}\r\n","import { Component, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Confirmation } from './confirmation';\r\nimport { ConfirmationPopupService } from './confirmation-popup.service';\r\n\r\n@Component({\r\n selector: 'confirmation-popup',\r\n templateUrl: './confirmation-popup.component.html',\r\n})\r\nexport class ConfirmationPopupComponent implements OnDestroy {\r\n private CONFIRM_DIALOG_HIGHT = 173;\r\n visible = false;\r\n public isOpened: boolean = false;\r\n public confirmDialogHeight: number = this.CONFIRM_DIALOG_HIGHT;\r\n public confirmation: Confirmation = {} as Confirmation;\r\n private confirmationPopupSubscription = {} as Subscription;\r\n\r\n constructor(private confirmationPopupService: ConfirmationPopupService) {\r\n this.subscribeToToastActivation();\r\n this.visible = true;\r\n }\r\n\r\n hide() {\r\n this.isOpened = false;\r\n }\r\n\r\n accept() {\r\n if (this.confirmation.acceptEvent) {\r\n this.confirmation.acceptEvent.emit();\r\n }\r\n\r\n this.hide();\r\n }\r\n\r\n reject() {\r\n if (this.confirmation.rejectEvent) {\r\n this.confirmation.rejectEvent.emit();\r\n }\r\n\r\n this.hide();\r\n }\r\n\r\n cancel() {\r\n if (this.confirmation.cancelEvent) {\r\n this.confirmation.cancelEvent.emit();\r\n }\r\n this.hide();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.confirmationPopupSubscription.unsubscribe();\r\n }\r\n\r\n private subscribeToToastActivation(): void {\r\n this.confirmationPopupSubscription =\r\n this.confirmationPopupService.confirmationPopup$.subscribe(\r\n (confirmation: Confirmation) => {\r\n if (!confirmation) {\r\n this.hide();\r\n return;\r\n }\r\n\r\n this.confirmation = confirmation;\r\n if (this.confirmation.accept) {\r\n this.confirmation.acceptEvent = new EventEmitter();\r\n this.confirmation.acceptEvent.subscribe(\r\n this.confirmation.accept\r\n );\r\n }\r\n\r\n if (this.confirmation.reject) {\r\n this.confirmation.rejectEvent = new EventEmitter();\r\n this.confirmation.rejectEvent.subscribe(\r\n this.confirmation.reject\r\n );\r\n }\r\n\r\n if (this.confirmation.cancel) {\r\n this.confirmation.cancelEvent = new EventEmitter();\r\n this.confirmation.cancelEvent.subscribe(\r\n this.confirmation.cancel\r\n );\r\n }\r\n this.isOpened = true;\r\n this.adjustWarningHeight(this.confirmation.message);\r\n }\r\n );\r\n }\r\n\r\n private adjustWarningHeight(message?: string): void {\r\n this.confirmDialogHeight = this.CONFIRM_DIALOG_HIGHT;\r\n if (message?.length && message.length > 54) {\r\n this.confirmDialogHeight =\r\n this.confirmDialogHeight + (message.length / 50) * 20;\r\n }\r\n }\r\n}\r\n","\r\n

\r\n {{confirmation?.message}}\r\n

\r\n \r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { Confirmation } from './confirmation';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConfirmationPopupService {\r\n //#region Public declarations\r\n public selection: string = '';\r\n public resultSubject$ = new Subject();\r\n public confirmationPopupSubject$ = new Subject();\r\n public confirmationPopup$ = this.confirmationPopupSubject$.asObservable();\r\n //#endregion\r\n\r\n constructor() {}\r\n\r\n //#region Public methods\r\n public confirm(confirmation: Confirmation) {\r\n this.confirmationPopupSubject$.next(confirmation);\r\n return this;\r\n }\r\n\r\n public warning(confirmation: Confirmation) {\r\n this.confirmationPopupSubject$.next(confirmation);\r\n }\r\n //#endregion\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthorizeService } from '../authorize.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-login-menu',\r\n templateUrl: './login-menu.component.html',\r\n})\r\nexport class LoginMenuComponent implements OnInit {\r\n public isAuthenticated: Observable;\r\n public userName: Observable;\r\n\r\n constructor(private authorizeService: AuthorizeService) {}\r\n\r\n ngOnInit() {\r\n this.isAuthenticated = this.authorizeService.isAuthenticated();\r\n this.userName = this.authorizeService.getUser().pipe(map((u) => u && u.name));\r\n }\r\n}\r\n","
    \r\n
  • \r\n Hello {{ userName | async }}\r\n
  • \r\n
  • \r\n Logout\r\n
  • \r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthorizeService, AuthenticationResultStatus } from '../authorize.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { LoginActions, LogoutActions, QueryParameterNames, ApplicationPaths, ReturnUrlType } from '../api-authorization.constants';\r\nimport { DEFAULT_INTERRUPTSOURCES, Idle } from '@ng-idle/core';\r\nimport { Keepalive } from '@ng-idle/keepalive';\r\nimport { ConfirmationPopupService } from '../confirmation-popup/confirmation-popup.service';\r\nimport { take } from 'rxjs/operators';\r\nimport { LogStorageService } from './../../app/_shared/log-storage.service';\r\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n})\r\nexport class LoginComponent implements OnInit {\r\n isSuccessed: boolean = true;\r\n idleState = 'Not started.';\r\n timedOut = false;\r\n isIdle = false;\r\n lastPing?: Date | null = null;\r\n subscription: Subscription = new Subscription();\r\n\r\n public message = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private authorizeService: AuthorizeService,\r\n private activatedRoute: ActivatedRoute, \r\n private router: Router,\r\n private keepalive: Keepalive,\r\n private idle: Idle,\r\n private confirmationPopupService: ConfirmationPopupService,\r\n private log: LogStorageService,\r\n private notification: NzNotificationService\r\n ) {\r\n this.sessionTimeOutInit(this.getReturnUrl());\r\n }\r\n\r\n async ngOnInit() {\r\n const action = this.activatedRoute.snapshot.url[1];\r\n // this.log.log(action.path);\r\n // const action = { path: 'login-failed' };\r\n switch (action.path) {\r\n case LoginActions.Login:\r\n await this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n await this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n this.isSuccessed = false;\r\n const message = this.activatedRoute.snapshot.queryParamMap.get(QueryParameterNames.Message);\r\n this.message.next(message);\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n this.isSuccessed = false;\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n private async login(returnUrl: string): Promise {\r\n const state: INavigationState = { returnUrl };\r\n const result = await this.authorizeService.signIn(state);\r\n this.message.next(undefined);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n await this.router.navigate(ApplicationPaths.LoginFailedPathComponents, {\r\n queryParams: {\r\n [QueryParameterNames.Message]: result.message,\r\n },\r\n });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${(result as any).status}.`);\r\n }\r\n }\r\n\r\n async logout(): Promise {\r\n const url = window.location.href;\r\n const result = await this.authorizeService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getLogoutUrl());\r\n // await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n await this.navigateToReturnUrl(this.getLogoutUrl());\r\n this.message.next(result.message);\r\n break;\r\n default:\r\n await this.navigateToReturnUrl(this.getLogoutUrl());\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n }\r\n\r\n private async processLoginCallback(): Promise {\r\n const url = window.location.href;\r\n const result = await this.authorizeService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as completeSignIn never redirects.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n this.isSuccessed = true;\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.isSuccessed = false;\r\n this.message.next(result.message);\r\n break;\r\n }\r\n }\r\n\r\n reset() {\r\n this.idle.watch();\r\n this.idleState = 'Started.';\r\n this.timedOut = false;\r\n }\r\n\r\n sessionTimeOutInit(returnurl) {\r\n this.authorizeService.getSessionSetting().subscribe((res) => {\r\n this.idle.setIdle((res.sessionTimeoutInMin - res.sessionTimeoutWarningInMin) * 60);\r\n this.idle.setTimeout(res.sessionTimeoutInMin * 60);\r\n\r\n // this.idle.setIdle(15);\r\n // this.idle.setTimeout(10);\r\n\r\n this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n const idleTimeoutEnd = this.idle.onIdleEnd.subscribe(() => {\r\n this.idleState = 'No longer idle.';\r\n // console.log(this.idleState);\r\n this.reset();\r\n });\r\n\r\n const idleTimeoutSub = this.idle.onTimeout.subscribe(() => {\r\n this.idleState = 'Timed out!';\r\n this.timedOut = true;\r\n this.isIdle = true;\r\n this.confirmationPopupService.confirm({\r\n message: 'Session expired. You will be redirected to login page',\r\n buttonTemplate: 'ok',\r\n accept: () => {\r\n this.authorizeService.completeSignOut(returnurl);\r\n },\r\n cancel: () => {\r\n this.authorizeService.completeSignOut(returnurl);\r\n },\r\n });\r\n });\r\n\r\n const idleStartSub = this.idle.onIdleStart.subscribe(() => {\r\n this.confirmationPopupService.confirm({\r\n message: 'Your session will expire shortly. Click OK button to continue the session.',\r\n buttonTemplate: 'ok',\r\n accept: () => {\r\n this.reset();\r\n this.authorizeService.getAccessToken().subscribe((res) => {\r\n /* this.loginService.setTokens(\r\n res.accessToken,\r\n res.refreshToken\r\n );*/\r\n });\r\n },\r\n });\r\n });\r\n\r\n const timeoutWarningSub = this.idle.onTimeoutWarning.subscribe((countdown) => {\r\n this.idleState = 'You will time out in ' + countdown + ' seconds!';\r\n });\r\n\r\n this.keepalive.interval(15);\r\n const keepalivePingSub = this.keepalive.onPing.subscribe(() => (this.lastPing = new Date()));\r\n\r\n this.reset();\r\n\r\n this.subscription.add(idleTimeoutEnd);\r\n this.subscription.add(idleTimeoutSub);\r\n this.subscription.add(idleStartSub);\r\n this.subscription.add(timeoutWarningSub);\r\n this.subscription.add(keepalivePingSub);\r\n });\r\n }\r\n\r\n private redirectToRegister(): any {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?returnUrl=${encodeURI('/' + ApplicationPaths.Login)}`);\r\n }\r\n\r\n private redirectToProfile(): void {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true,\r\n });\r\n\r\n this.sessionTimeOutInit(returnUrl);\r\n }\r\n\r\n private getReturnUrl(state?: INavigationState): string {\r\n const fromQuery = (this.activatedRoute.snapshot.queryParams as INavigationState).returnUrl;\r\n // If the url is comming from the query string, check that is either\r\n // a relative url or an absolute url\r\n if (fromQuery && !(fromQuery.startsWith(`${window.location.origin}/`) || /\\/[^\\/].*/.test(fromQuery) || fromQuery === '/')) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) || fromQuery || ApplicationPaths.DefaultLoginRedirectPath;\r\n }\r\n\r\n private getLogoutUrl(): string {\r\n return ApplicationPaths.LogOut;\r\n }\r\n\r\n private redirectToApiAuthorizationPath(apiAuthorizationPath: string) {\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser they get sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n loginFailEmail(): void {\r\n this.authorizeService.loginIssueComplain().subscribe(\r\n (res: any) => {\r\n this.notification.success('Success', \"Inform to Admin Successfully!\", { nzPlacement: 'bottomRight' });\r\n },\r\n (err: any) => {\r\n this.notification.error('Success', \"Inform to Admin Failed!\", { nzPlacement: 'bottomRight' });\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\r\ninterface INavigationState {\r\n [ReturnUrlType]: string;\r\n}\r\n","\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n OK\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationResultStatus, AuthorizeService } from '../authorize.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { take } from 'rxjs/operators';\r\nimport { LogoutActions, ApplicationPaths, ReturnUrlType } from '../api-authorization.constants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n public message = new BehaviorSubject(null);\r\n\r\n constructor(private authorizeService: AuthorizeService, private activatedRoute: ActivatedRoute, private router: Router) {}\r\n\r\n async ngOnInit() {\r\n this.authorizeService.clearFullUserProfile();\r\n const action = this.activatedRoute.snapshot.url[1];\r\n switch (action.path) {\r\n case LogoutActions.Logout:\r\n await this.logout(this.getReturnUrl());\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n await this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.message.next('You successfully logged out!');\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n private async logout(returnUrl: string): Promise {\r\n const state: INavigationState = { returnUrl };\r\n const isauthenticated = await this.authorizeService.isAuthenticated().pipe(take(1)).toPromise();\r\n if (isauthenticated) {\r\n const result = await this.authorizeService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.message.next(result.message);\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n } else {\r\n this.message.next('You successfully logged out!');\r\n }\r\n }\r\n\r\n private async processLogoutCallback(): Promise {\r\n const url = window.location.href;\r\n const result = await this.authorizeService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.message.next(result.message);\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true,\r\n });\r\n }\r\n\r\n private getReturnUrl(state?: INavigationState): string {\r\n const fromQuery = (this.activatedRoute.snapshot.queryParams as INavigationState).returnUrl;\r\n // If the url is comming from the query string, check that is either\r\n // a relative url or an absolute url\r\n if (fromQuery && !(fromQuery.startsWith(`${window.location.origin}/`) || /\\/[^\\/].*/.test(fromQuery))) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) || fromQuery || ApplicationPaths.LoggedOut;\r\n }\r\n}\r\n\r\ninterface INavigationState {\r\n [ReturnUrlType]: string;\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Login again\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","export enum CompanyCategory {\r\n Supplier = 0,\r\n PublicBuyer = 10,\r\n PrivateBuyer = 20,\r\n Auditor = 30,\r\n Consultant = 40,\r\n}\r\n\r\nexport enum TenantType {\r\n Buyer = 10,\r\n Supplier = 20,\r\n Auditor = 30,\r\n Consultant = 40,\r\n}\r\n\r\nexport enum RegistrationStatus {\r\n Invited = 10,\r\n Inprogress = 15,\r\n Completed = 20,\r\n Approved = 30,\r\n Rejected = 40,\r\n}\r\n\r\nexport enum UserType {\r\n Admin = 10,\r\n Buyer = 20,\r\n Supplier = 30,\r\n SupplierOperative = 31,\r\n Auditor = 40,\r\n FulfillmentCustomer = 50,\r\n Consultant = 60,\r\n}\r\n\r\nexport enum RequirementCategory {\r\n Group = 10,\r\n SubGroup = 20,\r\n Item = 30,\r\n}\r\n\r\nexport enum RequirementType {\r\n None = 10,\r\n Document = 20,\r\n Narrative = 30,\r\n Sample = 40,\r\n Evidence = 50,\r\n}\r\n\r\nexport enum RequirementPriority {\r\n Low = 10,\r\n Medium = 20,\r\n High = 30,\r\n}\r\n\r\nexport enum RequirementStatus {\r\n New = 10,\r\n Inprogress = 20,\r\n InReview = 30,\r\n ForApproval = 40,\r\n Approved = 50,\r\n Accepted = 60,\r\n Rejected = 70,\r\n}\r\n\r\nexport enum RoleType {\r\n Owner = 10,\r\n Assignee = 20,\r\n Reviewer = 30,\r\n Approver = 40,\r\n Auditor = 50,\r\n Consultant = 60,\r\n}\r\n\r\nexport enum RequirementVisibility {\r\n Public = 10,\r\n Private = 20,\r\n}\r\n\r\nexport enum RequirementClassification {\r\n Plan = 10,\r\n Do = 20,\r\n Check = 30,\r\n Act = 40,\r\n Other = 50,\r\n}\r\n\r\nexport enum AuditorStatus {\r\n NotSet = 0,\r\n Conform = 10,\r\n MinorNonConformance = 20,\r\n MajorNonConformance = 30,\r\n OpportunityForImprovement = 40,\r\n Observation = 50,\r\n}\r\n\r\nexport enum SystemNotificationStatus {\r\n New = 10,\r\n Read = 20,\r\n}\r\n\r\nexport enum SectionType {\r\n TableSection = 10,\r\n GridSection = 20,\r\n}\r\n\r\nexport enum CameraStatus {\r\n PreSnapStage = 10,\r\n ReadySnapStage = 20,\r\n PostSnapStage = 30,\r\n}","import { UserProfile } from './Models';\r\n\r\nexport function getEnumDisplayName(enumValue: string): string {\r\n const result = enumValue.replace(/([A-Z])/g, ' $1');\r\n return result.charAt(0).toUpperCase() + result.slice(1);\r\n}\r\n\r\nexport function getFilesizeInMbs(sizeInBytes: number): number {\r\n return sizeInBytes / (1024 * 1024);\r\n}\r\n\r\nexport function getFileIconByType(fileExtension: string): string {\r\n let fileIconName: string;\r\n switch (fileExtension) {\r\n case '.pdf':\r\n fileIconName = 'file-pdf';\r\n break;\r\n case '.docx':\r\n fileIconName = 'file-word';\r\n break;\r\n case '.xlsx':\r\n fileIconName = 'file-excel';\r\n break;\r\n case '.pptx':\r\n fileIconName = 'file-ppt';\r\n break;\r\n case '.txt':\r\n fileIconName = 'file-text';\r\n break;\r\n case '.zip':\r\n fileIconName = 'file-zip';\r\n break;\r\n case '.jpg':\r\n fileIconName = 'file-image';\r\n break;\r\n case '.png':\r\n fileIconName = 'file-image';\r\n break;\r\n case '.PNG':\r\n fileIconName = 'file-image';\r\n break;\r\n case '.jpeg':\r\n fileIconName = 'file-image';\r\n break;\r\n default:\r\n fileIconName = 'file-unknown';\r\n break;\r\n }\r\n return fileIconName;\r\n}\r\n\r\nexport function getCurrentUser(): UserProfile {\r\n return JSON.parse(localStorage.getItem('fulluserprofile'));\r\n}\r\n\r\nexport function base64ToArrayBuffer(fileContent) {\r\n const binaryString = window.atob(fileContent);\r\n const binaryLen = binaryString.length;\r\n const fileBytes = new Uint8Array(binaryLen);\r\n for (let i = 0; i < binaryLen; i++) {\r\n const ascii = binaryString.charCodeAt(i);\r\n fileBytes[i] = ascii;\r\n }\r\n return fileBytes;\r\n}\r\n\r\nexport function downloadFile(fileResult: any) {\r\n const arrBuffer = base64ToArrayBuffer(fileResult.fileContent);\r\n const newBlob = new Blob([arrBuffer], {\r\n type: fileResult.file.contentType,\r\n });\r\n const navigatorAny: any = navigator;\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (navigatorAny.msSaveOrOpenBlob) {\r\n navigatorAny.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n const fileData = window.URL.createObjectURL(newBlob);\r\n const link = document.createElement('a');\r\n document.body.appendChild(link);\r\n link.href = fileData;\r\n link.download = fileResult.file.originalFileName + fileResult.file.fileExtention;\r\n link.click();\r\n window.URL.revokeObjectURL(fileData);\r\n link.remove();\r\n}\r\n","import { Component, AfterViewInit, OnDestroy, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { CameraStatus } from '../Enums';\r\n\r\n@Component({\r\n selector: 'app-camera-snap',\r\n templateUrl: './camera-snap.component.html',\r\n styleUrls: ['./camera-snap.component.scss'],\r\n})\r\nexport class CameraSnapComponent implements AfterViewInit, OnDestroy {\r\n @Output() pushImage: EventEmitter = new EventEmitter();\r\n cameraRatio: any = { width: 0, height: 0 };\r\n screenRatio: any = { width: 0, height: 0 };\r\n captureStatus: CameraStatus = CameraStatus.PreSnapStage;\r\n\r\n @ViewChild('video')\r\n public video: ElementRef;\r\n @ViewChild('canvas')\r\n public canvas: ElementRef;\r\n\r\n stream: any | null = null;\r\n captures: string | null = null;\r\n error: any[] = [];\r\n isOpenModel: boolean = false;\r\n\r\n constructor() {}\r\n\r\n async ngAfterViewInit(): Promise {}\r\n\r\n async ngOnDestroy(): Promise {\r\n await navigator.mediaDevices.getUserMedia({\r\n video: false,\r\n });\r\n }\r\n\r\n async setupDevices(): Promise {\r\n if (navigator?.mediaDevices && navigator?.mediaDevices?.getUserMedia) {\r\n try {\r\n this.stream = await navigator.mediaDevices.getUserMedia({\r\n video: true,\r\n });\r\n\r\n if (this.stream) {\r\n this.video.nativeElement.srcObject = this.stream;\r\n this.video.nativeElement.play();\r\n this.video.nativeElement.onloadedmetadata = () => {\r\n this.cameraRatio = { width: this.video.nativeElement.videoWidth, height: this.video.nativeElement.videoHeight };\r\n };\r\n this.error = [];\r\n } else {\r\n this.error.push('You have no output video device');\r\n }\r\n } catch (e) {\r\n this.error.push(e);\r\n this.stream = null;\r\n }\r\n }\r\n }\r\n\r\n capture(): void {\r\n this.captureStatus = CameraStatus.PostSnapStage;\r\n this.drawImageToCanvas(this.video.nativeElement);\r\n this.captures = this.canvas.nativeElement.toDataURL('image/png');\r\n\r\n if (this.stream !== null) {\r\n this.stream.getTracks().forEach((track) => track.stop());\r\n this.stream = null;\r\n }\r\n }\r\n\r\n async removeCurrent(): Promise {\r\n this.captures = null;\r\n this.stream = await navigator.mediaDevices.getUserMedia({\r\n video: true,\r\n });\r\n this.video.nativeElement.srcObject = this.stream;\r\n this.video.nativeElement.play();\r\n this.video.nativeElement.onloadedmetadata = () => {\r\n this.cameraRatio = { width: this.video.nativeElement.videoWidth, height: this.video.nativeElement.videoHeight };\r\n };\r\n this.captureStatus = CameraStatus.ReadySnapStage;\r\n }\r\n\r\n drawImageToCanvas(image: any): void {\r\n this.canvas.nativeElement.getContext('2d').drawImage(image, 0, 0, this.cameraRatio.width, this.cameraRatio.height);\r\n }\r\n\r\n getRatioParam(): any {\r\n return this.cameraRatio;\r\n }\r\n\r\n async openModel(): Promise {\r\n this.isOpenModel = true;\r\n this.captureStatus = 20;\r\n await this.setupDevices();\r\n }\r\n\r\n async handleCloseModel(): Promise {\r\n this.isOpenModel = false;\r\n this.captureStatus = 10;\r\n this.captures = null;\r\n\r\n if (this.stream !== null) {\r\n this.stream.getTracks().forEach((track) => track.stop());\r\n this.stream = null;\r\n }\r\n }\r\n\r\n async acceptImage(): Promise {\r\n this.pushImage.emit(this.captures);\r\n this.isOpenModel = false;\r\n this.captureStatus = 10;\r\n this.captures = null;\r\n }\r\n}\r\n","\r\n\r\n\r\n Custom Modal Title\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
{{ err }}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\r\nimport { Observable, Observer } from 'rxjs';\r\nimport { UserService } from '../../../admin/_services/user.service';\r\nimport { UserProfile } from '../../Models';\r\nimport { UserType } from '../../Enums';\r\nimport { getEnumDisplayName } from '../../../compliance/evbex-common/Utils';\r\nimport { UserSettingService } from '../../../admin/_services/usersetting.service';\r\nimport { NotificationService } from '../../notification.service';\r\nimport { FileResult } from '../../../admin/_entities/FileResult';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ApplicationTenant } from '../../../admin/_entities/ApplicationTenant';\r\nimport { Location } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { PasswordResetModel } from '../../../admin/_entities/PasswordResetModel';\r\n\r\n@Component({\r\n selector: 'app-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.css'],\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n @Input() fileList: any;\r\n @Output() documentUpload: EventEmitter = new EventEmitter();\r\n showUserSettingDrawer = false;\r\n acceptedList: string[] = [];\r\n avatarUrl?: any;\r\n loading = false;\r\n userIdentifier: string; // Example initials\r\n userProfilePicture: string | undefined;\r\n userProfile: UserProfile | any = {};\r\n validateForm: UntypedFormGroup;\r\n emailForm: UntypedFormGroup;\r\n modules: string = '';\r\n isSaving = false;\r\n razorViewContent: string;\r\n emailFormVisible = false;\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private msg: NzMessageService,\r\n private activatedRoute: ActivatedRoute,\r\n private userService: UserService,\r\n private userSettingService: UserSettingService,\r\n private notificationService: NotificationService,\r\n private location: Location,\r\n private http: HttpClient,\r\n private router: Router\r\n ) {\r\n this.acceptedList = ['image/png', 'image/jpeg'];\r\n }\r\n /* beforeUpload = (file: File) => {\r\n const fileList: File[] = [];\r\n this.fileList = fileList.concat(file);\r\n this.documentUpload.emit(file);\r\n return false;\r\n };\r\n\r\n private getBase64(img: File, callback: (img: string) => void): void {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => callback(reader.result!.toString()));\r\n reader.readAsDataURL(img);\r\n}\r\n\r\nhandleChange(info: { file: NzUploadFile }): void {\r\n this.getBase64(info.file!.originFileObj!, (img: string) => {\r\n this.loading = false;\r\n this.avatarUrl = img;\r\n });\r\n}*/\r\n\r\n beforeUpload = (file: File, _fileList: NzUploadFile[]): Observable =>\r\n new Observable((observer: Observer) => {\r\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\r\n if (!isJpgOrPng) {\r\n this.msg.error('You can only upload JPG file!');\r\n observer.complete();\r\n return;\r\n }\r\n const isLt2M = file.size! / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n this.msg.error('Image must smaller than 2MB!');\r\n observer.complete();\r\n return;\r\n }\r\n observer.next(isJpgOrPng && isLt2M);\r\n observer.complete();\r\n this.userSettingService.uploadUserProfilePic(this.userProfile.tenantId, this.userProfile.id, this.fileList[0]).subscribe(\r\n (data) => {\r\n this.fileList = [];\r\n this.notificationService.success('User Profile uploaded');\r\n },\r\n (error) => {\r\n this.notificationService.error('Upload failed');\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n private getBase64(img: File, callback: (img: string) => void): void {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => callback(reader.result!.toString()));\r\n reader.readAsDataURL(img);\r\n }\r\n\r\n navigateToResetPassword() {\r\n this.emailFormVisible = true;\r\n }\r\n\r\n handleChange(info: { file: NzUploadFile }): void {\r\n this.getBase64(info.file!.originFileObj!, (img: string) => {\r\n this.loading = false;\r\n this.avatarUrl = img;\r\n });\r\n const fileList: File[] = [];\r\n this.fileList = fileList.concat(info.file!.originFileObj!);\r\n const fileUpload = info.file as any;\r\n }\r\n ngOnInit(): void {\r\n this.validateForm = this.fb.group({\r\n firstName: [null],\r\n surname: [null],\r\n email: [null],\r\n phoneNumber: [null],\r\n designation: [null],\r\n userType: [null],\r\n modules: [null],\r\n });\r\n this.emailForm = this.fb.group({\r\n email: [null],\r\n });\r\n const id = this.activatedRoute.snapshot.paramMap.get('id')?.toString();\r\n if (id) {\r\n this.getActiceUser(id);\r\n }\r\n }\r\n\r\n getActiceUser(userId) {\r\n this.userService.getUserDetails(userId).subscribe(\r\n (user) => {\r\n this.userProfile = user;\r\n this.userProfile.userTypeName = getEnumDisplayName(UserType[this.userProfile.userType]);\r\n\r\n this.userSettingService.getuserProfilePic(this.userProfile.tenantId, this.userProfile.id).subscribe((file: FileResult) => {\r\n if (file !== null) {\r\n //const byteData: Uint8Array = file.fileContent;\r\n const blob = new Blob([file.fileContent], { type: 'image/jpeg' });\r\n //const blobParts: BlobPart[] = [blob];\r\n const fileName = file.file.originalFileName + file.file.fileExtention;\r\n const fileNew = new File([blob], fileName);\r\n this.getBase64(fileNew, (img: string) => {\r\n const imgDataUrl = `data:${file.file.contentType};base64,${file.fileContent}`;\r\n\r\n this.loading = false;\r\n this.avatarUrl = imgDataUrl;\r\n });\r\n }\r\n });\r\n\r\n this.userSettingService.getApplications(this.userProfile.tenantId).subscribe((applicationTenants: ApplicationTenant[]) => {\r\n applicationTenants.forEach((applicationTenant: ApplicationTenant) => {\r\n this.modules = this.modules + applicationTenant.application.applicationName + ', ';\r\n });\r\n this.validateForm.get('modules')?.setValue(this.modules);\r\n });\r\n },\r\n (err) => {\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n setUserProfileData(userProfile: UserProfile) {\r\n if (userProfile) {\r\n this.validateForm.get('firstName')?.setValue(userProfile.firstName);\r\n this.validateForm.get('surname')?.setValue(userProfile.lastName);\r\n this.validateForm.get('email')?.setValue(userProfile.email);\r\n this.validateForm.get('phoneNumber')?.setValue(userProfile.phoneNumber);\r\n this.validateForm.get('designation')?.setValue(userProfile.position);\r\n this.validateForm.get('userType')?.setValue(userProfile.userTypeName);\r\n }\r\n }\r\n\r\n submitForm() {\r\n var model = new PasswordResetModel();\r\n model.email = this.emailForm.get('email')?.value;\r\n model.name = this.userProfile.firstName;\r\n model.profile = this.userProfile;\r\n this.userSettingService.resetPassword(model).subscribe(\r\n (data) => {\r\n this.notificationService.success('Sent an email. Please check');\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.notificationService.failure();\r\n }\r\n );\r\n this.emailFormVisible = false;\r\n }\r\n\r\n closeForm() {\r\n this.emailFormVisible = false;\r\n }\r\n openUserSettingsDetail() {\r\n this.showUserSettingDrawer = true;\r\n this.setUserProfileData(this.userProfile);\r\n }\r\n\r\n closeUserSettingDrawer() {\r\n this.showUserSettingDrawer = false;\r\n }\r\n\r\n updateUserProfileDetail() {\r\n this.userProfile.firstName = this.validateForm.get('firstName')?.value;\r\n this.userProfile.lastName = this.validateForm.get('surname')?.value;\r\n this.userProfile.email = this.validateForm.get('email')?.value;\r\n this.userProfile.phoneNumber = this.validateForm.get('phoneNumber')?.value;\r\n this.userProfile.position = this.validateForm.get('designation')?.value;\r\n\r\n this.userService.updateUserProfile(this.userProfile).subscribe(\r\n (userPrfile: UserProfile) => {\r\n this.userProfile = userPrfile;\r\n this.notificationService.updatingSuccess('User Profile');\r\n this.showUserSettingDrawer = false;\r\n },\r\n (error) => {\r\n this.notificationService.updatingError('User Profile');\r\n console.error(error);\r\n this.showUserSettingDrawer = false;\r\n }\r\n );\r\n }\r\n onBack() {\r\n this.location.back();\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Email Address\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n First Name\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Surname\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Email\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Phone Number\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Designation\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n User Type\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Modules\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Close\r\n \r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UserService } from './../../admin/_services/user.service';\r\nimport { getCurrentUser } from './../../_shared/Utils';\r\nimport { UserType } from '../../_shared/Enums';\r\n\r\n@Component({\r\n selector: 'app-common-navigate',\r\n templateUrl: './common-navigate.component.html',\r\n styleUrls: ['./common-navigate.component.css'],\r\n})\r\nexport class CommonNavigateComponent implements OnInit {\r\n grantedApplications: any[] = [];\r\n userData: any;\r\n isVisible: boolean = true;\r\n blockedURI: string[] = ['/consumer/signup', '/consumer/user-activate', '/consumer/pre-approval', '/consumer/user-registration'];\r\n\r\n showCompanyProfile = true;\r\n hideConnectionUserMangeProfile = true;\r\n showBaseData = true;\r\n onlyModules = false;\r\n idleVisible = false;\r\n screenWidth: number = 0;\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: Event) {\r\n this.screenWidth = window.innerWidth;\r\n }\r\n\r\n constructor(private router: Router, private userService: UserService) {\r\n this.screenWidth = window.innerWidth;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.hideCommonNavigateByURI();\r\n this.getUserApplications();\r\n this.getUserDetails();\r\n }\r\n\r\n getUserDetails(): void {\r\n this.userData = getCurrentUser();\r\n\r\n if (this.userData.userType === UserType.Supplier) {\r\n this.showBaseData = false;\r\n }\r\n\r\n if (this.userData.userType === UserType.SupplierOperative || this.userData.userType === UserType.FulfillmentCustomer) {\r\n this.hideConnectionUserMangeProfile = false;\r\n this.showBaseData = false;\r\n this.onlyModules = true;\r\n this.showCompanyProfile = false;\r\n }\r\n }\r\n\r\n getUserApplications(): void {\r\n this.userService.getUserApplications().subscribe((applications) => {\r\n this.grantedApplications = applications;\r\n });\r\n }\r\n\r\n viewHome(): void {\r\n this.router.navigate(['admin/consumer/home']);\r\n }\r\n\r\n navigateTo(uri: string): void {\r\n this.router.navigate([uri]);\r\n }\r\n\r\n hideCommonNavigateByURI(): void {\r\n const uri = this.router.url;\r\n this.blockedURI.forEach((ele: string) => {\r\n if (uri.includes(ele)) {\r\n this.isVisible = false;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
450; else mobileNavigate\">\r\n \r\n \r\n \r\n
    \r\n
  • User Manuals
  • \r\n
  • \r\n Training Videos\r\n
  • \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
  • Supplier Management
  • \r\n
  • \r\n {{ app.application.applicationName }}\r\n
  • \r\n
  • Company Profile
  • \r\n
  • Manage Users
  • \r\n
  • Manage Sites
  • \r\n
  • Manage Buildings
  • \r\n
  • Manage Asset Categories
  • \r\n
  • Manage Asset Systems
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
    \r\n
  • Home
  • \r\n
  • \r\n
      \r\n
    • Supplier Management
    • \r\n
    • \r\n {{ app.application.applicationName }}\r\n
    • \r\n
    • Company Profile
    • \r\n
    • Manage Users
    • \r\n
    • Manage Sites
    • \r\n
    • Manage Buildings
    • \r\n
    • Manage Asset Categories
    • \r\n
    • Manage Asset Systems
    • \r\n
    \r\n
  • \r\n
  • \r\n
      \r\n
    • User Manuals
    • \r\n
    • Training Videos
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n","import { Directive, ElementRef, HostListener, Input, ComponentFactoryResolver, ViewContainerRef, OnInit } from '@angular/core';\r\nimport { ContextMenuComponent } from './context-menu/context-menu.component'\r\n\r\n@Directive({\r\n selector: '[appContextMenu]'\r\n})\r\nexport class ContextMenuDirective implements OnInit {\r\n @Input() data: any = {};\r\n @Input() contextMenu!: ContextMenuComponent;\r\n\r\n constructor(private elementRef: ElementRef, private viewContainerRef: ViewContainerRef, private resolver: ComponentFactoryResolver) {}\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @HostListener('contextmenu', ['$event'])\r\n onRightClick(event: MouseEvent) {\r\n event.preventDefault();\r\n if (this.contextMenu) {\r\n this.contextMenu.openMenu(event.clientX, event.clientY, this.data);\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, HostListener, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-context-menu',\r\n templateUrl: './context-menu.component.html',\r\n styleUrls: ['./context-menu.component.scss']\r\n})\r\nexport class ContextMenuComponent implements OnInit {\r\n @ViewChild('contextMenu') menuContainer!: ElementRef;\r\n @ViewChild('contextMenuLayer2') menuContainerLayer2!: ElementRef;\r\n @Input() data: any = {};\r\n @Input() contextMenuItems: any = [];\r\n @Output() triggerLogic: EventEmitter = new EventEmitter();\r\n @Output() triggerFunction: EventEmitter = new EventEmitter();\r\n @Output() typeChange: EventEmitter = new EventEmitter();\r\n @Output() copyLogic: EventEmitter = new EventEmitter();\r\n isVisible = false;\r\n position = { x: 0, y: 0 };\r\n positionLayer2 = { x: 0, y: 0 };\r\n step2Selection: number = 0;\r\n \r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n if (this.isVisible && !this.elementRef.nativeElement.contains(event.target)) {\r\n this.closeMenu();\r\n }\r\n }\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n toggleItem(item: any): void {\r\n item.expanded = !item.expanded;\r\n }\r\n\r\n openMenu(x: number, y: number, data: any) {\r\n this.isVisible = true;\r\n this.data = data;\r\n\r\n setTimeout(() => {\r\n if (this.menuContainer && this.menuContainer.nativeElement) {\r\n const viewportWidth = window.innerWidth;\r\n const viewportHeight = window.innerHeight;\r\n\r\n const menuWidth = 192; // this.menuContainer.nativeElement.offsetWidth\r\n const menuHeight = 80; // this.menuContainer.nativeElement.offsetHeight\r\n\r\n if (x + menuWidth > viewportWidth) {\r\n x = viewportWidth - menuWidth;\r\n }\r\n if (y + menuHeight > viewportHeight) {\r\n y = viewportHeight - menuHeight;\r\n }\r\n\r\n this.position = { x, y };\r\n }\r\n else {\r\n this.position = { x, y };\r\n }\r\n });\r\n }\r\n\r\n openMenuLayer2(x: number, y: number) {\r\n setTimeout(() => {\r\n if (this.menuContainer && this.menuContainer.nativeElement) {\r\n const viewportWidth = window.innerWidth;\r\n const viewportHeight = window.innerHeight;\r\n\r\n let menuWidth = 192; // this.menuContainer.nativeElement.offsetWidth\r\n let menuHeight = 0; // this.menuContainer.nativeElement.offsetHeight\r\n\r\n if (this.step2Selection === 1) {\r\n menuHeight = 44;\r\n } else if (this.step2Selection === 2) {\r\n menuHeight = 332;\r\n }\r\n\r\n if (x + menuWidth > viewportWidth) {\r\n x = viewportWidth - menuWidth;\r\n }\r\n if (y + menuHeight > viewportHeight) {\r\n y = viewportHeight - menuHeight;\r\n }\r\n\r\n this.positionLayer2 = { x, y };\r\n }\r\n else {\r\n this.positionLayer2 = { x, y };\r\n }\r\n });\r\n }\r\n\r\n hoverElement(item: any, event: MouseEvent, clientWidth: any) {\r\n this.step2Selection = item;\r\n let eTarget: any = event.target;\r\n let x = this.position.x + clientWidth;\r\n let y = this.position.y + eTarget['offsetTop'];\r\n\r\n setTimeout(() => {\r\n if (this.menuContainerLayer2 && this.menuContainerLayer2.nativeElement) {\r\n const viewportWidth = window.innerWidth;\r\n const viewportHeight = window.innerHeight;\r\n\r\n let menuWidth = 192; // this.menuContainer.nativeElement.offsetWidth\r\n let menuHeight = 0; // this.menuContainer.nativeElement.offsetHeight\r\n\r\n if (this.step2Selection === 1) {\r\n menuHeight = 44;\r\n } else if (this.step2Selection === 2) {\r\n menuHeight = 332;\r\n }\r\n\r\n if (x + menuWidth > viewportWidth) {\r\n x = viewportWidth - menuWidth;\r\n }\r\n if (y + menuHeight > viewportHeight) {\r\n y = viewportHeight - menuHeight;\r\n }\r\n\r\n this.positionLayer2 = { x, y };\r\n }\r\n else {\r\n this.positionLayer2 = { x, y };\r\n }\r\n });\r\n }\r\n\r\n calculatePosition(x: number, y: number, container: ElementRef): { x: number; y: number } {\r\n const viewportWidth = window.innerWidth;\r\n const viewportHeight = window.innerHeight;\r\n\r\n const menuWidth = container.nativeElement.offsetWidth;\r\n const menuHeight = container.nativeElement.offsetHeight;\r\n\r\n if (x + menuWidth > viewportWidth) {\r\n x = viewportWidth - menuWidth;\r\n }\r\n if (y + menuHeight > viewportHeight) {\r\n y = viewportHeight - menuHeight;\r\n }\r\n\r\n return { x, y };\r\n }\r\n\r\n closeMenu(): void {\r\n this.isVisible = false;\r\n this.step2Selection = 0;\r\n }\r\n\r\n triggerLogics(): void {\r\n this.triggerLogic.emit(this.data);\r\n this.closeMenu();\r\n }\r\n\r\n triggerFunctions(): void {\r\n this.triggerFunction.emit(this.data);\r\n this.closeMenu();\r\n }\r\n\r\n typeChanges(id: any): void {\r\n this.data.informationResponseTypeId = id;\r\n this.typeChange.emit(this.data);\r\n this.closeMenu();\r\n }\r\n\r\n triggerCopyLogic(): void {\r\n this.copyLogic.emit();\r\n this.closeMenu();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n Logics \r\n \r\n \r\n Field Types \r\n \r\n \r\n Functions \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Open Logics\r\n 0\" (click)=\"triggerCopyLogic()\">Copy Logic\r\n
\r\n
\r\n {{dt.description}}\r\n
\r\n
\r\n Open Functions\r\n
\r\n
\r\n
","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDoubleClick]'\r\n})\r\nexport class DoubleClickDirective {\r\n @Output() doubleClick = new EventEmitter();\r\n\r\n private clickCount = 0;\r\n private clickTimeout: any;\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: MouseEvent): void {\r\n this.clickCount++;\r\n\r\n if (this.clickCount === 1) {\r\n this.clickTimeout = setTimeout(() => {\r\n this.clickCount = 0;\r\n }, 300);\r\n } else if (this.clickCount === 2) {\r\n clearTimeout(this.clickTimeout);\r\n this.clickCount = 0;\r\n this.doubleClick.emit(event);\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n})\r\nexport class FileUploadComponent {\r\n @Input() documentCategory;\r\n @Input() fileList: any;\r\n @Output() documentUpload: EventEmitter = new EventEmitter();\r\n\r\n acceptedList: string[] = [];\r\n constructor() {\r\n this.acceptedList = [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n '.doc',\r\n '.docx',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n '.csv',\r\n '.xlsx',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.ms-powerpoint',\r\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\r\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\r\n '.mp4',\r\n ];\r\n }\r\n\r\n beforeUpload = (file: File) => {\r\n const fileList: File[] = [];\r\n this.fileList = fileList.concat(file);\r\n this.documentUpload.emit(file);\r\n return false;\r\n };\r\n}\r\n","\r\n \r\n","import * as tt from '@tomtom-international/web-sdk-maps';\r\nimport { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\r\nimport * as turf from '@turf/turf';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-geo-fencing',\r\n templateUrl: './geo-fencing.component.html',\r\n styleUrls: ['./geo-fencing.component.css']\r\n})\r\nexport class GeoFencingComponent implements AfterViewInit{\r\n\r\n constructor(private httpClient: HttpClient){\r\n }\r\n @ViewChild('mapContainer') mapContainer!: ElementRef;\r\n title = 'tomtom-geofence';\r\n map!: tt.Map; // Declare map here\r\n ngAfterViewInit(): void{\r\n this.map = tt.map({\r\n key: 'bPRmAICW0IswNY1qsT8pNzX0uuwXuWWU',\r\n container: this.mapContainer.nativeElement,\r\n zoom: 5,\r\n center: [-1.286389, 36.817223],\r\n });\r\n \r\n this.map.addControl(new tt.FullscreenControl()); \r\n this.map.addControl(new tt.NavigationControl()); \r\n\r\n this.map.on('click', (event) => {\r\n const position = event.lngLat;\r\n const URL = `https://api.tomtom.com/geofencing/1/projects/70803407-8569-4d72-a548-86b8c9b5e878/fence?key=NVMmQGlhqferpMQinQjP9yZUX06e27Ar&adminKey=0lYXcCBLqK60Ar0PrXCLDXBRbvKP8m4jIU1C7pLTlzgF6Hsk`;\r\n const payload = {\r\n name: `Our location ${Math.floor(Math.random() * 100)}`,\r\n type: 'Feature',\r\n geometry: {\r\n radius: 85,\r\n type: 'Point',\r\n shapeType: 'Circle',\r\n coordinates: [position.lat, position.lng],\r\n }\r\n }\r\n\r\n this.httpClient.post(URL, payload).subscribe((result) => {\r\n let _center = turf.point([position.lng, position.lat]);\r\n let _redius = 45;\r\n let _options = {};\r\n let _circle = turf.circle(_center, _redius, _options);\r\n this.map.addSource('circlularFence', {\r\n type: 'geojson',\r\n data: _circle,\r\n });\r\n this.map.addLayer({\r\n id: 'circle-fill',\r\n type: 'fill',\r\n source: 'circularFence',\r\n paint: {\r\n 'fill-color' : 'blue',\r\n 'fill-opacity': 0.5\r\n }\r\n })\r\n })\r\n });\r\n}\r\n}","
","import { Component, EventEmitter, OnInit, OnChanges, OnDestroy, Input, Output } from '@angular/core';\r\nimport * as Leaflet from 'leaflet';\r\n\r\nLeaflet.Icon.Default.imagePath = 'assets/leaflet/';\r\n\r\n@Component({\r\n selector: 'app-geo-map',\r\n templateUrl: './geo-map.component.html',\r\n styleUrls: ['./geo-map.component.css'],\r\n})\r\nexport class GeoMapComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() inputGeoLocation: any;\r\n @Output() outputGeoLocation: EventEmitter = new EventEmitter();\r\n longitude: number = -0.118092;\r\n latitude: number = 51.509865;\r\n\r\n map!: Leaflet.Map;\r\n markers: Leaflet.Marker[] = [];\r\n options = {\r\n layers: [\r\n Leaflet.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\r\n attribution: '© OpenStreetMap',\r\n }),\r\n ],\r\n zoom: 16,\r\n center: { lat: 51.509865, lng: -0.118092 },\r\n };\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(): void {\r\n this.addMark(this.inputGeoLocation.lat, this.inputGeoLocation.lng);\r\n this.longitude = this.inputGeoLocation.lng;\r\n this.latitude = this.inputGeoLocation.lat;\r\n this.moveToLocation(this.inputGeoLocation.lat, this.inputGeoLocation.lng);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.longitude = -0.118092;\r\n this.latitude = 51.509865;\r\n }\r\n\r\n generateMarker(data: any, index: number) {\r\n return Leaflet.marker(data.position, { draggable: data.draggable })\r\n .on('click', (event) => this.markerClicked(event, index))\r\n .on('dragend', (event) => this.markerDragEnd(event, index));\r\n }\r\n\r\n onMapReady($event: Leaflet.Map) {\r\n this.map = $event;\r\n // this.initMarkers();\r\n }\r\n\r\n mapClicked($event: any) {\r\n if ($event.latlng.lat >= -90 && $event.latlng.lat <= 90) {\r\n this.latitude = $event.latlng.lat;\r\n } else if ($event.latlng.lat < -90) {\r\n this.latitude = -90;\r\n } else if ($event.latlng.lat > 90) {\r\n this.latitude = 90;\r\n }\r\n\r\n if ($event.latlng.lng >= -180 && $event.latlng.lng <= 180) {\r\n this.longitude = $event.latlng.lng;\r\n } else if ($event.latlng.lng < -180) {\r\n this.longitude = -180;\r\n } else if ($event.latlng.lng > 180) {\r\n this.longitude = 180;\r\n }\r\n\r\n const dt = `{\r\n \"lng\": ${this.longitude},\r\n \"lat\": ${this.latitude}\r\n }`;\r\n this.outputGeoLocation.emit(JSON.parse(dt));\r\n\r\n this.addMark(this.latitude, this.longitude);\r\n }\r\n\r\n addMark(lat: number, lng: number) {\r\n const data = {\r\n position: { lat: lat, lng: lng },\r\n draggable: true,\r\n };\r\n\r\n if (this.markers[0]) {\r\n this.map.removeLayer(this.markers[0]);\r\n this.markers.pop();\r\n }\r\n\r\n const marker = this.generateMarker(data, 0);\r\n marker.addTo(this.map).bindPopup(`${data.position.lat}, ${data.position.lng}`);\r\n this.markers.push(marker);\r\n }\r\n\r\n markerClicked($event: any, index: number) {\r\n // \r\n }\r\n\r\n markerDragEnd($event: any, index: number) {\r\n // \r\n }\r\n\r\n moveToLocation(lat: number, lng: number) {\r\n this.map.setView([lat, lng], 16);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n

Longitude: {{ longitude }}

\r\n

Latitude: {{ latitude }}

\r\n
\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogStorageService {\r\n constructor() { }\r\n\r\n readFile(): string {\r\n let val: string = localStorage.getItem(\"log\") || \"\";\r\n\r\n if(val === \"\"){\r\n return val;\r\n } else {\r\n return atob(val);\r\n }\r\n }\r\n\r\n writeFile(data: string): void {\r\n localStorage.setItem(\"log\", btoa(data));\r\n }\r\n\r\n log(text: string): any {\r\n let currentVal: string = this.readFile();\r\n\r\n let newVal: string = \"\";\r\n if(currentVal === \"\"){\r\n newVal = text;\r\n } else {\r\n newVal = currentVal + \"\\n\\n\" + text;\r\n }\r\n\r\n this.writeFile(newVal);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationService {\r\n constructor(private notification: NzNotificationService) {}\r\n\r\n success(message: string) {\r\n this.notification.success('Success', message, { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n error(message: string) {\r\n this.notification.error('Error', message, { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n failure() {\r\n this.notification.error('Failure', 'Operation failed, please retry or contact support', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n loadingError() {\r\n this.notification.error('Error', 'There was an error loading data please retry.', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n entityLoadingError(entityName: string) {\r\n this.notification.error('Error', `There was an error loading ${entityName} please retry.`, { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n savingSuccess(entityName: string) {\r\n this.notification.success(entityName, 'Successfully saved', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n savingError(entityName: string) {\r\n this.notification.error(entityName, 'There was an error saving data please retry.', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n updatingSuccess(entityName: string) {\r\n this.notification.success(entityName, 'Successfully updated', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n updatingError(entityName: string) {\r\n this.notification.error(entityName, 'There was an error updating data please retry.', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n updloadingFileSucess(entityName: string) {\r\n this.notification.success(entityName, 'Successfully uploaded', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n uploadingFileError(entityName: string) {\r\n this.notification.error(entityName, 'There was an error uploading file please retry.', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n fileExceededError(size: number) {\r\n this.notification.error('Error', `Maximum allowed file size is ${size} Mb, please reduce the file size and try again.`, { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n deletingSuccess(entityName: string) {\r\n this.notification.success(entityName, 'Successfully deleted', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n deletingError(entityName: string) {\r\n this.notification.error(entityName, 'There was an error deleting data please retry.', { nzPlacement: 'bottomRight' });\r\n }\r\n\r\n information(title: string, description: string) {\r\n this.notification.info(title, description, { nzPlacement: 'bottomRight' });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { NzAffixModule } from 'ng-zorro-antd/affix';\r\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\r\nimport { NzAnchorModule } from 'ng-zorro-antd/anchor';\r\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\r\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\r\nimport { NzBackTopModule } from 'ng-zorro-antd/back-top';\r\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\r\nimport { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzCalendarModule } from 'ng-zorro-antd/calendar';\r\nimport { NzCardModule } from 'ng-zorro-antd/card';\r\nimport { NzCarouselModule } from 'ng-zorro-antd/carousel';\r\nimport { NzCascaderModule } from 'ng-zorro-antd/cascader';\r\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\r\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\r\nimport { NzCommentModule } from 'ng-zorro-antd/comment';\r\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\r\nimport { NzTransButtonModule } from 'ng-zorro-antd/core/trans-button';\r\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzDescriptionsModule } from 'ng-zorro-antd/descriptions';\r\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\r\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\r\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\r\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\r\nimport { NzFormModule } from 'ng-zorro-antd/form';\r\nimport { NzGridModule } from 'ng-zorro-antd/grid';\r\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzImageModule } from 'ng-zorro-antd/image';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzLayoutModule } from 'ng-zorro-antd/layout';\r\nimport { NzListModule } from 'ng-zorro-antd/list';\r\nimport { NzMentionModule } from 'ng-zorro-antd/mention';\r\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\r\nimport { NzMessageModule } from 'ng-zorro-antd/message';\r\nimport { NzModalModule } from 'ng-zorro-antd/modal';\r\nimport { NzNotificationModule } from 'ng-zorro-antd/notification';\r\nimport { NzPageHeaderModule } from 'ng-zorro-antd/page-header';\r\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\r\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\r\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\r\nimport { NzProgressModule } from 'ng-zorro-antd/progress';\r\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\r\nimport { NzRateModule } from 'ng-zorro-antd/rate';\r\nimport { NzResultModule } from 'ng-zorro-antd/result';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\r\nimport { NzSliderModule } from 'ng-zorro-antd/slider';\r\nimport { NzSpaceModule } from 'ng-zorro-antd/space';\r\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\r\nimport { NzStatisticModule } from 'ng-zorro-antd/statistic';\r\nimport { NzStepsModule } from 'ng-zorro-antd/steps';\r\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\r\nimport { NzTableModule } from 'ng-zorro-antd/table';\r\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\r\nimport { NzTagModule } from 'ng-zorro-antd/tag';\r\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\r\nimport { NzTimelineModule } from 'ng-zorro-antd/timeline';\r\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\r\nimport { NzTransferModule } from 'ng-zorro-antd/transfer';\r\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\r\nimport { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';\r\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\r\nimport { NzUploadModule } from 'ng-zorro-antd/upload';\r\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\r\n\r\n@NgModule({\r\n exports: [\r\n NzAffixModule,\r\n NzAlertModule,\r\n NzAnchorModule,\r\n NzAutocompleteModule,\r\n NzAvatarModule,\r\n NzBackTopModule,\r\n NzBadgeModule,\r\n NzButtonModule,\r\n NzBreadCrumbModule,\r\n NzCalendarModule,\r\n NzCardModule,\r\n NzCarouselModule,\r\n NzCascaderModule,\r\n NzCheckboxModule,\r\n NzCollapseModule,\r\n NzCommentModule,\r\n NzDatePickerModule,\r\n NzDescriptionsModule,\r\n NzDividerModule,\r\n NzDrawerModule,\r\n NzDropDownModule,\r\n NzEmptyModule,\r\n NzFormModule,\r\n NzGridModule,\r\n NzI18nModule,\r\n NzIconModule,\r\n NzImageModule,\r\n NzInputModule,\r\n NzInputNumberModule,\r\n NzLayoutModule,\r\n NzListModule,\r\n NzMentionModule,\r\n NzMenuModule,\r\n NzMessageModule,\r\n NzModalModule,\r\n NzNoAnimationModule,\r\n NzNotificationModule,\r\n NzPageHeaderModule,\r\n NzPaginationModule,\r\n NzPopconfirmModule,\r\n NzPopoverModule,\r\n NzProgressModule,\r\n NzRadioModule,\r\n NzRateModule,\r\n NzResultModule,\r\n NzSelectModule,\r\n NzSkeletonModule,\r\n NzSliderModule,\r\n NzSpaceModule,\r\n NzSpinModule,\r\n NzStatisticModule,\r\n NzStepsModule,\r\n NzSwitchModule,\r\n NzTableModule,\r\n NzTabsModule,\r\n NzTagModule,\r\n NzTimePickerModule,\r\n NzTimelineModule,\r\n NzToolTipModule,\r\n NzTransButtonModule,\r\n NzTransferModule,\r\n NzTreeModule,\r\n NzTreeSelectModule,\r\n NzTypographyModule,\r\n NzUploadModule,\r\n NzWaveModule,\r\n NzResizableModule,\r\n ],\r\n})\r\nexport class AppNgZorroAntdModule {}\r\n","import { Location } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-header',\r\n templateUrl: './page-header.component.html',\r\n styleUrls: [],\r\n})\r\nexport class PageHeaderComponent {\r\n @Input() title: string;\r\n @Input() subTitle: string;\r\n\r\n constructor(private location: Location) {}\r\n\r\n onBack() {\r\n this.location.back();\r\n }\r\n}\r\n","\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LeafletModule } from '@asymmetrik/ngx-leaflet';\r\nimport { PageHeaderComponent } from './page-header/page-header.component';\r\nimport { FileUploadComponent } from './file-upload/file-upload.component';\r\nimport { UserMenuComponent } from './user-menu/user-menu.component';\r\nimport { AppNgZorroAntdModule } from './nz/nz.module';\r\nimport { CommonNavigateComponent } from './common-navigate/common-navigate.component';\r\nimport { GeoMapComponent } from './geo-map/geo-map.component';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ChangePasswordComponent } from './change-password/change-password/change-password.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { GeoFencingComponent } from './geo-fencing/geo-fencing.component';\r\nimport { DoubleClickDirective } from './directives/double-click/double-click.directive';\r\nimport { ContextMenuDirective } from './directives/context-menu/context-menu.directive';\r\nimport { ContextMenuComponent } from './directives/context-menu/context-menu/context-menu.component';\r\nimport { CameraSnapComponent } from './camera-snap/camera-snap.component';\r\n\r\nconst routes: Routes = [\r\n // {\r\n // path: '',\r\n // component: SharedBaseLayoutComponent,\r\n // children: [\r\n // {\r\n // path: 'usersetting/:id',\r\n // component: ChangePasswordComponent,\r\n // },\r\n // ],\r\n // },\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n PageHeaderComponent, \r\n FileUploadComponent, \r\n UserMenuComponent,\r\n CommonNavigateComponent, \r\n GeoMapComponent, \r\n ChangePasswordComponent, \r\n GeoFencingComponent, \r\n DoubleClickDirective, \r\n ContextMenuDirective, \r\n ContextMenuComponent, \r\n CameraSnapComponent,\r\n ],\r\n imports: [\r\n AppNgZorroAntdModule, \r\n CommonModule, \r\n LeafletModule,\r\n FormsModule, \r\n ReactiveFormsModule, \r\n RouterModule.forChild(routes),\r\n ],\r\n exports: [\r\n PageHeaderComponent,\r\n UserMenuComponent, \r\n FileUploadComponent, \r\n CommonNavigateComponent, \r\n GeoMapComponent, \r\n GeoFencingComponent, \r\n DoubleClickDirective, \r\n ContextMenuDirective, \r\n ContextMenuComponent,\r\n CameraSnapComponent,\r\n ],\r\n})\r\nexport class SharedModule { }\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UserProfile } from '../Models';\r\nimport { UserService } from '../../admin/_services/user.service';\r\nimport { FileResult } from '../../admin/_entities/FileResult';\r\nimport { UserSettingService } from '../../admin/_services/usersetting.service';\r\n\r\n@Component({\r\n selector: 'app-user-menu',\r\n templateUrl: './user-menu.component.html',\r\n styleUrls: ['./user-menu.component.css']})\r\nexport class UserMenuComponent implements OnInit {\r\n @Input() userProfile: UserProfile;\r\n\r\n userInitials: string;\r\n avatarUrl?: any;\r\n loading = false;\r\n showInitials = false;\r\n constructor(private router: Router, private userService: UserService, private userSettingService: UserSettingService) {}\r\n\r\n ngOnInit(): void {\r\n this.userService.getUserDetails(this.userProfile.userIdentifier).subscribe((user) => {\r\n this.userProfile = user;\r\n });\r\n this.userSettingService.getuserProfilePic(this.userProfile.tenantId, this.userProfile.id).subscribe(\r\n (file: FileResult) => {\r\n if (file !== null) {\r\n //const byteData: Uint8Array = file.fileContent;\r\n const blob = new Blob([file.fileContent], { type: 'image/jpeg' });\r\n //const blobParts: BlobPart[] = [blob];\r\n const fileName = file.file.originalFileName + file.file.fileExtention;\r\n const fileNew = new File([blob], fileName);\r\n this.getBase64(fileNew, (img: string) => {\r\n const imgDataUrl = `data:${file.file.contentType};base64,${file.fileContent}`;\r\n this.showInitials = false;\r\n this.loading = false;\r\n this.avatarUrl = imgDataUrl;\r\n });\r\n } else {\r\n this.showInitials = true;\r\n }\r\n },\r\n (error: any) => {\r\n console.error(error);\r\n }\r\n );\r\n if (this.userProfile.lastName !== null) {\r\n this.userInitials = this.userProfile.firstName.charAt(0).toUpperCase() + this.userProfile.lastName.charAt(0).toUpperCase();\r\n } else {\r\n this.userInitials = this.userProfile.firstName.charAt(0).toUpperCase();\r\n }\r\n }\r\n\r\n private getBase64(img: File, callback: (img: string) => void): void {\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => callback(reader.result!.toString()));\r\n reader.readAsDataURL(img);\r\n }\r\n onLogout() {\r\n this.router.navigate(['/authentication/logout']);\r\n }\r\n\r\n viewUserSetting(id) {\r\n this.router.navigate(['/admin/consumer/usersetting', id]);\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n
\r\n
{{ userProfile.firstName }} {{ userProfile.lastName }}
\r\n
{{ userProfile.email }}
\r\n \r\n User Setting\r\n \r\n \r\n Logout\r\n \r\n
\r\n
\r\n
\r\n","import { UserProfile } from \"../../_shared/Models\";\r\n\r\nexport class PasswordResetModel {\r\n email: string;\r\n name: string;\r\n profile: UserProfile;\r\n }","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ActivateViewModel, UserProfile } from '../../_shared/Models';\r\nimport { Application } from '../_entities/Application';\r\nimport { ApplicationUser } from '../_entities/ApplicationUser';\r\nimport { FileResult } from '../_entities/FileResult';\r\nimport { KeyTenantModel } from '../_entities/KeyTenantModel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserService {\r\n private baseUrl: string = window.location.origin;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getUserToActivate(userId: string): Observable {\r\n return this.http.get(`${this.baseUrl}/api/useractive/getusertoactivate/${userId}`);\r\n }\r\n\r\n activateUser(model: ActivateViewModel): Observable {\r\n return this.http.put(`${this.baseUrl}/api/useractive/activate`, model);\r\n }\r\n\r\n grantApplicationAccess(userIdentifier: string, applicationId: number): Observable {\r\n return this.http.post(`${this.baseUrl}/api/admin/user/${userIdentifier}/grantaccess/${applicationId}`, '');\r\n }\r\n\r\n revokeApplicationAccess(userIdentifier: string, applicationId: number): Observable {\r\n return this.http.post(`${this.baseUrl}/api/admin/user/${userIdentifier}/revokeaccess/${applicationId}`, '');\r\n }\r\n\r\n getApplicationsByUser(userId: number): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/getapplicationsbyuser/${userId}`);\r\n }\r\n\r\n getUserApplications(): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/getuserapplications`);\r\n }\r\n\r\n getAvailableApplications(userId: number): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/getavailableapplications/${userId}`);\r\n }\r\n\r\n saveUser(userProfile: UserProfile): Observable {\r\n return this.http.post(`${this.baseUrl}/api/admin/user`, userProfile);\r\n }\r\n\r\n getUserDetails(userId: string): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/getuserdetail/${userId}`);\r\n }\r\n checkIsCustomer(keyTenants: KeyTenantModel): Observable {\r\n return this.http.post(`${this.baseUrl}/api/fulfillment/baseData/checkiscustomer`, keyTenants);\r\n }\r\n\r\n getBuyerImportedFile(): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/getbuyerfile`);\r\n }\r\n\r\n getCustomerImportedFile(): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/getcustomerfile`);\r\n }\r\n\r\n\r\n adminNotificationretRetrieve(id: number): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/${id}/tenderNotificationRetrieve`);\r\n }\r\n\r\n adminNotificationretRetrieveById(id: number): Observable {\r\n return this.http.get(`${this.baseUrl}/api/admin/user/${id}/tenderNotificationById`);\r\n }\r\n\r\n adminNotificationMarkAsRead(id: number): Observable {\r\n return this.http.put(`${this.baseUrl}/api/admin/user/${id}/markAsRead`, '');\r\n }\r\n updateUserProfile(userProfile: UserProfile): Observable {\r\n return this.http.put(`${this.baseUrl}/api/admin/user/update`, userProfile);\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { FileResult } from \"../_entities/FileResult\";\r\nimport { ApplicationTenant } from \"../_entities/ApplicationTenant\";\r\nimport { PasswordResetModel } from \"../_entities/PasswordResetModel\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\n export class UserSettingService {\r\n private baseUrl: string = window.location.origin + '/api/admin/usersetting';\r\n \r\n constructor(private http: HttpClient) {}\r\n\r\n uploadUserProfilePic(tenantId: number, userId: number, file: any): Observable {\r\n const formData: FormData = new FormData();\r\n formData.append('fileListForm', file as any);\r\n return this.http.post(`${this.baseUrl}/${tenantId}/${userId}/uploaduserprofilepic`, formData);\r\n }\r\n\r\n getuserProfilePic(tenantId: number, userId: number): Observable {\r\n return this.http.get(`${this.baseUrl}/${tenantId}/${userId}/getuserprofile`);\r\n }\r\n\r\n getApplications(tenantId: number): Observable {\r\n return this.http.get(`${this.baseUrl}/${tenantId}/getmodules`);\r\n }\r\n\r\n resetPassword(model: PasswordResetModel): Observable {\r\n return this.http.post(window.location.origin + '/api/admin/user/resetPassword', model);\r\n }\r\n }\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { SharedModule } from '../_shared/shared.module';\r\nimport { AppNgZorroAntdModule } from '../_shared/nz/nz.module';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n AppNgZorroAntdModule,\r\n RouterModule.forChild([\r\n {\r\n path: 'super',\r\n loadChildren: () => import('./super-admin/super-admin.module').then((m) => m.SuperAdminModule),\r\n },\r\n {\r\n path: 'consumer',\r\n loadChildren: () => import('./consumer/consumer.module').then((m) => m.ConsumerModule),\r\n },\r\n {\r\n path: 'supplier-management',\r\n loadChildren: () => import('./supplier-management/supplier-management.module').then((m) => m.SupplierManagementModule),\r\n },\r\n ]),\r\n ],\r\n})\r\nexport class AdminModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthorizeService } from '../api-authorization/authorize.service';\r\nimport { BnNgIdleService } from 'bn-ng-idle';\r\nimport { ApplicationPaths } from '../api-authorization/api-authorization.constants';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'app';\r\n idleVisible = false;\r\n isLogin = false;\r\n\r\n constructor(private bnIdle: BnNgIdleService, private authorizeService: AuthorizeService, private router: Router) {}\r\n\r\n ngOnInit(): void {\r\n // 30 minutes to time out\r\n this.bnIdle.startWatching(1800).subscribe((res) => {\r\n if (this.router.url == '/' + ApplicationPaths.LoggedOut) {\r\n this.isLogin = true;\r\n }\r\n if (res && !this.isLogin) {\r\n this.idleVisible = true;\r\n }\r\n });\r\n }\r\n\r\n accept() {\r\n this.authorizeService.autoLogout();\r\n this.idleVisible = false;\r\n }\r\n}\r\n","\r\n\r\n

\r\n Session expired! Please click OK to log in again!\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { en_US, NZ_I18N } from 'ng-zorro-antd/i18n';\r\nimport { ApiAuthorizationModule } from '../api-authorization/api-authorization.module';\r\nimport { AuthorizeGuard } from '../api-authorization/authorize.guard';\r\nimport { AuthorizeInterceptor } from '../api-authorization/authorize.interceptor';\r\nimport { AdminModule } from './admin/admin.module';\r\nimport { AppComponent } from './app.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { SharedModule } from './_shared/shared.module';\r\nimport { AppNgZorroAntdModule } from './_shared/nz/nz.module';\r\nimport { APP_BASE_HREF, DatePipe } from '@angular/common';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\r\nimport { NgxsModule } from '@ngxs/store';\r\nimport { NgxsResetPluginModule } from 'ngxs-reset-plugin';\r\nimport { NgxsEmitPluginModule } from '@ngxs-labs/emitter';\r\nimport { NgxsFormPluginModule } from '@ngxs/form-plugin';\r\nimport { SupplierState } from './compliance/_state/supplier.state';\r\nimport { NgxsReduxDevtoolsPluginModule } from '@ngxs/devtools-plugin';\r\nimport { FullfillementState } from './fulfillment/_state/fullfillment.state';\r\nimport { Keepalive, NgIdleKeepaliveModule } from '@ng-idle/keepalive';\r\nimport { Idle, NgIdleModule } from '@ng-idle/core';\r\nimport { BnNgIdleService } from 'bn-ng-idle'; // import bn-ng-idle service\r\n// import { AppLayoutModule } from './kpi/layout/app.layout.module';\r\n// import { AppLayoutComponent } from './kpi/layout/app.layout.component';\r\n\r\n@NgModule({\r\n declarations: [AppComponent, HomeComponent],\r\n imports: [\r\n AdminModule,\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n FormsModule,\r\n AppNgZorroAntdModule,\r\n BrowserAnimationsModule,\r\n NgIdleModule.forRoot(),\r\n NgIdleKeepaliveModule.forRoot(),\r\n ApiAuthorizationModule,\r\n SharedModule,\r\n RouterModule.forRoot(\r\n [\r\n {\r\n path: '',\r\n component: HomeComponent,\r\n pathMatch: 'full',\r\n canActivate: [AuthorizeGuard],\r\n },\r\n {\r\n path: 'admin',\r\n loadChildren: () => import('./admin/admin.module').then((m) => m.AdminModule),\r\n },\r\n {\r\n path: 'tender',\r\n loadChildren: () => import('./tender/tender.module').then((m) => m.TenderModule),\r\n },\r\n {\r\n path: 'compliance',\r\n loadChildren: () => import('./compliance/compliance.module').then((m) => m.ComplianceModule),\r\n },\r\n {\r\n path: 'certification',\r\n loadChildren: () => import('./certification/certification.module').then((m) => m.CertificationModule),\r\n },\r\n {\r\n path: 'fulfillment',\r\n loadChildren: () => import('./fulfillment/fulfillment.module').then((m) => m.FulfillmentModule),\r\n },\r\n {\r\n path: 'kpi',\r\n loadChildren: () => import('./kpi/kpi.module').then((m) => m.KpiModule),\r\n },\r\n {\r\n path: 'contract',\r\n loadChildren: () => import('./contract/contract.module').then((m) => m.ContractModule),\r\n },\r\n ],\r\n { relativeLinkResolution: 'legacy' }\r\n ),\r\n ServiceWorkerModule.register('ngsw-worker.js', {\r\n enabled: environment.production,\r\n // Register the ServiceWorker as soon as the app is stable\r\n // or after 30 seconds (whichever comes first).\r\n registrationStrategy: 'registerWhenStable:30000',\r\n }),\r\n NgxsModule.forRoot([SupplierState, FullfillementState], {\r\n developmentMode: !environment.production,\r\n }),\r\n NgxsResetPluginModule.forRoot(),\r\n NgxsEmitPluginModule.forRoot(),\r\n NgxsStoragePluginModule.forRoot(),\r\n NgxsFormPluginModule.forRoot(),\r\n NgxsReduxDevtoolsPluginModule.forRoot({ disabled: environment.production }),\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthorizeInterceptor,\r\n multi: true,\r\n },\r\n { provide: NZ_I18N, useValue: en_US },\r\n // { provide: APP_BASE_HREF, useValue: '/Identity/Account/Login?ReturnUrl=%2'},\r\n DatePipe,\r\n Idle,\r\n Keepalive,\r\n BnNgIdleService,\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","export enum UserCategory {\r\n Buyer = 10,\r\n Supplier = 20,\r\n}\r\n\r\nexport enum CommentType {\r\n SiteScheduleOccurrenceComment = 10,\r\n BuildingScheduleOccurrenceComment = 20,\r\n AssetScheduleOccurrenceComment = 30,\r\n}\r\n\r\nexport enum CompanyCategory {\r\n Unspecified = 0,\r\n Public = 10,\r\n Private = 20,\r\n}\r\n\r\nexport enum Frequency {\r\n Daily = 10,\r\n Weekly = 20,\r\n BiWeekly = 40,\r\n EveryThreeWeeks = 60,\r\n Monthly = 80,\r\n BiMonthly = 160,\r\n Quaterly = 240,\r\n SixMonthly = 360,\r\n BiAnnually = 480,\r\n Annually = 960,\r\n ThirtySixMonthly = 970,\r\n SixtyMonthly = 980,\r\n OneHundredTwentyMonthly = 990,\r\n}\r\n\r\nexport enum ScheduleType {\r\n Statutory = 10,\r\n Mandatory = 20,\r\n Discretionary = 30,\r\n}\r\n\r\nexport enum EntityType {\r\n Asset = 10,\r\n Schedule = 20,\r\n WorkOrder = 30,\r\n Activity = 40,\r\n Building = 50,\r\n ScheduleOccurrence = 60,\r\n Message = 70,\r\n Operative = 80,\r\n AssetSchedule = 90,\r\n Site = 100,\r\n AssetScheduleOccurrence = 110,\r\n BuildingScheduleOccurrence = 120,\r\n SiteScheduleOccurrence = 130,\r\n BuildingSchedule = 140,\r\n SiteSchedule = 150,\r\n TaskSchedule = 160,\r\n ImportedFile = 170,\r\n}\r\n\r\nexport enum ServiceType {\r\n Landscaping = 10,\r\n WindowCleaning = 20,\r\n Cleaning = 30,\r\n Security = 40,\r\n PostManagement = 50,\r\n WasteManagement = 60,\r\n Catering = 70,\r\n CarParking = 80,\r\n}\r\n\r\nexport enum FileCategory {\r\n Report = 10,\r\n RiskAssessment = 20,\r\n MethodStatement = 30,\r\n Manual = 40,\r\n OperatingProcedure = 50,\r\n ActivityReport = 60,\r\n ActivityInvoice = 70,\r\n AssetList = 80,\r\n ScheduleOccurrenceInvoice = 90,\r\n ScheduleOccurrenceCertificate = 100,\r\n ScheduleOccurrenceQuatation = 110,\r\n ScheduleOccurrenceManualDocuments = 115,\r\n MessageAttachment = 120,\r\n VettingForm = 130,\r\n ActivityPocedure = 140,\r\n ImportActivitiesList = 150,\r\n ImportTaskList = 160,\r\n ImportBuildingActivitiesList = 185,\r\n ImportSiteActivitiesList = 195,\r\n ActionDoc = 200,\r\n ActionCommentDoc = 210\r\n}\r\n\r\nexport enum ActivityStatus {\r\n Planned = 10,\r\n Inprogress = 20,\r\n Completed = 30,\r\n Cancelled = 40,\r\n}\r\n\r\nexport enum ActivityType {\r\n Scheduled = 10,\r\n UnScheduled = 20,\r\n}\r\n\r\nexport enum AssetState {\r\n NotSet = 0,\r\n Active = 10,\r\n Inactive = 20,\r\n Decommissioned = 30,\r\n}\r\n\r\nexport enum Tenure {\r\n Freehold = 10,\r\n Leasehold = 20,\r\n}\r\n\r\nexport enum ScheduleOccurrenceStatus {\r\n Scheduled = 10,\r\n InProgress = 20,\r\n Completed = 30,\r\n Approved = 40,\r\n Confirmed = 50,\r\n Accepted = 60,\r\n Rejected = 70,\r\n ReportsPending = 80,\r\n Rescheduled = 90,\r\n}\r\n\r\nexport enum ScheduleStatus {\r\n Undefined = 0,\r\n Inprogress = 10,\r\n ReportsPending = 20,\r\n Compliant = 30,\r\n NonCompliant = 40,\r\n}\r\n\r\nexport enum OccurrenceEntityType {\r\n AssetScheduleOccurrence = 10,\r\n BuildingScheduleOccurrence = 20,\r\n SiteScheduleOccurrence = 30,\r\n}\r\n\r\nexport enum MessageType {\r\n AssetScheduleMessage = 10,\r\n BuildingScheduleMessage = 20,\r\n SiteScheduleMessage = 30,\r\n}\r\n\r\nexport enum ScheduleFMType {\r\n Default = 0,\r\n HardFM = 10,\r\n SoftFM = 20,\r\n}\r\n\r\nexport interface EnumVm {\r\n value: any;\r\n name: string;\r\n}\r\n\r\nexport enum BuildingFacilityType {\r\n Office = 10,\r\n Commercial = 20,\r\n DataCentre = 30,\r\n Miscellaneous = 40,\r\n Retail = 50,\r\n Industrial = 60,\r\n Residential = 70,\r\n HotelAndLeisure = 80,\r\n Healthcare = 90,\r\n Learning = 100,\r\n PublicBuildings = 110,\r\n}\r\n\r\nexport enum BulkOperationItemStatus {\r\n Success = 10,\r\n Error = 20,\r\n NoAction = 30,\r\n}\r\n\r\nexport enum VettingStatus {\r\n Pending = 10,\r\n Approved = 20,\r\n Rejected = 30,\r\n}\r\n\r\nexport enum InductionStatus {\r\n New = 10,\r\n Approved = 20,\r\n}\r\n\r\nexport enum OperativeType {\r\n Internal = 10,\r\n External = 20,\r\n}\r\n\r\nexport enum ApplicationType {\r\n Common = 10,\r\n Compliance = 20,\r\n Task = 30,\r\n}\r\n\r\nexport enum ScheduleCategory {\r\n Activity = 10,\r\n Task = 20,\r\n}\r\n\r\nexport enum SyncTypes {\r\n StartBuildingJob = 10,\r\n CompleteBuildingJob = 20,\r\n BuildingDocumentStaging = 30,\r\n UpdateOccurance = 40,\r\n BuildingUploadQuotation = 50,\r\n BuildingUploadCertificate = 60,\r\n BuildingUploadInvoice = 70,\r\n BuildingSendMessages = 80,\r\n StartSiteJob = 90,\r\n UploadActivityProcedure = 100,\r\n SiteDocumentStaging = 110,\r\n SiteUploadQuotation = 120,\r\n UpdateSiteOccurance = 130,\r\n SiteUploadCertificate = 140,\r\n SiteUploadInvoice = 150,\r\n CompleteSiteJob = 160,\r\n SiteSendMessages = 170,\r\n startAssetJob = 180,\r\n AssetSendMessage = 190,\r\n AssetDocumentStaging = 200,\r\n AssetUploadQuotation = 210,\r\n UpdateAssetOccurance = 220,\r\n AssetUploadCertificate = 230,\r\n AssetUploadInvoice = 240,\r\n}\r\n","export class BaseFormData {\r\n dirty?: boolean;\r\n status?: string;\r\n errors?: object;\r\n disabled?: boolean;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { EmitterAction, Receiver } from '@ngxs-labs/emitter';\r\nimport { Selector, State, StateContext } from '@ngxs/store';\r\nimport { ApplicationUser } from 'src/app/admin/_entities/ApplicationUser';\r\nimport { EntityType } from 'src/app/admin/_entities/Enums';\r\nimport { AssetScheduleFileResult } from '../_entities/AssetScheduleFileResult';\r\nimport { AssetScheduleOccurence } from '../_entities/AssetScheduleOccurrence';\r\nimport { SupplierScheduleResult } from '../_entities/AssetScheduleResult';\r\nimport { BuildingScheduleFileResult } from '../_entities/BuildingScheduleFileResult';\r\nimport { BuildingScheduleOccurence } from '../_entities/BuildingScheduleOccurrence';\r\nimport { ScheduleOccurrenceStatus, SyncTypes } from '../_entities/Enums';\r\nimport { BaseFormData } from '../_entities/Form';\r\nimport { SiteScheduleFileResult } from '../_entities/SiteScheduleFileResult';\r\nimport { SiteScheduleOccurence } from '../_entities/SiteScheduleOccurrence';\r\n\r\nconst updateBuildingScheduleOccurance = (buildingScheduleOccurances, payload) => {\r\n let updated = false;\r\n for (const counter in buildingScheduleOccurances) {\r\n if (buildingScheduleOccurances[counter].scheduleId === payload.scheduleId) {\r\n updated = true;\r\n buildingScheduleOccurances[counter].scheduleId = payload.scheduleId;\r\n buildingScheduleOccurances[counter].result = payload.result;\r\n break;\r\n }\r\n }\r\n return [buildingScheduleOccurances, updated];\r\n};\r\n\r\nconst manageMessages = (ocmessages: any[], payload: any) => {\r\n if (ocmessages && ocmessages.length > 0) {\r\n let updated = false;\r\n for (const counter in ocmessages) {\r\n if (ocmessages[counter].scheduleOccuranceId === payload.scheduleOccuranceId) {\r\n updated = true;\r\n ocmessages[counter].message.push(payload.message);\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n ocmessages.push({\r\n scheduleOccuranceId: payload.scheduleOccuranceId,\r\n message: [payload.message],\r\n });\r\n }\r\n }\r\n return ocmessages;\r\n};\r\n\r\nclass BuildingScheduleOccuranceFormModel extends BaseFormData {\r\n model?: any;\r\n}\r\n\r\nexport class BuildingScheduleItem {\r\n buildingId: number;\r\n result: BuildingScheduleFileResult;\r\n}\r\n\r\nexport class BuildingScheduleOccuranceItem {\r\n scheduleId: number;\r\n result: BuildingScheduleOccurence[];\r\n}\r\n\r\nexport class SiteScheduleOccuranceItem {\r\n scheduleId: number;\r\n result: SiteScheduleOccurence[];\r\n}\r\n\r\nexport interface BuildingScheduleMessageItem {\r\n scheduleOccuranceId: number;\r\n message: any;\r\n}\r\n\r\nexport interface SiteScheduleMessageItem {\r\n scheduleOccuranceId: number;\r\n message: any;\r\n}\r\n\r\nexport interface AssetScheduleMessageItem {\r\n scheduleOccuranceId: number;\r\n message: any;\r\n}\r\n\r\nexport interface ActivityprocedureItem {\r\n scheduleId: number;\r\n entity: EntityType;\r\n file: any;\r\n}\r\n\r\nexport interface AssetScheduleFileResultItem {\r\n buildingId: number;\r\n fileResults: AssetScheduleFileResult;\r\n}\r\n\r\nexport interface AssetScheduleOccurenceItem {\r\n scheduleId: number;\r\n result: AssetScheduleOccurence[];\r\n}\r\n\r\nexport interface SupplierStateModel {\r\n buildingScheduleOccuranceFormModel?: BuildingScheduleOccuranceFormModel;\r\n buildingScheduleOccurence?: BuildingScheduleOccurence;\r\n assetScheduleOccurances?: AssetScheduleOccurenceItem[];\r\n assetScheduleList?: SupplierScheduleResult;\r\n siteScheduleList?: SiteScheduleFileResult;\r\n buildingSchedules?: BuildingScheduleItem[];\r\n buildingScheduleOccurances?: BuildingScheduleOccuranceItem[];\r\n siteScheduleOccurances?: SiteScheduleOccuranceItem[];\r\n syncDueJobs?: any[];\r\n buildingScheduleMessages?: BuildingScheduleMessageItem[];\r\n siteScheduleMessages?: SiteScheduleMessageItem[];\r\n assetScheduleMessages?: AssetScheduleMessageItem[];\r\n userApplications?: ApplicationUser[];\r\n activityProcedures?: ActivityprocedureItem[];\r\n assetScheduleFileResults?: AssetScheduleFileResultItem[];\r\n}\r\n\r\nexport interface BuildingScheduleUpdatePayload {\r\n scheduleId: number;\r\n buildingScheduleId: number;\r\n schedule: BuildingScheduleOccurence;\r\n}\r\nexport interface SiteScheduleUpdatePayload {\r\n scheduleId: number;\r\n siteScheduleId: number;\r\n schedule: SiteScheduleOccurence;\r\n}\r\n\r\n@State({\r\n name: 'supplier',\r\n defaults: {\r\n buildingScheduleOccuranceFormModel: { model: null },\r\n buildingScheduleOccurence: null,\r\n assetScheduleOccurances: [],\r\n assetScheduleList: null,\r\n siteScheduleList: null,\r\n buildingSchedules: [],\r\n buildingScheduleOccurances: [],\r\n siteScheduleOccurances: [],\r\n syncDueJobs: [],\r\n buildingScheduleMessages: [],\r\n userApplications: [],\r\n assetScheduleFileResults: [],\r\n assetScheduleMessages: [],\r\n siteScheduleMessages: []\r\n },\r\n})\r\n@Injectable()\r\nexport class SupplierState {\r\n @Receiver()\r\n public static setBuildingScheduleOccuranceForm({ patchState }: StateContext, { payload }: EmitterAction) {\r\n if (payload) {\r\n patchState({\r\n buildingScheduleOccuranceFormModel: {\r\n model: payload,\r\n },\r\n });\r\n } else {\r\n patchState({\r\n buildingScheduleOccuranceFormModel: { model: null },\r\n });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static setUserApplications({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n patchState({ ...state, userApplications: payload });\r\n }\r\n\r\n @Receiver()\r\n public static setBuildingSchedules({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let buildingSchedules = [...state.buildingSchedules];\r\n if (buildingSchedules && buildingSchedules.length > 0) {\r\n let updated = false;\r\n for (const counter in buildingSchedules) {\r\n if (buildingSchedules[counter].buildingId === payload.buildingId) {\r\n updated = true;\r\n buildingSchedules[counter].buildingId = payload.buildingId;\r\n buildingSchedules[counter].result = payload.result;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n buildingSchedules.push(payload);\r\n }\r\n } else {\r\n buildingSchedules = [payload];\r\n }\r\n patchState({ ...state, buildingSchedules: buildingSchedules });\r\n }\r\n\r\n @Receiver()\r\n public static setAssetScheduleFileResult({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let assetScheduleFileResults: AssetScheduleFileResultItem[] = [];\r\n if (state.assetScheduleFileResults) {\r\n assetScheduleFileResults = JSON.parse(JSON.stringify(state.assetScheduleFileResults));\r\n }\r\n if (assetScheduleFileResults && assetScheduleFileResults.length > 0) {\r\n let updated = false;\r\n for (const counter in assetScheduleFileResults) {\r\n if (assetScheduleFileResults[counter].buildingId === payload.buildingId) {\r\n updated = true;\r\n assetScheduleFileResults[counter].buildingId = payload.buildingId;\r\n assetScheduleFileResults[counter].fileResults = payload.fileResults;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n assetScheduleFileResults.push(payload);\r\n }\r\n } else {\r\n assetScheduleFileResults = [payload];\r\n }\r\n patchState({ ...state, assetScheduleFileResults: assetScheduleFileResults });\r\n }\r\n\r\n @Receiver()\r\n public static setActivityProcedure(\r\n { patchState, getState }: StateContext,\r\n { payload }: EmitterAction\r\n ) {\r\n const state = getState();\r\n let activityProcedures: ActivityprocedureItem[] = [];\r\n if (state.activityProcedures) {\r\n activityProcedures = JSON.parse(JSON.stringify(state.activityProcedures));\r\n }\r\n if (activityProcedures && activityProcedures.length > 0) {\r\n let updated = false;\r\n for (const counter in activityProcedures) {\r\n if (activityProcedures[counter].scheduleId === payload.scheduleId && activityProcedures[counter].entity === payload.entity) {\r\n updated = true;\r\n activityProcedures[counter].file = payload.file;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n activityProcedures.push(payload);\r\n }\r\n } else {\r\n activityProcedures = [payload];\r\n }\r\n patchState({ ...state, activityProcedures: activityProcedures });\r\n }\r\n\r\n @Receiver()\r\n public static setBuildingScheduleMessage(\r\n { patchState, getState }: StateContext,\r\n { payload }: EmitterAction\r\n ) {\r\n const state = getState();\r\n let messages: any[] = [];\r\n if (state.buildingScheduleMessages !== undefined) {\r\n messages = JSON.parse(JSON.stringify(state.buildingScheduleMessages));\r\n }\r\n if (messages && messages.length > 0) {\r\n let updated = false;\r\n for (const counter in messages) {\r\n if (messages[counter].scheduleOccuranceId === payload.scheduleOccuranceId) {\r\n updated = true;\r\n messages[counter].message = payload.message;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n messages.push(payload);\r\n }\r\n } else {\r\n messages = [payload];\r\n }\r\n patchState({ ...state, buildingScheduleMessages: messages });\r\n }\r\n\r\n @Receiver()\r\n public static setSiteScheduleMessage({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let messages: any[] = [];\r\n if (state.siteScheduleMessages !== undefined) {\r\n messages = JSON.parse(JSON.stringify(state.siteScheduleMessages));\r\n }\r\n if (messages && messages.length > 0) {\r\n let updated = false;\r\n for (const counter in messages) {\r\n if (messages[counter].scheduleOccuranceId === payload.scheduleOccuranceId) {\r\n updated = true;\r\n messages[counter].message = payload.message;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n messages.push(payload);\r\n }\r\n } else {\r\n messages = [payload];\r\n }\r\n patchState({ ...state, siteScheduleMessages: messages });\r\n }\r\n\r\n @Receiver()\r\n public static setAssetScheduleMessage({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let messages: any[] = [];\r\n if (state.assetScheduleMessages !== undefined) {\r\n messages = JSON.parse(JSON.stringify(state.assetScheduleMessages));\r\n }\r\n if (messages && messages.length > 0) {\r\n let updated = false;\r\n for (const counter in messages) {\r\n if (messages[counter].scheduleOccuranceId === payload.scheduleOccuranceId) {\r\n updated = true;\r\n messages[counter].message = payload.message;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n messages.push(payload);\r\n }\r\n } else {\r\n messages = [payload];\r\n }\r\n patchState({ ...state, assetScheduleMessages: messages });\r\n }\r\n\r\n @Receiver()\r\n public static setBuildingScheduleMessageItem(\r\n { patchState, getState }: StateContext,\r\n { payload }: EmitterAction\r\n ) {\r\n const state = getState();\r\n let ocmessages: any[] = [];\r\n if (state.buildingScheduleMessages !== undefined) {\r\n ocmessages = JSON.parse(JSON.stringify(state.buildingScheduleMessages));\r\n }\r\n if (ocmessages && ocmessages.length > 0) {\r\n let updated = false;\r\n for (const counter in ocmessages) {\r\n if (ocmessages[counter].scheduleOccuranceId === payload.scheduleOccuranceId) {\r\n updated = true;\r\n ocmessages[counter].message.push(payload.message);\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n ocmessages.push({\r\n scheduleOccuranceId: payload.scheduleOccuranceId,\r\n message: [payload.message],\r\n });\r\n }\r\n }\r\n patchState({ ...state, buildingScheduleMessages: ocmessages });\r\n }\r\n\r\n @Receiver()\r\n public static setSyncDueJob({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let jobs = [];\r\n const buildingScheduleOccurances = JSON.parse(JSON.stringify(state.buildingScheduleOccurances));\r\n jobs = JSON.parse(JSON.stringify(state.syncDueJobs));\r\n let ocmessages: any[] = [];\r\n if (state.buildingScheduleMessages !== undefined && payload.type === SyncTypes.BuildingSendMessages) {\r\n ocmessages = JSON.parse(JSON.stringify(state.buildingScheduleMessages));\r\n }\r\n if (state.buildingScheduleMessages !== undefined && payload.type === SyncTypes.SiteSendMessages) {\r\n ocmessages = JSON.parse(JSON.stringify(state.siteScheduleMessages));\r\n }\r\n if (state.assetScheduleMessages !== undefined && payload.type === SyncTypes.AssetSendMessage) {\r\n ocmessages = JSON.parse(JSON.stringify(state.assetScheduleMessages));\r\n }\r\n jobs.push(payload);\r\n if (payload.type === SyncTypes.BuildingSendMessages || payload.type === SyncTypes.SiteSendMessages || payload.type === SyncTypes.AssetSendMessage) {\r\n ocmessages = manageMessages(ocmessages, payload);\r\n }\r\n if (payload.type === SyncTypes.BuildingSendMessages) {\r\n patchState({ ...state, syncDueJobs: jobs, buildingScheduleOccurances: buildingScheduleOccurances, buildingScheduleMessages: ocmessages });\r\n } else if (payload.type === SyncTypes.SiteSendMessages) {\r\n patchState({ ...state, syncDueJobs: jobs, buildingScheduleOccurances: buildingScheduleOccurances, siteScheduleMessages: ocmessages });\r\n } else if (payload.type === SyncTypes.AssetSendMessage) {\r\n patchState({ ...state, syncDueJobs: jobs, buildingScheduleOccurances: buildingScheduleOccurances, assetScheduleMessages: ocmessages });\r\n } else {\r\n patchState({ ...state, syncDueJobs: jobs, buildingScheduleOccurances: buildingScheduleOccurances });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static updateOccuranceStatus({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n const buildingScheduleOccurances = JSON.parse(JSON.stringify(state.buildingScheduleOccurances));\r\n for (const scheduleCount in buildingScheduleOccurances) {\r\n if (buildingScheduleOccurances[scheduleCount].result) {\r\n for (const occuranceCount in buildingScheduleOccurances[scheduleCount].result) {\r\n if (buildingScheduleOccurances[scheduleCount].result[occuranceCount].id === Number(payload.scheduleOccuranceId)) {\r\n buildingScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatus = payload.status;\r\n buildingScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatusName = ScheduleOccurrenceStatus[payload.status];\r\n }\r\n }\r\n }\r\n }\r\n patchState({ ...state, buildingScheduleOccurances: buildingScheduleOccurances });\r\n }\r\n\r\n @Receiver()\r\n public static updateSiteOccuranceStatus({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let siteScheduleOccurances = [];\r\n let syncJobs = [];\r\n if (state.siteScheduleOccurances) {\r\n siteScheduleOccurances = JSON.parse(JSON.stringify(state.siteScheduleOccurances));\r\n }\r\n if (state.syncDueJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncDueJobs));\r\n }\r\n for (const scheduleCount in siteScheduleOccurances) {\r\n if (siteScheduleOccurances[scheduleCount].result) {\r\n for (const occuranceCount in siteScheduleOccurances[scheduleCount].result) {\r\n if (siteScheduleOccurances[scheduleCount].result[occuranceCount].id === Number(payload.scheduleOccuranceId)) {\r\n siteScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatus = payload.status;\r\n siteScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatusName = ScheduleOccurrenceStatus[payload.status];\r\n syncJobs.push({\r\n type: SyncTypes.StartSiteJob,\r\n scheduleOccuranceId: payload.scheduleOccuranceId,\r\n category: payload.category\r\n });\r\n }\r\n }\r\n }\r\n }\r\n patchState({ ...state, siteScheduleOccurances: siteScheduleOccurances, syncDueJobs: syncJobs });\r\n }\r\n\r\n @Receiver()\r\n public static updateAssetOccuranceStatus({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let assetScheduleOccurances = [];\r\n let syncJobs = [];\r\n if (state.siteScheduleOccurances) {\r\n assetScheduleOccurances = JSON.parse(JSON.stringify(state.assetScheduleOccurances));\r\n }\r\n if (state.syncDueJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncDueJobs));\r\n }\r\n for (const scheduleCount in assetScheduleOccurances) {\r\n if (assetScheduleOccurances[scheduleCount].result) {\r\n for (const occuranceCount in assetScheduleOccurances[scheduleCount].result) {\r\n if (assetScheduleOccurances[scheduleCount].result[occuranceCount].id === Number(payload.scheduleOccuranceId)) {\r\n assetScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatus = payload.status;\r\n assetScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatusName = ScheduleOccurrenceStatus[payload.status];\r\n syncJobs.push({\r\n type: SyncTypes.startAssetJob,\r\n scheduleOccuranceId: payload.scheduleOccuranceId,\r\n category: payload.category\r\n });\r\n }\r\n }\r\n }\r\n }\r\n patchState({ ...state, assetScheduleOccurances: assetScheduleOccurances, syncDueJobs: syncJobs });\r\n }\r\n\r\n @Receiver()\r\n public static updateSiteOccuranceStatusComplete({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let siteScheduleOccurances = [];\r\n if (state.siteScheduleOccurances) {\r\n siteScheduleOccurances = JSON.parse(JSON.stringify(state.siteScheduleOccurances));\r\n }\r\n for (const scheduleCount in siteScheduleOccurances) {\r\n if (siteScheduleOccurances[scheduleCount].result) {\r\n for (const occuranceCount in siteScheduleOccurances[scheduleCount].result) {\r\n if (siteScheduleOccurances[scheduleCount].result[occuranceCount].id === Number(payload.scheduleOccuranceId)) {\r\n siteScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatus = payload.status;\r\n siteScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatusName = ScheduleOccurrenceStatus[payload.status];\r\n }\r\n }\r\n }\r\n }\r\n patchState({ ...state, siteScheduleOccurances: siteScheduleOccurances});\r\n }\r\n\r\n @Receiver()\r\n public static updateAssetOccuranceStatusComplete({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let assetScheduleOccurances = [];\r\n if (state.assetScheduleOccurances) {\r\n assetScheduleOccurances = JSON.parse(JSON.stringify(state.assetScheduleOccurances));\r\n }\r\n for (const scheduleCount in assetScheduleOccurances) {\r\n if (assetScheduleOccurances[scheduleCount].result) {\r\n for (const occuranceCount in assetScheduleOccurances[scheduleCount].result) {\r\n if (assetScheduleOccurances[scheduleCount].result[occuranceCount].id === Number(payload.scheduleOccuranceId)) {\r\n assetScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatus = payload.status;\r\n assetScheduleOccurances[scheduleCount].result[occuranceCount].scheduleOccurrenceStatusName = ScheduleOccurrenceStatus[payload.status];\r\n }\r\n }\r\n }\r\n }\r\n patchState({ ...state, assetScheduleOccurances: assetScheduleOccurances});\r\n }\r\n\r\n @Receiver()\r\n public static removeJobSyncDueJob({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let jobs = [];\r\n if (state.syncDueJobs !== undefined) {\r\n jobs = JSON.parse(JSON.stringify(state.syncDueJobs));\r\n }\r\n jobs.splice(payload.index, 1);\r\n patchState({ ...state, syncDueJobs: jobs });\r\n }\r\n\r\n @Receiver()\r\n public static emptySyncDueJobs({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n patchState({ ...state, syncDueJobs: [] });\r\n }\r\n\r\n @Receiver()\r\n public static processTopSyncJob({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n const syncDueJobs = JSON.parse(JSON.stringify(state.syncDueJobs));\r\n syncDueJobs.shift();\r\n patchState({ ...state, syncDueJobs: syncDueJobs });\r\n }\r\n\r\n @Receiver()\r\n public static setBuildingScheduleOccurances({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let buildingScheduleOccurances = [...state.buildingScheduleOccurances];\r\n if (payload.scheduleId && payload.scheduleId > 0) {\r\n if (buildingScheduleOccurances && buildingScheduleOccurances.length > 0) {\r\n let updated = false;\r\n [buildingScheduleOccurances, updated] = updateBuildingScheduleOccurance(buildingScheduleOccurances, payload);\r\n if (!updated) {\r\n buildingScheduleOccurances.push(payload);\r\n }\r\n } else {\r\n buildingScheduleOccurances = [payload];\r\n }\r\n patchState({ ...state, buildingScheduleOccurances: buildingScheduleOccurances });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static setAssetduleOccurances({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let assetScheduleOccurances = [...state.assetScheduleOccurances];\r\n if (payload.scheduleId && payload.scheduleId > 0) {\r\n if (assetScheduleOccurances && assetScheduleOccurances.length > 0) {\r\n let updated = false;\r\n [assetScheduleOccurances, updated] = updateBuildingScheduleOccurance(assetScheduleOccurances, payload);\r\n if (!updated) {\r\n assetScheduleOccurances.push(payload);\r\n }\r\n } else {\r\n assetScheduleOccurances = [payload];\r\n }\r\n patchState({ ...state, assetScheduleOccurances: assetScheduleOccurances });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static setSiteScheduleOccurances({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let siteScheduleOccurances = [];\r\n if (state.siteScheduleOccurances) {\r\n siteScheduleOccurances = JSON.parse(JSON.stringify(state.siteScheduleOccurances));\r\n }\r\n if (payload.scheduleId && payload.scheduleId > 0) {\r\n if (siteScheduleOccurances && siteScheduleOccurances.length > 0) {\r\n let updated = false;\r\n [siteScheduleOccurances, updated] = updateBuildingScheduleOccurance(siteScheduleOccurances, payload);\r\n if (!updated) {\r\n siteScheduleOccurances.push(payload);\r\n }\r\n } else {\r\n siteScheduleOccurances = [payload];\r\n }\r\n patchState({ ...state, siteScheduleOccurances: siteScheduleOccurances });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static updateBuildingScheduleOccurance(\r\n { patchState, getState }: StateContext,\r\n { payload }: EmitterAction\r\n ) {\r\n const state = getState();\r\n const buildingScheduleOccurances = [...state.buildingScheduleOccurances];\r\n for (const counter in buildingScheduleOccurances) {\r\n if (buildingScheduleOccurances[counter].scheduleId === payload.scheduleId) {\r\n for (const increment in buildingScheduleOccurances[counter].result) {\r\n if (buildingScheduleOccurances[counter].result[increment].buildingScheduleId === Number(payload.buildingScheduleId)) {\r\n for (const key of Object.keys(payload.schedule)) {\r\n buildingScheduleOccurances[counter].result[increment][key] = payload.schedule[key];\r\n }\r\n }\r\n }\r\n patchState({ ...state, buildingScheduleOccurances: buildingScheduleOccurances });\r\n }\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static setAssetScheduleList({ patchState }: StateContext, { payload }: EmitterAction) {\r\n if (payload) {\r\n patchState({\r\n assetScheduleList: payload,\r\n });\r\n } else {\r\n patchState({\r\n assetScheduleList: null,\r\n });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static setSiteScheduleList({ patchState }: StateContext, { payload }: EmitterAction) {\r\n patchState({\r\n siteScheduleList: payload,\r\n });\r\n }\r\n\r\n @Selector()\r\n static getBuildingScheduleOccuranceForm(state: SupplierStateModel): BuildingScheduleOccurence {\r\n return state.buildingScheduleOccuranceFormModel.model;\r\n }\r\n\r\n @Selector()\r\n static getAssetScheduleList(state: SupplierStateModel): SupplierScheduleResult {\r\n return state.assetScheduleList;\r\n }\r\n\r\n @Selector()\r\n static getSiteScheduleList(state: SupplierStateModel): SiteScheduleFileResult {\r\n return state.siteScheduleList;\r\n }\r\n\r\n @Selector()\r\n static getUserApplications(state: SupplierStateModel): ApplicationUser[] {\r\n return state.userApplications;\r\n }\r\n\r\n @Selector()\r\n static getSyncJobs(state: SupplierStateModel): any[] {\r\n return JSON.parse(JSON.stringify(state.syncDueJobs));\r\n }\r\n\r\n @Selector()\r\n static getBuildingSchedules(state: SupplierStateModel): Function {\r\n return (buildingId: number) => {\r\n const filtered = state.buildingSchedules.filter((buildingSchedule) => buildingSchedule.buildingId === buildingId);\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].result));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getAssetScheduleFileResultItem(state: SupplierStateModel): Function {\r\n return (buildingId: number) => {\r\n const filtered = state.assetScheduleFileResults.filter((assetScheduleFileResult) => assetScheduleFileResult.buildingId === buildingId);\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].fileResults));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getActivityProcedure(state: SupplierStateModel): Function {\r\n return (scheduleId: number, entity: EntityType) => {\r\n const filtered = state.activityProcedures.filter((activityProcedure) => {\r\n return (activityProcedure.scheduleId === scheduleId && activityProcedure.entity === entity);\r\n });\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].file));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getBuildingScheduleMessage(state: SupplierStateModel): Function {\r\n return (scheduleOccuranceId: number) => {\r\n const filtered = state.buildingScheduleMessages.filter((message) => message.scheduleOccuranceId === Number(scheduleOccuranceId));\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].message));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getSiteScheduleMessage(state: SupplierStateModel): Function {\r\n return (scheduleOccuranceId: number) => {\r\n const filtered = state.siteScheduleMessages.filter((message) => message.scheduleOccuranceId === Number(scheduleOccuranceId));\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].message));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getAssetScheduleMessage(state: SupplierStateModel): Function {\r\n return (scheduleOccuranceId: number) => {\r\n const filtered = state.assetScheduleMessages.filter((message) => message.scheduleOccuranceId === Number(scheduleOccuranceId));\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].message));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getBuildingScheduleOccurances(state: SupplierStateModel): Function {\r\n return (schedueId: number) => {\r\n const filtered = state.buildingScheduleOccurances.filter((buildingScheduleOccurance) => buildingScheduleOccurance.scheduleId === schedueId);\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].result));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getAssetScheduleOccurances(state: SupplierStateModel): Function {\r\n return (schedueId: number) => {\r\n const filtered = state.assetScheduleOccurances.filter((assetScheduleOccurance) => assetScheduleOccurance.scheduleId === schedueId);\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].result));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getAssetScheduleOccurance(state: SupplierStateModel): Function {\r\n return (occuranceId: number) => {\r\n const assetOccurances = [];\r\n for (const occuranceItem of state.assetScheduleOccurances) {\r\n for (const occurance of occuranceItem.result) {\r\n assetOccurances.push(occurance);\r\n }\r\n }\r\n const filtered = assetOccurances.filter((assetOccurance) => assetOccurance.id === occuranceId);\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0]));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getSiteScheduleOccurances(state: SupplierStateModel): Function {\r\n return (schedueId: number) => {\r\n const filtered = state.siteScheduleOccurances.filter((siteScheduleOccurance) => siteScheduleOccurance.scheduleId === schedueId);\r\n if (filtered.length > 0) {\r\n return JSON.parse(JSON.stringify(filtered[0].result));\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getBuildingScheduleOccurance(state: SupplierStateModel): Function {\r\n return (schedueId: number, id: number) => {\r\n const filtered = state.buildingScheduleOccurances.filter((buildingScheduleOccurance) => buildingScheduleOccurance.scheduleId === schedueId);\r\n if (filtered.length > 0) {\r\n if (filtered[0].result.length > 0) {\r\n const occurances = filtered[0].result.filter((occurance) => occurance.id === id);\r\n if (occurances.length > 0) {\r\n return JSON.parse(JSON.stringify(occurances[0]));\r\n }\r\n return null;\r\n }\r\n return false;\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getSiteScheduleOccurance(state: SupplierStateModel): Function {\r\n return (schedueId: number, id: number) => {\r\n const filtered = state.siteScheduleOccurances.filter((siteScheduleOccurance) => siteScheduleOccurance.scheduleId === schedueId);\r\n if (filtered.length > 0) {\r\n if (filtered[0].result.length > 0) {\r\n const occurances = filtered[0].result.filter((occurance) => occurance.id === id);\r\n if (occurances.length > 0) {\r\n return JSON.parse(JSON.stringify(occurances[0]));\r\n }\r\n return null;\r\n }\r\n return false;\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getBuildingScheduleOccuranceStatus(state: SupplierStateModel): Function {\r\n return (scheduleOccuranceId: number, category: number, status: ScheduleOccurrenceStatus) => {\r\n for (const schedule of state.buildingScheduleOccurances) {\r\n for (const occurance of schedule.result) {\r\n if (occurance.id === Number(scheduleOccuranceId)) {\r\n return occurance.scheduleOccurrenceStatus === status;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n\r\n @Selector()\r\n static getSiteScheduleOccuranceStatus(state: SupplierStateModel): Function {\r\n return (scheduleOccuranceId: number, category: number, status: ScheduleOccurrenceStatus) => {\r\n for (const schedule of state.siteScheduleOccurances) {\r\n for (const occurance of schedule.result) {\r\n if (occurance.id === Number(scheduleOccuranceId)) {\r\n return occurance.scheduleOccurrenceStatus === status;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n\r\n @Selector()\r\n static getAssetScheduleOccuranceStatus(state: SupplierStateModel): Function {\r\n return (scheduleOccuranceId: number, status: ScheduleOccurrenceStatus) => {\r\n for (const schedule of state.assetScheduleOccurances) {\r\n for (const occurance of schedule.result) {\r\n if (occurance.id === Number(scheduleOccuranceId)) {\r\n return occurance.scheduleOccurrenceStatus === status;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n}\r\n","export function getEnumDisplayName(enumValue: string): string {\r\n const result = enumValue.replace(/([A-Z])/g, ' $1');\r\n return result.charAt(0).toUpperCase() + result.slice(1);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { EmitterAction, Receiver } from '@ngxs-labs/emitter';\r\nimport { Selector, State, StateContext } from '@ngxs/store';\r\nimport { User } from 'oidc-client';\r\nimport { Asset } from '../_entities/_shared/Asset';\r\nimport { RequestStatus, EntityType } from '../_entities/Enums';\r\nimport { Requests } from '../_entities/Requests';\r\nimport { WorkDetail } from '../_entities/WorkDetail';\r\nimport { Priority } from '../_entities/Priority';\r\nimport { Inspection } from '../_entities/Inspection';\r\nimport { FileResult } from '../_entities/FileResult';\r\nimport { Message } from '../_entities/Message';\r\nimport { Attachment } from '../_entities/Attachment';\r\n\r\nexport enum FullfillmentSyncTypes {\r\n DeleteAttachment = 10,\r\n UpdateRequest = 20,\r\n UpdateWorkDetail = 30,\r\n WorkprogressDocumentUpload = 40,\r\n AddInspection = 50,\r\n SendMessage = 60,\r\n}\r\n\r\nexport const updateRequestById = (requests: Requests[], payload: Requests) => {\r\n let syncJob: any = null;\r\n for (const counter in requests) {\r\n if (requests[counter].id === payload.id) {\r\n for (const key of Object.keys(payload)) {\r\n requests[counter][key] = payload[key];\r\n }\r\n syncJob = {\r\n requestData: payload,\r\n syncType: FullfillmentSyncTypes.UpdateRequest,\r\n };\r\n break;\r\n }\r\n }\r\n return [requests, syncJob];\r\n};\r\n\r\nconst deleteAttachment = (currentAttachments: Attachment[], payload: DeleteRequestAttachment, syncJobs: any[]) => {\r\n for (const aCounter in currentAttachments) {\r\n if (currentAttachments[aCounter].file.id === payload.attachmentId) {\r\n currentAttachments.splice(Number(aCounter), 1);\r\n syncJobs.push({\r\n requestId: payload.requestId,\r\n attachmentId: payload.attachmentId,\r\n syncType: FullfillmentSyncTypes.DeleteAttachment,\r\n });\r\n }\r\n }\r\n return [currentAttachments, syncJobs];\r\n};\r\n\r\nconst pushToSyncJobs = (syncJobs, syncJob) => {\r\n if (syncJob) {\r\n syncJobs.push(syncJob);\r\n }\r\n return syncJobs;\r\n};\r\n\r\nexport interface RequestByStatusItem {\r\n status: RequestStatus;\r\n requests: Requests[];\r\n}\r\n\r\nexport interface SiteAttachmentItem {\r\n requestId: number;\r\n attachments: File[];\r\n}\r\n\r\nexport interface DeleteRequestAttachment {\r\n requestId: number;\r\n attachmentId: number;\r\n syncType?: FullfillmentSyncTypes;\r\n}\r\n\r\nexport interface AssetListItem {\r\n buildingId: number;\r\n assets: Asset[];\r\n}\r\n\r\nexport interface RequestWorkDetail {\r\n requestId: number;\r\n workdetail: WorkDetail;\r\n}\r\n\r\nexport interface SupplierUser {\r\n email: string;\r\n user: any;\r\n}\r\n\r\nexport interface PriorityItem {\r\n tenantId: number;\r\n priority: Priority[];\r\n}\r\n\r\nexport interface InspectionListItem {\r\n workdetailId: number;\r\n inspections: Inspection[];\r\n}\r\n\r\nexport interface FileResultItem {\r\n workdetailId: number;\r\n fileResults: FileResult[];\r\n type: EntityType;\r\n}\r\n\r\nexport interface RequestMessagesItem {\r\n requestId: number;\r\n messages: Message[];\r\n}\r\n\r\nexport interface FullfillmentStateModel {\r\n allrequests: Requests[];\r\n siteAttachments: SiteAttachmentItem[];\r\n siteOperatives: User[];\r\n assetList: AssetListItem[];\r\n requestWorkDetails: RequestWorkDetail[];\r\n supplierUsers: SupplierUser[];\r\n priorityItems: PriorityItem[];\r\n inspectionList: InspectionListItem[];\r\n fileResults: FileResultItem[];\r\n requestMessages: RequestMessagesItem[];\r\n syncJobs: any[];\r\n}\r\n\r\n@State({\r\n name: 'fullfillment',\r\n defaults: {\r\n allrequests: [],\r\n siteAttachments: [],\r\n siteOperatives: [],\r\n assetList: [],\r\n requestWorkDetails: [],\r\n supplierUsers: [],\r\n priorityItems: [],\r\n inspectionList: [],\r\n fileResults: [],\r\n requestMessages: [],\r\n syncJobs: [],\r\n },\r\n})\r\n@Injectable()\r\nexport class FullfillementState {\r\n @Receiver()\r\n public static setAllrequests({ patchState }: StateContext, { payload }: EmitterAction) {\r\n patchState({\r\n allrequests: payload,\r\n });\r\n }\r\n\r\n @Receiver()\r\n public static setSiteOperatives({ patchState }: StateContext, { payload }: EmitterAction) {\r\n patchState({\r\n siteOperatives: payload,\r\n });\r\n }\r\n\r\n @Receiver()\r\n public static setSyncJob({ patchState, getState }: StateContext, { payload }: EmitterAction) { \r\n const state = getState();\r\n let syncJobs: any[] = [];\r\n if (state.syncJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncJobs));\r\n }\r\n syncJobs = pushToSyncJobs(syncJobs, payload);\r\n patchState({\r\n syncJobs: syncJobs,\r\n });\r\n }\r\n\r\n @Receiver()\r\n public static deleteAllSyncJob({ patchState, getState }: StateContext, { payload }: EmitterAction) { \r\n const state = getState();\r\n let syncJobs: any[] = JSON.parse(JSON.stringify(state.syncJobs));\r\n syncJobs = syncJobs.filter((ele: any) => JSON.stringify(ele) !== JSON.stringify(payload));\r\n patchState({\r\n syncJobs: syncJobs,\r\n });\r\n }\r\n\r\n @Receiver()\r\n public static setSupplierUser({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let supplierUsers: SupplierUser[] = [];\r\n if (state.supplierUsers) {\r\n supplierUsers = JSON.parse(JSON.stringify(state.supplierUsers));\r\n }\r\n if (supplierUsers && supplierUsers.length > 0) {\r\n let updated = false;\r\n for (const counter in supplierUsers) {\r\n if (supplierUsers[counter].email === payload.email) {\r\n updated = true;\r\n supplierUsers[counter].email = payload.email;\r\n supplierUsers[counter].user = payload.user;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n supplierUsers.push(payload);\r\n }\r\n } else {\r\n supplierUsers.push(payload);\r\n }\r\n patchState({ ...state, supplierUsers: supplierUsers });\r\n }\r\n\r\n @Receiver()\r\n public static setRequestMessage({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let requestMessages: RequestMessagesItem[] = [];\r\n if (state.requestMessages) {\r\n requestMessages = JSON.parse(JSON.stringify(state.requestMessages));\r\n }\r\n if (requestMessages && requestMessages.length > 0) {\r\n let updated = false;\r\n for (const counter in requestMessages) {\r\n if (requestMessages[counter].requestId === payload.requestId) {\r\n updated = true;\r\n requestMessages[counter].requestId = payload.requestId;\r\n requestMessages[counter].messages = payload.messages;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n requestMessages.push(payload);\r\n }\r\n } else {\r\n requestMessages.push(payload);\r\n }\r\n patchState({ ...state, requestMessages: requestMessages });\r\n }\r\n\r\n @Receiver()\r\n public static addMessageToRequest({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let requestMessages: RequestMessagesItem[] = [];\r\n let syncJobs: any[] = [];\r\n if (state.requestMessages) {\r\n requestMessages = JSON.parse(JSON.stringify(state.requestMessages));\r\n }\r\n if (state.syncJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncJobs));\r\n }\r\n if (requestMessages && requestMessages.length > 0) {\r\n let updated = false;\r\n for (const counter in requestMessages) {\r\n if (requestMessages[counter].requestId === payload.requestId) {\r\n updated = true;\r\n requestMessages[counter].messages.push(payload.messages[0]);\r\n syncJobs.push({\r\n message: payload.messages[0],\r\n syncType: FullfillmentSyncTypes.SendMessage,\r\n });\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n requestMessages.push(payload);\r\n }\r\n } else {\r\n requestMessages.push(payload);\r\n }\r\n patchState({ ...state, requestMessages: requestMessages, syncJobs: syncJobs });\r\n }\r\n\r\n @Receiver()\r\n public static addRequestMessage({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let requestMessages: RequestMessagesItem[] = [];\r\n if (state.requestMessages) {\r\n requestMessages = JSON.parse(JSON.stringify(state.requestMessages));\r\n }\r\n if (requestMessages && requestMessages.length > 0) {\r\n let updated = false;\r\n for (const counter in requestMessages) {\r\n if (requestMessages[counter].requestId === payload.requestId) {\r\n updated = true;\r\n requestMessages[counter].messages = payload.messages;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n requestMessages.push(payload);\r\n }\r\n } else {\r\n requestMessages.push(payload);\r\n }\r\n patchState({ ...state, requestMessages: requestMessages });\r\n }\r\n\r\n @Receiver()\r\n public static setPriorityItem({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let priorityItems: PriorityItem[] = [];\r\n if (state.priorityItems) {\r\n priorityItems = JSON.parse(JSON.stringify(state.priorityItems));\r\n }\r\n if (priorityItems && priorityItems.length > 0) {\r\n let updated = false;\r\n for (const counter in priorityItems) {\r\n if (priorityItems[counter].tenantId === payload.tenantId) {\r\n updated = true;\r\n priorityItems[counter].tenantId = payload.tenantId;\r\n priorityItems[counter].priority = payload.priority;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n priorityItems.push(payload);\r\n }\r\n } else {\r\n priorityItems.push(payload);\r\n }\r\n patchState({ ...state, priorityItems: priorityItems });\r\n }\r\n\r\n @Receiver()\r\n public static setInspectionItem({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let inspectionList: InspectionListItem[] = [];\r\n if (state.inspectionList) {\r\n inspectionList = JSON.parse(JSON.stringify(state.inspectionList));\r\n }\r\n if (inspectionList && inspectionList.length > 0) {\r\n let updated = false;\r\n for (const counter in inspectionList) {\r\n if (inspectionList[counter].workdetailId === payload.workdetailId) {\r\n updated = true;\r\n inspectionList[counter].workdetailId = payload.workdetailId;\r\n inspectionList[counter].inspections = payload.inspections;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n inspectionList.push(payload);\r\n }\r\n } else {\r\n inspectionList.push(payload);\r\n }\r\n patchState({ ...state, inspectionList: inspectionList });\r\n }\r\n\r\n @Receiver()\r\n public static addInspectionToWorkDetails({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let inspectionList: InspectionListItem[] = [];\r\n let syncJobs: any[] = [];\r\n if (state.inspectionList) {\r\n inspectionList = JSON.parse(JSON.stringify(state.inspectionList));\r\n }\r\n if (state.syncJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncJobs));\r\n }\r\n syncJobs.push({\r\n inspection: payload.inspections[0],\r\n syncType: FullfillmentSyncTypes.AddInspection,\r\n });\r\n if (inspectionList && inspectionList.length > 0) {\r\n let updated = false;\r\n for (const counter in inspectionList) {\r\n if (inspectionList[counter].workdetailId === payload.workdetailId) {\r\n updated = true;\r\n inspectionList[counter].inspections.push(payload.inspections[0]);\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n inspectionList.push(payload);\r\n }\r\n } else {\r\n inspectionList.push(payload);\r\n }\r\n patchState({ ...state, inspectionList: inspectionList, syncJobs: syncJobs });\r\n }\r\n\r\n @Receiver()\r\n public static setFileResultItem({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let fileResultItems: FileResultItem[] = [];\r\n if (state.priorityItems) {\r\n fileResultItems = JSON.parse(JSON.stringify(state.fileResults));\r\n }\r\n if (fileResultItems && fileResultItems.length > 0) {\r\n let updated = false;\r\n for (const counter in fileResultItems) {\r\n if (fileResultItems[counter].workdetailId === payload.workdetailId && fileResultItems[counter].type === payload.type) {\r\n updated = true;\r\n fileResultItems[counter].workdetailId = payload.workdetailId;\r\n fileResultItems[counter].fileResults = payload.fileResults;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n fileResultItems.push(payload);\r\n }\r\n } else {\r\n fileResultItems.push(payload);\r\n }\r\n patchState({ ...state, fileResults: fileResultItems });\r\n }\r\n\r\n @Receiver()\r\n public static setAssetItem({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let assetList: AssetListItem[] = [];\r\n if (state.assetList) {\r\n assetList = JSON.parse(JSON.stringify(state.assetList));\r\n }\r\n if (assetList && assetList.length > 0) {\r\n let updated = false;\r\n for (const counter in assetList) {\r\n if (assetList[counter].buildingId === payload.buildingId) {\r\n updated = true;\r\n assetList[counter].buildingId = payload.buildingId;\r\n assetList[counter].assets = payload.assets;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n assetList.push(payload);\r\n }\r\n } else {\r\n assetList.push(payload);\r\n }\r\n patchState({ ...state, assetList: assetList });\r\n }\r\n\r\n @Receiver()\r\n public static setRequestWorkDetail({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let requestWorkDetails: RequestWorkDetail[] = [];\r\n if (state.requestWorkDetails) {\r\n requestWorkDetails = JSON.parse(JSON.stringify(state.requestWorkDetails));\r\n }\r\n if (requestWorkDetails && requestWorkDetails.length > 0) {\r\n let updated = false;\r\n for (const counter in requestWorkDetails) {\r\n if (requestWorkDetails[counter].requestId === payload.requestId) {\r\n updated = true;\r\n requestWorkDetails[counter].requestId = payload.requestId;\r\n requestWorkDetails[counter].workdetail = payload.workdetail;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n requestWorkDetails.push(payload);\r\n }\r\n } else {\r\n requestWorkDetails.push(payload);\r\n }\r\n patchState({ ...state, requestWorkDetails: requestWorkDetails });\r\n }\r\n\r\n @Receiver()\r\n public static setSiteAttachment({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let siteAttachments: SiteAttachmentItem[] = [];\r\n if (state.siteAttachments && state.siteAttachments.length > 0) {\r\n siteAttachments = JSON.parse(JSON.stringify(state.siteAttachments));\r\n }\r\n if (siteAttachments && siteAttachments.length > 0) {\r\n let updated = false;\r\n for (const counter in siteAttachments) {\r\n if (siteAttachments[counter].requestId === payload.requestId) {\r\n updated = true;\r\n siteAttachments[counter].requestId = payload.requestId;\r\n siteAttachments[counter].attachments = payload.attachments;\r\n break;\r\n }\r\n }\r\n if (!updated) {\r\n siteAttachments.push(payload);\r\n }\r\n } else {\r\n siteAttachments.push(payload);\r\n }\r\n patchState({ ...state, siteAttachments: siteAttachments });\r\n }\r\n\r\n @Receiver()\r\n public static deleteAttachment({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let siteAttachments: SiteAttachmentItem[] = [];\r\n let syncJobs: any[] = [];\r\n if (state.siteAttachments) {\r\n siteAttachments = JSON.parse(JSON.stringify(state.siteAttachments));\r\n }\r\n if (state.syncJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncJobs));\r\n }\r\n if (siteAttachments && siteAttachments.length > 0) {\r\n for (const counter in siteAttachments) {\r\n if (siteAttachments[counter].requestId === payload.requestId) {\r\n let currentAttachments: any[] = siteAttachments[counter].attachments;\r\n [currentAttachments, syncJobs] = deleteAttachment(currentAttachments, payload, syncJobs);\r\n siteAttachments[counter].attachments = currentAttachments;\r\n }\r\n }\r\n }\r\n patchState({ ...state, siteAttachments: siteAttachments, syncJobs: syncJobs });\r\n }\r\n\r\n @Receiver()\r\n public static updateRequest({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let allRequests: Requests[] = [];\r\n let syncJobs: any[] = [];\r\n let syncJob: any = null;\r\n if (state.allrequests) {\r\n allRequests = JSON.parse(JSON.stringify(state.allrequests));\r\n }\r\n if (state.syncJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncJobs));\r\n }\r\n if (allRequests && allRequests.length > 0) {\r\n [allRequests, syncJob] = updateRequestById(allRequests, payload);\r\n syncJobs = pushToSyncJobs(syncJobs, syncJob);\r\n patchState({ ...state, allrequests: allRequests, syncJobs: syncJobs });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static updateWorkDetail({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n let workDetails: RequestWorkDetail[] = [];\r\n let syncJobs: any[] = [];\r\n if (state.requestWorkDetails) {\r\n workDetails = JSON.parse(JSON.stringify(state.requestWorkDetails));\r\n }\r\n if (state.syncJobs) {\r\n syncJobs = JSON.parse(JSON.stringify(state.syncJobs));\r\n }\r\n if (workDetails && workDetails.length > 0) {\r\n for (const counter in workDetails) {\r\n if (workDetails[counter].requestId === payload.requestId) {\r\n workDetails[counter].workdetail = payload;\r\n syncJobs.push({\r\n workDetail: payload,\r\n syncType: FullfillmentSyncTypes.UpdateWorkDetail,\r\n });\r\n }\r\n }\r\n patchState({ ...state, requestWorkDetails: workDetails, syncJobs: syncJobs });\r\n }\r\n }\r\n\r\n @Receiver()\r\n public static processTopSyncJob({ patchState, getState }: StateContext, { payload }: EmitterAction) {\r\n const state = getState();\r\n const syncDueJobs = JSON.parse(JSON.stringify(state.syncJobs));\r\n syncDueJobs.shift();\r\n patchState({ ...state, syncJobs: syncDueJobs });\r\n }\r\n\r\n @Selector()\r\n static getAllRequests(state: FullfillmentStateModel): Requests[] {\r\n if (state && state.allrequests) {\r\n return state.allrequests;\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n @Selector()\r\n static getSiteOperatives(state: FullfillmentStateModel): User[] {\r\n if (state && state.siteOperatives) {\r\n return state.siteOperatives;\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n @Selector()\r\n static getTequestsByStatus(state: FullfillmentStateModel): Function {\r\n return (status: RequestStatus): Requests[] => {\r\n if (state && state.allrequests) {\r\n const requestItems: Requests[] = JSON.parse(JSON.stringify(state.allrequests));\r\n const filtered: Requests[] = requestItems.filter((item: Requests) => item.status === status);\r\n return filtered;\r\n } else {\r\n return [];\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getAttachmentByRequestId(state: FullfillmentStateModel): Function {\r\n return (requestId: number): File[] => {\r\n if (state && state.siteAttachments) {\r\n const siteAttachments: SiteAttachmentItem[] = JSON.parse(JSON.stringify(state.siteAttachments));\r\n const filtered: SiteAttachmentItem[] = siteAttachments.filter((item: SiteAttachmentItem) => item.requestId === requestId);\r\n if (filtered.length > 0) {\r\n return filtered[0].attachments;\r\n }\r\n return [];\r\n } else {\r\n return [];\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getWorkdetaiByRequestId(state: FullfillmentStateModel): Function {\r\n return (requestId: number): WorkDetail => {\r\n if (state && state.requestWorkDetails) {\r\n const requestWorkDetail: RequestWorkDetail[] = JSON.parse(JSON.stringify(state.requestWorkDetails));\r\n const filtered: RequestWorkDetail[] = requestWorkDetail.filter((item: RequestWorkDetail) => item.requestId === requestId);\r\n if (filtered.length > 0) {\r\n return filtered[0].workdetail;\r\n }\r\n return null;\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getAssetsByBuildingID(state: FullfillmentStateModel): Function {\r\n return (buildingId: number): Asset[] => {\r\n if (state && state.assetList) {\r\n const assetList: AssetListItem[] = JSON.parse(JSON.stringify(state.assetList));\r\n const filtered: AssetListItem[] = assetList.filter((item: AssetListItem) => item.buildingId === buildingId);\r\n if (filtered.length > 0) {\r\n return filtered[0].assets;\r\n }\r\n return [];\r\n } else {\r\n return [];\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getSupplierUser(state: FullfillmentStateModel): Function {\r\n return (email: string): any => {\r\n if (state && state.supplierUsers) {\r\n const supplierUsers: SupplierUser[] = JSON.parse(JSON.stringify(state.supplierUsers));\r\n const filtered: SupplierUser[] = supplierUsers.filter((item: SupplierUser) => item.email === email);\r\n if (filtered.length > 0) {\r\n return filtered[0].user;\r\n }\r\n return [];\r\n } else {\r\n return [];\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getPriorityItem(state: FullfillmentStateModel): Function {\r\n return (tenantId: number): any => {\r\n if (state && state.priorityItems) {\r\n const priorityItems: PriorityItem[] = JSON.parse(JSON.stringify(state.priorityItems));\r\n const filtered: PriorityItem[] = priorityItems.filter((item: PriorityItem) => item.tenantId === tenantId);\r\n if (filtered.length > 0) {\r\n return filtered[0].priority;\r\n }\r\n return null;\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getInspectItem(state: FullfillmentStateModel): Function {\r\n return (workDetailId: number): any => {\r\n if (state && state.inspectionList) {\r\n const inspectionList: InspectionListItem[] = JSON.parse(JSON.stringify(state.inspectionList));\r\n const filtered: InspectionListItem[] = inspectionList.filter((item: InspectionListItem) => item.workdetailId === workDetailId);\r\n if (filtered.length > 0) {\r\n return filtered[0].inspections;\r\n }\r\n return [];\r\n } else {\r\n return [];\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getFileResultItem(state: FullfillmentStateModel): Function {\r\n return (workDetailId: number, type: EntityType): any => {\r\n if (state && state.fileResults) {\r\n const fileResults: FileResultItem[] = JSON.parse(JSON.stringify(state.fileResults));\r\n const filtered: FileResultItem[] = fileResults.filter((item: FileResultItem) => item.workdetailId === workDetailId && item.type === type);\r\n if (filtered.length > 0) {\r\n return filtered[0].fileResults;\r\n }\r\n return [];\r\n } else {\r\n return [];\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getRequestMessages(state: FullfillmentStateModel): Function {\r\n return (requestId: number): any => {\r\n if (state && state.requestMessages) {\r\n const requestMessages: RequestMessagesItem[] = JSON.parse(JSON.stringify(state.requestMessages));\r\n const filtered: RequestMessagesItem[] = requestMessages.filter((item: RequestMessagesItem) => item.requestId === requestId);\r\n if (filtered.length > 0) {\r\n return filtered[0].messages;\r\n }\r\n return [];\r\n } else {\r\n return [];\r\n }\r\n };\r\n }\r\n\r\n @Selector()\r\n static getRequestById(state: FullfillmentStateModel): Function {\r\n return (id: number): Requests => {\r\n if (state && state.allrequests) {\r\n const requests: Requests[] = JSON.parse(JSON.stringify(state.allrequests));\r\n const filtered = requests.filter((req: Requests) => req.id === id);\r\n if (filtered.length > 0) {\r\n return filtered[0];\r\n }\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n @Selector()\r\n static getSyncJobs(state: FullfillmentStateModel): any[] {\r\n return JSON.parse(JSON.stringify(state.syncJobs));\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthorizeService } from '../../api-authorization/authorize.service';\r\nimport { RegistrationStatus, UserType } from '../_shared/Enums';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n})\r\nexport class HomeComponent implements OnInit {\r\n constructor(private authorizeService: AuthorizeService, private router: Router) {}\r\n\r\n ngOnInit() {\r\n const userProfile = this.authorizeService.getFullUserProfile();\r\n this.authorizeService.getCurrentTenant().subscribe((tenant) => {\r\n let homeUrl = '';\r\n // console.log(userProfile.userType );\r\n if (tenant.registrationStatus === RegistrationStatus.Approved) {\r\n if (\r\n userProfile.userType === UserType.Buyer ||\r\n userProfile.userType === UserType.Supplier ||\r\n userProfile.userType === UserType.SupplierOperative ||\r\n userProfile.userType === UserType.FulfillmentCustomer\r\n ) {\r\n // console.log('consumer');\r\n homeUrl = '/admin/consumer/home';\r\n } else if (userProfile.userType === UserType.Admin) {\r\n homeUrl = '/admin/super/home';\r\n } else if (userProfile.userType === UserType.Auditor) {\r\n homeUrl = '/certification/consumer/home';\r\n } else if (userProfile.userType === UserType.Consultant) {\r\n homeUrl = '/certification/consultant/home';\r\n }\r\n else if (userProfile.userType === '30') {\r\n homeUrl = '/admin/consumer/home';\r\n }\r\n\r\n else {\r\n throw Error('Unknown User Category');\r\n }\r\n } else if (tenant.registrationStatus === RegistrationStatus.Inprogress || tenant.registrationStatus === RegistrationStatus.Invited) {\r\n // homeUrl = '/Account/consumer/profile';\r\n homeUrl = '/admin/consumer/home';\r\n } else if (tenant.registrationStatus === RegistrationStatus.Completed) {\r\n homeUrl = '/admin/consumer/pre-approval';\r\n } else {\r\n throw Error('Unknown Registration Status for Tenant');\r\n }\r\n this.router.navigate([homeUrl]);\r\n });\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n apiUrl: 'http://localhost:5000'\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [{ provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers)\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.log(err));\r\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]}