{"version":3,"sources":["node_modules/@angular/common/locales/en.mjs","node_modules/@angular/platform-browser/fesm2022/animations/async.mjs","src/app/core/error/chunk-error-handler.ts","src/app/core/interceptors/blob-error.interceptor.ts","src/app/core/interceptors/http-error.interceptor.ts","src/app/core/interceptors/http-request.interceptor.ts","src/app/core/core.module.ts","src/app/shared/modules/icons-provider.module.ts","node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-breadcrumb.mjs","src/app/shared/modules/layout/menu/menu.component.ts","src/app/shared/modules/layout/menu/menu.component.html","src/app/shared/modules/layout/secure-layout.component.ts","src/app/shared/modules/layout/secure-layout.component.html","src/app/shared/modules/layout/layout.module.ts","src/app/core/guards/authorized.guard.ts","src/app/core/guards/not-authorized.guard.ts","src/app/app-routing.module.ts","src/app/app.component.ts","src/app/app.component.html","src/app/app.module.ts","src/main.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val,\n i = Math.floor(Math.abs(val)),\n v = val.toString().replace(/^[^.]*\\.?/, '').length;\n if (i === 1 && v === 0) return 1;\n return 5;\n}\nexport default [\"en\", [[\"a\", \"p\"], [\"AM\", \"PM\"], u], [[\"AM\", \"PM\"], u, u], [[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"], [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"], [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"], [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]], u, [[\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"], [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"], [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]], u, [[\"B\", \"A\"], [\"BC\", \"AD\"], [\"Before Christ\", \"Anno Domini\"]], 0, [6, 0], [\"M/d/yy\", \"MMM d, y\", \"MMMM d, y\", \"EEEE, MMMM d, y\"], [\"h:mm a\", \"h:mm:ss a\", \"h:mm:ss a z\", \"h:mm:ss a zzzz\"], [\"{1}, {0}\", u, \"{1} 'at' {0}\", u], [\".\", \",\", \";\", \"%\", \"+\", \"-\", \"E\", \"×\", \"‰\", \"∞\", \"NaN\", \":\"], [\"#,##0.###\", \"#,##0%\", \"¤#,##0.00\", \"#E0\"], \"USD\", \"$\", \"US Dollar\", {}, \"ltr\", plural];\n","/**\n * @license Angular v18.2.5\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, ɵChangeDetectionScheduler, ɵRuntimeError, Injectable, InjectionToken, ɵperformanceMarkFeature, makeEnvironmentProviders, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser';\nconst ANIMATION_PREFIX = '@';\nlet AsyncAnimationRendererFactory = /*#__PURE__*/(() => {\n class AsyncAnimationRendererFactory {\n /**\n *\n * @param moduleImpl allows to provide a mock implmentation (or will load the animation module)\n */\n constructor(doc, delegate, zone, animationType, moduleImpl) {\n this.doc = doc;\n this.delegate = delegate;\n this.zone = zone;\n this.animationType = animationType;\n this.moduleImpl = moduleImpl;\n this._rendererFactoryPromise = null;\n this.scheduler = inject(ɵChangeDetectionScheduler, {\n optional: true\n });\n this.loadingSchedulerFn = inject(ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, {\n optional: true\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n // When the root view is removed, the renderer defers the actual work to the\n // `TransitionAnimationEngine` to do this, and the `TransitionAnimationEngine` doesn't actually\n // remove the DOM node, but just calls `markElementAsRemoved()`. The actual DOM node is not\n // removed until `TransitionAnimationEngine` \"flushes\".\n // Note: we already flush on destroy within the `InjectableAnimationEngine`. The injectable\n // engine is not provided when async animations are used.\n this._engine?.flush();\n }\n /**\n * @internal\n */\n loadImpl() {\n // Note on the `.then(m => m)` part below: Closure compiler optimizations in g3 require\n // `.then` to be present for a dynamic import (or an import should be `await`ed) to detect\n // the set of imported symbols.\n const loadFn = () => this.moduleImpl ?? import('@angular/animations/browser').then(m => m);\n let moduleImplPromise;\n if (this.loadingSchedulerFn) {\n moduleImplPromise = this.loadingSchedulerFn(loadFn);\n } else {\n moduleImplPromise = loadFn();\n }\n return moduleImplPromise.catch(e => {\n throw new ɵRuntimeError(5300 /* RuntimeErrorCode.ANIMATION_RENDERER_ASYNC_LOADING_FAILURE */, (typeof ngDevMode === 'undefined' || ngDevMode) && 'Async loading for animations package was ' + 'enabled, but loading failed. Angular falls back to using regular rendering. ' + \"No animations will be displayed and their styles won't be applied.\");\n }).then(({\n ɵcreateEngine,\n ɵAnimationRendererFactory\n }) => {\n // We can't create the renderer yet because we might need the hostElement and the type\n // Both are provided in createRenderer().\n this._engine = ɵcreateEngine(this.animationType, this.doc);\n const rendererFactory = new ɵAnimationRendererFactory(this.delegate, this._engine, this.zone);\n this.delegate = rendererFactory;\n return rendererFactory;\n });\n }\n /**\n * This method is delegating the renderer creation to the factories.\n * It uses default factory while the animation factory isn't loaded\n * and will rely on the animation factory once it is loaded.\n *\n * Calling this method will trigger as side effect the loading of the animation module\n * if the renderered component uses animations.\n */\n createRenderer(hostElement, rendererType) {\n const renderer = this.delegate.createRenderer(hostElement, rendererType);\n if (renderer.ɵtype === 0 /* AnimationRendererType.Regular */) {\n // The factory is already loaded, this is an animation renderer\n return renderer;\n }\n // We need to prevent the DomRenderer to throw an error because of synthetic properties\n if (typeof renderer.throwOnSyntheticProps === 'boolean') {\n renderer.throwOnSyntheticProps = false;\n }\n // Using a dynamic renderer to switch the renderer implementation once the module is loaded.\n const dynamicRenderer = new DynamicDelegationRenderer(renderer);\n // Kick off the module loading if the component uses animations but the module hasn't been\n // loaded yet.\n if (rendererType?.data?.['animation'] && !this._rendererFactoryPromise) {\n this._rendererFactoryPromise = this.loadImpl();\n }\n this._rendererFactoryPromise?.then(animationRendererFactory => {\n const animationRenderer = animationRendererFactory.createRenderer(hostElement, rendererType);\n dynamicRenderer.use(animationRenderer);\n this.scheduler?.notify(10 /* NotificationSource.AsyncAnimationsLoaded */);\n }).catch(e => {\n // Permanently use regular renderer when loading fails.\n dynamicRenderer.use(renderer);\n });\n return dynamicRenderer;\n }\n begin() {\n this.delegate.begin?.();\n }\n end() {\n this.delegate.end?.();\n }\n whenRenderingDone() {\n return this.delegate.whenRenderingDone?.() ?? Promise.resolve();\n }\n static {\n this.ɵfac = function AsyncAnimationRendererFactory_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AsyncAnimationRendererFactory,\n factory: AsyncAnimationRendererFactory.ɵfac\n });\n }\n }\n return AsyncAnimationRendererFactory;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * The class allows to dynamicly switch between different renderer implementations\n * by changing the delegate renderer.\n */\nclass DynamicDelegationRenderer {\n constructor(delegate) {\n this.delegate = delegate;\n // List of callbacks that need to be replayed on the animation renderer once its loaded\n this.replay = [];\n this.ɵtype = 1 /* AnimationRendererType.Delegated */;\n }\n use(impl) {\n this.delegate = impl;\n if (this.replay !== null) {\n // Replay queued actions using the animation renderer to apply\n // all events and properties collected while loading was in progress.\n for (const fn of this.replay) {\n fn(impl);\n }\n // Set to `null` to indicate that the queue was processed\n // and we no longer need to collect events and properties.\n this.replay = null;\n }\n }\n get data() {\n return this.delegate.data;\n }\n destroy() {\n this.replay = null;\n this.delegate.destroy();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n get destroyNode() {\n return this.delegate.destroyNode;\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n }\n insertBefore(parent, newChild, refChild, isMove) {\n this.delegate.insertBefore(parent, newChild, refChild, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.delegate.removeChild(parent, oldChild, isHostElement);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n // We need to keep track of animation properties set on default renderer\n // So we can also set them also on the animation renderer\n if (this.shouldReplay(name)) {\n this.replay.push(renderer => renderer.setProperty(el, name, value));\n }\n this.delegate.setProperty(el, name, value);\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n // We need to keep track of animation events registred by the default renderer\n // So we can also register them against the animation renderer\n if (this.shouldReplay(eventName)) {\n this.replay.push(renderer => renderer.listen(target, eventName, callback));\n }\n return this.delegate.listen(target, eventName, callback);\n }\n shouldReplay(propOrEventName) {\n //`null` indicates that we no longer need to collect events and properties\n return this.replay !== null && propOrEventName.startsWith(ANIMATION_PREFIX);\n }\n}\n/**\n * Provides a custom scheduler function for the async loading of the animation package.\n *\n * Private token for investigation purposes\n */\nconst ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN = /*#__PURE__*/new InjectionToken(ngDevMode ? 'async_animation_loading_scheduler_fn' : '');\n\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * When you use this function instead of the eager `provideAnimations()`, animations won't be\n * rendered until the renderer is loaded.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimationsAsync()\n * ]\n * });\n * ```\n *\n * @param type pass `'noop'` as argument to disable animations.\n *\n * @publicApi\n */\nfunction provideAnimationsAsync(type = 'animations') {\n ɵperformanceMarkFeature('NgAsyncAnimations');\n return makeEnvironmentProviders([{\n provide: RendererFactory2,\n useFactory: (doc, renderer, zone) => {\n return new AsyncAnimationRendererFactory(doc, renderer, zone, type);\n },\n deps: [DOCUMENT, ɵDomRendererFactory2, NgZone]\n }, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: type === 'noop' ? 'NoopAnimations' : 'BrowserAnimations'\n }]);\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { provideAnimationsAsync, ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, AsyncAnimationRendererFactory as ɵAsyncAnimationRendererFactory };\n","import { ErrorHandler, Injectable } from '@angular/core';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n@Injectable()\nexport class ChunkErrorHandler implements ErrorHandler {\n handleError(error: any): void {\n if (error?.message?.includes('Failed to fetch dynamically imported module')) {\n if (confirm(\"New version available. Load New Version?\")) {\n window.location.reload();\n }\n } else {\n console.error(error);\n }\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n@Injectable()\nexport class BlobErrorHttpInterceptor implements HttpInterceptor {\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n catchError((err) => {\n if (err instanceof HttpErrorResponse && err.error instanceof Blob && err.error.type === 'application/problem+json') {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e: Event) => {\n try {\n const errmsg = JSON.parse((e.target as any).result);\n const response = new HttpErrorResponse({\n error: errmsg,\n headers: err.headers,\n status: err.status,\n statusText: err.statusText,\n url: err.url || undefined\n })\n reject(response);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = () => {\n reject(err);\n };\n reader.readAsText(err.error);\n });\n }\n return throwError(() => err);\n })\n );\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { NzModalService } from 'ng-zorro-antd/modal';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intercepts the HTTP responses, and in case that an error/exception is thrown, handles it\n * and extract the relevant information of it.\n */\n@Injectable()\nexport class HttpErrorInterceptor implements HttpInterceptor {\n\n constructor(private modal: NzModalService,\n private notification: NzNotificationService) { }\n\n /**\n * Intercepts an outgoing HTTP request, executes it and handles any error that could be triggered in execution.\n * @see HttpInterceptor\n * @param req the outgoing HTTP request\n * @param next a HTTP request handler\n */\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const skipIntercept = req.headers.has('skip');\n\n if (skipIntercept) {\n req = req.clone({\n headers: req.headers.delete('skip')\n });\n return next.handle(req);\n }\n\n return next.handle(req).pipe(\n catchError((response) => {\n\n if (response instanceof HttpErrorResponse) {\n this.handleError(response);\n }\n\n return throwError(() => response);\n })\n );\n }\n\n handleError(response: HttpErrorResponse): void {\n switch (response.status) {\n case 400:\n case 404:\n case 500: {\n if (!response.error || (response.error && response.error.error !== 'invalid_grant')) {\n this.notification.create(\n 'error',\n 'Failed',\n response.error && response.error.message || response.message\n );\n }\n break;\n }\n case 502:\n case 503:\n case 504:\n this.notification.create(\n 'error',\n 'Error',\n 'Unable to establish a connection to the Server.'\n );\n }\n }\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthenticationService } from '@core/services/authentication.service';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { OauthToken } from '@shared/models';\nimport { BehaviorSubject, filter, finalize, Observable, switchMap, take, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@UntilDestroy()\n@Injectable()\nexport class HttpRequestInterceptor implements HttpInterceptor {\n\n private refreshTokenInProgress = false;\n private refreshTokenSubject = new BehaviorSubject(null);\n\n constructor(private as: AuthenticationService,\n private r: Router) { }\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n private applyCredentials = (request: HttpRequest) => {\n const token = this.as.getAccessToken();\n const API_URL = ['/api/'];\n\n if (token && API_URL.some(url => request.url.includes(url))) {\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n });\n }\n return request;\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n\n if (request.headers.get('exclude')) {\n return next.handle(request);\n } else {\n request = this.applyCredentials(request);\n }\n\n return next.handle(request).pipe(\n catchError((error) => {\n if (error.status === 401) {\n\n // Refresh token first before invalidating session\n if (this.refreshTokenInProgress) {\n return this.refreshTokenSubject.pipe(\n filter((token) => token !== null),\n take(1),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n switchMap((token) => {\n if (token) {\n return next.handle(this.applyCredentials(request));\n }\n this.refreshTokenInProgress = false;\n }),\n untilDestroyed(this));\n } else {\n this.refreshTokenInProgress = true;\n this.refreshTokenSubject.next(null);\n this.as.removeToken();\n\n return this.as.refreshToken(this.as.getRefreshToken() || '')\n .pipe(\n switchMap((oauth: OauthToken) => {\n const newToken = oauth!.access_token;\n if (newToken) {\n this.refreshTokenSubject.next(newToken);\n return next.handle(this.applyCredentials(request));\n }\n this.goToLoginPage();\n return throwError(error);\n }),\n untilDestroyed(this),\n catchError((e) => {\n if (!e.url.includes('/notification/realtime')) {\n this.goToLoginPage();\n }\n return throwError(e);\n }),\n finalize(() => {\n this.refreshTokenInProgress = false;\n })\n );\n }\n }\n\n if (error?.error?.error === 'invalid_grant') {\n this.goToLoginPage();\n }\n\n // return all others errors\n return throwError(error);\n\n })) as any;\n }\n\n private goToLoginPage(): void {\n this.r.navigateByUrl('/login');\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { ErrorHandler, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ChunkErrorHandler } from '@core/error/chunk-error-handler';\nimport { BlobErrorHttpInterceptor } from '@core/interceptors/blob-error.interceptor';\nimport { HttpErrorInterceptor } from '@core/interceptors/http-error.interceptor';\nimport { HttpRequestInterceptor } from '@core/interceptors/http-request.interceptor';\nimport { ReactiveFormConfig, RxReactiveFormsModule } from '@rxweb/reactive-form-validators';\nimport { FIELD_ERROR } from '@shared/constants';\nimport { NZ_CONFIG, NzConfig } from 'ng-zorro-antd/core/config';\nimport { NzMessageModule } from 'ng-zorro-antd/message';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzNotificationModule } from 'ng-zorro-antd/notification';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\n\nconst ngZorroConfig: NzConfig = {\n message: { nzMaxStack: 1, nzDuration: 8000, nzPauseOnHover: true },\n notification: { nzMaxStack: 1, nzDuration: 5000 },\n modal: { nzMaskClosable: false, nzCloseOnNavigation: true },\n table: { nzSize: 'default', nzBordered: false },\n drawer: { nzCloseOnNavigation: true },\n datePicker: { nzSeparator: '-' },\n card: { nzBordered: false },\n image: { nzCloseOnNavigation: true },\n popconfirm: { nzAutofocus: 'ok' },\n};\n\nReactiveFormConfig.set({\n validationMessage: FIELD_ERROR\n});\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NzModalModule,\n NzMessageModule,\n NzNotificationModule,\n NzSpinModule,\n RxReactiveFormsModule\n ],\n providers: [\n provideHttpClient(\n withInterceptorsFromDi()\n ),\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpRequestInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpErrorInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: BlobErrorHttpInterceptor,\n multi: true\n },\n {\n provide: NZ_CONFIG,\n useValue: ngZorroConfig\n },\n {\n provide: ErrorHandler,\n useClass: ChunkErrorHandler\n },\n ],\n declarations: []\n})\nexport class CoreModule { }\n","import { NgModule } from '@angular/core';\n\nimport { DashboardOutline, FormOutline, MenuFoldOutline, MenuUnfoldOutline } from '@ant-design/icons-angular/icons';\nimport { NZ_ICONS, NzIconModule } from 'ng-zorro-antd/icon';\n\nconst icons = [MenuFoldOutline, MenuUnfoldOutline, DashboardOutline, FormOutline];\n\n@NgModule({\n imports: [NzIconModule],\n exports: [NzIconModule],\n providers: [\n { provide: NZ_ICONS, useValue: icons }\n ]\n})\nexport class IconsProviderModule { }\n","import { NgTemplateOutlet } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, booleanAttribute, NgModule } from '@angular/core';\nimport * as i4 from 'ng-zorro-antd/core/outlet';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport * as i2 from 'ng-zorro-antd/dropdown';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport * as i3 from 'ng-zorro-antd/icon';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { Router, ActivatedRoute, NavigationEnd, PRIMARY_OUTLET } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil, filter, startWith } from 'rxjs/operators';\nimport { PREFIX } from 'ng-zorro-antd/core/logger';\nimport * as i1 from '@angular/cdk/bidi';\n\n/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\nconst _c0 = [\"*\"];\nfunction NzBreadCrumbItemComponent_Conditional_0_ng_template_1_Template(rf, ctx) {}\nfunction NzBreadCrumbItemComponent_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 1);\n i0.ɵɵtemplate(1, NzBreadCrumbItemComponent_Conditional_0_ng_template_1_Template, 0, 0, \"ng-template\", 2);\n i0.ɵɵelement(2, \"span\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const noMenuTpl_r2 = i0.ɵɵreference(4);\n i0.ɵɵproperty(\"nzDropdownMenu\", ctx_r0.nzOverlay);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", noMenuTpl_r2);\n }\n}\nfunction NzBreadCrumbItemComponent_Conditional_1_ng_template_0_Template(rf, ctx) {}\nfunction NzBreadCrumbItemComponent_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NzBreadCrumbItemComponent_Conditional_1_ng_template_0_Template, 0, 0, \"ng-template\", 2);\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const noMenuTpl_r2 = i0.ɵɵreference(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", noMenuTpl_r2);\n }\n}\nfunction NzBreadCrumbItemComponent_Conditional_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.nzBreadCrumbComponent.nzSeparator, \" \");\n }\n}\nfunction NzBreadCrumbItemComponent_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"nz-breadcrumb-separator\");\n i0.ɵɵtemplate(1, NzBreadCrumbItemComponent_Conditional_2_ng_container_1_Template, 2, 1, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzStringTemplateOutlet\", ctx_r0.nzBreadCrumbComponent.nzSeparator);\n }\n}\nfunction NzBreadCrumbItemComponent_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n}\nconst _forTrack0 = ($index, $item) => $item.url;\nfunction NzBreadCrumbComponent_Conditional_1_For_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"nz-breadcrumb-item\")(1, \"a\", 0);\n i0.ɵɵlistener(\"click\", function NzBreadCrumbComponent_Conditional_1_For_1_Template_a_click_1_listener($event) {\n const breadcrumb_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.navigate(breadcrumb_r2.url, $event));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const breadcrumb_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"href\", breadcrumb_r2.url, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(breadcrumb_r2.label);\n }\n}\nfunction NzBreadCrumbComponent_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NzBreadCrumbComponent_Conditional_1_For_1_Template, 3, 2, \"nz-breadcrumb-item\", null, _forTrack0);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵrepeater(ctx_r2.breadcrumbs);\n }\n}\nlet NzBreadCrumbSeparatorComponent = /*#__PURE__*/(() => {\n class NzBreadCrumbSeparatorComponent {\n static {\n this.ɵfac = function NzBreadCrumbSeparatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NzBreadCrumbSeparatorComponent)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzBreadCrumbSeparatorComponent,\n selectors: [[\"nz-breadcrumb-separator\"]],\n hostAttrs: [1, \"ant-breadcrumb-separator\"],\n exportAs: [\"nzBreadcrumbSeparator\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function NzBreadCrumbSeparatorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2\n });\n }\n }\n return NzBreadCrumbSeparatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n/**\n * https://angular.io/errors/NG3003\n * An intermediate interface for {@link NzBreadCrumbComponent} & {@link NzBreadCrumbItemComponent}\n */\nclass NzBreadcrumb {}\n\n/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\nlet NzBreadCrumbItemComponent = /*#__PURE__*/(() => {\n class NzBreadCrumbItemComponent {\n constructor(nzBreadCrumbComponent) {\n this.nzBreadCrumbComponent = nzBreadCrumbComponent;\n }\n static {\n this.ɵfac = function NzBreadCrumbItemComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NzBreadCrumbItemComponent)(i0.ɵɵdirectiveInject(NzBreadcrumb));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzBreadCrumbItemComponent,\n selectors: [[\"nz-breadcrumb-item\"]],\n inputs: {\n nzOverlay: \"nzOverlay\"\n },\n exportAs: [\"nzBreadcrumbItem\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 5,\n vars: 2,\n consts: [[\"noMenuTpl\", \"\"], [\"nz-dropdown\", \"\", 1, \"ant-breadcrumb-overlay-link\", 3, \"nzDropdownMenu\"], [3, \"ngTemplateOutlet\"], [\"nz-icon\", \"\", \"nzType\", \"down\"], [4, \"nzStringTemplateOutlet\"], [1, \"ant-breadcrumb-link\"]],\n template: function NzBreadCrumbItemComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NzBreadCrumbItemComponent_Conditional_0_Template, 3, 2, \"span\", 1)(1, NzBreadCrumbItemComponent_Conditional_1_Template, 1, 1, null, 2)(2, NzBreadCrumbItemComponent_Conditional_2_Template, 2, 1, \"nz-breadcrumb-separator\")(3, NzBreadCrumbItemComponent_ng_template_3_Template, 2, 0, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n i0.ɵɵconditional(!!ctx.nzOverlay ? 0 : 1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx.nzBreadCrumbComponent.nzSeparator ? 2 : -1);\n }\n },\n dependencies: [NgTemplateOutlet, NzBreadCrumbSeparatorComponent, NzDropDownModule, i2.NzDropDownDirective, NzIconModule, i3.NzIconDirective, NzOutletModule, i4.NzStringTemplateOutletDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return NzBreadCrumbItemComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NzBreadCrumbComponent = /*#__PURE__*/(() => {\n class NzBreadCrumbComponent {\n constructor(injector, cdr, elementRef, renderer, directionality) {\n this.injector = injector;\n this.cdr = cdr;\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.directionality = directionality;\n this.nzAutoGenerate = false;\n this.nzSeparator = '/';\n this.nzRouteLabel = 'breadcrumb';\n this.nzRouteLabelFn = label => label;\n this.nzRouteFn = route => route;\n this.breadcrumbs = [];\n this.dir = 'ltr';\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n if (this.nzAutoGenerate) {\n this.registerRouterChange();\n }\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.prepareComponentForRtl();\n this.cdr.detectChanges();\n });\n this.dir = this.directionality.value;\n this.prepareComponentForRtl();\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n navigate(url, e) {\n e.preventDefault();\n this.injector.get(Router).navigateByUrl(url);\n }\n registerRouterChange() {\n try {\n const router = this.injector.get(Router);\n const activatedRoute = this.injector.get(ActivatedRoute);\n router.events.pipe(filter(e => e instanceof NavigationEnd), takeUntil(this.destroy$), startWith(true) // trigger initial render\n ).subscribe(() => {\n this.breadcrumbs = this.getBreadcrumbs(activatedRoute.root);\n this.cdr.markForCheck();\n });\n } catch (e) {\n throw new Error(`${PREFIX} You should import RouterModule if you want to use 'NzAutoGenerate'.`);\n }\n }\n getBreadcrumbs(route, url = '', breadcrumbs = []) {\n const children = route.children;\n // If there's no sub root, then stop the recurse and returns the generated breadcrumbs.\n if (children.length === 0) {\n return breadcrumbs;\n }\n for (const child of children) {\n if (child.outlet === PRIMARY_OUTLET) {\n // Only parse components in primary router-outlet (in another word, router-outlet without a specific name).\n // Parse this layer and generate a breadcrumb item.\n const routeUrl = child.snapshot.url.map(segment => segment.path).filter(path => path).join('/');\n // Do not change nextUrl if routeUrl is falsy. This happens when it's a route lazy loading other modules.\n const nextUrl = routeUrl ? `${url}/${routeUrl}` : url;\n const breadcrumbLabel = this.nzRouteLabelFn(child.snapshot.data[this.nzRouteLabel]);\n const shapedUrl = this.nzRouteFn(nextUrl);\n // If have data, go to generate a breadcrumb for it.\n if (routeUrl && breadcrumbLabel) {\n const breadcrumb = {\n label: breadcrumbLabel,\n params: child.snapshot.params,\n url: shapedUrl\n };\n breadcrumbs.push(breadcrumb);\n }\n return this.getBreadcrumbs(child, nextUrl, breadcrumbs);\n }\n }\n return breadcrumbs;\n }\n prepareComponentForRtl() {\n if (this.dir === 'rtl') {\n this.renderer.addClass(this.elementRef.nativeElement, 'ant-breadcrumb-rtl');\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, 'ant-breadcrumb-rtl');\n }\n }\n static {\n this.ɵfac = function NzBreadCrumbComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NzBreadCrumbComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.Directionality));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NzBreadCrumbComponent,\n selectors: [[\"nz-breadcrumb\"]],\n hostAttrs: [1, \"ant-breadcrumb\"],\n inputs: {\n nzAutoGenerate: [2, \"nzAutoGenerate\", \"nzAutoGenerate\", booleanAttribute],\n nzSeparator: \"nzSeparator\",\n nzRouteLabel: \"nzRouteLabel\",\n nzRouteLabelFn: \"nzRouteLabelFn\",\n nzRouteFn: \"nzRouteFn\"\n },\n exportAs: [\"nzBreadcrumb\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NzBreadcrumb,\n useExisting: NzBreadCrumbComponent\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 1,\n consts: [[3, \"click\"]],\n template: function NzBreadCrumbComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, NzBreadCrumbComponent_Conditional_1_Template, 2, 0);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.nzAutoGenerate && ctx.breadcrumbs.length ? 1 : -1);\n }\n },\n dependencies: [NzBreadCrumbItemComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return NzBreadCrumbComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\nlet NzBreadCrumbModule = /*#__PURE__*/(() => {\n class NzBreadCrumbModule {\n static {\n this.ɵfac = function NzBreadCrumbModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NzBreadCrumbModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NzBreadCrumbModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [NzBreadCrumbComponent, NzBreadCrumbItemComponent]\n });\n }\n }\n return NzBreadCrumbModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NzBreadCrumbComponent, NzBreadCrumbItemComponent, NzBreadCrumbModule, NzBreadCrumbSeparatorComponent };\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MAIN_MODULE_ROUTES, MENU, PERM_GROUPS } from '@shared/constants';\nimport { Menu } from '@shared/models';\nimport { PERMISSIONS } from '@shared/enums';\n\n@Component({\n selector: 'app-menu',\n templateUrl: './menu.component.html',\n styleUrl: './menu.component.scss'\n})\nexport class MenuComponent {\n\n @Input() isCollapsed!: boolean;\n @Output() toggle: EventEmitter = new EventEmitter();\n\n menuItems!: Menu[];\n // open current submenu only\n activeRoute!: string;\n activeChildRoute: string | null;\n\n PERMISSIONS = PERMISSIONS;\n\n constructor() {\n this.getMenuItems();\n }\n\n private getMenuItems(): void {\n this.menuItems = [\n {\n label: MENU.customerAccounts,\n route: MAIN_MODULE_ROUTES.admin,\n icon: 'users',\n permissions: PERM_GROUPS.SHLONAK,\n children: [],\n },\n {\n label: MENU.dashboard,\n route: MAIN_MODULE_ROUTES.dashboard,\n icon: 'dashboard',\n permissions: PERM_GROUPS.BACK_OFFICE,\n children: [],\n },\n {\n label: MENU.issues,\n route: MAIN_MODULE_ROUTES.issues,\n icon: 'issues',\n permissions: PERM_GROUPS.BACK_OFFICE,\n children: [],\n },\n {\n label: MENU.assets,\n route: MAIN_MODULE_ROUTES.assets,\n icon: 'assets',\n permissions: PERM_GROUPS.BACK_OFFICE,\n children: [],\n },\n {\n label: MENU.components,\n route: MAIN_MODULE_ROUTES.components,\n icon: 'components',\n permissions: PERM_GROUPS.BACK_OFFICE,\n children: [],\n },\n {\n label: MENU.inspections,\n route: MAIN_MODULE_ROUTES.inspections,\n icon: 'inspections',\n permissions: PERM_GROUPS.BACK_OFFICE,\n children: [],\n },\n {\n label: MENU.checklists,\n route: MAIN_MODULE_ROUTES.checklists,\n icon: 'checklists',\n permissions: PERM_GROUPS.BACK_OFFICE,\n children: [],\n },\n {\n label: MENU.users,\n route: MAIN_MODULE_ROUTES.users,\n icon: 'users',\n permissions: PERM_GROUPS.BACK_OFFICE_ADMIN,\n children: [],\n },\n {\n label: MENU.settings,\n route: MAIN_MODULE_ROUTES.settings,\n icon: 'settings',\n permissions: PERM_GROUPS.BACK_OFFICE_ADMIN,\n children: [],\n },\n ];\n }\n\n}\n\n","\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthenticationService } from '@core/services/authentication.service';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { ACTIONS, MAIN_MODULE_ROUTES, MESSAGES } from '@shared/constants';\nimport { User } from '@shared/models';\nimport { UserService } from '@shared/services/api';\nimport { NzModalService } from 'ng-zorro-antd/modal';\nimport { finalize, Observable } from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'app-secure-layout',\n templateUrl: './secure-layout.component.html',\n styleUrl: './secure-layout.component.scss'\n})\nexport class SecureLayoutComponent {\n\n isCollapsed = false;\n profile$: Observable;\n\n ROUTE = MAIN_MODULE_ROUTES;\n currentUser: string;\n currentImage: string | null;\n\n constructor(private auth: AuthenticationService,\n private us: UserService,\n private ms: NzModalService,\n private r: Router) {\n this.observeUser();\n }\n\n observeUser(): void {\n this.auth.getUpdatedUser$\n .pipe(untilDestroyed(this))\n .subscribe(() => this.getProfile());\n }\n\n getProfile(): void {\n this.us.getMe()\n .pipe(untilDestroyed(this))\n .subscribe(res => {\n this.currentUser = `${res.firstName} ${res.lastName}`;\n this.currentImage = res?.image;\n });\n }\n\n confirmLogout(): void {\n this.ms.confirm({\n nzTitle: MESSAGES.confirmLogout,\n nzOkText: ACTIONS.yes,\n nzCancelText: ACTIONS.no,\n nzAutofocus: 'ok',\n nzOnOk: () => this.logout()\n });\n }\n\n private logout(): void {\n this.auth.logout()\n .pipe(finalize(() => this.r.navigateByUrl('/login'))).subscribe();\n }\n\n showHide(isCollapsed: boolean): void {\n this.isCollapsed = isCollapsed;\n }\n\n}\n","\n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n\n\n\n
    \n
  • \n Profile\n
  • \n
  • \n Logout\n
  • \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { IconsProviderModule } from '@shared/modules/icons-provider.module';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzLayoutModule } from 'ng-zorro-antd/layout';\nimport { NzSpaceModule } from 'ng-zorro-antd/space';\nimport { NgxPermissionsModule } from 'ngx-permissions';\nimport { MenuComponent } from './menu/menu.component';\nimport { SecureLayoutComponent } from './secure-layout.component';\nimport { FilesPipe } from '@shared/pipes';\n\n\n@NgModule({\n declarations: [\n SecureLayoutComponent,\n MenuComponent,\n ],\n imports: [\n CommonModule,\n AngularSvgIconModule.forRoot(),\n IconsProviderModule,\n NgxPermissionsModule,\n RouterModule,\n NzButtonModule,\n NzBreadCrumbModule,\n NzDropDownModule,\n NzSpaceModule,\n NzLayoutModule,\n FilesPipe\n ]\n})\nexport class LayoutModule { }\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { AuthenticationService } from '@core/services/authentication.service';\nimport { PERM_GROUPS } from '@shared/constants';\nimport { PERMISSIONS } from '@shared/enums';\nimport { CurrentUser } from '@shared/models';\nimport { NgxPermissionsService } from 'ngx-permissions';\nimport { map, Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nclass AuthorizedGuardService {\n constructor(private readonly authService: AuthenticationService,\n private readonly nps: NgxPermissionsService,\n private readonly r: Router,\n private readonly router: Router) { }\n\n canActivate(): Observable | boolean {\n if (this.authService.hasToken()) {\n\n const userRole = Object.keys(this.nps.getPermissions());\n\n if (userRole.length === 0) {\n return this.authService.getMe().pipe(map((user) => {\n this.buildPermissions(user);\n return true;\n }),\n catchError(() => {\n return of(true);\n }));\n }\n\n return true;\n }\n\n this.router.navigateByUrl(`/login`);\n return false;\n }\n\n buildPermissions(user: CurrentUser): void {\n const groups = user.principal?.claims?.groups || [];\n const isShlonakUser = groups.filter(group => group.includes('/Shlonak'))?.length;\n const isBackOfficeUser = groups.filter(group => group.includes('/Back Office'))?.length;\n const isAdmin = groups.filter(group => group.includes('/Admin'))?.length;\n const isSupervisor = groups.filter(group => group.includes('/Supervisors'))?.length;\n\n if (isShlonakUser && isBackOfficeUser) {\n this.nps.addPermission(PERM_GROUPS.SHLONAK);\n } else {\n if (!user?.customerEnabled) {\n this.r.navigate(['/unauthorized']);\n return;\n }\n\n if (isAdmin && user?.customerLicenseActive) {\n this.nps.addPermission([ PERMISSIONS.BACK_OFFICE_USER_ADMIN ]);\n }\n\n if (isSupervisor && user?.customerLicenseActive) {\n this.nps.addPermission([ PERMISSIONS.BACK_OFFICE_USER_SUPERVISOR ]);\n }\n\n if (!user?.customerLicenseActive) {\n this.nps.addPermission([ PERMISSIONS.BACK_OFFICE_USER_VIEW ]);\n }\n }\n }\n}\n\nexport const authorizedGuard: CanActivateFn = () => {\n return inject(AuthorizedGuardService).canActivate();\n};\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { AuthenticationService } from '@core/services/authentication.service';\nimport { MAIN_MODULE_ROUTES } from '@shared/constants';\n\n@Injectable({\n providedIn: 'root'\n})\nclass NotAuthorizedGuardService {\n constructor(private authService: AuthenticationService,\n private router: Router) { }\n\n canActivate(): boolean {\n if (!this.authService.hasToken()) {\n return true;\n }\n\n this.router.navigateByUrl(`/${MAIN_MODULE_ROUTES.dashboard}`);\n return false;\n }\n}\n\nexport const notAuthorizedGuard: CanActivateFn = () => {\n return inject(NotAuthorizedGuardService).canActivate();\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { authorizedGuard } from '@core/guards/authorized.guard';\nimport { notAuthorizedGuard } from '@core/guards/not-authorized.guard';\nimport { PageNotFoundComponent } from '@shared/components/page-not-found/page-not-found.component';\nimport { UnauthorizedAccessComponent } from '@shared/components/unauthorized-access/unauthorized-access.component';\nimport { SecureLayoutComponent } from '@shared/modules/layout/secure-layout.component';\n\nconst routes: Routes = [\n {\n path: '',\n canActivate: [ notAuthorizedGuard ],\n loadChildren: () => import('./modules/authentication/authentication.module').then(m => m.AuthenticationModule)\n },\n {\n path: '',\n component: SecureLayoutComponent,\n canActivateChild: [ authorizedGuard ],\n children: [\n {\n path: '',\n loadChildren: () => import('./modules/main/main.module').then(m => m.MainModule)\n }\n ]\n },\n {\n path: 'admin',\n component: SecureLayoutComponent,\n canActivateChild: [ authorizedGuard ],\n children: [\n {\n path: '',\n loadChildren: () => import('./modules/admin/admin.module').then(m => m.AdminModule)\n }\n ]\n },\n\n { path: 'unauthorized', component: UnauthorizedAccessComponent },\n { path: '**', component: PageNotFoundComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n}\n","\n","import { registerLocaleData } from '@angular/common';\nimport en from '@angular/common/locales/en';\nimport { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { provideAnimationsAsync } from '@angular/platform-browser/animations/async';\nimport { CoreModule } from '@core/core.module';\nimport { LayoutModule } from '@shared/modules/layout/layout.module';\nimport { en_US, NZ_I18N } from 'ng-zorro-antd/i18n';\nimport { NgxPermissionsModule } from 'ngx-permissions';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\n\nregisterLocaleData(en);\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserAnimationsModule,\n BrowserModule,\n CoreModule,\n LayoutModule,\n NgxPermissionsModule.forRoot(),\n AppRoutingModule,\n ],\n providers: [\n { provide: NZ_I18N, useValue: en_US },\n provideAnimationsAsync()\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\nplatformBrowserDynamic().bootstrapModule(AppModule, {\n ngZoneEventCoalescing: true\n})\n .catch(err => console.error(err));\n"],"mappings":"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","names":["plural","val","n","i","v","en_default","ANIMATION_PREFIX","AsyncAnimationRendererFactory","doc","delegate","zone","animationType","moduleImpl","inject","ChangeDetectionScheduler","ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN","loadFn","m","moduleImplPromise","e","RuntimeError","ɵcreateEngine","ɵAnimationRendererFactory","rendererFactory","hostElement","rendererType","renderer","dynamicRenderer","DynamicDelegationRenderer","animationRendererFactory","animationRenderer","__ngFactoryType__","ɵɵinvalidFactory","ɵɵdefineInjectable","impl","fn","name","namespace","value","parent","newChild","refChild","isMove","oldChild","isHostElement","selectorOrNode","preserveContent","node","el","style","flags","target","eventName","callback","propOrEventName","InjectionToken","provideAnimationsAsync","type","performanceMarkFeature","makeEnvironmentProviders","RendererFactory2","DOCUMENT","DomRendererFactory2","NgZone","ANIMATION_MODULE_TYPE","ChunkErrorHandler","handleError","error","message","includes","confirm","window","location","reload","console","factory","ɵfac","BlobErrorHttpInterceptor","intercept","req","next","handle","pipe","catchError","err","HttpErrorResponse","error","Blob","type","Promise","resolve","reject","reader","FileReader","onload","e","errmsg","JSON","parse","target","result","response","headers","status","statusText","url","undefined","onerror","readAsText","throwError","factory","ɵfac","HttpErrorInterceptor","modal","notification","constructor","intercept","req","next","headers","has","clone","delete","handle","pipe","catchError","response","HttpErrorResponse","handleError","throwError","status","error","create","message","ɵɵinject","NzModalService","NzNotificationService","factory","ɵfac","HttpRequestInterceptor","as","r","refreshTokenInProgress","refreshTokenSubject","BehaviorSubject","constructor","applyCredentials","request","token","getAccessToken","some","url","includes","clone","setHeaders","Authorization","intercept","next","headers","get","handle","pipe","catchError","error","status","filter","take","switchMap","untilDestroyed","removeToken","refreshToken","getRefreshToken","oauth","newToken","access_token","goToLoginPage","throwError","e","finalize","navigateByUrl","ɵɵinject","AuthenticationService","Router","factory","ɵfac","__decorate","UntilDestroy","ngZorroConfig","message","nzMaxStack","nzDuration","nzPauseOnHover","notification","modal","nzMaskClosable","nzCloseOnNavigation","table","nzSize","nzBordered","drawer","datePicker","nzSeparator","card","image","popconfirm","nzAutofocus","ReactiveFormConfig","set","validationMessage","FIELD_ERROR","CoreModule","provideHttpClient","withInterceptorsFromDi","provide","HTTP_INTERCEPTORS","useClass","HttpRequestInterceptor","multi","HttpErrorInterceptor","BlobErrorHttpInterceptor","NZ_CONFIG","useValue","ErrorHandler","ChunkErrorHandler","imports","CommonModule","FormsModule","ReactiveFormsModule","NzModalModule","NzMessageModule","NzNotificationModule","NzSpinModule","RxReactiveFormsModule","icons","MenuFoldOutline","MenuUnfoldOutline","DashboardOutline","FormOutline","IconsProviderModule","provide","NZ_ICONS","useValue","imports","NzIconModule","_c0","NzBreadCrumbItemComponent_Conditional_0_ng_template_1_Template","rf","ctx","NzBreadCrumbItemComponent_Conditional_0_Template","ɵɵelementStart","ɵɵtemplate","ɵɵelement","ɵɵelementEnd","ctx_r0","ɵɵnextContext","noMenuTpl_r2","ɵɵreference","ɵɵproperty","ɵɵadvance","NzBreadCrumbItemComponent_Conditional_1_ng_template_0_Template","NzBreadCrumbItemComponent_Conditional_1_Template","NzBreadCrumbItemComponent_Conditional_2_ng_container_1_Template","ɵɵelementContainerStart","ɵɵtext","ɵɵelementContainerEnd","ɵɵtextInterpolate1","NzBreadCrumbItemComponent_Conditional_2_Template","NzBreadCrumbItemComponent_ng_template_3_Template","ɵɵprojection","_forTrack0","$index","$item","NzBreadCrumbComponent_Conditional_1_For_1_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","$event","breadcrumb_r2","ɵɵrestoreView","ctx_r2","ɵɵresetView","ɵɵattribute","ɵɵsanitizeUrl","ɵɵtextInterpolate","NzBreadCrumbComponent_Conditional_1_Template","ɵɵrepeaterCreate","ɵɵrepeater","NzBreadCrumbSeparatorComponent","__ngFactoryType__","ɵɵdefineComponent","ɵɵStandaloneFeature","ɵɵprojectionDef","NzBreadcrumb","NzBreadCrumbItemComponent","nzBreadCrumbComponent","ɵɵdirectiveInject","ɵɵtemplateRefExtractor","ɵɵconditional","NgTemplateOutlet","NzDropDownModule","NzDropDownDirective","NzIconModule","NzIconDirective","NzOutletModule","NzStringTemplateOutletDirective","NzBreadCrumbComponent","injector","cdr","elementRef","renderer","directionality","label","route","Subject","takeUntil","direction","url","e","Router","router","activatedRoute","ActivatedRoute","filter","NavigationEnd","startWith","PREFIX","breadcrumbs","children","child","PRIMARY_OUTLET","routeUrl","segment","path","nextUrl","breadcrumbLabel","shapedUrl","breadcrumb","Injector","ChangeDetectorRef","ElementRef","Renderer2","Directionality","booleanAttribute","ɵɵProvidersFeature","ɵɵInputTransformsFeature","NzBreadCrumbModule","ɵɵdefineNgModule","ɵɵdefineInjector","ɵɵelement","ɵɵproperty","parentMenuState_r1","isActive","menu_r2","icon","ɵɵelementStart","ɵɵtemplate","MenuComponent_ng_container_1_ng_container_1_li_1_Conditional_3_Template","ɵɵtext","ɵɵelementEnd","ɵɵpureFunction1","_c0","route","ctx_r2","isCollapsed","ɵɵadvance","ɵɵconditional","permissions","includes","PERMISSIONS","ADMIN_PORTAL_USER","ɵɵtextInterpolate","label","ɵɵelementContainerStart","MenuComponent_ng_container_1_ng_container_1_li_1_Template","child_r5","MenuComponent_ng_container_1_ng_template_2_ng_container_5_ng_container_1_Template","children","length","ɵɵlistener","ɵɵrestoreView","_r4","ɵɵnextContext","$implicit","activeRoute","ɵɵresetView","activeChildRoute","MenuComponent_ng_container_1_ng_template_2_ng_template_1_Template","ɵɵtemplateRefExtractor","MenuComponent_ng_container_1_ng_template_2_ng_container_5_Template","parentMenuTitle_r6","ɵɵpureFunction2","_c1","childRouterState_r7","MenuComponent_ng_container_1_ng_container_1_Template","MenuComponent_ng_container_1_ng_template_2_Template","subMenu_r8","MenuComponent","toggle","EventEmitter","menuItems","constructor","getMenuItems","MENU","customerAccounts","MAIN_MODULE_ROUTES","admin","PERM_GROUPS","SHLONAK","dashboard","BACK_OFFICE","issues","assets","components","inspections","checklists","users","BACK_OFFICE_ADMIN","settings","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","MenuComponent_ng_container_1_Template","ɵɵdeclareLet","ɵɵelement","ɵɵpipeBind1","ɵɵnextContext","currentImage","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","_c2","imageUrl_r2","SecureLayoutComponent","auth","us","ms","r","isCollapsed","profile$","ROUTE","MAIN_MODULE_ROUTES","currentUser","constructor","observeUser","getUpdatedUser$","pipe","untilDestroyed","subscribe","getProfile","getMe","res","firstName","lastName","image","confirmLogout","confirm","nzTitle","MESSAGES","nzOkText","ACTIONS","yes","nzCancelText","no","nzAutofocus","nzOnOk","logout","finalize","navigateByUrl","showHide","ɵɵdirectiveInject","AuthenticationService","UserService","NzModalService","Router","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtwoWayListener","$event","i0","ɵɵrestoreView","_r1","ɵɵtwoWayBindingSet","ɵɵresetView","ɵɵelementEnd","ɵɵtemplate","SecureLayoutComponent_Conditional_9_Template","SecureLayoutComponent_Conditional_10_Template","ɵɵtext","ɵɵlistener","ɵɵtwoWayProperty","ɵɵsanitizeUrl","menu_r3","ɵɵconditional","ɵɵtextInterpolate","_c0","_c1","profile","__decorate","UntilDestroy","LayoutModule","CommonModule","AngularSvgIconModule","forRoot","IconsProviderModule","NgxPermissionsModule","RouterModule","NzButtonModule","NzBreadCrumbModule","NzDropDownModule","NzSpaceModule","NzLayoutModule","AuthorizedGuardService","authService","nps","r","router","constructor","canActivate","hasToken","Object","keys","getPermissions","length","getMe","pipe","map","user","buildPermissions","catchError","of","navigateByUrl","groups","principal","claims","isShlonakUser","filter","group","includes","isBackOfficeUser","isAdmin","isSupervisor","addPermission","PERM_GROUPS","SHLONAK","customerEnabled","navigate","customerLicenseActive","PERMISSIONS","BACK_OFFICE_USER_ADMIN","BACK_OFFICE_USER_SUPERVISOR","BACK_OFFICE_USER_VIEW","ɵɵinject","AuthenticationService","NgxPermissionsService","Router","factory","ɵfac","providedIn","authorizedGuard","inject","NotAuthorizedGuardService","authService","router","constructor","canActivate","hasToken","navigateByUrl","MAIN_MODULE_ROUTES","dashboard","ɵɵinject","AuthenticationService","Router","factory","ɵfac","providedIn","notAuthorizedGuard","inject","routes","path","canActivate","notAuthorizedGuard","loadChildren","then","m","AuthenticationModule","component","SecureLayoutComponent","canActivateChild","authorizedGuard","children","MainModule","AdminModule","UnauthorizedAccessComponent","PageNotFoundComponent","AppRoutingModule","RouterModule","forRoot","AppComponent","selectors","decls","vars","template","rf","ctx","ɵɵelement","registerLocaleData","en","AppModule","bootstrap","AppComponent","provide","NZ_I18N","useValue","en_US","provideAnimationsAsync","imports","BrowserAnimationsModule","BrowserModule","CoreModule","LayoutModule","NgxPermissionsModule","forRoot","AppRoutingModule","platformBrowser","bootstrapModule","AppModule","ngZoneEventCoalescing","catch","err","console","error"],"x_google_ignoreList":[0,1,8]}