@volo/ngx-lepton-x.core 5.2.0 → 5.3.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"volo-ngx-lepton-x.core.mjs","sources":["../../../../libs/lepton-x-core/src/lib/directives/visible.directive.ts","../../../../libs/lepton-x-core/src/lib/services/language/language-translate-keys.enum.ts","../../../../libs/lepton-x-core/src/lib/services/language/language.module.ts","../../../../libs/lepton-x-core/src/lib/utils/data-store.ts","../../../../libs/lepton-x-core/src/lib/services/language/tokens.ts","../../../../libs/lepton-x-core/src/lib/services/language/language.service.ts","../../../../libs/lepton-x-core/src/lib/style/tokens.ts","../../../../libs/lepton-x-core/src/lib/style/style.service.ts","../../../../libs/lepton-x-core/src/lib/style/utils.ts","../../../../libs/lepton-x-core/src/lib/style/style-load.factory.ts","../../../../libs/lepton-x-core/src/lib/providers/direction.provider.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive-breakpoints.token.ts","../../../../libs/lepton-x-core/src/lib/tokens/window.token.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive.service.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive.directive.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive.module.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/defaults.ts","../../../../libs/lepton-x-core/src/lib/providers/responsive.provider.ts","../../../../libs/lepton-x-core/src/lib/services/user-profile/user-profile.service.ts","../../../../libs/lepton-x-core/src/lib/services/body/body.service.ts","../../../../libs/lepton-x-core/src/lib/services/layout/layout.service.ts","../../../../libs/lepton-x-core/src/lib/services/translate/tokens.ts","../../../../libs/lepton-x-core/src/lib/utils/common.ts","../../../../libs/lepton-x-core/src/lib/services/translate/translate.service.ts","../../../../libs/lepton-x-core/src/lib/services/translate/default-translate.service.ts","../../../../libs/lepton-x-core/src/lib/services/translate/providers.ts","../../../../libs/lepton-x-core/src/lib/services/auth/default-auth.service.ts","../../../../libs/lepton-x-core/src/lib/services/auth/tokens.ts","../../../../libs/lepton-x-core/src/lib/services/auth/providers.ts","../../../../libs/lepton-x-core/src/lib/services/local-storage/local-storage.service.ts","../../../../libs/lepton-x-core/src/lib/services/local-storage/cookie-storage.service.ts","../../../../libs/lepton-x-core/src/lib/services/route/routes.service.ts","../../../../libs/lepton-x-core/src/lib/providers/styles.provider.ts","../../../../libs/lepton-x-core/src/lib/providers/window.provider.ts","../../../../libs/lepton-x-core/src/lib/providers/logo.provider.ts","../../../../libs/lepton-x-core/src/lib/components/icon/icon.token.ts","../../../../libs/lepton-x-core/src/lib/components/icon/icon.component.ts","../../../../libs/lepton-x-core/src/lib/components/avatar/avatar.component.ts","../../../../libs/lepton-x-core/src/lib/components/avatar/avatar.component.html","../../../../libs/lepton-x-core/src/lib/components/icon/icon.module.ts","../../../../libs/lepton-x-core/src/lib/components/avatar/avatar.module.ts","../../../../libs/lepton-x-core/src/lib/enums/layouts.ts","../../../../libs/lepton-x-core/src/lib/components/brand-logo/brand-logo.component.ts","../../../../libs/lepton-x-core/src/lib/components/brand-logo/brand-logo.component.html","../../../../libs/lepton-x-core/src/lib/components/brand-logo/brand-logo.module.ts","../../../../libs/lepton-x-core/src/lib/directives/click-outside/click-outside.directive.ts","../../../../libs/lepton-x-core/src/lib/pipes/to-observable/to-observable.pipe.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.service.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/lepton-x-core/src/lib/pipes/to-observable/to-observable.module.ts","../../../../libs/lepton-x-core/src/lib/directives/click-outside/click-outside.module.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.token.ts","../../../../libs/lepton-x-core/src/lib/utils/tree-utils.ts","../../../../libs/lepton-x-core/src/lib/consts/others-group.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.service.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb-route-listener.service.ts","../../../../libs/lepton-x-core/src/lib/panels/logo-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/pipes/translate/translate.pipe.ts","../../../../libs/lepton-x-core/src/lib/animations/collapse.animations.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/sub-navbar/sub-navbar.component.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/sub-navbar/sub-navbar.component.html","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar-routes/navbar-routes.component.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar-routes/navbar-routes.component.html","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar-routes/navbar-routes.directive.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.component.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.component.html","../../../../libs/lepton-x-core/src/lib/pipes/safe-html/safe-html.pipe.ts","../../../../libs/lepton-x-core/src/lib/pipes/translate/translate.module.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.module.ts","../../../../libs/lepton-x-core/src/lib/components/footer/footer-links.service.ts","../../../../libs/lepton-x-core/src/lib/components/footer/footer.component.ts","../../../../libs/lepton-x-core/src/lib/components/footer/footer.component.html","../../../../libs/lepton-x-core/src/lib/components/footer/footer.module.ts","../../../../libs/lepton-x-core/src/lib/providers/lpx-core.provider.ts","../../../../libs/lepton-x-core/src/lib/lepton-x-core.module.ts","../../../../libs/lepton-x-core/src/lib/tokens/ssr-state.token.ts","../../../../libs/lepton-x-core/src/lib/panels/breadcrumb-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/content-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/current-user-image-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/current-user-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/footer-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/language-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/mobile-navbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/mobile-navbar-settings-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/mobile-navbar-profile-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/navbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/navitem-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/toolbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/top-navbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/settings-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/panels.module.ts","../../../../libs/lepton-x-core/src/lib/services/toolbar/toolbar.service.ts","../../../../libs/lepton-x-core/src/volo-ngx-lepton-x.core.ts"],"sourcesContent":["import { \r\n OnInit, \r\n Directive, \r\n OnDestroy, \r\n Input, \r\n ViewContainerRef, \r\n TemplateRef, \r\n inject \r\n} from '@angular/core';\r\nimport { EMPTY, from, Observable, of, Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[lpxVisible]',\r\n standalone: true,\r\n})\r\nexport class LpxVisibleDirective implements OnDestroy, OnInit {\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private templateRef = inject<TemplateRef<unknown>>(TemplateRef);\r\n\r\n conditionSubscription: Subscription | undefined;\r\n isVisible: boolean | undefined;\r\n\r\n @Input('lpxVisible') set lpxVisible(\r\n value: boolean | Promise<boolean> | Observable<boolean> | undefined | null\r\n ) {\r\n this.condition$ = checkType(value);\r\n this.subscribeToCondition();\r\n }\r\n\r\n private condition$: Observable<boolean> = of(false);\r\n ngOnInit(): void {\r\n this.updateVisibility();\r\n }\r\n ngOnDestroy(): void {\r\n this.conditionSubscription?.unsubscribe();\r\n }\r\n\r\n private subscribeToCondition() {\r\n this.conditionSubscription = this.condition$.subscribe((value) => {\r\n this.isVisible = value;\r\n this.updateVisibility();\r\n });\r\n }\r\n private updateVisibility() {\r\n this.viewContainerRef.clear();\r\n // it should be false not falsy\r\n if(this.isVisible === false) {\r\n return;\r\n }\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n \r\n }\r\n}\r\n\r\nfunction checkType(value: boolean | Promise<boolean> | Observable<boolean> | undefined | null) {\r\n if (value instanceof Promise) {\r\n return from(value);\r\n } else if (value instanceof Observable) {\r\n return value;\r\n } else if (typeof value === 'boolean') {\r\n return of(value);\r\n } else if(value === undefined || value === null ) {\r\n return of(true)\r\n }\r\n else {\r\n return EMPTY;\r\n }\r\n}\r\n","export enum LanguageTranslateKeys {\r\n SettingsTitle = 'language.settings.title',\r\n}\r\n\r\nexport type LanguageTranslateValues = {\r\n [key in LanguageTranslateKeys]: string;\r\n};\r\n\r\nexport const LanguageTranslateDefaults: LanguageTranslateValues = {\r\n [LanguageTranslateKeys.SettingsTitle]: 'Language Options',\r\n};\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LpxLanguageModuleOptions } from './models';\r\nimport { provideLpxCore, SKIP_DEFAULTS, withLanguage } from '../../providers';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule],\r\n})\r\nexport class LpxLanguageModule {\r\n /**\r\n * @deprecated `LpxLanguageModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(\r\n options?: LpxLanguageModuleOptions,\r\n ): ModuleWithProviders<LpxLanguageModule> {\r\n return {\r\n ngModule: LpxLanguageModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withLanguage(options))],\r\n };\r\n }\r\n}\r\n","import { BehaviorSubject, Subject } from 'rxjs';\r\nimport { map, distinctUntilChanged, filter } from 'rxjs/operators';\r\n\r\nexport class DataStore<State> {\r\n private state$ = new BehaviorSubject<State>(this.initialState);\r\n\r\n private update$ = new Subject<Partial<State>>();\r\n\r\n get state() {\r\n return this.state$.value;\r\n }\r\n\r\n sliceState = <Slice>(\r\n selector: (state: State) => Slice,\r\n compareFn = (s1: Slice, s2: Slice) => s1 === s2\r\n ) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));\r\n\r\n sliceUpdate = <Slice>(\r\n selector: (state: Partial<State>) => Slice,\r\n filterFn = (x: Slice) => x !== undefined\r\n ) => this.update$.pipe(map(selector), filter(filterFn));\r\n\r\n constructor(private initialState: State) {}\r\n\r\n patch(state: Partial<State>) {\r\n let patchedState = state as State;\r\n\r\n if (typeof state === 'object' && !Array.isArray(state)) {\r\n patchedState = { ...this.state, ...state };\r\n }\r\n\r\n this.state$.next(patchedState);\r\n this.update$.next(patchedState);\r\n }\r\n\r\n set(state: State) {\r\n this.state$.next(state);\r\n this.update$.next(state);\r\n }\r\n\r\n reset() {\r\n this.set(this.initialState);\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxLanguage } from './models';\r\n\r\nexport const LPX_LANGUAGE = new InjectionToken<LpxLanguage[]>('LPX_LANGUAGE');\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { LPX_LANGUAGE } from './tokens';\r\nimport { LpxNavbarItem } from '../../components/navbar/models';\r\nimport { LpxLanguage, LpxLanguageState } from './models';\r\nimport { LanguageTranslateKeys } from './language-translate-keys.enum';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LanguageService {\r\n private languages = inject(LPX_LANGUAGE);\r\n\r\n readonly store = new DataStore<LpxLanguageState>({ languages: [] });\r\n\r\n id = 'languages';\r\n\r\n convertLanguageToNavbarItem = (languages: LpxLanguage[]): LpxNavbarItem[] => {\r\n return languages.map((lang) => ({\r\n icon: '',\r\n text: lang.displayName,\r\n selected: lang.selected,\r\n action: () => {\r\n this.setSelectedLanguage(lang);\r\n return true;\r\n },\r\n }));\r\n };\r\n\r\n selectedLanguage$ = this.store.sliceState(\r\n ({ selectedLanguage }) => selectedLanguage\r\n );\r\n\r\n get selectedLanguage(): LpxLanguage {\r\n return this.store.state.selectedLanguage as LpxLanguage;\r\n }\r\n\r\n languageChange$: Observable<LpxLanguage> = this.selectedLanguage$.pipe(\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n filter<LpxLanguage>((lang: LpxLanguage) => lang !== undefined),\r\n distinctUntilChanged((a, b) => a?.cultureName === b?.cultureName)\r\n );\r\n languages$ = this.store.sliceState((state) => state.languages);\r\n languagesAsNavbarItems$ = this.languages$.pipe(\r\n map(this.convertLanguageToNavbarItem)\r\n );\r\n //TODO: PROVIDE API\r\n languagesAsSettingsGroup$ = this.languagesAsNavbarItems$.pipe(\r\n map((languages) => ({\r\n text: LanguageTranslateKeys.SettingsTitle as string,\r\n icon: 'bi bi-globe',\r\n id: this.id,\r\n children: languages,\r\n }))\r\n );\r\n\r\n constructor() {\r\n this.init(this.languages);\r\n }\r\n\r\n setLanguages(languages: LpxLanguage[]) {\r\n this.init(languages);\r\n }\r\n\r\n init(languages: LpxLanguage[]): void {\r\n this.store.patch({\r\n languages,\r\n selectedLanguage: languages.find((lang) => lang.selected),\r\n });\r\n }\r\n\r\n setSelectedLanguage(lang: LpxLanguage) {\r\n this.store.patch({\r\n selectedLanguage: lang,\r\n });\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxStyles } from './models';\r\n\r\nexport const LPX_INITIAL_STYLES = new InjectionToken<LpxStyles>(\r\n 'LPX_INITIAL_STYLES_TOKEN'\r\n);\r\n\r\nexport const LPX_STYLE_FINAL = new InjectionToken<LpxStyles>(\r\n 'LPX_STYLE_FINAL_TOKEN'\r\n);\r\n\r\nexport const LPX_LAYOUT_STYLE_FINAL = new InjectionToken<LpxStyles>(\r\n 'LPX_LAYOUT_STYLE_FINALIZE_TOKEN'\r\n);\r\n","import { Injectable, DOCUMENT, inject } from '@angular/core';\r\nimport { LPX_STYLE_FINAL } from './tokens';\r\nimport { LpxStyle, LpxStyles } from './models';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StyleService {\r\n private initialStyles = inject<LpxStyles>(LPX_STYLE_FINAL);\r\n private document = inject<Document>(DOCUMENT);\r\n\r\n lastInjectedStyle: HTMLLinkElement | null = null;\r\n\r\n initialized$ = new BehaviorSubject<boolean>(false);\r\n\r\n async initStyles(direction: 'rtl' | 'ltr') {\r\n const cssExtension = direction === 'rtl' ? '.rtl' : '';\r\n\r\n for (const style of this.initialStyles) {\r\n const href = `${style.bundleName}${cssExtension}.css`;\r\n const selector = `\r\n link[rel=\"stylesheet\"][href$=\"${href}\"],\r\n link[rel=\"stylesheet\"]#${style.bundleName}\r\n `;\r\n\r\n const isAlreadyLoaded = !!this.document.querySelector(selector);\r\n if (isAlreadyLoaded) {\r\n continue;\r\n }\r\n\r\n await this.loadStyle(style, direction);\r\n }\r\n this.initialized$.next(true);\r\n }\r\n\r\n async loadStyle(\r\n style: LpxStyle,\r\n direction: 'ltr' | 'rtl',\r\n ): Promise<HTMLStyleElement | void> {\r\n return new Promise((resolve) => {\r\n const linkElement = this.createLinkElem(style, direction, resolve);\r\n\r\n // Find styles.css to insert before it\r\n const stylesCss = this.document.querySelector(\r\n 'link[rel=\"stylesheet\"][href*=\"styles\"]',\r\n );\r\n\r\n if (stylesCss) {\r\n stylesCss.insertAdjacentElement('beforebegin', linkElement);\r\n } else {\r\n this.document.head.appendChild(linkElement);\r\n }\r\n\r\n this.lastInjectedStyle = linkElement;\r\n resolve(linkElement);\r\n });\r\n }\r\n\r\n async replaceStyle<T extends LpxStyle>(\r\n style: T,\r\n direction: 'rtl' | 'ltr',\r\n ): Promise<HTMLStyleElement | void> {\r\n const loaded = this.document.querySelector(`link#${style.bundleName}`);\r\n if (loaded) {\r\n loaded.remove();\r\n }\r\n return this.loadStyle(style, direction);\r\n }\r\n\r\n async reloadInitialStyles(direction: 'rtl' | 'ltr') {\r\n for (const style of this.initialStyles) {\r\n await this.replaceStyle(style, direction);\r\n }\r\n }\r\n\r\n createLinkElem(\r\n style: LpxStyle,\r\n direction: 'rtl' | 'ltr',\r\n resolve: (param: any) => void,\r\n ): HTMLLinkElement {\r\n const linkElem = this.document.createElement('link');\r\n linkElem.rel = 'stylesheet';\r\n linkElem.id = style.bundleName;\r\n linkElem.href = `${style.bundleName}${\r\n direction === 'rtl' ? '.rtl' : ''\r\n }.css`;\r\n linkElem.onload = () => {\r\n resolve(linkElem);\r\n };\r\n return linkElem;\r\n }\r\n}\r\n","import { LpxStyleFactory, LpxStyles } from './models';\r\n\r\nexport function createStyleFactory<T = LpxStyles>(\r\n handler?: LpxStyleFactory<T>\r\n): LpxStyleFactory<T> {\r\n return handler || ((defaultValue: T) => defaultValue);\r\n}\r\n","import { LpxStyles } from '../style/models';\r\n\r\nexport function styleLoadFactory(\r\n styleList: LpxStyles,\r\n layoutStyles: LpxStyles,\r\n) {\r\n styleList.push({\r\n bundleName: 'ng-bundle',\r\n });\r\n styleList.push({\r\n bundleName: 'font-bundle',\r\n });\r\n return [...styleList, ...layoutStyles];\r\n}\r\n","import { DOCUMENT, inject, PLATFORM_ID, provideAppInitializer, Injector, runInInjectionContext } from '@angular/core';\r\nimport { LanguageService } from '../services/language';\r\nimport { StyleService } from '../style';\r\nimport {\r\n distinctUntilKeyChanged,\r\n filter,\r\n switchMap,\r\n take,\r\n} from 'rxjs/operators';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport function createDirectionProvider(listenDirection: boolean) {\r\n return provideAppInitializer(() => {\r\n if (listenDirection) {\r\n listenDirectionChange();\r\n }\r\n });\r\n}\r\n// subscribe to direction from documentElement and load direction stylesheet\r\nexport function listenDirectionChange() {\r\n const languageService = inject(LanguageService);\r\n const styleService = inject(StyleService);\r\n const doc = inject(DOCUMENT) as Document;\r\n const platformId = inject(PLATFORM_ID);\r\n\r\n if (!isPlatformBrowser(platformId)) {\r\n return Promise.resolve();\r\n }\r\n\r\n return new Promise((resolve) => {\r\n styleService.initialized$\r\n .pipe(\r\n filter(Boolean),\r\n take(1),\r\n switchMap(() => languageService.languageChange$),\r\n distinctUntilKeyChanged('isRTL'),\r\n )\r\n .subscribe(async (lang) => {\r\n const direction = lang?.isRTL ? 'rtl' : 'ltr';\r\n const documentElement = (doc?.documentElement || ({} as HTMLElement)) as HTMLElement;\r\n if (documentElement && documentElement.dir !== direction) {\r\n documentElement.dir = direction;\r\n }\r\n await styleService.reloadInitialStyles(direction);\r\n resolve(null);\r\n });\r\n });\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ResponsiveBreakpoints {\r\n [key: string]: number;\r\n}\r\n\r\nexport const RESPONSIVE_BREAKPOINTS = new InjectionToken<ResponsiveBreakpoints>(\r\n 'RESPONSIVE_BREAKPOINTS',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const WINDOW = new InjectionToken<Window>('WINDOW');\r\n","import {inject, Injectable, PLATFORM_ID} from '@angular/core';\r\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\r\nimport {\r\n RESPONSIVE_BREAKPOINTS,\r\n ResponsiveBreakpoints,\r\n} from './responsive-breakpoints.token';\r\nimport { WINDOW } from '../../tokens/window.token';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport const enum ResponsiveTokens {\r\n none = 'none',\r\n all = 'all',\r\n separator = '-',\r\n}\r\n\r\nexport interface ResponsiveBreakpoint {\r\n name: string;\r\n width: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ResponsiveService {\r\n protected providedBreakpoints = inject<ResponsiveBreakpoints>(RESPONSIVE_BREAKPOINTS);\r\n protected window = inject(WINDOW);\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n currentResolution$!: Observable<{ height: number; width: number }>;\r\n\r\n defaultBreakpoint = {\r\n name: ResponsiveTokens.all,\r\n width: 0,\r\n };\r\n\r\n breakpoints: { name: string; width: number }[] = this.buildBreakpoints(\r\n this.providedBreakpoints,\r\n );\r\n\r\n protected getCurrentSize = () => isPlatformBrowser(this.platformId) ? ({\r\n height: this.window.innerHeight,\r\n width: this.window.innerWidth,\r\n }) : ({height: 0, width: 0});\r\n\r\n protected mapSizeToBreakpoint = ({ width } = this.getCurrentSize()) => {\r\n return this.breakpoints.find(\r\n (s) => width >= s.width,\r\n ) as ResponsiveBreakpoint;\r\n };\r\n\r\n currentSize$ = new BehaviorSubject<ResponsiveBreakpoint>(\r\n this.mapSizeToBreakpoint(),\r\n );\r\n\r\n shouldRenderWithCurrentSize = (query: string) => {\r\n return this.matchQuery(query);\r\n };\r\n\r\n constructor() {\r\n this.setupListener();\r\n }\r\n\r\n protected setupListener() {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.currentResolution$ = fromEvent(this.window, 'resize')\r\n .pipe(map(this.getCurrentSize))\r\n .pipe(startWith(this.getCurrentSize()));\r\n\r\n this.currentResolution$\r\n .pipe(map(this.mapSizeToBreakpoint), distinctUntilChanged())\r\n .subscribe((current) => {\r\n this.currentSize$.next(current);\r\n });\r\n }\r\n\r\n protected buildBreakpoints(breakpoints: ResponsiveBreakpoints) {\r\n return [\r\n ...Object.keys(breakpoints)\r\n .map((key) => ({\r\n name: key,\r\n width: breakpoints[key],\r\n }))\r\n .sort((a, b) => b.width - a.width),\r\n this.defaultBreakpoint,\r\n ];\r\n }\r\n\r\n protected matchQuery(query: string) {\r\n const { width } = this.getCurrentSize();\r\n const tokens = query.split(' ');\r\n const findInTokens = (size: string) =>\r\n tokens.find(\r\n (token) => token.split(ResponsiveTokens.separator)[0] === size,\r\n );\r\n\r\n const matchedBreakpoint = this.breakpoints.find(\r\n (breakpoint) =>\r\n width >= breakpoint.width && findInTokens(breakpoint.name),\r\n );\r\n if (matchedBreakpoint) {\r\n const token = findInTokens(matchedBreakpoint.name);\r\n const shouldBeBigger = !token?.includes(ResponsiveTokens.none);\r\n return shouldBeBigger === width >= matchedBreakpoint.width;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { \r\n ChangeDetectorRef, \r\n Directive, \r\n Input, \r\n OnDestroy, \r\n OnInit, \r\n TemplateRef, \r\n ViewContainerRef, \r\n inject \r\n} from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\nimport { ResponsiveService } from './responsive.service';\r\n\r\n@Directive({ selector: '[lpxResponsive]' })\r\nexport class ResponsiveDirective implements OnInit, OnDestroy {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private viewContainer = inject(ViewContainerRef);\r\n private service = inject(ResponsiveService);\r\n private parentCdr = inject(ChangeDetectorRef, { optional: true, skipSelf: true })!;\r\n\r\n hasRendered = false;\r\n sub = new Subscription();\r\n\r\n @Input('lpxResponsive') query!: string;\r\n\r\n render = (shouldRender: boolean) => {\r\n if (shouldRender && !this.hasRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasRendered = true;\r\n } else if (!shouldRender && this.hasRendered) {\r\n this.viewContainer.clear();\r\n this.hasRendered = false;\r\n }\r\n this.parentCdr.detectChanges();\r\n };\r\n\r\n ngOnInit(): void {\r\n this.sub.add(\r\n this.service.currentSize$\r\n .pipe(map((_) => this.service.shouldRenderWithCurrentSize(this.query)))\r\n .subscribe(this.render),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ResponsiveDirective } from './responsive.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ResponsiveDirective],\r\n exports: [ResponsiveDirective],\r\n})\r\nexport class LpxResponsiveModule {}\r\n","import { ResponsiveBreakpoints } from './responsive-breakpoints.token';\r\n\r\nexport const LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS: ResponsiveBreakpoints = {\r\n sm: 480,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n};\r\n","import {\r\n LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS,\r\n RESPONSIVE_BREAKPOINTS,\r\n ResponsiveBreakpoints,\r\n} from '../directives/responsive';\r\nimport { Provider } from '@angular/core';\r\n\r\nexport function createResponsiveProvider(responsiveSettings:ResponsiveBreakpoints |undefined ): Provider{\r\n return {\r\n provide: RESPONSIVE_BREAKPOINTS,\r\n useValue:\r\n responsiveSettings || LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS,\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { UserProfile } from '../../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserProfileService {\r\n private store = new DataStore({} as UserProfile);\r\n user$ = this.store.sliceState((state) => state);\r\n\r\n setUser(user: UserProfile) {\r\n this.store.set(user);\r\n }\r\n\r\n patchUser(user: Partial<UserProfile>) {\r\n this.store.patch(user);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BodyService {\r\n body = document.querySelector('body');\r\n classes = {\r\n overflowYHidden: 'overflow-y-hidden',\r\n };\r\n\r\n disableScrollY() {\r\n this.body?.classList.add(this.classes.overflowYHidden);\r\n }\r\n\r\n enableScrollY() {\r\n this.body?.classList.remove(this.classes.overflowYHidden);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DataStore } from '../../utils/data-store';\r\n\r\nexport interface LayoutSettings {\r\n containerClass: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LayoutService {\r\n readonly store = new DataStore({\r\n containerClass: [''],\r\n });\r\n\r\n containerClass$: Observable<Array<string>> = this.store.sliceState(\r\n ({ containerClass }) => containerClass || [],\r\n );\r\n\r\n setClass(cssClass: string | Array<string>): void {\r\n const containerClass = Array.isArray(cssClass) ? cssClass : [cssClass];\r\n this.patchStore(containerClass);\r\n }\r\n\r\n addClass(cssClass: string): void {\r\n const { containerClass } = this.store.state;\r\n this.patchStore([...containerClass, cssClass]);\r\n }\r\n\r\n removeClass(cssClass: string): void {\r\n const { containerClass } = this.store.state;\r\n const index = containerClass.findIndex((item) => item === cssClass);\r\n if (index === -1) return;\r\n const update = [\r\n ...containerClass.slice(0, index),\r\n ...containerClass.slice(index + 1),\r\n ];\r\n this.patchStore(update);\r\n }\r\n\r\n removeClasses(classlist: string[]) {\r\n const { containerClass } = this.store.state;\r\n const filteredClasslist = containerClass.filter(\r\n (clss) => !classlist.includes(clss),\r\n );\r\n this.patchStore(filteredClasslist);\r\n }\r\n\r\n toggleClass(cssClass: string): void {\r\n const { containerClass } = this.store.state;\r\n const index = containerClass.findIndex((item) => item === cssClass);\r\n if (index === -1) {\r\n this.addClass(cssClass);\r\n } else {\r\n this.removeClass(cssClass);\r\n }\r\n }\r\n\r\n patchStore(containerClass: string[]) {\r\n this.store.patch({\r\n containerClass,\r\n });\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxTranslate, TranslateService } from './models';\r\n\r\nexport const LPX_TRANSLATE_SERVICE_TOKEN = new InjectionToken<TranslateService>(\r\n 'LPX_TRANSLATE_SERVICE_TOKEN'\r\n);\r\nexport const LPX_TRANSLATE_TOKEN = new InjectionToken<LpxTranslate[]>(\r\n 'LPX_TRANSLATE_TOKEN'\r\n);\r\n","import { from, Observable, of } from 'rxjs';\r\nimport { ArrayTypeDeep, RecursiveArray, VariantSource } from '../models/common';\r\n\r\nexport function sortItems<T extends { order?: number }>(a: T, b: T): number {\r\n if (!a.order) {\r\n return 1;\r\n }\r\n if (!b.order) {\r\n return -1;\r\n }\r\n\r\n return a.order - b.order;\r\n}\r\n\r\nexport function flatArrayDeepToObject<T extends { [key: string]: any }>(\r\n arr: RecursiveArray<ArrayTypeDeep<T>>\r\n): ArrayTypeDeep<T> {\r\n return arr.reduce(\r\n (acc, curr) => ({\r\n ...acc,\r\n ...(Array.isArray(curr) ? flatArrayDeepToObject(curr) : curr),\r\n }),\r\n {}\r\n ) as ArrayTypeDeep<T>;\r\n}\r\n\r\nexport function getStream$<T>(source: VariantSource<T>): Observable<T> {\r\n return source instanceof Observable\r\n ? source\r\n : source instanceof Promise\r\n ? from(source)\r\n : of(source);\r\n}\r\n\r\nexport function isNullOrUndefined<T>(obj: T) {\r\n return obj === null || obj === undefined;\r\n}\r\n\r\nexport function isArray<T>(obj: T): boolean {\r\n return Array.isArray(obj);\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LPX_TRANSLATE_SERVICE_TOKEN, LPX_TRANSLATE_TOKEN } from './tokens';\r\nimport { LpxTranslate, TranslateService } from './models';\r\nimport { flatArrayDeepToObject } from '../../utils/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LpxThemeTranslateService {\r\n private translateValues = inject<Array<LpxTranslate[]>>(LPX_TRANSLATE_TOKEN, { optional: true })!;\r\n private translateService = inject<TranslateService>(LPX_TRANSLATE_SERVICE_TOKEN);\r\n\r\n private _content: LpxTranslate = flatArrayDeepToObject(this.translateValues);\r\n\r\n // TODO: PROVIDE API : Implement args\r\n translate$(key: string, ...args: any[]): Observable<string> {\r\n return this.translateService.get$(key, this._content[key]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { TranslateService } from './models';\r\n\r\n@Injectable()\r\nexport class DefaultTranslateService implements TranslateService {\r\n get$(key: string, defaultValue?: string): Observable<string> {\r\n return of(defaultValue || key || '');\r\n }\r\n\r\n get(key: string, defaultValue?: string): string {\r\n return defaultValue || key || '';\r\n }\r\n}\r\n","import { Provider } from '@angular/core';\r\nimport { LPX_TRANSLATE_SERVICE_TOKEN } from './tokens';\r\nimport { DefaultTranslateService } from './default-translate.service';\r\n\r\nexport const LPX_TRANSLATE_SERVICE_PROVIDER: Provider = {\r\n provide: LPX_TRANSLATE_SERVICE_TOKEN,\r\n useClass: DefaultTranslateService,\r\n};\r\n\r\nexport const LPX_TRANSLATE_PROVIDERS: Provider[] = [\r\n LPX_TRANSLATE_SERVICE_PROVIDER,\r\n];\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { AuthService } from './models';\r\n\r\nimport { UserProfileService } from '../user-profile';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class DefaultAuthService implements AuthService {\r\n private userProfileService = inject(UserProfileService);\r\n\r\n isUserExists$ = this.userProfileService.user$.pipe(\r\n map((user) => !!user && Object.keys(user).length > 0)\r\n );\r\n\r\n navigateToLogin(): void {\r\n return;\r\n }\r\n}\r\n","import {InjectionToken} from \"@angular/core\";\r\nimport {AuthService} from \"./models\";\r\n\r\nexport const LPX_AUTH_SERVICE_TOKEN = new InjectionToken<AuthService>(\r\n 'LPX_AUTH_SERVICE_TOKEN'\r\n);\r\n","import {Provider} from \"@angular/core\";\r\nimport {LPX_AUTH_SERVICE_TOKEN} from \"./tokens\";\r\nimport {DefaultAuthService} from \"./default-auth.service\";\r\n\r\nexport const LPX_AUTH_SERVICE_PROVIDER: Provider = {\r\n provide: LPX_AUTH_SERVICE_TOKEN,\r\n useClass: DefaultAuthService,\r\n};\r\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LpxLocalStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n [name: string]: any;\r\n\r\n get isBrowser(): boolean {\r\n return isPlatformBrowser(this.platformId);\r\n }\r\n\r\n get length(): number {\r\n return this.isBrowser ? localStorage.length : 0;\r\n }\r\n\r\n clear(): void {\r\n if (this.isBrowser) localStorage.clear();\r\n }\r\n\r\n getItem(key: string): string | null {\r\n return this.isBrowser ? localStorage.getItem(key) : null;\r\n }\r\n\r\n key(index: number): string | null {\r\n return this.isBrowser ? localStorage.key(index) : null;\r\n }\r\n\r\n removeItem(key: string): void {\r\n if (this.isBrowser) localStorage.removeItem(key);\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (this.isBrowser) localStorage.setItem(key, value);\r\n }\r\n}\r\n","import { Injectable, PLATFORM_ID, inject, REQUEST } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LpxCookieStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n private document = inject(DOCUMENT);\r\n private request = inject(REQUEST);\r\n\r\n get length(): number {\r\n return isPlatformBrowser(this.platformId) ? this.keys().length : this.getCookiesFromRequest()?.size ?? 0;\r\n }\r\n\r\n clear(): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.keys().forEach(k => this.removeItem(k));\r\n }\r\n\r\n getItem(key: string): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return this.getCookiesFromRequest()?.get(key) ?? null;\r\n }\r\n const name = key + '=';\r\n const parts = (this.document.cookie || '').split('; ');\r\n for (const p of parts) {\r\n if (p.startsWith(name)) {\r\n return decodeURIComponent(p.slice(name.length));\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n key(index: number): string | null {\r\n if (!isPlatformBrowser(this.platformId)) return null;\r\n return this.keys()[index] ?? null;\r\n }\r\n\r\n removeItem(key: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, '', { 'max-age': -1, path: '/' });\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n });\r\n }\r\n\r\n setItemWithExpiry(key: string, value: string, seconds: number): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n 'max-age': Math.max(0, Math.floor(seconds)),\r\n });\r\n }\r\n\r\n private keys(): string[] {\r\n const raw = (this.document.cookie || '').split('; ').filter(Boolean);\r\n return raw\r\n .map(c => decodeURIComponent(c.split('=')[0]));\r\n }\r\n\r\n private setCookie(name: string, value: string, opts: {\r\n path?: string;\r\n domain?: string;\r\n secure?: boolean;\r\n sameSite?: 'Lax' | 'Strict' | 'None';\r\n expires?: Date;\r\n 'max-age'?: number;\r\n }) {\r\n let s = `${name}=${value}`;\r\n if (opts.path) s += `; Path=${opts.path}`;\r\n if (opts.domain) s += `; Domain=${opts.domain}`;\r\n if (opts.sameSite) s += `; SameSite=${opts.sameSite}`;\r\n if (opts.secure) s += `; Secure`;\r\n if (opts.expires) s += `; Expires=${opts.expires.toUTCString()}`;\r\n if (typeof opts['max-age'] === 'number') s += `; Max-Age=${opts['max-age']}`;\r\n this.document.cookie = s;\r\n }\r\n\r\n private getCookiesFromRequest(): Map<string, string> {\r\n const cookies = new Map<string, string>();\r\n const cookieHeader = this.request?.headers.get('cookie') ?? '';\r\n for (const part of cookieHeader.split(';')) {\r\n const i = part.indexOf('=');\r\n if (i > -1) {\r\n const k = part.slice(0, i).trim();\r\n const v = decodeURIComponent(part.slice(i + 1).trim());\r\n cookies.set(k, v);\r\n }\r\n }\r\n return cookies;\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoutesService {\r\n protected readonly router = inject(Router);\r\n protected readonly location = inject(Location);\r\n\r\n readonly currentNavigation = toSignal(\r\n this.router.events.pipe(\r\n filter((e) => e instanceof NavigationEnd),\r\n map(() => this.location.path() || '/'),\r\n ),\r\n { initialValue: this.location.path() || '/' },\r\n );\r\n}\r\n","import { inject, provideAppInitializer } from '@angular/core';\r\nimport { switchMap, take } from 'rxjs/operators';\r\nimport { from } from 'rxjs';\r\nimport { LPX_INITIAL_STYLES, StyleService } from '../style';\r\nimport { LanguageService } from '../services';\r\n\r\nexport const LPX_STYLE_PROVIDERS = [\r\n {\r\n provide: LPX_INITIAL_STYLES,\r\n useFactory: () => [],\r\n },\r\n provideAppInitializer(() => {\r\n return loadInitialStyles();\r\n }),\r\n];\r\n\r\nexport function loadInitialStyles() {\r\n const styleService = inject(StyleService);\r\n const languageService = inject(LanguageService);\r\n return languageService.languageChange$.pipe(\r\n take(1),\r\n switchMap((lang) =>\r\n from(styleService.initStyles(lang.isRTL ? 'rtl' : 'ltr')),\r\n ),\r\n );\r\n}\r\n","import { inject, PLATFORM_ID, Provider } from '@angular/core';\r\nimport { WINDOW } from '../tokens/window.token';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport function createWindowProvider(windowObj: Window | undefined): Provider {\r\n return { provide: WINDOW, useFactory: () => {\r\n if (windowObj) {\r\n return windowObj;\r\n } else {\r\n const platformId = inject(PLATFORM_ID);\r\n return isPlatformBrowser(platformId) ? window : undefined;\r\n }\r\n }\r\n }\r\n}\r\n","import { Environment } from '@abp/ng.core';\r\nimport {\r\n EnvironmentProviders,\r\n makeEnvironmentProviders,\r\n Provider,\r\n} from '@angular/core';\r\nimport { LOGO_APP_NAME_TOKEN, LOGO_URL_TOKEN } from '@abp/ng.theme.shared';\r\n\r\nexport enum LpxLogoFeatureKind {\r\n Options,\r\n}\r\n\r\nexport interface LpxLogoFeature<KindT extends LpxLogoFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: (Provider | EnvironmentProviders)[];\r\n}\r\n\r\nfunction makeLpxLogoFeature<KindT extends LpxLogoFeatureKind>(\r\n kind: KindT,\r\n providers: (Provider | EnvironmentProviders)[],\r\n): LpxLogoFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\n/***\r\n * @deprecated please use the same `withEnvironmentOptions()` **function** that is imported from `@abp/ng.theme.shared` instead.\r\n */\r\nexport function withEnvironmentOptions(\r\n options = {} as Environment,\r\n): LpxLogoFeature<LpxLogoFeatureKind.Options> {\r\n const { name, logoUrl } = options.application || {};\r\n\r\n return makeLpxLogoFeature(LpxLogoFeatureKind.Options, [\r\n {\r\n provide: LOGO_URL_TOKEN,\r\n useValue: logoUrl || '',\r\n },\r\n {\r\n provide: LOGO_APP_NAME_TOKEN,\r\n useValue: name || 'ProjectName',\r\n },\r\n ]);\r\n}\r\n\r\n/***\r\n * @deprecated please use the same`provideLogo()` **function** that is imported from `@abp/ng.theme.shared` instead.\r\n */\r\nexport function provideLogo(\r\n ...features: LpxLogoFeature<LpxLogoFeatureKind>[]\r\n): EnvironmentProviders {\r\n const providers: (Provider | EnvironmentProviders)[] = [];\r\n features.forEach(({ ɵproviders }) => providers.push(...ɵproviders));\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const ICON_MAP = {\r\n bagFill: 'bi bi-bag-fill',\r\n bellFill: 'bi bi-bell-fill',\r\n calendarWeek: 'bi bi-calendar2-week',\r\n chatDots: 'bi bi-chat-dots',\r\n chevronDown: 'bi bi-chevron-down',\r\n chevronUp: 'bi bi-chevron-up',\r\n gearConnected: 'bi bi-gear-wide-connected',\r\n filter: 'bi bi-filter',\r\n filterFill: 'bi bi-filter-circle-fill',\r\n layoutThreeColumns: 'bi bi-layout-three-columns',\r\n moon: 'bi bi-moon',\r\n square: 'bi bi-square',\r\n sunset: 'bi bi-brightness-alt-high-fill',\r\n sunup: 'bi bi-brightness-high-fill',\r\n star: 'bi bi-star',\r\n x: 'bi bi-x',\r\n xCircleFill: 'bi bi-x-circle-fill',\r\n};\r\n\r\nexport type ICON_MAP_TYPE = typeof ICON_MAP;\r\n\r\nexport const LEPTON_X_ICON_SET = new InjectionToken<ICON_MAP_TYPE>('LEPTON_X_ICON_SET');\r\n","import { Component, inject, Input, ViewEncapsulation } from '@angular/core';\r\nimport { LEPTON_X_ICON_SET, ICON_MAP_TYPE } from './icon.token';\r\n\r\n@Component({\r\n selector: 'lpx-icon',\r\n template: `\r\n <i class=\"lpx-icon\" [class]=\"styleClass\" aria-hidden=\"true\"></i>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [],\r\n})\r\nexport class IconComponent {\r\n public iconSet = inject<ICON_MAP_TYPE>(LEPTON_X_ICON_SET);\r\n\r\n @Input() iconClass?: keyof ICON_MAP_TYPE | string;\r\n\r\n get styleClass() {\r\n return (\r\n this.iconSet[this.iconClass as keyof ICON_MAP_TYPE] || this.iconClass\r\n );\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, Input } from '@angular/core';\r\nimport { IconComponent } from '../icon/icon.component';\r\n\r\nexport interface Avatar {\r\n type: 'icon' | 'image';\r\n source: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lpx-avatar',\r\n templateUrl: './avatar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [IconComponent],\r\n})\r\nexport class AvatarComponent {\r\n @Input() avatar?: Avatar;\r\n}\r\n","@if (avatar && avatar.source) {\r\n <div class=\"lpx-avatar\">\r\n @switch (avatar.type) {\r\n @case ('icon') {\r\n <lpx-icon\r\n class=\"lpx-avatar-icon\"\r\n [iconClass]=\"avatar.source\"\r\n ></lpx-icon>\r\n }\r\n @case ('image') {\r\n <img class=\"lpx-avatar-img\" [src]=\"avatar.source\" />\r\n }\r\n }\r\n </div>\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n LpxIconSettings,\r\n provideLpxCore,\r\n SKIP_DEFAULTS,\r\n withIcon,\r\n} from '../../providers';\r\nimport { IconComponent } from './icon.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, IconComponent],\r\n exports: [IconComponent],\r\n})\r\nexport class LpxIconModule {\r\n /**\r\n * @deprecated `LpxIconModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(\r\n options?: LpxIconSettings,\r\n ): ModuleWithProviders<LpxIconModule> {\r\n return {\r\n ngModule: LpxIconModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withIcon(options))],\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LpxIconModule } from '../icon/icon.module';\r\nimport { AvatarComponent } from './avatar.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, LpxIconModule, AvatarComponent],\r\n exports: [AvatarComponent],\r\n})\r\nexport class LpxAvatarModule {}\r\n","export enum Layouts {\r\n sideMenu = 'side-menu',\r\n topMenu = 'top-menu',\r\n}\r\n","import { RouterLink } from '@angular/router';\r\nimport { Component, inject, input, ViewEncapsulation } from '@angular/core';\r\nimport { LOGO_APP_NAME_TOKEN, LOGO_URL_TOKEN } from '@abp/ng.theme.shared';\r\nimport { Layouts } from '../../enums';\r\n\r\n@Component({\r\n selector: 'lpx-brand-logo',\r\n templateUrl: './brand-logo.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [RouterLink],\r\n})\r\nexport class BrandLogoComponent {\r\n layout = input<Layouts>(Layouts.sideMenu);\r\n\r\n layoutOptions = Layouts;\r\n\r\n protected readonly logoUrl: string | null = inject(LOGO_URL_TOKEN, {\r\n optional: true,\r\n });\r\n\r\n protected readonly appName =\r\n inject(LOGO_APP_NAME_TOKEN, {\r\n optional: true,\r\n }) ?? 'ProjectName';\r\n}\r\n","@if (logoUrl) {\r\n @let logo = 'url(' + logoUrl + ')';\r\n <a routerLink=\"/\">\r\n <div\r\n class=\"lpx-brand-logo\"\r\n [style.background-image]=\"logo\"\r\n role=\"img\"\r\n aria-label=\"App Logo\"\r\n ></div>\r\n </a>\r\n} @else {\r\n <a routerLink=\"/\" class=\"text-decoration-none\">\r\n @switch (layout()) {\r\n @case (layoutOptions.sideMenu) {\r\n <div class=\"lpx-brand-logo\"></div>\r\n <div class=\"lpx-brand-name\" style=\"left: 58px !important\">\r\n {{ appName }}\r\n </div>\r\n }\r\n\r\n @case (layoutOptions.topMenu) {\r\n <div class=\"lpx-brand-name\" style=\"position: inherit\">\r\n {{ appName }}\r\n </div>\r\n }\r\n }\r\n </a>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrandLogoComponent } from './brand-logo.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n imports: [RouterModule, BrandLogoComponent],\r\n exports: [BrandLogoComponent],\r\n})\r\nexport class LpxBrandLogoModule {}\r\n","import {\r\n Directive,\r\n Output,\r\n EventEmitter,\r\n HostListener,\r\n ElementRef,\r\n Input,\r\n inject,\r\n} from '@angular/core';\r\n\r\n@Directive({ selector: '[lpxClickOutside]' })\r\nexport class ClickOutsideDirective {\r\n private elementRef = inject(ElementRef);\r\n\r\n @Output() lpxClickOutside = new EventEmitter();\r\n @Input()\r\n exceptedRefs: Array<ElementRef> = [];\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n !(\r\n this.elementRef.nativeElement.contains(event.target) ||\r\n this.exceptedRefs.some((ref) =>\r\n ref.nativeElement.contains(event.target),\r\n )\r\n )\r\n ) {\r\n this.lpxClickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { VariantSource } from '../../models/common';\r\nimport { getStream$ } from '../../utils/common';\r\n\r\n@Pipe({ name: 'toObservable' })\r\nexport class ToObservablePipe implements PipeTransform {\r\n transform(\r\n value: VariantSource<string> | VariantSource<number> | undefined,\r\n ): Observable<string | number> {\r\n return value ? getStream$(value) : of('');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { Observable } from 'rxjs';\r\n\r\n// TODO : add onClick\r\nexport interface BreadcrumbItem {\r\n icon?: string;\r\n text: string | Observable<string>;\r\n link?: string;\r\n children?: BreadcrumbItem[];\r\n expanded?: boolean;\r\n active?: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbService {\r\n private store = new DataStore<BreadcrumbItem[]>([]);\r\n items$ = this.store.sliceState((state) => state);\r\n // TODO: generate id per item\r\n add(item: BreadcrumbItem | BreadcrumbItem[]): void {\r\n const items = Array.isArray(item) ? item : [item];\r\n this.store.set([...this.store.state, ...items]);\r\n }\r\n\r\n // TODO: generate id per item\r\n insert(item: BreadcrumbItem | BreadcrumbItem[], index: number): void {\r\n const state = this.store.state;\r\n const items = Array.isArray(item) ? item : [item];\r\n this.store.set([...state.slice(0, index), ...items, ...state.slice(index)]);\r\n }\r\n\r\n // TODO: generate id per item\r\n setItems(items: BreadcrumbItem[]): void {\r\n this.store.set(items);\r\n }\r\n\r\n // TODO: Add remove function\r\n}\r\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { NgTemplateOutlet, AsyncPipe } from '@angular/common';\r\nimport { ClickOutsideDirective } from '../../directives/click-outside/click-outside.directive';\r\nimport { ToObservablePipe } from '../../pipes/to-observable/to-observable.pipe';\r\nimport { ICON_MAP, IconComponent } from '../icon';\r\nimport { BreadcrumbItem, BreadcrumbService } from './breadcrumb.service';\r\n\r\n@Component({\r\n selector: 'lpx-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n ClickOutsideDirective,\r\n IconComponent,\r\n NgTemplateOutlet,\r\n RouterLink,\r\n AsyncPipe,\r\n ToObservablePipe,\r\n ],\r\n})\r\nexport class BreadcrumbComponent {\r\n public service = inject(BreadcrumbService);\r\n icon = ICON_MAP;\r\n\r\n onClick(item: BreadcrumbItem): void {\r\n if (item.children) {\r\n item.expanded = !item.expanded;\r\n }\r\n }\r\n\r\n // TODO: close dropdown when click outside\r\n}\r\n","<nav aria-label=\"breadcrumb\">\r\n <ol class=\"lpx-breadcrumb\">\r\n @for (item of service.items$ | async; track $index; let last = $last) {\r\n <li\r\n class=\"lpx-breadcrumb-item\"\r\n (click)=\"onClick(item)\"\r\n [class.expanded]=\"item.expanded\"\r\n (lpxClickOutside)=\"item.expanded = false\"\r\n >\r\n @if (item.icon) {\r\n <lpx-icon\r\n class=\"lpx-breadcrumb-item-icon\"\r\n [iconClass]=\"item.icon\"\r\n ></lpx-icon>\r\n }\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.children?.length ? textTemplate : linkTemplate;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n </li>\r\n @if (!last) {\r\n <li class=\"lpx-breadcrumb-separator\">\r\n <lpx-icon iconClass=\"bi bi-chevron-right\"></lpx-icon>\r\n </li>\r\n }\r\n }\r\n </ol>\r\n</nav>\r\n\r\n<ng-template #linkTemplate let-item>\r\n <a [routerLink]=\"item.link\"> {{ item.text | toObservable | async }} </a>\r\n</ng-template>\r\n<ng-template #textTemplate let-item>\r\n <span class=\"lpx-breadcrumb-item-text\">\r\n {{ item.text | toObservable | async }}\r\n </span>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToObservablePipe } from './to-observable.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ToObservablePipe],\r\n exports: [ToObservablePipe],\r\n})\r\nexport class ToObservableModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ClickOutsideDirective],\r\n exports: [ClickOutsideDirective],\r\n})\r\nexport class LpxClickOutsideModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { provideLpxBreadcrumb } from '../../providers';\r\nimport { ToObservableModule } from '../../pipes/to-observable/to-observable.module';\r\nimport { LpxClickOutsideModule } from '../../directives/click-outside/click-outside.module';\r\nimport { LpxIconModule } from '../icon/icon.module';\r\nimport { BreadcrumbComponent } from './breadcrumb.component';\r\n\r\nexport const exportedDeclarations = [BreadcrumbComponent];\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LpxIconModule,\r\n ToObservableModule,\r\n RouterModule,\r\n LpxClickOutsideModule,\r\n ...exportedDeclarations,\r\n ],\r\n exports: [...exportedDeclarations],\r\n})\r\n/**\r\n * @deprecated `LpxBreadcrumbModule.forRoot()` is deprecated. You can use `provideLpxBreadcrumb` **function** instead.\r\n */\r\nexport class LpxBreadcrumbModule {\r\n static forRoot(): ModuleWithProviders<LpxBreadcrumbModule> {\r\n return {\r\n ngModule: LpxBreadcrumbModule,\r\n providers: [provideLpxBreadcrumb()],\r\n };\r\n }\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\nimport { LpxNavbarItem } from './models';\r\n\r\nexport const CONTENT_BEFORE_ROUTES = new InjectionToken<Type<any>[][]>(\r\n 'CONTENT_BEFORE_ROUTES'\r\n);\r\nexport const CONTENT_AFTER_ROUTES = new InjectionToken<Type<any>[][]>(\r\n 'CONTENT_AFTER_ROUTES'\r\n);\r\nexport const LPX_MENU_ITEMS = new InjectionToken<LpxNavbarItem[]>(\r\n 'LPX_MENU_ITEMS'\r\n);\r\n","import { Observable } from 'rxjs';\r\nimport { isArray } from './common';\r\n\r\nexport function createGroupMap<T extends { group?: string }>(\r\n list: T[],\r\n othersGroupKey: string,\r\n skipGroupCheck: boolean = false\r\n): Map<string, T[]> | undefined {\r\n if (\r\n !skipGroupCheck &&\r\n (!isArray(list) || !list.some((node) => Boolean(node.group)))\r\n )\r\n return undefined;\r\n\r\n const mapGroup = new Map<string, T[]>();\r\n\r\n for (const node of list) {\r\n const group = node?.group || othersGroupKey;\r\n if (typeof group !== 'string') {\r\n throw new Error(`Invalid group: ${group}`);\r\n }\r\n\r\n const items = mapGroup.get(group) || [];\r\n items.push(node);\r\n mapGroup.set(group, items);\r\n }\r\n return mapGroup;\r\n}\r\n\r\nexport function getItemsFromGroup<S extends { items: R[] }, R>(\r\n list: S[],\r\n pred?: ItemPropPredicate<R>\r\n): R[] | undefined {\r\n return list?.reduce<R[]>(\r\n (acc, { items }) => [...acc, ...(pred ? items.filter(pred) : items)],\r\n []\r\n );\r\n}\r\n\r\nexport type ItemPropPredicate<T> = (\r\n prop: T\r\n) => boolean | Promise<boolean> | Observable<boolean>;\r\n","export const OTHERS_GROUP_KEY = 'AbpUi::OthersGroup';\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { filter, map, take, tap } from 'rxjs/operators';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { LpxNavbarItem } from './models';\r\nimport { LPX_MENU_ITEMS } from './navbar.token';\r\nimport { createGroupMap } from '../../utils';\r\nimport { OTHERS_GROUP_KEY } from '../../consts';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NavbarService {\r\n protected readonly router = inject(Router);\r\n menuItems = inject(LPX_MENU_ITEMS);\r\n\r\n private store = new DataStore<LpxNavbarItem[]>(\r\n this.addContainerLinks(this.menuItems),\r\n );\r\n\r\n navbarItems$ = this.store.sliceState((state) => state);\r\n\r\n // Source reference to navbar items, used for checking item existence\r\n // without being affected by potential future transformations of navbarItems$\r\n sourceNavbarItems$ = this.navbarItems$;\r\n\r\n groupedNavbarItems$ = this.store\r\n .sliceState((state) => state)\r\n .pipe(\r\n map((items) => {\r\n if (!items.some((f) => !!f.group)) {\r\n return;\r\n }\r\n\r\n const map = createGroupMap(items, OTHERS_GROUP_KEY) || [];\r\n return Array.from(map, ([group, items]) => ({\r\n group,\r\n items,\r\n }));\r\n }),\r\n );\r\n\r\n constructor() {\r\n this.expandItemByLink$().pipe(take(1)).subscribe();\r\n }\r\n\r\n addNavbarItems(...menuItems: LpxNavbarItem[]): void {\r\n this.store.set([...this.store.state, ...this.addContainerLinks(menuItems)]);\r\n }\r\n\r\n setNavbarItems(...menuItems: LpxNavbarItem[]): void {\r\n this.store.set([...this.addContainerLinks(menuItems)]);\r\n }\r\n\r\n addChildren(id: string, ...menuItems: LpxNavbarItem[]): void {\r\n const { location } = this.findById(id, this.store.state);\r\n\r\n // If the parent item is not found, do nothing.\r\n if (!location.length) {\r\n return;\r\n }\r\n\r\n const updated = this.addChildrenByLocation(\r\n this.store.state,\r\n [...location],\r\n '',\r\n menuItems,\r\n );\r\n\r\n this.store.patch(updated);\r\n }\r\n\r\n findByLink(link: string, items?: LpxNavbarItem[]) {\r\n return this.findByProp('link', link, items);\r\n }\r\n\r\n expandItemByLink$() {\r\n return this.router.events.pipe(\r\n filter((e) => e instanceof NavigationEnd),\r\n tap(() => this.expandItems()),\r\n );\r\n }\r\n\r\n expandItems() {\r\n const route = this.getRouteItem();\r\n if (route?.item) {\r\n const expanded = this.calculateExpandState(\r\n this.store.state,\r\n route.location,\r\n );\r\n this.store.patch(expanded);\r\n }\r\n }\r\n\r\n getRouteItem() {\r\n return this.findByLink(this.router.url);\r\n }\r\n\r\n calculateExpandState(\r\n items: LpxNavbarItem[],\r\n indexes: Array<number>,\r\n ): LpxNavbarItem[] {\r\n const matchIndex = indexes.shift();\r\n return items.reduce((acc, item, index) => {\r\n if (index === matchIndex) {\r\n return [\r\n ...acc,\r\n {\r\n ...item,\r\n expanded: true,\r\n selected: true,\r\n children: this.calculateExpandState(item.children || [], indexes),\r\n },\r\n ];\r\n }\r\n const newItem = {\r\n ...item,\r\n ...(item.children\r\n ? { children: this.collapseChildren(item.children) }\r\n : {}),\r\n };\r\n return [...acc, { ...newItem, expanded: false, selected: false }];\r\n }, [] as LpxNavbarItem[]);\r\n }\r\n\r\n collapseChildren(children: Array<LpxNavbarItem>): Array<LpxNavbarItem> {\r\n return [\r\n ...children.map((child) => ({\r\n ...child,\r\n expanded: false,\r\n selected: false,\r\n children: child.children ? this.collapseChildren(child.children) : [],\r\n })),\r\n ];\r\n }\r\n\r\n private addChildrenByLocation(\r\n items: LpxNavbarItem[],\r\n location: number[],\r\n linkPrefix: string,\r\n menuItems: LpxNavbarItem[],\r\n ): LpxNavbarItem[] {\r\n const [currentIndex, ...restLocation] = location;\r\n\r\n return items.map((item, index) => {\r\n if (index !== currentIndex) {\r\n return item;\r\n }\r\n\r\n const currentLink = `${linkPrefix}/${item.containerLink}`;\r\n\r\n // We reached the target item; append new children to it.\r\n if (!restLocation.length) {\r\n const existingChildren = item.children || [];\r\n const newChildren = this.addContainerLinks(menuItems, currentLink);\r\n\r\n return {\r\n ...item,\r\n children: [...existingChildren, ...newChildren],\r\n };\r\n }\r\n\r\n // We are still traversing the path; continue recursively on children.\r\n return {\r\n ...item,\r\n children: this.addChildrenByLocation(\r\n item.children || [],\r\n restLocation,\r\n currentLink,\r\n menuItems,\r\n ),\r\n };\r\n });\r\n }\r\n\r\n private findById(id: string, items?: LpxNavbarItem[]) {\r\n return this.findByProp('id', id, items);\r\n }\r\n\r\n private findByProp(\r\n prop: keyof LpxNavbarItem,\r\n value: string,\r\n items?: LpxNavbarItem[],\r\n ) {\r\n const navbarItems = items || this.store.state;\r\n const cleanValue = value.split(/[?#]/)[0];\r\n\r\n let bestMatch: LpxNavbarItem | undefined;\r\n let bestMatchLocation: number[] = [];\r\n let bestMatchLength = 0;\r\n\r\n const isValidSegmentPrefix = (candidate: string): boolean => {\r\n if (!candidate || !cleanValue.startsWith(candidate)) {\r\n return false;\r\n }\r\n\r\n const isExactMatch = cleanValue.length === candidate.length;\r\n const hasPathSeparator = cleanValue[candidate.length] === '/';\r\n\r\n return isExactMatch || hasPathSeparator;\r\n };\r\n\r\n const searchTree = (\r\n nodes: LpxNavbarItem[],\r\n currentPath: number[] = [],\r\n ): { item?: LpxNavbarItem; location: number[] } => {\r\n for (let i = 0; i < nodes.length; i++) {\r\n const node = nodes[i];\r\n const nodePath = [...currentPath, i];\r\n const nodeValue = node[prop] as unknown as string | undefined;\r\n\r\n // Skip nodes without the property we're searching for\r\n if (!nodeValue) {\r\n if (node.children?.length) {\r\n const childResult = searchTree(node.children, nodePath);\r\n if (childResult.item) return childResult;\r\n }\r\n continue;\r\n }\r\n\r\n // For non-link properties, only exact matches count\r\n if (prop !== 'link') {\r\n if (nodeValue === cleanValue) {\r\n return { item: node, location: nodePath };\r\n }\r\n }\r\n\r\n // For link property, handle exact and prefix matches\r\n if (prop === 'link') {\r\n // Exact match - return immediately\r\n if (nodeValue === cleanValue) {\r\n return { item: node, location: nodePath };\r\n }\r\n\r\n // Track best prefix match (longest valid ancestor path)\r\n const isLongerMatch = nodeValue.length > bestMatchLength;\r\n if (isValidSegmentPrefix(nodeValue) && isLongerMatch) {\r\n bestMatch = node;\r\n bestMatchLocation = nodePath;\r\n bestMatchLength = nodeValue.length;\r\n }\r\n }\r\n\r\n // Recursively search children\r\n if (node.children?.length) {\r\n const childResult = searchTree(node.children, nodePath);\r\n if (childResult.item) {\r\n return childResult;\r\n }\r\n }\r\n }\r\n\r\n // No exact match found, return best prefix match\r\n return { item: bestMatch, location: bestMatchLocation };\r\n };\r\n\r\n return searchTree(navbarItems);\r\n }\r\n\r\n private addContainerLinks(\r\n items: LpxNavbarItem[],\r\n link = '',\r\n ): LpxNavbarItem[] {\r\n return items.map((item) => ({\r\n ...item,\r\n ...(item.link && link ? { link: `${link}/${item.link}` } : {}),\r\n children: this.addContainerLinks(\r\n item.children || [],\r\n `${link ? link + '/' : ''}${item.containerLink || ''}`,\r\n ),\r\n }));\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport {\r\n ABP,\r\n LocalizationService,\r\n RoutesService,\r\n TreeNode,\r\n} from '@abp/ng.core';\r\nimport { NavbarService } from '../navbar/navbar.service';\r\nimport { BreadcrumbItem, BreadcrumbService } from './breadcrumb.service';\r\nimport { combineLatest } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { LpxNavbarItem } from '../navbar';\r\n\r\ninterface BreadcrumbNavigation extends LpxNavbarItem {\r\n siblings: BreadcrumbNavigation[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbRouteListenerService {\r\n protected readonly navbarService = inject(NavbarService);\r\n protected readonly router = inject(Router);\r\n protected readonly routes = inject(RoutesService);\r\n protected readonly breadcrumbService = inject(BreadcrumbService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n\r\n subscribeRoute(): void {\r\n combineLatest([\r\n this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n ),\r\n this.navbarService.navbarItems$.pipe(filter((items) => !!items.length)),\r\n ]).subscribe(([_navigationEvent, items]) => {\r\n const currentPath = this.router.url;\r\n let activeItem = this.navbarService.findByLink(currentPath);\r\n let breadcrumbItems;\r\n\r\n if (!activeItem.item) {\r\n const item = this.findItemByTreeNode(currentPath);\r\n if (item) {\r\n breadcrumbItems = this.createBreadcrumbTrail(item);\r\n this.breadcrumbService.setItems(breadcrumbItems);\r\n return;\r\n }\r\n activeItem = this.navbarService.findByLink('/');\r\n }\r\n\r\n breadcrumbItems = activeItem.location.reduce((acc, itemIndex) => {\r\n const parent = acc[acc.length - 1]?.children || items;\r\n const item = parent[itemIndex];\r\n\r\n return [\r\n ...acc,\r\n { ...item, siblings: parent as BreadcrumbNavigation[] },\r\n ];\r\n }, [] as BreadcrumbNavigation[]);\r\n\r\n this.breadcrumbService.setItems(\r\n this.mapNavbarItemToBreadcrumbItem(breadcrumbItems),\r\n );\r\n });\r\n }\r\n\r\n private mapNavbarItemToBreadcrumbItem(\r\n items: BreadcrumbNavigation[],\r\n ): BreadcrumbItem[] {\r\n return items.map(({ breadcrumbText, text, link, icon, siblings }) => ({\r\n text: breadcrumbText || text || '',\r\n link,\r\n icon,\r\n children: this.mapNavbarItemToBreadcrumbItem(siblings || []),\r\n }));\r\n }\r\n\r\n private findItemByTreeNode(path: string): TreeNode<ABP.Route> | null {\r\n const { tree, search: boundSearch } = {\r\n tree: this.routes.tree,\r\n search: this.routes.search.bind(this.routes),\r\n };\r\n\r\n const treeNode = boundSearch(\r\n {\r\n path: path,\r\n },\r\n tree,\r\n );\r\n\r\n return treeNode;\r\n }\r\n\r\n private createBreadcrumbTrail(\r\n item: TreeNode<ABP.Route> | undefined,\r\n ): BreadcrumbItem[] {\r\n const trail: BreadcrumbItem[] = [];\r\n let current = item;\r\n\r\n while (current && (current.breadcrumbText || current.name)) {\r\n trail.push({\r\n text: this.localizationService.instant(\r\n current.breadcrumbText || current.name,\r\n ),\r\n icon: current.iconClass,\r\n });\r\n current = current.parent;\r\n }\r\n\r\n return trail.reverse();\r\n }\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-logo-panel]' })\r\nexport class LogoPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { LpxThemeTranslateService } from '../../services';\r\n\r\n@Pipe({ name: 'lpxTranslate' })\r\nexport class TranslatePipe implements PipeTransform {\r\n private lpxThemeTranslateService = inject(LpxThemeTranslateService);\r\n\r\n transform(value: string, ...args: any[]) {\r\n return this.lpxThemeTranslateService.translate$(value, args);\r\n }\r\n}\r\n","import {\r\n animate,\r\n animation,\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n useAnimation,\r\n} from '@angular/animations';\r\n\r\nexport const collapseY = animation(\r\n [\r\n style({ height: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapseYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '0' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-left': '-100%' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const collapseX = animation(\r\n [\r\n style({ width: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandY = animation(\r\n [\r\n style({ height: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '-100%' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-top': '0' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const expandX = animation(\r\n [\r\n style({ width: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapse = trigger('collapse', [\r\n state('collapsed', style({ height: '0', overflow: 'hidden' })),\r\n state('expanded', style({ height: '*', overflow: 'hidden' })),\r\n transition('expanded => collapsed', useAnimation(collapseY)),\r\n transition('collapsed => expanded', useAnimation(expandY)),\r\n]);\r\n\r\nexport const collapseWithMargin = trigger('collapseWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100%' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition('expanded => collapsed', useAnimation(collapseYWithMargin), {\r\n params: { time: '400ms', easing: 'linear' },\r\n }),\r\n transition('collapsed => expanded', useAnimation(expandYWithMargin)),\r\n]);\r\n\r\nexport const collapseLinearWithMargin = trigger('collapseLinearWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100vh' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition(\r\n 'expanded => collapsed',\r\n useAnimation(collapseYWithMargin, {\r\n params: { time: '200ms', easing: 'linear' },\r\n }),\r\n ),\r\n transition(\r\n 'collapsed => expanded',\r\n useAnimation(expandYWithMargin, {\r\n params: { time: '250ms', easing: 'linear' },\r\n }),\r\n ),\r\n]);\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n input,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport {\r\n NgComponentOutlet,\r\n NgTemplateOutlet,\r\n AsyncPipe,\r\n} from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\nimport { of } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { getStream$ } from '../../../utils/common';\r\nimport { collapse } from '../../../animations/collapse.animations';\r\nimport { LpxVisibleDirective } from '../../../directives/visible.directive';\r\nimport { TranslatePipe } from '../../../pipes/translate/translate.pipe';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { LpxNavbarItem } from '../models';\r\n\r\n@Component({\r\n selector: 'lpx-sub-navbar',\r\n templateUrl: './sub-navbar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [collapse],\r\n imports: [\r\n NgComponentOutlet,\r\n NgTemplateOutlet,\r\n RouterLink,\r\n IconComponent,\r\n LpxVisibleDirective,\r\n AsyncPipe,\r\n TranslatePipe,\r\n LocalizationPipe,\r\n ],\r\n})\r\nexport class SubNavbarComponent {\r\n protected readonly injector = inject(Injector);\r\n\r\n @Input() item!: LpxNavbarItem;\r\n\r\n routerItem = input<boolean>();\r\n\r\n @Output() routeClick = new EventEmitter<LpxNavbarItem>();\r\n @Output() expand = new EventEmitter<LpxNavbarItem>();\r\n\r\n onItemClick(menuItem: LpxNavbarItem): void {\r\n let action$ = of(true);\r\n if (menuItem.action) {\r\n const result = menuItem.action();\r\n action$ = getStream$(result);\r\n }\r\n action$.pipe(take(1)).subscribe((result) => {\r\n if (result) {\r\n this.processItemClick(menuItem);\r\n }\r\n });\r\n }\r\n\r\n onChildExpand(child: LpxNavbarItem): void {\r\n if (child.expanded) {\r\n this.item?.children\r\n ?.filter((otherChild) => otherChild !== child)\r\n .forEach((otherChild) => {\r\n otherChild.expanded = false;\r\n otherChild.selected = false;\r\n });\r\n }\r\n }\r\n\r\n processItemClick(menuItem: LpxNavbarItem): void {\r\n if (menuItem.children?.length) {\r\n menuItem.expanded = !menuItem.expanded;\r\n this.expand.emit(menuItem);\r\n return;\r\n }\r\n\r\n this.routeClick.emit(menuItem);\r\n\r\n if (!this.routerItem()) {\r\n menuItem.selected = true;\r\n }\r\n }\r\n}\r\n","@if (item.component) {\r\n <ng-container *ngComponentOutlet=\"item.component; injector: injector\" />\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"defaultTemplate\" />\r\n}\r\n\r\n<ng-template #defaultTemplate>\r\n <a\r\n class=\"lpx-menu-item-link\"\r\n [routerLink]=\"item.link\"\r\n [class.selected]=\"item.selected\"\r\n [class.expanded]=\"item.children?.length && item.expanded\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n @if (item.icon) {\r\n <lpx-icon class=\"lpx-menu-item-icon\" [iconClass]=\"item.icon\" />\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.template || textTmpl;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n\r\n <ng-template #textTmpl>\r\n @if (item.text) {\r\n @let isToolbarItem = item.text.split('::').length > 1;\r\n <span class=\"lpx-menu-item-text hidden-in-hover-trigger\">\r\n @if (isToolbarItem) {\r\n {{ item.text | abpLocalization }}\r\n } @else {\r\n {{ item.text | lpxTranslate | async }}\r\n }\r\n </span>\r\n }\r\n </ng-template>\r\n\r\n @if (item.children?.length) {\r\n <lpx-icon\r\n [iconClass]=\"item.expanded ? 'chevronUp' : 'chevronDown'\"\r\n class=\"dd-icon hidden-in-hover-trigger\"\r\n />\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <ul\r\n class=\"lpx-inner-menu hidden-in-hover-trigger\"\r\n [class.collapsed]=\"!item.expanded\"\r\n >\r\n @for (child of item.children; track $index) {\r\n <li\r\n class=\"lpx-inner-menu-item\"\r\n *lpxVisible=\"!child.visible || child.visible(child, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"child\"\r\n (routeClick)=\"this.routeClick.emit($event)\"\r\n (expand)=\"onChildExpand($event)\"\r\n />\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</ng-template>\r\n","import {\r\n Component,\r\n computed,\r\n EventEmitter,\r\n inject,\r\n Injector,\r\n input,\r\n Input,\r\n Output,\r\n signal,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet, AsyncPipe } from '@angular/common';\r\nimport { getItemsFromGroup } from '../../../utils';\r\nimport { RoutesService } from '../../../services/route/routes.service';\r\nimport { LpxVisibleDirective } from '../../../directives/visible.directive';\r\nimport { TranslatePipe } from '../../../pipes/translate/translate.pipe';\r\nimport { SubNavbarComponent } from '../sub-navbar/sub-navbar.component';\r\nimport { GroupedNavbarItems, LpxNavbarItem } from '../models';\r\n\r\nexport type NavbarItemsType = LpxNavbarItem[] | null | undefined;\r\nexport type NavbarGroupItemsType = GroupedNavbarItems[] | null | undefined;\r\n\r\n@Component({\r\n selector: 'lpx-navbar-routes',\r\n templateUrl: './navbar-routes.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n NgTemplateOutlet,\r\n LpxVisibleDirective,\r\n SubNavbarComponent,\r\n AsyncPipe,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class NavbarRoutesComponent {\r\n protected readonly injector = inject(Injector);\r\n protected readonly routesService = inject(RoutesService);\r\n\r\n private readonly _sourceItems = signal<NavbarItemsType>([]);\r\n\r\n @Input() set navbarItems(value: NavbarItemsType) {\r\n this._sourceItems.set(value);\r\n }\r\n\r\n get navbarItems() {\r\n return this._processedItems();\r\n }\r\n\r\n private readonly _processedItems = computed(() => {\r\n const url = (this.routesService.currentNavigation() as string).split(\r\n '?',\r\n )[0];\r\n const items = this._sourceItems();\r\n\r\n if (!items?.length || !url) {\r\n return items;\r\n }\r\n\r\n this.fixNavbarItems(url, items);\r\n\r\n return items;\r\n });\r\n\r\n @Input()\r\n groupedItems: NavbarGroupItemsType;\r\n\r\n routerItem = input<boolean>();\r\n\r\n @Output()\r\n routeClick = new EventEmitter<LpxNavbarItem>();\r\n\r\n private get itemsFromGroup(): LpxNavbarItem[] | undefined {\r\n if (!this.groupedItems) {\r\n return undefined;\r\n }\r\n\r\n return getItemsFromGroup<GroupedNavbarItems, LpxNavbarItem>(\r\n this.groupedItems,\r\n );\r\n }\r\n\r\n private isExpandedOrSelected = (item: LpxNavbarItem): boolean =>\r\n !!(item.expanded || item.selected);\r\n\r\n onSubnavbarExpand(menuItem: LpxNavbarItem, menuItems: NavbarItemsType): void {\r\n if (menuItem.expanded) {\r\n const items = this.itemsFromGroup || menuItems;\r\n if (!items) {\r\n return;\r\n }\r\n\r\n items\r\n .filter((item) => item !== menuItem)\r\n .forEach((item) => (item.expanded = false));\r\n }\r\n }\r\n\r\n onRouteClick(menuItem: LpxNavbarItem, menuItems: NavbarItemsType): void {\r\n const expandedItems = menuItems?.filter(this.isExpandedOrSelected);\r\n const expandedGroupItems = this.itemsFromGroup?.filter(\r\n this.isExpandedOrSelected,\r\n );\r\n\r\n const items = expandedGroupItems || expandedItems;\r\n\r\n if (items) {\r\n items\r\n .filter((item) => item !== menuItem)\r\n .reduce<LpxNavbarItem[]>((acc, item) => {\r\n return [...acc, item, ...this.flatChildren(item.children || [])];\r\n }, [])\r\n ?.filter(\r\n (item) =>\r\n !this.checkChildrenIncludesItem(item, menuItem) &&\r\n item !== menuItem,\r\n )\r\n .forEach((item) => {\r\n item.selected = false;\r\n item.expanded = false;\r\n });\r\n }\r\n\r\n this.routeClick.emit(menuItem);\r\n }\r\n\r\n checkChildrenIncludesItem(\r\n item: LpxNavbarItem,\r\n menuItem: LpxNavbarItem,\r\n ): boolean {\r\n return (\r\n item.children?.reduce(\r\n (acc, child) =>\r\n acc ||\r\n child === menuItem ||\r\n this.checkChildrenIncludesItem(child, menuItem),\r\n false,\r\n ) || false\r\n );\r\n }\r\n\r\n flatChildren(menuItems: NavbarItemsType): LpxNavbarItem[] {\r\n return (\r\n menuItems?.reduce<LpxNavbarItem[]>((acc, item) => {\r\n return [...acc, item, ...this.flatChildren(item.children || [])];\r\n }, []) || []\r\n );\r\n }\r\n\r\n private fixNavbarItems(currentUrl: string, items: LpxNavbarItem[]) {\r\n items.forEach((item) => {\r\n const { link, children } = item;\r\n const itemUrl = link?.split('?')[0];\r\n\r\n if (children?.length) {\r\n this.fixNavbarItems(currentUrl, children);\r\n\r\n const hasActiveDescendant = this.hasActiveDescendant(\r\n children,\r\n currentUrl,\r\n );\r\n const isInActiveChain =\r\n hasActiveDescendant ||\r\n this.isSameOrAncestorRoute(itemUrl, currentUrl);\r\n\r\n if (isInActiveChain) {\r\n item.expanded = true;\r\n } else {\r\n const hasExpandedChildren = children.some((child) => child.expanded);\r\n if (!hasExpandedChildren) {\r\n item.expanded = false;\r\n }\r\n }\r\n\r\n item.selected = false;\r\n } else {\r\n item.selected = this.isSameOrAncestorRoute(itemUrl, currentUrl);\r\n }\r\n });\r\n }\r\n\r\n private hasActiveDescendant(\r\n items: LpxNavbarItem[],\r\n currentUrl: string,\r\n ): boolean {\r\n return items.some((item) => {\r\n const itemUrl = item.link?.split('?')[0];\r\n\r\n if (item.selected || this.isSameOrAncestorRoute(itemUrl, currentUrl)) {\r\n return true;\r\n }\r\n\r\n if (item.children?.length) {\r\n return this.hasActiveDescendant(item.children, currentUrl);\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n /**\r\n * Checks if a navbar item's url matches the current url exactly\r\n * or is an ancestor of it on a path segment boundary.\r\n *\r\n * Examples:\r\n * - item: `/a/b`, current: `/a/b` -> true\r\n * - item: `/a/b`, current: `/a/b/c` -> true\r\n * - item: `/a/bc`, current: `/a/bc/de` -> true\r\n * - item: `/a/bc`, current: `/a/bcde` -> false\r\n */\r\n private isSameOrAncestorRoute(\r\n itemUrl?: string,\r\n currentUrl?: string,\r\n ): boolean {\r\n if (!itemUrl || !currentUrl) {\r\n return false;\r\n }\r\n\r\n if (!currentUrl.startsWith(itemUrl)) {\r\n return false;\r\n }\r\n\r\n if (currentUrl.length === itemUrl.length) {\r\n return true;\r\n }\r\n\r\n return currentUrl[itemUrl.length] === '/';\r\n }\r\n}\r\n","<ul class=\"lpx-nav-menu\">\r\n @if (groupedItems && groupedItems.length) {\r\n @for (item of groupedItems; track $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"groupText; context: { $implicit: item }\"\r\n />\r\n\r\n @for (navbarItem of item.items; track $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: navbarItem }\"\r\n />\r\n }\r\n }\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"defaultRoute\" />\r\n }\r\n</ul>\r\n\r\n<ng-template #defaultRoute>\r\n @for (item of navbarItems; track $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"\r\n />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #groupText let-item>\r\n @if (item.items.length) {\r\n <li class=\"group-menu-item hidden-in-hover-trigger\">\r\n {{ item.group | lpxTranslate | async }}\r\n </li>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #itemTemplate let-item>\r\n <li\r\n class=\"outer-menu-item\"\r\n *lpxVisible=\"!item.visible || item.visible(item, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"item\"\r\n (expand)=\"onSubnavbarExpand($event, navbarItems)\"\r\n (routeClick)=\"onRouteClick($event, navbarItems)\"\r\n [routerItem]=\"routerItem()\"\r\n />\r\n </li>\r\n</ng-template>\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[lpx-navbar-routes],[lpxNavbarRoutes]',\r\n exportAs: 'lpxNavbarRoutes',\r\n})\r\nexport class NavbarRoutesDirective {}\r\n","import {\r\n AfterViewChecked,\r\n Component,\r\n ContentChild,\r\n InjectionToken,\r\n Injector,\r\n PLATFORM_ID,\r\n TemplateRef,\r\n Type,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport {\r\n isPlatformBrowser,\r\n NgTemplateOutlet,\r\n NgComponentOutlet,\r\n AsyncPipe,\r\n} from '@angular/common';\r\nimport { map } from 'rxjs';\r\nimport { LayoutService } from '../../services/layout';\r\nimport { LogoPanelDirective } from '../../panels/logo-panel.directive';\r\nimport { BrandLogoComponent } from '../brand-logo/brand-logo.component';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { NavbarService } from './navbar.service';\r\nimport { CONTENT_AFTER_ROUTES, CONTENT_BEFORE_ROUTES } from './navbar.token';\r\nimport { NavbarRoutesComponent, NavbarRoutesDirective } from './navbar-routes';\r\n\r\n@Component({\r\n selector: 'lpx-navbar',\r\n templateUrl: './navbar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n NgTemplateOutlet,\r\n IconComponent,\r\n NavbarRoutesComponent,\r\n NgComponentOutlet,\r\n BrandLogoComponent,\r\n AsyncPipe,\r\n ],\r\n})\r\nexport class NavbarComponent implements AfterViewChecked {\r\n protected readonly layoutService = inject(LayoutService);\r\n protected readonly platformId = inject<Object>(PLATFORM_ID);\r\n public readonly service = inject(NavbarService);\r\n public readonly injector = inject(Injector);\r\n\r\n @ContentChild(NavbarRoutesDirective, { read: TemplateRef })\r\n routesTemplate?: TemplateRef<NavbarRoutesDirective>;\r\n\r\n @ContentChild(LogoPanelDirective) logoPanel?: LogoPanelDirective;\r\n\r\n protected didResized = false;\r\n protected initialHover = false;\r\n\r\n contentBefore: Type<any>[];\r\n contentAfter: Type<any>[];\r\n showFilterMenu$ = this.service.sourceNavbarItems$.pipe(\r\n map((items) => !!items.length),\r\n );\r\n\r\n constructor() {\r\n this.contentBefore = this.flatContents(CONTENT_BEFORE_ROUTES);\r\n this.contentAfter = this.flatContents(CONTENT_AFTER_ROUTES);\r\n }\r\n\r\n toggleSidebarHover() {\r\n this.didResized = true;\r\n this.layoutService.toggleClass('hover-trigger');\r\n this.initialHover = !this.initialHover;\r\n\r\n if (this.initialHover) {\r\n this.layoutService.addClass('initial-hover');\r\n } else {\r\n this.layoutService.removeClass('initial-hover');\r\n }\r\n }\r\n\r\n handleInitialHover() {\r\n if (this.initialHover) {\r\n this.layoutService.removeClass('initial-hover');\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n if (this.didResized) {\r\n this.didResized = false;\r\n window.dispatchEvent(new Event('resize'));\r\n }\r\n }\r\n\r\n private flatContents(token: InjectionToken<Type<any>[][]>) {\r\n const contents = this.injector.get(token, []);\r\n return contents.reduce((acc, val) => acc.concat(val), []);\r\n }\r\n}\r\n","<nav class=\"lpx-nav\" (mouseenter)=\"handleInitialHover()\">\r\n <div class=\"lpx-logo-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"logoPanel?.template || defaultLogo\"\r\n ></ng-container>\r\n <lpx-icon\r\n class=\"menu-collapse-icon hidden-in-hover-trigger\"\r\n iconClass=\"bi bi-filter-left\"\r\n (click)=\"toggleSidebarHover()\"\r\n ></lpx-icon>\r\n </div>\r\n\r\n @if (showFilterMenu$ | async) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentBefore }\r\n \"\r\n ></ng-container>\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n routesTemplate || defaultRouteTemplate;\r\n context: {\r\n $implicit: service.navbarItems$ | async,\r\n groupItems: service.groupedNavbarItems$ | async,\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentAfter }\r\n \"\r\n ></ng-container>\r\n</nav>\r\n\r\n<ng-template #defaultRouteTemplate let-items let-groupItems=\"groupItems\">\r\n <lpx-navbar-routes\r\n [navbarItems]=\"items\"\r\n [groupedItems]=\"groupItems\"\r\n [routerItem]=\"true\"\r\n ></lpx-navbar-routes>\r\n</ng-template>\r\n\r\n<ng-template #customContentTemplate let-contents>\r\n @for (component of contents; track $index) {\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: injector\"\r\n ></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultLogo>\r\n <lpx-brand-logo />\r\n</ng-template>\r\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'lpxSafeHtml', standalone: true })\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n \r\n transform(value: string): string {\r\n if (!value || typeof value !== 'string') return '';\r\n return this.sanitizer.sanitize(SecurityContext.HTML, value) || '';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslatePipe } from './translate.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslatePipe],\r\n exports: [TranslatePipe],\r\n})\r\nexport class LpxTranslateModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToObservableModule, LpxTranslateModule } from '../../pipes';\r\nimport { LpxVisibleDirective } from '../../directives/visible.directive';\r\nimport { LpxBrandLogoModule } from '../brand-logo/brand-logo.module';\r\nimport { LpxIconModule } from '../icon/icon.module';\r\nimport { NavbarComponent } from './navbar.component';\r\nimport { SubNavbarComponent } from './sub-navbar/sub-navbar.component';\r\nimport { NavbarRoutesComponent } from './navbar-routes/navbar-routes.component';\r\nimport { NavbarRoutesDirective } from './navbar-routes/navbar-routes.directive';\r\nimport {\r\n LpxNavbarSettings,\r\n provideLpxCore,\r\n SKIP_DEFAULTS,\r\n withNavbar,\r\n withNavbarChild,\r\n} from '../../providers';\r\n\r\nconst exportedDeclarations = [\r\n NavbarComponent,\r\n SubNavbarComponent,\r\n NavbarRoutesComponent,\r\n NavbarRoutesDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n LpxBrandLogoModule,\r\n LpxIconModule,\r\n ToObservableModule,\r\n LpxTranslateModule,\r\n LpxVisibleDirective,\r\n ...exportedDeclarations,\r\n ],\r\n exports: [...exportedDeclarations],\r\n})\r\nexport class LpxNavbarModule {\r\n /**\r\n * @deprecated `LpxNavbarModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(\r\n options: LpxNavbarSettings = {},\r\n ): ModuleWithProviders<LpxNavbarModule> {\r\n return {\r\n ngModule: LpxNavbarModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withNavbar(options))],\r\n };\r\n }\r\n\r\n /**\r\n * @deprecated `LpxNavbarModule.forChild()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forChild(\r\n options: Omit<LpxNavbarSettings, 'menuItems'> = {},\r\n ): ModuleWithProviders<LpxNavbarModule> {\r\n return {\r\n ngModule: LpxNavbarModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withNavbarChild(options))],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataStore } from '../../utils/data-store';\r\n\r\nexport interface FooterLink {\r\n link: string;\r\n text: string;\r\n}\r\n\r\nexport interface FooterNav {\r\n brandName: string;\r\n brandUrl: string;\r\n authorName: string;\r\n authorUrl: string;\r\n links?: FooterLink[];\r\n}\r\n\r\nconst DEFAULT_FOOTER_DATA: FooterNav = {\r\n brandName: 'Lepton Theme',\r\n brandUrl: 'https://leptontheme.com/',\r\n authorName: 'Volosoft',\r\n authorUrl: 'https://volosoft.com/',\r\n links: [\r\n { text: 'About', link: '' },\r\n { text: 'Privacy', link: '' },\r\n { text: 'Contact', link: '' }\r\n ]\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FooterLinksService {\r\n private store = new DataStore(DEFAULT_FOOTER_DATA);\r\n footerInfo$ = this.store.sliceState((state) => state);\r\n\r\n setFooterInfo(links: FooterNav) {\r\n this.store.set(links);\r\n } \r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { FooterLinksService } from './footer-links.service';\r\n\r\n@Component({\r\n selector: 'lpx-footer',\r\n templateUrl: './footer.component.html',\r\n imports: [AsyncPipe],\r\n})\r\nexport class FooterComponent {\r\n private service = inject(FooterLinksService);\r\n footerValues$ = this.service.footerInfo$;\r\n currentYear = new Date().getFullYear();\r\n}\r\n","@if (footerValues$ | async; as footerValues) {\r\n<div class=\"lpx-footbar-container end-0\">\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n @if (footerValues.brandUrl) {\r\n <span>{{ currentYear }}© </span>\r\n <a [href]=\"[footerValues.brandUrl]\" target=\"_blank\"> {{ footerValues.brandName }} </a>\r\n <span>by</span>\r\n }\r\n @if (footerValues.authorUrl) {\r\n <a [href]=\"[footerValues.authorUrl]\" target=\"_blank\"> {{ footerValues.authorName }}</a>\r\n }\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n @for (footerLink of footerValues.links; track $index) {\r\n @if (footerLink) {\r\n <a [href]=\"[footerLink.link]\" >{{ footerLink.text }}</a>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FooterComponent } from './footer.component';\r\n\r\n@NgModule({\r\n exports: [FooterComponent],\r\n imports: [CommonModule, RouterModule, FooterComponent],\r\n})\r\nexport class LpxFooterModule {\r\n static forRoot(): ModuleWithProviders<LpxFooterModule> {\r\n return {\r\n ngModule: LpxFooterModule,\r\n providers: [],\r\n };\r\n }\r\n}\r\n","import {\r\n EnvironmentProviders,\r\n inject,\r\n makeEnvironmentProviders,\r\n provideAppInitializer,\r\n Provider,\r\n Type,\r\n} from '@angular/core';\r\nimport {\r\n BreadcrumbRouteListenerService,\r\n CONTENT_AFTER_ROUTES,\r\n CONTENT_BEFORE_ROUTES,\r\n ICON_MAP,\r\n ICON_MAP_TYPE,\r\n LEPTON_X_ICON_SET,\r\n LPX_MENU_ITEMS,\r\n LpxNavbarItem,\r\n} from '../components';\r\nimport { ResponsiveBreakpoints } from '../directives';\r\nimport {\r\n LanguageService,\r\n LanguageTranslateDefaults,\r\n LPX_LANGUAGE,\r\n LPX_TRANSLATE_TOKEN,\r\n LPX_TRANSLATE_PROVIDERS,\r\n LpxLanguageModuleOptions,\r\n LpxTranslate,\r\n} from '../services';\r\nimport {\r\n createDirectionProvider,\r\n createResponsiveProvider,\r\n LPX_STYLE_PROVIDERS,\r\n createWindowProvider,\r\n} from './';\r\n\r\nexport interface LpxIconSettings {\r\n iconSet?: ICON_MAP_TYPE;\r\n}\r\n\r\nexport interface LpxNavbarSettings {\r\n menuItems?: LpxNavbarItem[];\r\n contentAfterRoutes?: Type<any>[];\r\n contentBeforeRoutes?: Type<any>[];\r\n}\r\n\r\nexport interface LpxCoreOptions {\r\n responsiveSettings?: ResponsiveBreakpoints;\r\n window?: Window;\r\n iconSettings?: LpxIconSettings;\r\n languageSettings?: LpxLanguageModuleOptions;\r\n navbarSettings?: LpxNavbarSettings;\r\n texts?: LpxTranslate[];\r\n listenDirectionChanges?: boolean;\r\n}\r\n\r\nexport enum LpxCoreFeatureKind {\r\n Options,\r\n Icon,\r\n Language,\r\n Navbar,\r\n NavbarChild,\r\n SkipDefaults,\r\n}\r\n\r\nexport interface LpxCoreFeature<KindT extends LpxCoreFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: (Provider | EnvironmentProviders)[];\r\n}\r\n\r\nfunction makeLpxCoreFeature<KindT extends LpxCoreFeatureKind>(\r\n kind: KindT,\r\n providers: (Provider | EnvironmentProviders)[],\r\n): LpxCoreFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport const SKIP_DEFAULTS = makeLpxCoreFeature(\r\n LpxCoreFeatureKind.SkipDefaults,\r\n [],\r\n);\r\n\r\nexport function withIcon(\r\n iconSettings = {} as LpxIconSettings,\r\n): LpxCoreFeature<LpxCoreFeatureKind.Icon> {\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.Icon, [\r\n {\r\n provide: LEPTON_X_ICON_SET,\r\n useValue: iconSettings.iconSet || ICON_MAP,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withLanguage(\r\n languageOptions = {} as LpxLanguageModuleOptions,\r\n): LpxCoreFeature<LpxCoreFeatureKind.Language> {\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.Language, [\r\n {\r\n provide: LPX_LANGUAGE,\r\n useValue: languageOptions.languages || [],\r\n },\r\n {\r\n provide: LPX_TRANSLATE_TOKEN,\r\n useValue: [LanguageTranslateDefaults],\r\n multi: true,\r\n },\r\n LanguageService,\r\n ]);\r\n}\r\n\r\nexport function withNavbar(\r\n navbarOptions = {} as LpxNavbarSettings,\r\n): LpxCoreFeature<LpxCoreFeatureKind.Navbar> {\r\n const { menuItems, contentBeforeRoutes, contentAfterRoutes } = navbarOptions;\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.Navbar, [\r\n {\r\n provide: LPX_MENU_ITEMS,\r\n useValue: menuItems || [],\r\n },\r\n {\r\n provide: CONTENT_AFTER_ROUTES,\r\n useValue: contentAfterRoutes || [],\r\n multi: true,\r\n },\r\n {\r\n provide: CONTENT_BEFORE_ROUTES,\r\n useValue: contentBeforeRoutes || [],\r\n multi: true,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withNavbarChild(\r\n navbarChildOptions = {} as Omit<LpxNavbarSettings, 'menuItems'>,\r\n): LpxCoreFeature<LpxCoreFeatureKind.NavbarChild> {\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.NavbarChild, [\r\n {\r\n provide: CONTENT_AFTER_ROUTES,\r\n useValue: navbarChildOptions.contentAfterRoutes || [],\r\n multi: true,\r\n },\r\n {\r\n provide: CONTENT_BEFORE_ROUTES,\r\n useValue: navbarChildOptions.contentBeforeRoutes || [],\r\n multi: true,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withLpxCoreOptions(\r\n options = {} as LpxCoreOptions,\r\n): LpxCoreFeature<LpxCoreFeatureKind>[] {\r\n const {\r\n responsiveSettings,\r\n window,\r\n iconSettings,\r\n languageSettings,\r\n navbarSettings,\r\n listenDirectionChanges,\r\n } = options;\r\n\r\n const iconOptions = withIcon(iconSettings);\r\n const languageOptions = withLanguage(languageSettings);\r\n const navbarOptions = withNavbar(navbarSettings);\r\n\r\n return [\r\n iconOptions,\r\n languageOptions,\r\n navbarOptions,\r\n makeLpxCoreFeature(LpxCoreFeatureKind.Options, [\r\n createDirectionProvider(listenDirectionChanges || true),\r\n createResponsiveProvider(responsiveSettings),\r\n createWindowProvider(window),\r\n ]),\r\n ];\r\n}\r\n\r\nexport function provideLpxBreadcrumb(): EnvironmentProviders {\r\n return provideAppInitializer(() => {\r\n const breadcrumb = inject(BreadcrumbRouteListenerService);\r\n breadcrumb.subscribeRoute();\r\n });\r\n}\r\n\r\nexport function provideLpxCore(\r\n ...features: LpxCoreFeature<LpxCoreFeatureKind>[]\r\n): EnvironmentProviders {\r\n const providers: (Provider | EnvironmentProviders)[] = [];\r\n const skipDefaults = features.some(\r\n (feature) => feature.ɵkind === LpxCoreFeatureKind.SkipDefaults,\r\n );\r\n\r\n if (!skipDefaults) {\r\n providers.push(\r\n provideLpxBreadcrumb(),\r\n ...LPX_STYLE_PROVIDERS,\r\n ...LPX_TRANSLATE_PROVIDERS,\r\n );\r\n }\r\n\r\n features.forEach(({ ɵproviders }) => providers.push(...ɵproviders));\r\n\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LpxVisibleDirective } from './directives/visible.directive';\r\nimport {\r\n LpxCoreOptions,\r\n provideLpxCore,\r\n withLpxCoreOptions,\r\n} from './providers';\r\n\r\n@NgModule({\r\n imports: [CommonModule, LpxVisibleDirective],\r\n})\r\nexport class LpxCoreModule {\r\n /**\r\n * @deprecated `LpxCoreModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(options?: LpxCoreOptions): ModuleWithProviders<LpxCoreModule> {\r\n return {\r\n ngModule: LpxCoreModule,\r\n providers: [provideLpxCore(...withLpxCoreOptions(options))],\r\n };\r\n }\r\n}\r\n","import { inject, InjectionToken, makeStateKey, PLATFORM_ID, TransferState } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { LpxCookieStorageService } from '../services';\r\n\r\nexport const LPX_SSR_FLAG = makeStateKey<boolean>('SSR_FLAG');\r\n\r\nexport const LPX_APP_STARTED_WITH_SSR = new InjectionToken<boolean>('LPX_APP_STARTED_WITH_SSR', {\r\n providedIn: 'root',\r\n factory: () => {\r\n const platformId = inject(PLATFORM_ID);\r\n const cookieService = inject(LpxCookieStorageService);\r\n if (!isPlatformBrowser(platformId)) return true;\r\n const ts = inject(TransferState);\r\n const ssrEnabled = cookieService.getItem('ssr-init');\r\n // Remove the cookie after reading its value because it's only needed once\r\n cookieService.removeItem('ssr-init');\r\n return ts.get(LPX_SSR_FLAG, false) || ssrEnabled === 'true';\r\n },\r\n});\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-breadcrumb-panel]' })\r\nexport class BreadcrumbPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-content]' })\r\nexport class ContentPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-current-user-image-panel]' })\r\nexport class CurrentUserImagePanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-current-user-panel]' })\r\nexport class CurrentUserPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-footer-panel]' })\r\nexport class FooterPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-language-panel]', })\r\nexport class LanguagePanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-mobile-navbar-panel]', })\r\nexport class MobileNavbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-mobile-navbar-settings-panel]', })\r\nexport class MobileNavbarSettingsPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-mobile-navbar-profile-panel]', })\r\nexport class MobileNavbarProfilePanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-navbar-panel]', })\r\nexport class NavbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-navitem-panel]', })\r\nexport class NavitemPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-toolbar-panel]', })\r\nexport class ToolbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-top-navbar-panel]', })\r\nexport class TopNavbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-settings-panel]', })\r\nexport class SettingsPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BreadcrumbPanelDirective } from './breadcrumb-panel.directive';\r\nimport { NavbarPanelDirective } from './navbar-panel.directive';\r\nimport { FooterPanelDirective } from './footer-panel.directive';\r\nimport { MobileNavbarPanelDirective } from './mobile-navbar-panel.directive';\r\nimport { ToolbarPanelDirective } from './toolbar-panel.directive';\r\nimport { TopNavbarPanelDirective } from './top-navbar-panel.directive';\r\nimport { SettingsPanelDirective } from './settings-panel.directive';\r\nimport { NavitemPanelDirective } from './navitem-panel.directive';\r\nimport { LogoPanelDirective } from './logo-panel.directive';\r\nimport { CurrentUserPanelDirective } from './current-user-panel.directive';\r\nimport { CurrentUserImagePanelDirective } from './current-user-image-panel.directive';\r\nimport { LanguagePanelDirective } from './language-panel.directive';\r\nimport { ContentPanelDirective } from './content-panel.directive';\r\nimport { MobileNavbarSettingsPanelDirective } from './mobile-navbar-settings-panel.directive';\r\nimport { MobileNavbarProfilePanelDirective } from './mobile-navbar-profile-panel.directive';\r\n\r\nconst declarationsAndExports = [\r\n BreadcrumbPanelDirective,\r\n ContentPanelDirective,\r\n CurrentUserImagePanelDirective,\r\n CurrentUserPanelDirective,\r\n FooterPanelDirective,\r\n LanguagePanelDirective,\r\n LogoPanelDirective,\r\n MobileNavbarPanelDirective,\r\n MobileNavbarSettingsPanelDirective,\r\n MobileNavbarProfilePanelDirective,\r\n NavbarPanelDirective,\r\n NavitemPanelDirective,\r\n SettingsPanelDirective,\r\n TopNavbarPanelDirective,\r\n ToolbarPanelDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...declarationsAndExports],\r\n exports: [...declarationsAndExports],\r\n})\r\nexport class PanelsModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToolbarItem } from '../../models/toolbar-item.model';\r\nimport { DataStore, sortItems } from '../../utils';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ToolbarService {\r\n private store = new DataStore({ items: <Array<ToolbarItem>>[] });\r\n\r\n items$ = this.store.sliceState(({ items }) => items);\r\n\r\n setItems(items: Array<ToolbarItem>): void {\r\n this.store.patch({ items: items.sort(sortItems) });\r\n }\r\n\r\n addItem(item: ToolbarItem): void {\r\n this.setItems([...this.store.state.items, item]);\r\n }\r\n\r\n patchItem(itemId: string | number, item: Omit<ToolbarItem, 'id'>): void {\r\n const { items } = this.store.state;\r\n const index = items.findIndex(({ id }) => id === itemId);\r\n if (index === -1) {\r\n return;\r\n }\r\n const updateItems = [...items];\r\n updateItems[index] = { id: itemId, ...item };\r\n this.setItems(updateItems);\r\n }\r\n\r\n removeItem(id: string | number): void {\r\n const { items } = this.store.state;\r\n const index = items.findIndex((item) => item.id === id);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n const updateItems = [...items.slice(0, index), ...items.slice(index + 1)];\r\n this.store.patch({ items: updateItems });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DOCUMENT","exportedDeclarations","RoutesService","map"],"mappings":"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"}
1
+ {"version":3,"file":"volo-ngx-lepton-x.core.mjs","sources":["../../../../libs/lepton-x-core/src/lib/directives/visible.directive.ts","../../../../libs/lepton-x-core/src/lib/services/language/language-translate-keys.enum.ts","../../../../libs/lepton-x-core/src/lib/services/language/language.module.ts","../../../../libs/lepton-x-core/src/lib/utils/data-store.ts","../../../../libs/lepton-x-core/src/lib/services/language/tokens.ts","../../../../libs/lepton-x-core/src/lib/services/language/language.service.ts","../../../../libs/lepton-x-core/src/lib/style/tokens.ts","../../../../libs/lepton-x-core/src/lib/style/style.service.ts","../../../../libs/lepton-x-core/src/lib/style/utils.ts","../../../../libs/lepton-x-core/src/lib/style/style-load.factory.ts","../../../../libs/lepton-x-core/src/lib/providers/direction.provider.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive-breakpoints.token.ts","../../../../libs/lepton-x-core/src/lib/tokens/window.token.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive.service.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive.directive.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/responsive.module.ts","../../../../libs/lepton-x-core/src/lib/directives/responsive/defaults.ts","../../../../libs/lepton-x-core/src/lib/providers/responsive.provider.ts","../../../../libs/lepton-x-core/src/lib/services/user-profile/user-profile.service.ts","../../../../libs/lepton-x-core/src/lib/services/body/body.service.ts","../../../../libs/lepton-x-core/src/lib/services/layout/layout.service.ts","../../../../libs/lepton-x-core/src/lib/services/translate/tokens.ts","../../../../libs/lepton-x-core/src/lib/utils/common.ts","../../../../libs/lepton-x-core/src/lib/services/translate/translate.service.ts","../../../../libs/lepton-x-core/src/lib/services/translate/default-translate.service.ts","../../../../libs/lepton-x-core/src/lib/services/translate/providers.ts","../../../../libs/lepton-x-core/src/lib/services/auth/default-auth.service.ts","../../../../libs/lepton-x-core/src/lib/services/auth/tokens.ts","../../../../libs/lepton-x-core/src/lib/services/auth/providers.ts","../../../../libs/lepton-x-core/src/lib/services/local-storage/local-storage.service.ts","../../../../libs/lepton-x-core/src/lib/services/local-storage/cookie-storage.service.ts","../../../../libs/lepton-x-core/src/lib/services/route/routes.service.ts","../../../../libs/lepton-x-core/src/lib/providers/styles.provider.ts","../../../../libs/lepton-x-core/src/lib/providers/window.provider.ts","../../../../libs/lepton-x-core/src/lib/providers/logo.provider.ts","../../../../libs/lepton-x-core/src/lib/components/icon/icon.token.ts","../../../../libs/lepton-x-core/src/lib/components/icon/icon.component.ts","../../../../libs/lepton-x-core/src/lib/components/avatar/avatar.component.ts","../../../../libs/lepton-x-core/src/lib/components/avatar/avatar.component.html","../../../../libs/lepton-x-core/src/lib/components/icon/icon.module.ts","../../../../libs/lepton-x-core/src/lib/components/avatar/avatar.module.ts","../../../../libs/lepton-x-core/src/lib/enums/layouts.ts","../../../../libs/lepton-x-core/src/lib/components/brand-logo/brand-logo.component.ts","../../../../libs/lepton-x-core/src/lib/components/brand-logo/brand-logo.component.html","../../../../libs/lepton-x-core/src/lib/components/brand-logo/brand-logo.module.ts","../../../../libs/lepton-x-core/src/lib/directives/click-outside/click-outside.directive.ts","../../../../libs/lepton-x-core/src/lib/pipes/to-observable/to-observable.pipe.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.service.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/lepton-x-core/src/lib/pipes/to-observable/to-observable.module.ts","../../../../libs/lepton-x-core/src/lib/directives/click-outside/click-outside.module.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb.module.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.token.ts","../../../../libs/lepton-x-core/src/lib/utils/tree-utils.ts","../../../../libs/lepton-x-core/src/lib/consts/others-group.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.service.ts","../../../../libs/lepton-x-core/src/lib/components/breadcrumb/breadcrumb-route-listener.service.ts","../../../../libs/lepton-x-core/src/lib/panels/logo-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/pipes/translate/translate.pipe.ts","../../../../libs/lepton-x-core/src/lib/animations/collapse.animations.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/sub-navbar/sub-navbar.component.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/sub-navbar/sub-navbar.component.html","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar-routes/navbar-routes.component.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar-routes/navbar-routes.component.html","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar-routes/navbar-routes.directive.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.component.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.component.html","../../../../libs/lepton-x-core/src/lib/pipes/safe-html/safe-html.pipe.ts","../../../../libs/lepton-x-core/src/lib/pipes/translate/translate.module.ts","../../../../libs/lepton-x-core/src/lib/components/navbar/navbar.module.ts","../../../../libs/lepton-x-core/src/lib/components/footer/footer-links.service.ts","../../../../libs/lepton-x-core/src/lib/components/footer/footer.component.ts","../../../../libs/lepton-x-core/src/lib/components/footer/footer.component.html","../../../../libs/lepton-x-core/src/lib/components/footer/footer.module.ts","../../../../libs/lepton-x-core/src/lib/providers/lpx-core.provider.ts","../../../../libs/lepton-x-core/src/lib/lepton-x-core.module.ts","../../../../libs/lepton-x-core/src/lib/tokens/ssr-state.token.ts","../../../../libs/lepton-x-core/src/lib/panels/breadcrumb-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/content-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/current-user-image-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/current-user-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/footer-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/language-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/mobile-navbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/mobile-navbar-settings-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/mobile-navbar-profile-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/navbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/navitem-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/toolbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/top-navbar-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/settings-panel.directive.ts","../../../../libs/lepton-x-core/src/lib/panels/panels.module.ts","../../../../libs/lepton-x-core/src/lib/services/toolbar/toolbar.service.ts","../../../../libs/lepton-x-core/src/volo-ngx-lepton-x.core.ts"],"sourcesContent":["import { \r\n OnInit, \r\n Directive, \r\n OnDestroy, \r\n Input, \r\n ViewContainerRef, \r\n TemplateRef, \r\n inject \r\n} from '@angular/core';\r\nimport { EMPTY, from, Observable, of, Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[lpxVisible]',\r\n standalone: true,\r\n})\r\nexport class LpxVisibleDirective implements OnDestroy, OnInit {\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private templateRef = inject<TemplateRef<unknown>>(TemplateRef);\r\n\r\n conditionSubscription: Subscription | undefined;\r\n isVisible: boolean | undefined;\r\n\r\n @Input('lpxVisible') set lpxVisible(\r\n value: boolean | Promise<boolean> | Observable<boolean> | undefined | null\r\n ) {\r\n this.condition$ = checkType(value);\r\n this.subscribeToCondition();\r\n }\r\n\r\n private condition$: Observable<boolean> = of(false);\r\n ngOnInit(): void {\r\n this.updateVisibility();\r\n }\r\n ngOnDestroy(): void {\r\n this.conditionSubscription?.unsubscribe();\r\n }\r\n\r\n private subscribeToCondition() {\r\n this.conditionSubscription = this.condition$.subscribe((value) => {\r\n this.isVisible = value;\r\n this.updateVisibility();\r\n });\r\n }\r\n private updateVisibility() {\r\n this.viewContainerRef.clear();\r\n // it should be false not falsy\r\n if(this.isVisible === false) {\r\n return;\r\n }\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n \r\n }\r\n}\r\n\r\nfunction checkType(value: boolean | Promise<boolean> | Observable<boolean> | undefined | null) {\r\n if (value instanceof Promise) {\r\n return from(value);\r\n } else if (value instanceof Observable) {\r\n return value;\r\n } else if (typeof value === 'boolean') {\r\n return of(value);\r\n } else if(value === undefined || value === null ) {\r\n return of(true)\r\n }\r\n else {\r\n return EMPTY;\r\n }\r\n}\r\n","export enum LanguageTranslateKeys {\r\n SettingsTitle = 'language.settings.title',\r\n}\r\n\r\nexport type LanguageTranslateValues = {\r\n [key in LanguageTranslateKeys]: string;\r\n};\r\n\r\nexport const LanguageTranslateDefaults: LanguageTranslateValues = {\r\n [LanguageTranslateKeys.SettingsTitle]: 'Language Options',\r\n};\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LpxLanguageModuleOptions } from './models';\r\nimport { provideLpxCore, SKIP_DEFAULTS, withLanguage } from '../../providers';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule],\r\n})\r\nexport class LpxLanguageModule {\r\n /**\r\n * @deprecated `LpxLanguageModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(\r\n options?: LpxLanguageModuleOptions,\r\n ): ModuleWithProviders<LpxLanguageModule> {\r\n return {\r\n ngModule: LpxLanguageModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withLanguage(options))],\r\n };\r\n }\r\n}\r\n","import { BehaviorSubject, Subject } from 'rxjs';\r\nimport { map, distinctUntilChanged, filter } from 'rxjs/operators';\r\n\r\nexport class DataStore<State> {\r\n private state$ = new BehaviorSubject<State>(this.initialState);\r\n\r\n private update$ = new Subject<Partial<State>>();\r\n\r\n get state() {\r\n return this.state$.value;\r\n }\r\n\r\n sliceState = <Slice>(\r\n selector: (state: State) => Slice,\r\n compareFn = (s1: Slice, s2: Slice) => s1 === s2\r\n ) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));\r\n\r\n sliceUpdate = <Slice>(\r\n selector: (state: Partial<State>) => Slice,\r\n filterFn = (x: Slice) => x !== undefined\r\n ) => this.update$.pipe(map(selector), filter(filterFn));\r\n\r\n constructor(private initialState: State) {}\r\n\r\n patch(state: Partial<State>) {\r\n let patchedState = state as State;\r\n\r\n if (typeof state === 'object' && !Array.isArray(state)) {\r\n patchedState = { ...this.state, ...state };\r\n }\r\n\r\n this.state$.next(patchedState);\r\n this.update$.next(patchedState);\r\n }\r\n\r\n set(state: State) {\r\n this.state$.next(state);\r\n this.update$.next(state);\r\n }\r\n\r\n reset() {\r\n this.set(this.initialState);\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxLanguage } from './models';\r\n\r\nexport const LPX_LANGUAGE = new InjectionToken<LpxLanguage[]>('LPX_LANGUAGE');\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { LPX_LANGUAGE } from './tokens';\r\nimport { LpxNavbarItem } from '../../components/navbar/models';\r\nimport { LpxLanguage, LpxLanguageState } from './models';\r\nimport { LanguageTranslateKeys } from './language-translate-keys.enum';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LanguageService {\r\n private languages = inject(LPX_LANGUAGE);\r\n\r\n readonly store = new DataStore<LpxLanguageState>({ languages: [] });\r\n\r\n id = 'languages';\r\n\r\n convertLanguageToNavbarItem = (languages: LpxLanguage[]): LpxNavbarItem[] => {\r\n return languages.map((lang) => ({\r\n icon: '',\r\n text: lang.displayName,\r\n selected: lang.selected,\r\n action: () => {\r\n this.setSelectedLanguage(lang);\r\n return true;\r\n },\r\n }));\r\n };\r\n\r\n selectedLanguage$ = this.store.sliceState(\r\n ({ selectedLanguage }) => selectedLanguage\r\n );\r\n\r\n get selectedLanguage(): LpxLanguage {\r\n return this.store.state.selectedLanguage as LpxLanguage;\r\n }\r\n\r\n languageChange$: Observable<LpxLanguage> = this.selectedLanguage$.pipe(\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n filter<LpxLanguage>((lang: LpxLanguage) => lang !== undefined),\r\n distinctUntilChanged((a, b) => a?.cultureName === b?.cultureName)\r\n );\r\n languages$ = this.store.sliceState((state) => state.languages);\r\n languagesAsNavbarItems$ = this.languages$.pipe(\r\n map(this.convertLanguageToNavbarItem)\r\n );\r\n //TODO: PROVIDE API\r\n languagesAsSettingsGroup$ = this.languagesAsNavbarItems$.pipe(\r\n map((languages) => ({\r\n text: LanguageTranslateKeys.SettingsTitle as string,\r\n icon: 'bi bi-globe',\r\n id: this.id,\r\n children: languages,\r\n }))\r\n );\r\n\r\n constructor() {\r\n this.init(this.languages);\r\n }\r\n\r\n setLanguages(languages: LpxLanguage[]) {\r\n this.init(languages);\r\n }\r\n\r\n init(languages: LpxLanguage[]): void {\r\n this.store.patch({\r\n languages,\r\n selectedLanguage: languages.find((lang) => lang.selected),\r\n });\r\n }\r\n\r\n setSelectedLanguage(lang: LpxLanguage) {\r\n this.store.patch({\r\n selectedLanguage: lang,\r\n });\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxStyles } from './models';\r\n\r\nexport const LPX_INITIAL_STYLES = new InjectionToken<LpxStyles>(\r\n 'LPX_INITIAL_STYLES_TOKEN'\r\n);\r\n\r\nexport const LPX_STYLE_FINAL = new InjectionToken<LpxStyles>(\r\n 'LPX_STYLE_FINAL_TOKEN'\r\n);\r\n\r\nexport const LPX_LAYOUT_STYLE_FINAL = new InjectionToken<LpxStyles>(\r\n 'LPX_LAYOUT_STYLE_FINALIZE_TOKEN'\r\n);\r\n","import { Injectable, DOCUMENT, inject } from '@angular/core';\r\nimport { LPX_STYLE_FINAL } from './tokens';\r\nimport { LpxStyle, LpxStyles } from './models';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StyleService {\r\n private initialStyles = inject<LpxStyles>(LPX_STYLE_FINAL);\r\n private document = inject<Document>(DOCUMENT);\r\n\r\n lastInjectedStyle: HTMLLinkElement | null = null;\r\n\r\n initialized$ = new BehaviorSubject<boolean>(false);\r\n\r\n async initStyles(direction: 'rtl' | 'ltr') {\r\n const cssExtension = direction === 'rtl' ? '.rtl' : '';\r\n\r\n for (const style of this.initialStyles) {\r\n const href = `${style.bundleName}${cssExtension}.css`;\r\n const selector = `\r\n link[rel=\"stylesheet\"][href$=\"${href}\"],\r\n link[rel=\"stylesheet\"]#${style.bundleName}\r\n `;\r\n\r\n const isAlreadyLoaded = !!this.document.querySelector(selector);\r\n if (isAlreadyLoaded) {\r\n continue;\r\n }\r\n\r\n await this.loadStyle(style, direction);\r\n }\r\n this.initialized$.next(true);\r\n }\r\n\r\n async loadStyle(\r\n style: LpxStyle,\r\n direction: 'ltr' | 'rtl',\r\n ): Promise<HTMLStyleElement | void> {\r\n return new Promise((resolve) => {\r\n const linkElement = this.createLinkElem(style, direction, resolve);\r\n\r\n // Find styles.css to insert before it\r\n const stylesCss = this.document.querySelector(\r\n 'link[rel=\"stylesheet\"][href*=\"styles\"]',\r\n );\r\n\r\n if (stylesCss) {\r\n stylesCss.insertAdjacentElement('beforebegin', linkElement);\r\n } else {\r\n this.document.head.appendChild(linkElement);\r\n }\r\n\r\n this.lastInjectedStyle = linkElement;\r\n resolve(linkElement);\r\n });\r\n }\r\n\r\n async replaceStyle<T extends LpxStyle>(\r\n style: T,\r\n direction: 'rtl' | 'ltr',\r\n ): Promise<HTMLStyleElement | void> {\r\n const loaded = this.document.querySelector(`link#${style.bundleName}`);\r\n if (loaded) {\r\n loaded.remove();\r\n }\r\n return this.loadStyle(style, direction);\r\n }\r\n\r\n async reloadInitialStyles(direction: 'rtl' | 'ltr') {\r\n for (const style of this.initialStyles) {\r\n await this.replaceStyle(style, direction);\r\n }\r\n }\r\n\r\n createLinkElem(\r\n style: LpxStyle,\r\n direction: 'rtl' | 'ltr',\r\n resolve: (param: any) => void,\r\n ): HTMLLinkElement {\r\n const linkElem = this.document.createElement('link');\r\n linkElem.rel = 'stylesheet';\r\n linkElem.id = style.bundleName;\r\n linkElem.href = `${style.bundleName}${\r\n direction === 'rtl' ? '.rtl' : ''\r\n }.css`;\r\n linkElem.onload = () => {\r\n resolve(linkElem);\r\n };\r\n return linkElem;\r\n }\r\n}\r\n","import { LpxStyleFactory, LpxStyles } from './models';\r\n\r\nexport function createStyleFactory<T = LpxStyles>(\r\n handler?: LpxStyleFactory<T>\r\n): LpxStyleFactory<T> {\r\n return handler || ((defaultValue: T) => defaultValue);\r\n}\r\n","import { LpxStyles } from '../style/models';\r\n\r\nexport function styleLoadFactory(\r\n styleList: LpxStyles,\r\n layoutStyles: LpxStyles,\r\n) {\r\n styleList.push({\r\n bundleName: 'ng-bundle',\r\n });\r\n styleList.push({\r\n bundleName: 'font-bundle',\r\n });\r\n return [...styleList, ...layoutStyles];\r\n}\r\n","import { DOCUMENT, inject, PLATFORM_ID, provideAppInitializer, Injector, runInInjectionContext } from '@angular/core';\r\nimport { LanguageService } from '../services/language';\r\nimport { StyleService } from '../style';\r\nimport {\r\n distinctUntilKeyChanged,\r\n filter,\r\n switchMap,\r\n take,\r\n} from 'rxjs/operators';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport function createDirectionProvider(listenDirection: boolean) {\r\n return provideAppInitializer(() => {\r\n if (listenDirection) {\r\n listenDirectionChange();\r\n }\r\n });\r\n}\r\n// subscribe to direction from documentElement and load direction stylesheet\r\nexport function listenDirectionChange() {\r\n const languageService = inject(LanguageService);\r\n const styleService = inject(StyleService);\r\n const doc = inject(DOCUMENT) as Document;\r\n const platformId = inject(PLATFORM_ID);\r\n\r\n if (!isPlatformBrowser(platformId)) {\r\n return Promise.resolve();\r\n }\r\n\r\n return new Promise((resolve) => {\r\n styleService.initialized$\r\n .pipe(\r\n filter(Boolean),\r\n take(1),\r\n switchMap(() => languageService.languageChange$),\r\n distinctUntilKeyChanged('isRTL'),\r\n )\r\n .subscribe(async (lang) => {\r\n const direction = lang?.isRTL ? 'rtl' : 'ltr';\r\n const documentElement = (doc?.documentElement || ({} as HTMLElement)) as HTMLElement;\r\n if (documentElement && documentElement.dir !== direction) {\r\n documentElement.dir = direction;\r\n }\r\n await styleService.reloadInitialStyles(direction);\r\n resolve(null);\r\n });\r\n });\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ResponsiveBreakpoints {\r\n [key: string]: number;\r\n}\r\n\r\nexport const RESPONSIVE_BREAKPOINTS = new InjectionToken<ResponsiveBreakpoints>(\r\n 'RESPONSIVE_BREAKPOINTS',\r\n);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const WINDOW = new InjectionToken<Window>('WINDOW');\r\n","import {inject, Injectable, PLATFORM_ID} from '@angular/core';\r\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\r\nimport {\r\n RESPONSIVE_BREAKPOINTS,\r\n ResponsiveBreakpoints,\r\n} from './responsive-breakpoints.token';\r\nimport { WINDOW } from '../../tokens/window.token';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport const enum ResponsiveTokens {\r\n none = 'none',\r\n all = 'all',\r\n separator = '-',\r\n}\r\n\r\nexport interface ResponsiveBreakpoint {\r\n name: string;\r\n width: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ResponsiveService {\r\n protected providedBreakpoints = inject<ResponsiveBreakpoints>(RESPONSIVE_BREAKPOINTS);\r\n protected window = inject(WINDOW);\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n currentResolution$!: Observable<{ height: number; width: number }>;\r\n\r\n defaultBreakpoint = {\r\n name: ResponsiveTokens.all,\r\n width: 0,\r\n };\r\n\r\n breakpoints: { name: string; width: number }[] = this.buildBreakpoints(\r\n this.providedBreakpoints,\r\n );\r\n\r\n protected getCurrentSize = () => isPlatformBrowser(this.platformId) ? ({\r\n height: this.window.innerHeight,\r\n width: this.window.innerWidth,\r\n }) : ({height: 0, width: 0});\r\n\r\n protected mapSizeToBreakpoint = ({ width } = this.getCurrentSize()) => {\r\n return this.breakpoints.find(\r\n (s) => width >= s.width,\r\n ) as ResponsiveBreakpoint;\r\n };\r\n\r\n currentSize$ = new BehaviorSubject<ResponsiveBreakpoint>(\r\n this.mapSizeToBreakpoint(),\r\n );\r\n\r\n shouldRenderWithCurrentSize = (query: string) => {\r\n return this.matchQuery(query);\r\n };\r\n\r\n constructor() {\r\n this.setupListener();\r\n }\r\n\r\n protected setupListener() {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.currentResolution$ = fromEvent(this.window, 'resize')\r\n .pipe(map(this.getCurrentSize))\r\n .pipe(startWith(this.getCurrentSize()));\r\n\r\n this.currentResolution$\r\n .pipe(map(this.mapSizeToBreakpoint), distinctUntilChanged())\r\n .subscribe((current) => {\r\n this.currentSize$.next(current);\r\n });\r\n }\r\n\r\n protected buildBreakpoints(breakpoints: ResponsiveBreakpoints) {\r\n return [\r\n ...Object.keys(breakpoints)\r\n .map((key) => ({\r\n name: key,\r\n width: breakpoints[key],\r\n }))\r\n .sort((a, b) => b.width - a.width),\r\n this.defaultBreakpoint,\r\n ];\r\n }\r\n\r\n protected matchQuery(query: string) {\r\n const { width } = this.getCurrentSize();\r\n const tokens = query.split(' ');\r\n const findInTokens = (size: string) =>\r\n tokens.find(\r\n (token) => token.split(ResponsiveTokens.separator)[0] === size,\r\n );\r\n\r\n const matchedBreakpoint = this.breakpoints.find(\r\n (breakpoint) =>\r\n width >= breakpoint.width && findInTokens(breakpoint.name),\r\n );\r\n if (matchedBreakpoint) {\r\n const token = findInTokens(matchedBreakpoint.name);\r\n const shouldBeBigger = !token?.includes(ResponsiveTokens.none);\r\n return shouldBeBigger === width >= matchedBreakpoint.width;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { \r\n ChangeDetectorRef, \r\n Directive, \r\n Input, \r\n OnDestroy, \r\n OnInit, \r\n TemplateRef, \r\n ViewContainerRef, \r\n inject \r\n} from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\nimport { ResponsiveService } from './responsive.service';\r\n\r\n@Directive({ selector: '[lpxResponsive]' })\r\nexport class ResponsiveDirective implements OnInit, OnDestroy {\r\n private templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n private viewContainer = inject(ViewContainerRef);\r\n private service = inject(ResponsiveService);\r\n private parentCdr = inject(ChangeDetectorRef, { optional: true, skipSelf: true })!;\r\n\r\n hasRendered = false;\r\n sub = new Subscription();\r\n\r\n @Input('lpxResponsive') query!: string;\r\n\r\n render = (shouldRender: boolean) => {\r\n if (shouldRender && !this.hasRendered) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasRendered = true;\r\n } else if (!shouldRender && this.hasRendered) {\r\n this.viewContainer.clear();\r\n this.hasRendered = false;\r\n }\r\n this.parentCdr.detectChanges();\r\n };\r\n\r\n ngOnInit(): void {\r\n this.sub.add(\r\n this.service.currentSize$\r\n .pipe(map((_) => this.service.shouldRenderWithCurrentSize(this.query)))\r\n .subscribe(this.render),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ResponsiveDirective } from './responsive.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ResponsiveDirective],\r\n exports: [ResponsiveDirective],\r\n})\r\nexport class LpxResponsiveModule {}\r\n","import { ResponsiveBreakpoints } from './responsive-breakpoints.token';\r\n\r\nexport const LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS: ResponsiveBreakpoints = {\r\n sm: 480,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n};\r\n","import {\r\n LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS,\r\n RESPONSIVE_BREAKPOINTS,\r\n ResponsiveBreakpoints,\r\n} from '../directives/responsive';\r\nimport { Provider } from '@angular/core';\r\n\r\nexport function createResponsiveProvider(responsiveSettings:ResponsiveBreakpoints |undefined ): Provider{\r\n return {\r\n provide: RESPONSIVE_BREAKPOINTS,\r\n useValue:\r\n responsiveSettings || LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS,\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { UserProfile } from '../../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserProfileService {\r\n private store = new DataStore({} as UserProfile);\r\n user$ = this.store.sliceState((state) => state);\r\n\r\n setUser(user: UserProfile) {\r\n this.store.set(user);\r\n }\r\n\r\n patchUser(user: Partial<UserProfile>) {\r\n this.store.patch(user);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BodyService {\r\n body = document.querySelector('body');\r\n classes = {\r\n overflowYHidden: 'overflow-y-hidden',\r\n };\r\n\r\n disableScrollY() {\r\n this.body?.classList.add(this.classes.overflowYHidden);\r\n }\r\n\r\n enableScrollY() {\r\n this.body?.classList.remove(this.classes.overflowYHidden);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DataStore } from '../../utils/data-store';\r\n\r\nexport interface LayoutSettings {\r\n containerClass: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LayoutService {\r\n readonly store = new DataStore({\r\n containerClass: [''],\r\n });\r\n\r\n containerClass$: Observable<Array<string>> = this.store.sliceState(\r\n ({ containerClass }) => containerClass || [],\r\n );\r\n\r\n setClass(cssClass: string | Array<string>): void {\r\n const containerClass = Array.isArray(cssClass) ? cssClass : [cssClass];\r\n this.patchStore(containerClass);\r\n }\r\n\r\n addClass(cssClass: string): void {\r\n const { containerClass } = this.store.state;\r\n this.patchStore([...containerClass, cssClass]);\r\n }\r\n\r\n removeClass(cssClass: string): void {\r\n const { containerClass } = this.store.state;\r\n const index = containerClass.findIndex((item) => item === cssClass);\r\n if (index === -1) return;\r\n const update = [\r\n ...containerClass.slice(0, index),\r\n ...containerClass.slice(index + 1),\r\n ];\r\n this.patchStore(update);\r\n }\r\n\r\n removeClasses(classlist: string[]) {\r\n const { containerClass } = this.store.state;\r\n const filteredClasslist = containerClass.filter(\r\n (clss) => !classlist.includes(clss),\r\n );\r\n this.patchStore(filteredClasslist);\r\n }\r\n\r\n toggleClass(cssClass: string): void {\r\n const { containerClass } = this.store.state;\r\n const index = containerClass.findIndex((item) => item === cssClass);\r\n if (index === -1) {\r\n this.addClass(cssClass);\r\n } else {\r\n this.removeClass(cssClass);\r\n }\r\n }\r\n\r\n patchStore(containerClass: string[]) {\r\n this.store.patch({\r\n containerClass,\r\n });\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxTranslate, TranslateService } from './models';\r\n\r\nexport const LPX_TRANSLATE_SERVICE_TOKEN = new InjectionToken<TranslateService>(\r\n 'LPX_TRANSLATE_SERVICE_TOKEN'\r\n);\r\nexport const LPX_TRANSLATE_TOKEN = new InjectionToken<LpxTranslate[]>(\r\n 'LPX_TRANSLATE_TOKEN'\r\n);\r\n","import { from, Observable, of } from 'rxjs';\r\nimport { ArrayTypeDeep, RecursiveArray, VariantSource } from '../models/common';\r\n\r\nexport function sortItems<T extends { order?: number }>(a: T, b: T): number {\r\n if (!a.order) {\r\n return 1;\r\n }\r\n if (!b.order) {\r\n return -1;\r\n }\r\n\r\n return a.order - b.order;\r\n}\r\n\r\nexport function flatArrayDeepToObject<T extends { [key: string]: any }>(\r\n arr: RecursiveArray<ArrayTypeDeep<T>>\r\n): ArrayTypeDeep<T> {\r\n return arr.reduce(\r\n (acc, curr) => ({\r\n ...acc,\r\n ...(Array.isArray(curr) ? flatArrayDeepToObject(curr) : curr),\r\n }),\r\n {}\r\n ) as ArrayTypeDeep<T>;\r\n}\r\n\r\nexport function getStream$<T>(source: VariantSource<T>): Observable<T> {\r\n return source instanceof Observable\r\n ? source\r\n : source instanceof Promise\r\n ? from(source)\r\n : of(source);\r\n}\r\n\r\nexport function isNullOrUndefined<T>(obj: T) {\r\n return obj === null || obj === undefined;\r\n}\r\n\r\nexport function isArray<T>(obj: T): boolean {\r\n return Array.isArray(obj);\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LPX_TRANSLATE_SERVICE_TOKEN, LPX_TRANSLATE_TOKEN } from './tokens';\r\nimport { LpxTranslate, TranslateService } from './models';\r\nimport { flatArrayDeepToObject } from '../../utils/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LpxThemeTranslateService {\r\n private translateValues = inject<Array<LpxTranslate[]>>(LPX_TRANSLATE_TOKEN, { optional: true })!;\r\n private translateService = inject<TranslateService>(LPX_TRANSLATE_SERVICE_TOKEN);\r\n\r\n private _content: LpxTranslate = flatArrayDeepToObject(this.translateValues);\r\n\r\n // TODO: PROVIDE API : Implement args\r\n translate$(key: string, ...args: any[]): Observable<string> {\r\n return this.translateService.get$(key, this._content[key]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { TranslateService } from './models';\r\n\r\n@Injectable()\r\nexport class DefaultTranslateService implements TranslateService {\r\n get$(key: string, defaultValue?: string): Observable<string> {\r\n return of(defaultValue || key || '');\r\n }\r\n\r\n get(key: string, defaultValue?: string): string {\r\n return defaultValue || key || '';\r\n }\r\n}\r\n","import { Provider } from '@angular/core';\r\nimport { LPX_TRANSLATE_SERVICE_TOKEN } from './tokens';\r\nimport { DefaultTranslateService } from './default-translate.service';\r\n\r\nexport const LPX_TRANSLATE_SERVICE_PROVIDER: Provider = {\r\n provide: LPX_TRANSLATE_SERVICE_TOKEN,\r\n useClass: DefaultTranslateService,\r\n};\r\n\r\nexport const LPX_TRANSLATE_PROVIDERS: Provider[] = [\r\n LPX_TRANSLATE_SERVICE_PROVIDER,\r\n];\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { AuthService } from './models';\r\n\r\nimport { UserProfileService } from '../user-profile';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class DefaultAuthService implements AuthService {\r\n private userProfileService = inject(UserProfileService);\r\n\r\n isUserExists$ = this.userProfileService.user$.pipe(\r\n map((user) => !!user && Object.keys(user).length > 0)\r\n );\r\n\r\n navigateToLogin(): void {\r\n return;\r\n }\r\n}\r\n","import {InjectionToken} from \"@angular/core\";\r\nimport {AuthService} from \"./models\";\r\n\r\nexport const LPX_AUTH_SERVICE_TOKEN = new InjectionToken<AuthService>(\r\n 'LPX_AUTH_SERVICE_TOKEN'\r\n);\r\n","import {Provider} from \"@angular/core\";\r\nimport {LPX_AUTH_SERVICE_TOKEN} from \"./tokens\";\r\nimport {DefaultAuthService} from \"./default-auth.service\";\r\n\r\nexport const LPX_AUTH_SERVICE_PROVIDER: Provider = {\r\n provide: LPX_AUTH_SERVICE_TOKEN,\r\n useClass: DefaultAuthService,\r\n};\r\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LpxLocalStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n\r\n [name: string]: any;\r\n\r\n get isBrowser(): boolean {\r\n return isPlatformBrowser(this.platformId);\r\n }\r\n\r\n get length(): number {\r\n return this.isBrowser ? localStorage.length : 0;\r\n }\r\n\r\n clear(): void {\r\n if (this.isBrowser) localStorage.clear();\r\n }\r\n\r\n getItem(key: string): string | null {\r\n return this.isBrowser ? localStorage.getItem(key) : null;\r\n }\r\n\r\n key(index: number): string | null {\r\n return this.isBrowser ? localStorage.key(index) : null;\r\n }\r\n\r\n removeItem(key: string): void {\r\n if (this.isBrowser) localStorage.removeItem(key);\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (this.isBrowser) localStorage.setItem(key, value);\r\n }\r\n}\r\n","import { Injectable, PLATFORM_ID, inject, REQUEST } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LpxCookieStorageService implements Storage {\r\n private platformId = inject(PLATFORM_ID);\r\n private document = inject(DOCUMENT);\r\n private request = inject(REQUEST);\r\n\r\n get length(): number {\r\n return isPlatformBrowser(this.platformId) ? this.keys().length : this.getCookiesFromRequest()?.size ?? 0;\r\n }\r\n\r\n clear(): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.keys().forEach(k => this.removeItem(k));\r\n }\r\n\r\n getItem(key: string): string | null {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return this.getCookiesFromRequest()?.get(key) ?? null;\r\n }\r\n const name = key + '=';\r\n const parts = (this.document.cookie || '').split('; ');\r\n for (const p of parts) {\r\n if (p.startsWith(name)) {\r\n return decodeURIComponent(p.slice(name.length));\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n key(index: number): string | null {\r\n if (!isPlatformBrowser(this.platformId)) return null;\r\n return this.keys()[index] ?? null;\r\n }\r\n\r\n removeItem(key: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, '', { 'max-age': -1, path: '/' });\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n });\r\n }\r\n\r\n setItemWithExpiry(key: string, value: string, seconds: number): void {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n this.setCookie(key, encodeURIComponent(value), {\r\n path: '/',\r\n sameSite: 'Lax',\r\n secure: true,\r\n 'max-age': Math.max(0, Math.floor(seconds)),\r\n });\r\n }\r\n\r\n private keys(): string[] {\r\n const raw = (this.document.cookie || '').split('; ').filter(Boolean);\r\n return raw\r\n .map(c => decodeURIComponent(c.split('=')[0]));\r\n }\r\n\r\n private setCookie(name: string, value: string, opts: {\r\n path?: string;\r\n domain?: string;\r\n secure?: boolean;\r\n sameSite?: 'Lax' | 'Strict' | 'None';\r\n expires?: Date;\r\n 'max-age'?: number;\r\n }) {\r\n let s = `${name}=${value}`;\r\n if (opts.path) s += `; Path=${opts.path}`;\r\n if (opts.domain) s += `; Domain=${opts.domain}`;\r\n if (opts.sameSite) s += `; SameSite=${opts.sameSite}`;\r\n if (opts.secure) s += `; Secure`;\r\n if (opts.expires) s += `; Expires=${opts.expires.toUTCString()}`;\r\n if (typeof opts['max-age'] === 'number') s += `; Max-Age=${opts['max-age']}`;\r\n this.document.cookie = s;\r\n }\r\n\r\n private getCookiesFromRequest(): Map<string, string> {\r\n const cookies = new Map<string, string>();\r\n const cookieHeader = this.request?.headers.get('cookie') ?? '';\r\n for (const part of cookieHeader.split(';')) {\r\n const i = part.indexOf('=');\r\n if (i > -1) {\r\n const k = part.slice(0, i).trim();\r\n const v = decodeURIComponent(part.slice(i + 1).trim());\r\n cookies.set(k, v);\r\n }\r\n }\r\n return cookies;\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoutesService {\r\n protected readonly router = inject(Router);\r\n protected readonly location = inject(Location);\r\n\r\n readonly currentNavigation = toSignal(\r\n this.router.events.pipe(\r\n filter((e) => e instanceof NavigationEnd),\r\n map(() => this.location.path() || '/'),\r\n ),\r\n { initialValue: this.location.path() || '/' },\r\n );\r\n}\r\n","import { inject, provideAppInitializer } from '@angular/core';\r\nimport { switchMap, take } from 'rxjs/operators';\r\nimport { from } from 'rxjs';\r\nimport { LPX_INITIAL_STYLES, StyleService } from '../style';\r\nimport { LanguageService } from '../services';\r\n\r\nexport const LPX_STYLE_PROVIDERS = [\r\n {\r\n provide: LPX_INITIAL_STYLES,\r\n useFactory: () => [],\r\n },\r\n provideAppInitializer(() => {\r\n return loadInitialStyles();\r\n }),\r\n];\r\n\r\nexport function loadInitialStyles() {\r\n const styleService = inject(StyleService);\r\n const languageService = inject(LanguageService);\r\n return languageService.languageChange$.pipe(\r\n take(1),\r\n switchMap((lang) =>\r\n from(styleService.initStyles(lang.isRTL ? 'rtl' : 'ltr')),\r\n ),\r\n );\r\n}\r\n","import { inject, PLATFORM_ID, Provider } from '@angular/core';\r\nimport { WINDOW } from '../tokens/window.token';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nexport function createWindowProvider(windowObj: Window | undefined): Provider {\r\n return { provide: WINDOW, useFactory: () => {\r\n if (windowObj) {\r\n return windowObj;\r\n } else {\r\n const platformId = inject(PLATFORM_ID);\r\n return isPlatformBrowser(platformId) ? window : undefined;\r\n }\r\n }\r\n }\r\n}\r\n","import { Environment } from '@abp/ng.core';\r\nimport {\r\n EnvironmentProviders,\r\n makeEnvironmentProviders,\r\n Provider,\r\n} from '@angular/core';\r\nimport { LOGO_APP_NAME_TOKEN, LOGO_URL_TOKEN } from '@abp/ng.theme.shared';\r\n\r\nexport enum LpxLogoFeatureKind {\r\n Options,\r\n}\r\n\r\nexport interface LpxLogoFeature<KindT extends LpxLogoFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: (Provider | EnvironmentProviders)[];\r\n}\r\n\r\nfunction makeLpxLogoFeature<KindT extends LpxLogoFeatureKind>(\r\n kind: KindT,\r\n providers: (Provider | EnvironmentProviders)[],\r\n): LpxLogoFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\n/***\r\n * @deprecated please use the same `withEnvironmentOptions()` **function** that is imported from `@abp/ng.theme.shared` instead.\r\n */\r\nexport function withEnvironmentOptions(\r\n options = {} as Environment,\r\n): LpxLogoFeature<LpxLogoFeatureKind.Options> {\r\n const { name, logoUrl } = options.application || {};\r\n\r\n return makeLpxLogoFeature(LpxLogoFeatureKind.Options, [\r\n {\r\n provide: LOGO_URL_TOKEN,\r\n useValue: logoUrl || '',\r\n },\r\n {\r\n provide: LOGO_APP_NAME_TOKEN,\r\n useValue: name || 'ProjectName',\r\n },\r\n ]);\r\n}\r\n\r\n/***\r\n * @deprecated please use the same`provideLogo()` **function** that is imported from `@abp/ng.theme.shared` instead.\r\n */\r\nexport function provideLogo(\r\n ...features: LpxLogoFeature<LpxLogoFeatureKind>[]\r\n): EnvironmentProviders {\r\n const providers: (Provider | EnvironmentProviders)[] = [];\r\n features.forEach(({ ɵproviders }) => providers.push(...ɵproviders));\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const ICON_MAP = {\r\n bagFill: 'bi bi-bag-fill',\r\n bellFill: 'bi bi-bell-fill',\r\n calendarWeek: 'bi bi-calendar2-week',\r\n chatDots: 'bi bi-chat-dots',\r\n chevronDown: 'bi bi-chevron-down',\r\n chevronUp: 'bi bi-chevron-up',\r\n gearConnected: 'bi bi-gear-wide-connected',\r\n filter: 'bi bi-filter',\r\n filterFill: 'bi bi-filter-circle-fill',\r\n layoutThreeColumns: 'bi bi-layout-three-columns',\r\n moon: 'bi bi-moon',\r\n square: 'bi bi-square',\r\n sunset: 'bi bi-brightness-alt-high-fill',\r\n sunup: 'bi bi-brightness-high-fill',\r\n star: 'bi bi-star',\r\n x: 'bi bi-x',\r\n xCircleFill: 'bi bi-x-circle-fill',\r\n};\r\n\r\nexport type ICON_MAP_TYPE = typeof ICON_MAP;\r\n\r\nexport const LEPTON_X_ICON_SET = new InjectionToken<ICON_MAP_TYPE>('LEPTON_X_ICON_SET');\r\n","import { Component, inject, Input, ViewEncapsulation } from '@angular/core';\r\nimport { LEPTON_X_ICON_SET, ICON_MAP_TYPE } from './icon.token';\r\n\r\n@Component({\r\n selector: 'lpx-icon',\r\n template: `\r\n <i class=\"lpx-icon\" [class]=\"styleClass\" aria-hidden=\"true\"></i>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [],\r\n})\r\nexport class IconComponent {\r\n public iconSet = inject<ICON_MAP_TYPE>(LEPTON_X_ICON_SET);\r\n\r\n @Input() iconClass?: keyof ICON_MAP_TYPE | string;\r\n\r\n get styleClass() {\r\n return (\r\n this.iconSet[this.iconClass as keyof ICON_MAP_TYPE] || this.iconClass\r\n );\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, Input } from '@angular/core';\r\nimport { IconComponent } from '../icon/icon.component';\r\n\r\nexport interface Avatar {\r\n type: 'icon' | 'image';\r\n source: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lpx-avatar',\r\n templateUrl: './avatar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [IconComponent],\r\n})\r\nexport class AvatarComponent {\r\n @Input() avatar?: Avatar;\r\n}\r\n","@if (avatar && avatar.source) {\r\n <div class=\"lpx-avatar\">\r\n @switch (avatar.type) {\r\n @case ('icon') {\r\n <lpx-icon\r\n class=\"lpx-avatar-icon\"\r\n [iconClass]=\"avatar.source\"\r\n ></lpx-icon>\r\n }\r\n @case ('image') {\r\n <img class=\"lpx-avatar-img\" [src]=\"avatar.source\" />\r\n }\r\n }\r\n </div>\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n LpxIconSettings,\r\n provideLpxCore,\r\n SKIP_DEFAULTS,\r\n withIcon,\r\n} from '../../providers';\r\nimport { IconComponent } from './icon.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, IconComponent],\r\n exports: [IconComponent],\r\n})\r\nexport class LpxIconModule {\r\n /**\r\n * @deprecated `LpxIconModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(\r\n options?: LpxIconSettings,\r\n ): ModuleWithProviders<LpxIconModule> {\r\n return {\r\n ngModule: LpxIconModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withIcon(options))],\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LpxIconModule } from '../icon/icon.module';\r\nimport { AvatarComponent } from './avatar.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, LpxIconModule, AvatarComponent],\r\n exports: [AvatarComponent],\r\n})\r\nexport class LpxAvatarModule {}\r\n","export enum Layouts {\r\n sideMenu = 'side-menu',\r\n topMenu = 'top-menu',\r\n}\r\n","import { RouterLink } from '@angular/router';\r\nimport { Component, inject, input, ViewEncapsulation } from '@angular/core';\r\nimport { LOGO_APP_NAME_TOKEN, LOGO_URL_TOKEN } from '@abp/ng.theme.shared';\r\nimport { Layouts } from '../../enums';\r\n\r\n@Component({\r\n selector: 'lpx-brand-logo',\r\n templateUrl: './brand-logo.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [RouterLink],\r\n})\r\nexport class BrandLogoComponent {\r\n layout = input<Layouts>(Layouts.sideMenu);\r\n\r\n layoutOptions = Layouts;\r\n\r\n protected readonly logoUrl: string | null = inject(LOGO_URL_TOKEN, {\r\n optional: true,\r\n });\r\n\r\n protected readonly appName =\r\n inject(LOGO_APP_NAME_TOKEN, {\r\n optional: true,\r\n }) ?? 'ProjectName';\r\n}\r\n","@if (logoUrl) {\r\n @let logo = 'url(' + logoUrl + ')';\r\n <a routerLink=\"/\">\r\n <div\r\n class=\"lpx-brand-logo\"\r\n [style.background-image]=\"logo\"\r\n role=\"img\"\r\n aria-label=\"App Logo\"\r\n ></div>\r\n </a>\r\n} @else {\r\n <a routerLink=\"/\" class=\"text-decoration-none\">\r\n @switch (layout()) {\r\n @case (layoutOptions.sideMenu) {\r\n <div class=\"lpx-brand-logo\"></div>\r\n <div class=\"lpx-brand-name\" style=\"left: 58px !important\">\r\n {{ appName }}\r\n </div>\r\n }\r\n\r\n @case (layoutOptions.topMenu) {\r\n <div class=\"lpx-brand-name\" style=\"position: inherit\">\r\n {{ appName }}\r\n </div>\r\n }\r\n }\r\n </a>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrandLogoComponent } from './brand-logo.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n imports: [RouterModule, BrandLogoComponent],\r\n exports: [BrandLogoComponent],\r\n})\r\nexport class LpxBrandLogoModule {}\r\n","import {\r\n Directive,\r\n Output,\r\n EventEmitter,\r\n HostListener,\r\n ElementRef,\r\n Input,\r\n inject,\r\n} from '@angular/core';\r\n\r\n@Directive({ selector: '[lpxClickOutside]' })\r\nexport class ClickOutsideDirective {\r\n private elementRef = inject(ElementRef);\r\n\r\n @Output() lpxClickOutside = new EventEmitter();\r\n @Input()\r\n exceptedRefs: Array<ElementRef> = [];\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n !(\r\n this.elementRef.nativeElement.contains(event.target) ||\r\n this.exceptedRefs.some((ref) =>\r\n ref.nativeElement.contains(event.target),\r\n )\r\n )\r\n ) {\r\n this.lpxClickOutside.emit();\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { VariantSource } from '../../models/common';\r\nimport { getStream$ } from '../../utils/common';\r\n\r\n@Pipe({ name: 'toObservable' })\r\nexport class ToObservablePipe implements PipeTransform {\r\n transform(\r\n value: VariantSource<string> | VariantSource<number> | undefined,\r\n ): Observable<string | number> {\r\n return value ? getStream$(value) : of('');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { Observable } from 'rxjs';\r\n\r\n// TODO : add onClick\r\nexport interface BreadcrumbItem {\r\n icon?: string;\r\n text: string | Observable<string>;\r\n link?: string;\r\n children?: BreadcrumbItem[];\r\n expanded?: boolean;\r\n active?: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbService {\r\n private store = new DataStore<BreadcrumbItem[]>([]);\r\n items$ = this.store.sliceState((state) => state);\r\n // TODO: generate id per item\r\n add(item: BreadcrumbItem | BreadcrumbItem[]): void {\r\n const items = Array.isArray(item) ? item : [item];\r\n this.store.set([...this.store.state, ...items]);\r\n }\r\n\r\n // TODO: generate id per item\r\n insert(item: BreadcrumbItem | BreadcrumbItem[], index: number): void {\r\n const state = this.store.state;\r\n const items = Array.isArray(item) ? item : [item];\r\n this.store.set([...state.slice(0, index), ...items, ...state.slice(index)]);\r\n }\r\n\r\n // TODO: generate id per item\r\n setItems(items: BreadcrumbItem[]): void {\r\n this.store.set(items);\r\n }\r\n\r\n // TODO: Add remove function\r\n}\r\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { NgTemplateOutlet, AsyncPipe } from '@angular/common';\r\nimport { ClickOutsideDirective } from '../../directives/click-outside/click-outside.directive';\r\nimport { ToObservablePipe } from '../../pipes/to-observable/to-observable.pipe';\r\nimport { ICON_MAP, IconComponent } from '../icon';\r\nimport { BreadcrumbItem, BreadcrumbService } from './breadcrumb.service';\r\n\r\n@Component({\r\n selector: 'lpx-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n ClickOutsideDirective,\r\n IconComponent,\r\n NgTemplateOutlet,\r\n RouterLink,\r\n AsyncPipe,\r\n ToObservablePipe,\r\n ],\r\n})\r\nexport class BreadcrumbComponent {\r\n public service = inject(BreadcrumbService);\r\n icon = ICON_MAP;\r\n\r\n onClick(item: BreadcrumbItem): void {\r\n if (item.children) {\r\n item.expanded = !item.expanded;\r\n }\r\n }\r\n\r\n // TODO: close dropdown when click outside\r\n}\r\n","<nav aria-label=\"breadcrumb\">\r\n <ol class=\"lpx-breadcrumb\">\r\n @for (item of service.items$ | async; track $index; let last = $last) {\r\n <li\r\n class=\"lpx-breadcrumb-item\"\r\n (click)=\"onClick(item)\"\r\n [class.expanded]=\"item.expanded\"\r\n (lpxClickOutside)=\"item.expanded = false\"\r\n >\r\n @if (item.icon) {\r\n <lpx-icon\r\n class=\"lpx-breadcrumb-item-icon\"\r\n [iconClass]=\"item.icon\"\r\n ></lpx-icon>\r\n }\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.children?.length ? textTemplate : linkTemplate;\r\n context: { $implicit: item }\r\n \"\r\n ></ng-container>\r\n </li>\r\n @if (!last) {\r\n <li class=\"lpx-breadcrumb-separator\">\r\n <lpx-icon iconClass=\"bi bi-chevron-right\"></lpx-icon>\r\n </li>\r\n }\r\n }\r\n </ol>\r\n</nav>\r\n\r\n<ng-template #linkTemplate let-item>\r\n <a [routerLink]=\"item.link\"> {{ item.text | toObservable | async }} </a>\r\n</ng-template>\r\n<ng-template #textTemplate let-item>\r\n <span class=\"lpx-breadcrumb-item-text\">\r\n {{ item.text | toObservable | async }}\r\n </span>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToObservablePipe } from './to-observable.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ToObservablePipe],\r\n exports: [ToObservablePipe],\r\n})\r\nexport class ToObservableModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ClickOutsideDirective } from './click-outside.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ClickOutsideDirective],\r\n exports: [ClickOutsideDirective],\r\n})\r\nexport class LpxClickOutsideModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { provideLpxBreadcrumb } from '../../providers';\r\nimport { ToObservableModule } from '../../pipes/to-observable/to-observable.module';\r\nimport { LpxClickOutsideModule } from '../../directives/click-outside/click-outside.module';\r\nimport { LpxIconModule } from '../icon/icon.module';\r\nimport { BreadcrumbComponent } from './breadcrumb.component';\r\n\r\nexport const exportedDeclarations = [BreadcrumbComponent];\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LpxIconModule,\r\n ToObservableModule,\r\n RouterModule,\r\n LpxClickOutsideModule,\r\n ...exportedDeclarations,\r\n ],\r\n exports: [...exportedDeclarations],\r\n})\r\n/**\r\n * @deprecated `LpxBreadcrumbModule.forRoot()` is deprecated. You can use `provideLpxBreadcrumb` **function** instead.\r\n */\r\nexport class LpxBreadcrumbModule {\r\n static forRoot(): ModuleWithProviders<LpxBreadcrumbModule> {\r\n return {\r\n ngModule: LpxBreadcrumbModule,\r\n providers: [provideLpxBreadcrumb()],\r\n };\r\n }\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\nimport { LpxNavbarItem } from './models';\r\n\r\nexport const CONTENT_BEFORE_ROUTES = new InjectionToken<Type<any>[][]>(\r\n 'CONTENT_BEFORE_ROUTES'\r\n);\r\nexport const CONTENT_AFTER_ROUTES = new InjectionToken<Type<any>[][]>(\r\n 'CONTENT_AFTER_ROUTES'\r\n);\r\nexport const LPX_MENU_ITEMS = new InjectionToken<LpxNavbarItem[]>(\r\n 'LPX_MENU_ITEMS'\r\n);\r\n","import { Observable } from 'rxjs';\r\nimport { isArray } from './common';\r\n\r\nexport function createGroupMap<T extends { group?: string }>(\r\n list: T[],\r\n othersGroupKey: string,\r\n skipGroupCheck: boolean = false\r\n): Map<string, T[]> | undefined {\r\n if (\r\n !skipGroupCheck &&\r\n (!isArray(list) || !list.some((node) => Boolean(node.group)))\r\n )\r\n return undefined;\r\n\r\n const mapGroup = new Map<string, T[]>();\r\n\r\n for (const node of list) {\r\n const group = node?.group || othersGroupKey;\r\n if (typeof group !== 'string') {\r\n throw new Error(`Invalid group: ${group}`);\r\n }\r\n\r\n const items = mapGroup.get(group) || [];\r\n items.push(node);\r\n mapGroup.set(group, items);\r\n }\r\n return mapGroup;\r\n}\r\n\r\nexport function getItemsFromGroup<S extends { items: R[] }, R>(\r\n list: S[],\r\n pred?: ItemPropPredicate<R>\r\n): R[] | undefined {\r\n return list?.reduce<R[]>(\r\n (acc, { items }) => [...acc, ...(pred ? items.filter(pred) : items)],\r\n []\r\n );\r\n}\r\n\r\nexport type ItemPropPredicate<T> = (\r\n prop: T\r\n) => boolean | Promise<boolean> | Observable<boolean>;\r\n","export const OTHERS_GROUP_KEY = 'AbpUi::OthersGroup';\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { filter, map, take, tap } from 'rxjs/operators';\r\nimport { DataStore } from '../../utils/data-store';\r\nimport { LpxNavbarItem } from './models';\r\nimport { LPX_MENU_ITEMS } from './navbar.token';\r\nimport { createGroupMap } from '../../utils';\r\nimport { OTHERS_GROUP_KEY } from '../../consts';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NavbarService {\r\n protected readonly router = inject(Router);\r\n menuItems = inject(LPX_MENU_ITEMS);\r\n\r\n private store = new DataStore<LpxNavbarItem[]>(\r\n this.addContainerLinks(this.menuItems),\r\n );\r\n\r\n navbarItems$ = this.store.sliceState((state) => state);\r\n\r\n // Source reference to navbar items, used for checking item existence\r\n // without being affected by potential future transformations of navbarItems$\r\n sourceNavbarItems$ = this.navbarItems$;\r\n\r\n groupedNavbarItems$ = this.store\r\n .sliceState((state) => state)\r\n .pipe(\r\n map((items) => {\r\n if (!items.some((f) => !!f.group)) {\r\n return;\r\n }\r\n\r\n const map = createGroupMap(items, OTHERS_GROUP_KEY) || [];\r\n return Array.from(map, ([group, items]) => ({\r\n group,\r\n items,\r\n }));\r\n }),\r\n );\r\n\r\n constructor() {\r\n this.expandItemByLink$().pipe(take(1)).subscribe();\r\n }\r\n\r\n addNavbarItems(...menuItems: LpxNavbarItem[]): void {\r\n this.store.set([...this.store.state, ...this.addContainerLinks(menuItems)]);\r\n }\r\n\r\n setNavbarItems(...menuItems: LpxNavbarItem[]): void {\r\n this.store.set([...this.addContainerLinks(menuItems)]);\r\n }\r\n\r\n addChildren(id: string, ...menuItems: LpxNavbarItem[]): void {\r\n const { location } = this.findById(id, this.store.state);\r\n\r\n // If the parent item is not found, do nothing.\r\n if (!location.length) {\r\n return;\r\n }\r\n\r\n const updated = this.addChildrenByLocation(\r\n this.store.state,\r\n [...location],\r\n '',\r\n menuItems,\r\n );\r\n\r\n this.store.patch(updated);\r\n }\r\n\r\n findByLink(link: string, items?: LpxNavbarItem[]) {\r\n return this.findByProp('link', link, items);\r\n }\r\n\r\n expandItemByLink$() {\r\n return this.router.events.pipe(\r\n filter((e) => e instanceof NavigationEnd),\r\n tap(() => this.expandItems()),\r\n );\r\n }\r\n\r\n expandItems() {\r\n const route = this.getRouteItem();\r\n if (route?.item) {\r\n const expanded = this.calculateExpandState(\r\n this.store.state,\r\n route.location,\r\n );\r\n this.store.patch(expanded);\r\n }\r\n }\r\n\r\n getRouteItem() {\r\n return this.findByLink(this.router.url);\r\n }\r\n\r\n calculateExpandState(\r\n items: LpxNavbarItem[],\r\n indexes: Array<number>,\r\n ): LpxNavbarItem[] {\r\n const matchIndex = indexes.shift();\r\n return items.reduce((acc, item, index) => {\r\n if (index === matchIndex) {\r\n return [\r\n ...acc,\r\n {\r\n ...item,\r\n expanded: true,\r\n selected: true,\r\n children: this.calculateExpandState(item.children || [], indexes),\r\n },\r\n ];\r\n }\r\n const newItem = {\r\n ...item,\r\n ...(item.children\r\n ? { children: this.collapseChildren(item.children) }\r\n : {}),\r\n };\r\n return [...acc, { ...newItem, expanded: false, selected: false }];\r\n }, [] as LpxNavbarItem[]);\r\n }\r\n\r\n collapseChildren(children: Array<LpxNavbarItem>): Array<LpxNavbarItem> {\r\n return [\r\n ...children.map((child) => ({\r\n ...child,\r\n expanded: false,\r\n selected: false,\r\n children: child.children ? this.collapseChildren(child.children) : [],\r\n })),\r\n ];\r\n }\r\n\r\n private addChildrenByLocation(\r\n items: LpxNavbarItem[],\r\n location: number[],\r\n linkPrefix: string,\r\n menuItems: LpxNavbarItem[],\r\n ): LpxNavbarItem[] {\r\n const [currentIndex, ...restLocation] = location;\r\n\r\n return items.map((item, index) => {\r\n if (index !== currentIndex) {\r\n return item;\r\n }\r\n\r\n const currentLink = `${linkPrefix}/${item.containerLink}`;\r\n\r\n // We reached the target item; append new children to it.\r\n if (!restLocation.length) {\r\n const existingChildren = item.children || [];\r\n const newChildren = this.addContainerLinks(menuItems, currentLink);\r\n\r\n return {\r\n ...item,\r\n children: [...existingChildren, ...newChildren],\r\n };\r\n }\r\n\r\n // We are still traversing the path; continue recursively on children.\r\n return {\r\n ...item,\r\n children: this.addChildrenByLocation(\r\n item.children || [],\r\n restLocation,\r\n currentLink,\r\n menuItems,\r\n ),\r\n };\r\n });\r\n }\r\n\r\n private findById(id: string, items?: LpxNavbarItem[]) {\r\n return this.findByProp('id', id, items);\r\n }\r\n\r\n private findByProp(\r\n prop: keyof LpxNavbarItem,\r\n value: string,\r\n items?: LpxNavbarItem[],\r\n ) {\r\n const navbarItems = items || this.store.state;\r\n const cleanValue = value.split(/[?#]/)[0];\r\n\r\n let bestMatch: LpxNavbarItem | undefined;\r\n let bestMatchLocation: number[] = [];\r\n let bestMatchLength = 0;\r\n\r\n const isValidSegmentPrefix = (candidate: string): boolean => {\r\n if (!candidate || !cleanValue.startsWith(candidate)) {\r\n return false;\r\n }\r\n\r\n const isExactMatch = cleanValue.length === candidate.length;\r\n const hasPathSeparator = cleanValue[candidate.length] === '/';\r\n\r\n return isExactMatch || hasPathSeparator;\r\n };\r\n\r\n const searchTree = (\r\n nodes: LpxNavbarItem[],\r\n currentPath: number[] = [],\r\n ): { item?: LpxNavbarItem; location: number[] } => {\r\n for (let i = 0; i < nodes.length; i++) {\r\n const node = nodes[i];\r\n const nodePath = [...currentPath, i];\r\n const nodeValue = node[prop] as unknown as string | undefined;\r\n\r\n // Skip nodes without the property we're searching for\r\n if (!nodeValue) {\r\n if (node.children?.length) {\r\n const childResult = searchTree(node.children, nodePath);\r\n if (childResult.item) return childResult;\r\n }\r\n continue;\r\n }\r\n\r\n // For non-link properties, only exact matches count\r\n if (prop !== 'link') {\r\n if (nodeValue === cleanValue) {\r\n return { item: node, location: nodePath };\r\n }\r\n }\r\n\r\n // For link property, handle exact and prefix matches\r\n if (prop === 'link') {\r\n // Exact match - return immediately\r\n if (nodeValue === cleanValue) {\r\n return { item: node, location: nodePath };\r\n }\r\n\r\n // Track best prefix match (longest valid ancestor path)\r\n const isLongerMatch = nodeValue.length > bestMatchLength;\r\n if (isValidSegmentPrefix(nodeValue) && isLongerMatch) {\r\n bestMatch = node;\r\n bestMatchLocation = nodePath;\r\n bestMatchLength = nodeValue.length;\r\n }\r\n }\r\n\r\n // Recursively search children\r\n if (node.children?.length) {\r\n const childResult = searchTree(node.children, nodePath);\r\n if (childResult.item) {\r\n return childResult;\r\n }\r\n }\r\n }\r\n\r\n // No exact match found, return best prefix match\r\n return { item: bestMatch, location: bestMatchLocation };\r\n };\r\n\r\n return searchTree(navbarItems);\r\n }\r\n\r\n private addContainerLinks(\r\n items: LpxNavbarItem[],\r\n link = '',\r\n ): LpxNavbarItem[] {\r\n return items.map((item) => ({\r\n ...item,\r\n ...(item.link && link ? { link: `${link}/${item.link}` } : {}),\r\n children: this.addContainerLinks(\r\n item.children || [],\r\n `${link ? link + '/' : ''}${item.containerLink || ''}`,\r\n ),\r\n }));\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport {\r\n ABP,\r\n LocalizationService,\r\n RoutesService,\r\n TreeNode,\r\n} from '@abp/ng.core';\r\nimport { NavbarService } from '../navbar/navbar.service';\r\nimport { BreadcrumbItem, BreadcrumbService } from './breadcrumb.service';\r\nimport { combineLatest } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { LpxNavbarItem } from '../navbar';\r\n\r\ninterface BreadcrumbNavigation extends LpxNavbarItem {\r\n siblings: BreadcrumbNavigation[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbRouteListenerService {\r\n protected readonly navbarService = inject(NavbarService);\r\n protected readonly router = inject(Router);\r\n protected readonly routes = inject(RoutesService);\r\n protected readonly breadcrumbService = inject(BreadcrumbService);\r\n protected readonly localizationService = inject(LocalizationService);\r\n\r\n subscribeRoute(): void {\r\n combineLatest([\r\n this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n ),\r\n this.navbarService.navbarItems$.pipe(filter((items) => !!items.length)),\r\n ]).subscribe(([_navigationEvent, items]) => {\r\n const currentPath = this.router.url;\r\n let activeItem = this.navbarService.findByLink(currentPath);\r\n let breadcrumbItems;\r\n\r\n if (!activeItem.item) {\r\n const item = this.findItemByTreeNode(currentPath);\r\n if (item) {\r\n breadcrumbItems = this.createBreadcrumbTrail(item);\r\n this.breadcrumbService.setItems(breadcrumbItems);\r\n return;\r\n }\r\n activeItem = this.navbarService.findByLink('/');\r\n }\r\n\r\n breadcrumbItems = activeItem.location.reduce((acc, itemIndex) => {\r\n const parent = acc[acc.length - 1]?.children || items;\r\n const item = parent[itemIndex];\r\n\r\n return [\r\n ...acc,\r\n { ...item, siblings: parent as BreadcrumbNavigation[] },\r\n ];\r\n }, [] as BreadcrumbNavigation[]);\r\n\r\n this.breadcrumbService.setItems(\r\n this.mapNavbarItemToBreadcrumbItem(breadcrumbItems),\r\n );\r\n });\r\n }\r\n\r\n private mapNavbarItemToBreadcrumbItem(\r\n items: BreadcrumbNavigation[],\r\n ): BreadcrumbItem[] {\r\n return items.map(({ breadcrumbText, text, link, icon, siblings }) => ({\r\n text: breadcrumbText || text || '',\r\n link,\r\n icon,\r\n children: this.mapNavbarItemToBreadcrumbItem(siblings || []),\r\n }));\r\n }\r\n\r\n private findItemByTreeNode(path: string): TreeNode<ABP.Route> | null {\r\n const { tree, search: boundSearch } = {\r\n tree: this.routes.tree,\r\n search: this.routes.search.bind(this.routes),\r\n };\r\n\r\n const treeNode = boundSearch(\r\n {\r\n path: path,\r\n },\r\n tree,\r\n );\r\n\r\n return treeNode;\r\n }\r\n\r\n private createBreadcrumbTrail(\r\n item: TreeNode<ABP.Route> | undefined,\r\n ): BreadcrumbItem[] {\r\n const trail: BreadcrumbItem[] = [];\r\n let current = item;\r\n\r\n while (current && (current.breadcrumbText || current.name)) {\r\n trail.push({\r\n text: this.localizationService.instant(\r\n current.breadcrumbText || current.name,\r\n ),\r\n icon: current.iconClass,\r\n });\r\n current = current.parent;\r\n }\r\n\r\n return trail.reverse();\r\n }\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-logo-panel]' })\r\nexport class LogoPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { LpxThemeTranslateService } from '../../services';\r\n\r\n@Pipe({ name: 'lpxTranslate' })\r\nexport class TranslatePipe implements PipeTransform {\r\n private lpxThemeTranslateService = inject(LpxThemeTranslateService);\r\n\r\n transform(value: string, ...args: any[]) {\r\n return this.lpxThemeTranslateService.translate$(value, args);\r\n }\r\n}\r\n","import {\r\n animate,\r\n animation,\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n useAnimation,\r\n} from '@angular/animations';\r\n\r\nexport const collapseY = animation(\r\n [\r\n style({ height: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapseYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '0' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-left': '-100%' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const collapseX = animation(\r\n [\r\n style({ width: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '0', padding: '0px' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandY = animation(\r\n [\r\n style({ height: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ height: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const expandYWithMargin = animation(\r\n [\r\n style({ 'margin-top': '-100%' }),\r\n animate('{{ time }} {{ easing }}', style({ 'margin-top': '0' })),\r\n ],\r\n {\r\n params: { time: '500ms', easing: 'ease' },\r\n },\r\n);\r\n\r\nexport const expandX = animation(\r\n [\r\n style({ width: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\r\n animate('{{ time }} {{ easing }}', style({ width: '*', padding: '*' })),\r\n ],\r\n { params: { time: '350ms', easing: 'ease' } },\r\n);\r\n\r\nexport const collapse = trigger('collapse', [\r\n state('collapsed', style({ height: '0', overflow: 'hidden' })),\r\n state('expanded', style({ height: '*', overflow: 'hidden' })),\r\n transition('expanded => collapsed', useAnimation(collapseY)),\r\n transition('collapsed => expanded', useAnimation(expandY)),\r\n]);\r\n\r\nexport const collapseWithMargin = trigger('collapseWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100%' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition('expanded => collapsed', useAnimation(collapseYWithMargin), {\r\n params: { time: '400ms', easing: 'linear' },\r\n }),\r\n transition('collapsed => expanded', useAnimation(expandYWithMargin)),\r\n]);\r\n\r\nexport const collapseLinearWithMargin = trigger('collapseLinearWithMargin', [\r\n state('collapsed', style({ 'margin-top': '-100vh' })),\r\n state('expanded', style({ 'margin-top': '0' })),\r\n transition(\r\n 'expanded => collapsed',\r\n useAnimation(collapseYWithMargin, {\r\n params: { time: '200ms', easing: 'linear' },\r\n }),\r\n ),\r\n transition(\r\n 'collapsed => expanded',\r\n useAnimation(expandYWithMargin, {\r\n params: { time: '250ms', easing: 'linear' },\r\n }),\r\n ),\r\n]);\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n input,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport {\r\n NgComponentOutlet,\r\n NgTemplateOutlet,\r\n AsyncPipe,\r\n} from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\nimport { of } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { LocalizationPipe } from '@abp/ng.core';\r\nimport { getStream$ } from '../../../utils/common';\r\nimport { collapse } from '../../../animations/collapse.animations';\r\nimport { LpxVisibleDirective } from '../../../directives/visible.directive';\r\nimport { TranslatePipe } from '../../../pipes/translate/translate.pipe';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { LpxNavbarItem } from '../models';\r\n\r\n@Component({\r\n selector: 'lpx-sub-navbar',\r\n templateUrl: './sub-navbar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [collapse],\r\n imports: [\r\n NgComponentOutlet,\r\n NgTemplateOutlet,\r\n RouterLink,\r\n IconComponent,\r\n LpxVisibleDirective,\r\n AsyncPipe,\r\n TranslatePipe,\r\n LocalizationPipe,\r\n ],\r\n})\r\nexport class SubNavbarComponent {\r\n protected readonly injector = inject(Injector);\r\n\r\n @Input() item!: LpxNavbarItem;\r\n\r\n routerItem = input<boolean>();\r\n\r\n @Output() routeClick = new EventEmitter<LpxNavbarItem>();\r\n @Output() expand = new EventEmitter<LpxNavbarItem>();\r\n\r\n onItemClick(menuItem: LpxNavbarItem): void {\r\n let action$ = of(true);\r\n if (menuItem.action) {\r\n const result = menuItem.action();\r\n action$ = getStream$(result);\r\n }\r\n action$.pipe(take(1)).subscribe((result) => {\r\n if (result) {\r\n this.processItemClick(menuItem);\r\n }\r\n });\r\n }\r\n\r\n onChildExpand(child: LpxNavbarItem): void {\r\n if (child.expanded) {\r\n this.item?.children\r\n ?.filter((otherChild) => otherChild !== child)\r\n .forEach((otherChild) => {\r\n otherChild.expanded = false;\r\n otherChild.selected = false;\r\n });\r\n }\r\n }\r\n\r\n processItemClick(menuItem: LpxNavbarItem): void {\r\n if (menuItem.children?.length) {\r\n menuItem.expanded = !menuItem.expanded;\r\n this.expand.emit(menuItem);\r\n return;\r\n }\r\n\r\n this.routeClick.emit(menuItem);\r\n\r\n if (!this.routerItem()) {\r\n menuItem.selected = true;\r\n }\r\n }\r\n}\r\n","@if (item.component) {\r\n <ng-container *ngComponentOutlet=\"item.component; injector: injector\" />\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"defaultTemplate\" />\r\n}\r\n\r\n<ng-template #defaultTemplate>\r\n <a\r\n class=\"lpx-menu-item-link\"\r\n [routerLink]=\"item.link\"\r\n [class.selected]=\"item.selected\"\r\n [class.expanded]=\"item.children?.length && item.expanded\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n @if (item.icon) {\r\n <lpx-icon class=\"lpx-menu-item-icon\" [iconClass]=\"item.icon\" />\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n item.template || textTmpl;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n\r\n <ng-template #textTmpl>\r\n @if (item.text) {\r\n @let isToolbarItem = item.text.split('::').length > 1;\r\n <span class=\"lpx-menu-item-text hidden-in-hover-trigger\">\r\n @if (isToolbarItem) {\r\n {{ item.text | abpLocalization }}\r\n } @else {\r\n {{ item.text | lpxTranslate | async }}\r\n }\r\n </span>\r\n }\r\n </ng-template>\r\n\r\n @if (item.children?.length) {\r\n <lpx-icon\r\n [iconClass]=\"item.expanded ? 'chevronUp' : 'chevronDown'\"\r\n class=\"dd-icon hidden-in-hover-trigger\"\r\n />\r\n }\r\n </a>\r\n\r\n @if (item.children?.length) {\r\n <ul\r\n class=\"lpx-inner-menu hidden-in-hover-trigger\"\r\n [class.collapsed]=\"!item.expanded\"\r\n >\r\n @for (child of item.children; track $index) {\r\n <li\r\n class=\"lpx-inner-menu-item\"\r\n *lpxVisible=\"!child.visible || child.visible(child, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"child\"\r\n (routeClick)=\"this.routeClick.emit($event)\"\r\n (expand)=\"onChildExpand($event)\"\r\n />\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</ng-template>\r\n","import {\r\n Component,\r\n computed,\r\n EventEmitter,\r\n inject,\r\n Injector,\r\n input,\r\n Input,\r\n Output,\r\n signal,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet, AsyncPipe } from '@angular/common';\r\nimport { getItemsFromGroup } from '../../../utils';\r\nimport { RoutesService } from '../../../services/route/routes.service';\r\nimport { LpxVisibleDirective } from '../../../directives/visible.directive';\r\nimport { TranslatePipe } from '../../../pipes/translate/translate.pipe';\r\nimport { SubNavbarComponent } from '../sub-navbar/sub-navbar.component';\r\nimport { GroupedNavbarItems, LpxNavbarItem } from '../models';\r\n\r\nexport type NavbarItemsType = LpxNavbarItem[] | null | undefined;\r\nexport type NavbarGroupItemsType = GroupedNavbarItems[] | null | undefined;\r\n\r\n@Component({\r\n selector: 'lpx-navbar-routes',\r\n templateUrl: './navbar-routes.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n NgTemplateOutlet,\r\n LpxVisibleDirective,\r\n SubNavbarComponent,\r\n AsyncPipe,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class NavbarRoutesComponent {\r\n protected readonly injector = inject(Injector);\r\n protected readonly routesService = inject(RoutesService);\r\n\r\n private readonly _sourceItems = signal<NavbarItemsType>([]);\r\n\r\n @Input() set navbarItems(value: NavbarItemsType) {\r\n this._sourceItems.set(value);\r\n }\r\n\r\n get navbarItems() {\r\n return this._processedItems();\r\n }\r\n\r\n private readonly _processedItems = computed(() => {\r\n const url = (this.routesService.currentNavigation() as string).split(\r\n '?',\r\n )[0];\r\n const items = this._sourceItems();\r\n\r\n if (!items?.length || !url) {\r\n return items;\r\n }\r\n\r\n this.fixNavbarItems(url, items);\r\n\r\n return items;\r\n });\r\n\r\n @Input()\r\n groupedItems: NavbarGroupItemsType;\r\n\r\n routerItem = input<boolean>();\r\n\r\n @Output()\r\n routeClick = new EventEmitter<LpxNavbarItem>();\r\n\r\n private get itemsFromGroup(): LpxNavbarItem[] | undefined {\r\n if (!this.groupedItems) {\r\n return undefined;\r\n }\r\n\r\n return getItemsFromGroup<GroupedNavbarItems, LpxNavbarItem>(\r\n this.groupedItems,\r\n );\r\n }\r\n\r\n private isExpandedOrSelected = (item: LpxNavbarItem): boolean =>\r\n !!(item.expanded || item.selected);\r\n\r\n onSubnavbarExpand(menuItem: LpxNavbarItem, menuItems: NavbarItemsType): void {\r\n if (menuItem.expanded) {\r\n const items = this.itemsFromGroup || menuItems;\r\n if (!items) {\r\n return;\r\n }\r\n\r\n items\r\n .filter((item) => item !== menuItem)\r\n .forEach((item) => (item.expanded = false));\r\n }\r\n }\r\n\r\n onRouteClick(menuItem: LpxNavbarItem, menuItems: NavbarItemsType): void {\r\n const expandedItems = menuItems?.filter(this.isExpandedOrSelected);\r\n const expandedGroupItems = this.itemsFromGroup?.filter(\r\n this.isExpandedOrSelected,\r\n );\r\n\r\n const items = expandedGroupItems || expandedItems;\r\n\r\n if (items) {\r\n items\r\n .filter((item) => item !== menuItem)\r\n .reduce<LpxNavbarItem[]>((acc, item) => {\r\n return [...acc, item, ...this.flatChildren(item.children || [])];\r\n }, [])\r\n ?.filter(\r\n (item) =>\r\n !this.checkChildrenIncludesItem(item, menuItem) &&\r\n item !== menuItem,\r\n )\r\n .forEach((item) => {\r\n item.selected = false;\r\n item.expanded = false;\r\n });\r\n }\r\n\r\n this.routeClick.emit(menuItem);\r\n }\r\n\r\n checkChildrenIncludesItem(\r\n item: LpxNavbarItem,\r\n menuItem: LpxNavbarItem,\r\n ): boolean {\r\n return (\r\n item.children?.reduce(\r\n (acc, child) =>\r\n acc ||\r\n child === menuItem ||\r\n this.checkChildrenIncludesItem(child, menuItem),\r\n false,\r\n ) || false\r\n );\r\n }\r\n\r\n flatChildren(menuItems: NavbarItemsType): LpxNavbarItem[] {\r\n return (\r\n menuItems?.reduce<LpxNavbarItem[]>((acc, item) => {\r\n return [...acc, item, ...this.flatChildren(item.children || [])];\r\n }, []) || []\r\n );\r\n }\r\n\r\n private fixNavbarItems(currentUrl: string, items: LpxNavbarItem[]) {\r\n items.forEach((item) => {\r\n const { link, children } = item;\r\n const itemUrl = link?.split('?')[0];\r\n\r\n if (children?.length) {\r\n this.fixNavbarItems(currentUrl, children);\r\n\r\n const hasActiveDescendant = this.hasActiveDescendant(\r\n children,\r\n currentUrl,\r\n );\r\n const isInActiveChain =\r\n hasActiveDescendant ||\r\n this.isSameOrAncestorRoute(itemUrl, currentUrl);\r\n\r\n if (isInActiveChain) {\r\n item.expanded = true;\r\n } else {\r\n const hasExpandedChildren = children.some((child) => child.expanded);\r\n if (!hasExpandedChildren) {\r\n item.expanded = false;\r\n }\r\n }\r\n\r\n item.selected = false;\r\n } else {\r\n item.selected = this.isSameOrAncestorRoute(itemUrl, currentUrl);\r\n }\r\n });\r\n }\r\n\r\n private hasActiveDescendant(\r\n items: LpxNavbarItem[],\r\n currentUrl: string,\r\n ): boolean {\r\n return items.some((item) => {\r\n const itemUrl = item.link?.split('?')[0];\r\n\r\n if (item.selected || this.isSameOrAncestorRoute(itemUrl, currentUrl)) {\r\n return true;\r\n }\r\n\r\n if (item.children?.length) {\r\n return this.hasActiveDescendant(item.children, currentUrl);\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n /**\r\n * Checks if a navbar item's url matches the current url exactly\r\n * or is an ancestor of it on a path segment boundary.\r\n *\r\n * Examples:\r\n * - item: `/a/b`, current: `/a/b` -> true\r\n * - item: `/a/b`, current: `/a/b/c` -> true\r\n * - item: `/a/bc`, current: `/a/bc/de` -> true\r\n * - item: `/a/bc`, current: `/a/bcde` -> false\r\n */\r\n private isSameOrAncestorRoute(\r\n itemUrl?: string,\r\n currentUrl?: string,\r\n ): boolean {\r\n if (!itemUrl || !currentUrl) {\r\n return false;\r\n }\r\n\r\n if (!currentUrl.startsWith(itemUrl)) {\r\n return false;\r\n }\r\n\r\n if (currentUrl.length === itemUrl.length) {\r\n return true;\r\n }\r\n\r\n return currentUrl[itemUrl.length] === '/';\r\n }\r\n}\r\n","<ul class=\"lpx-nav-menu\">\r\n @if (groupedItems && groupedItems.length) {\r\n @for (item of groupedItems; track $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"groupText; context: { $implicit: item }\"\r\n />\r\n\r\n @for (navbarItem of item.items; track $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: navbarItem }\"\r\n />\r\n }\r\n }\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"defaultRoute\" />\r\n }\r\n</ul>\r\n\r\n<ng-template #defaultRoute>\r\n @for (item of navbarItems; track $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"\r\n />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #groupText let-item>\r\n @if (item.items.length) {\r\n <li class=\"group-menu-item hidden-in-hover-trigger\">\r\n {{ item.group | lpxTranslate | async }}\r\n </li>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #itemTemplate let-item>\r\n <li\r\n class=\"outer-menu-item\"\r\n *lpxVisible=\"!item.visible || item.visible(item, injector)\"\r\n >\r\n <lpx-sub-navbar\r\n [item]=\"item\"\r\n (expand)=\"onSubnavbarExpand($event, navbarItems)\"\r\n (routeClick)=\"onRouteClick($event, navbarItems)\"\r\n [routerItem]=\"routerItem()\"\r\n />\r\n </li>\r\n</ng-template>\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[lpx-navbar-routes],[lpxNavbarRoutes]',\r\n exportAs: 'lpxNavbarRoutes',\r\n})\r\nexport class NavbarRoutesDirective {}\r\n","import {\r\n AfterViewChecked,\r\n Component,\r\n ContentChild,\r\n InjectionToken,\r\n Injector,\r\n PLATFORM_ID,\r\n TemplateRef,\r\n Type,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport {\r\n isPlatformBrowser,\r\n NgTemplateOutlet,\r\n NgComponentOutlet,\r\n AsyncPipe,\r\n} from '@angular/common';\r\nimport { map } from 'rxjs';\r\nimport { LayoutService } from '../../services/layout';\r\nimport { LogoPanelDirective } from '../../panels/logo-panel.directive';\r\nimport { BrandLogoComponent } from '../brand-logo/brand-logo.component';\r\nimport { IconComponent } from '../icon/icon.component';\r\nimport { NavbarService } from './navbar.service';\r\nimport { CONTENT_AFTER_ROUTES, CONTENT_BEFORE_ROUTES } from './navbar.token';\r\nimport { NavbarRoutesComponent, NavbarRoutesDirective } from './navbar-routes';\r\n\r\n@Component({\r\n selector: 'lpx-navbar',\r\n templateUrl: './navbar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n NgTemplateOutlet,\r\n IconComponent,\r\n NavbarRoutesComponent,\r\n NgComponentOutlet,\r\n BrandLogoComponent,\r\n AsyncPipe,\r\n ],\r\n})\r\nexport class NavbarComponent implements AfterViewChecked {\r\n protected readonly layoutService = inject(LayoutService);\r\n protected readonly platformId = inject<Object>(PLATFORM_ID);\r\n public readonly service = inject(NavbarService);\r\n public readonly injector = inject(Injector);\r\n\r\n @ContentChild(NavbarRoutesDirective, { read: TemplateRef })\r\n routesTemplate?: TemplateRef<NavbarRoutesDirective>;\r\n\r\n @ContentChild(LogoPanelDirective) logoPanel?: LogoPanelDirective;\r\n\r\n protected didResized = false;\r\n protected initialHover = false;\r\n\r\n contentBefore: Type<any>[];\r\n contentAfter: Type<any>[];\r\n showFilterMenu$ = this.service.sourceNavbarItems$.pipe(\r\n map((items) => !!items.length),\r\n );\r\n\r\n constructor() {\r\n this.contentBefore = this.flatContents(CONTENT_BEFORE_ROUTES);\r\n this.contentAfter = this.flatContents(CONTENT_AFTER_ROUTES);\r\n }\r\n\r\n toggleSidebarHover() {\r\n this.didResized = true;\r\n this.layoutService.toggleClass('hover-trigger');\r\n this.initialHover = !this.initialHover;\r\n\r\n if (this.initialHover) {\r\n this.layoutService.addClass('initial-hover');\r\n } else {\r\n this.layoutService.removeClass('initial-hover');\r\n }\r\n }\r\n\r\n handleInitialHover() {\r\n if (this.initialHover) {\r\n this.layoutService.removeClass('initial-hover');\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n if (this.didResized) {\r\n this.didResized = false;\r\n window.dispatchEvent(new Event('resize'));\r\n }\r\n }\r\n\r\n private flatContents(token: InjectionToken<Type<any>[][]>) {\r\n const contents = this.injector.get(token, []);\r\n return contents.reduce((acc, val) => acc.concat(val), []);\r\n }\r\n}\r\n","<nav class=\"lpx-nav\" (mouseenter)=\"handleInitialHover()\">\r\n <div class=\"lpx-logo-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"logoPanel?.template || defaultLogo\"\r\n ></ng-container>\r\n <lpx-icon\r\n class=\"menu-collapse-icon hidden-in-hover-trigger\"\r\n iconClass=\"bi bi-filter-left\"\r\n (click)=\"toggleSidebarHover()\"\r\n ></lpx-icon>\r\n </div>\r\n\r\n @if (showFilterMenu$ | async) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentBefore }\r\n \"\r\n ></ng-container>\r\n }\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n routesTemplate || defaultRouteTemplate;\r\n context: {\r\n $implicit: service.navbarItems$ | async,\r\n groupItems: service.groupedNavbarItems$ | async,\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customContentTemplate;\r\n context: { $implicit: contentAfter }\r\n \"\r\n ></ng-container>\r\n</nav>\r\n\r\n<ng-template #defaultRouteTemplate let-items let-groupItems=\"groupItems\">\r\n <lpx-navbar-routes\r\n [navbarItems]=\"items\"\r\n [groupedItems]=\"groupItems\"\r\n [routerItem]=\"true\"\r\n ></lpx-navbar-routes>\r\n</ng-template>\r\n\r\n<ng-template #customContentTemplate let-contents>\r\n @for (component of contents; track $index) {\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: injector\"\r\n ></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultLogo>\r\n <lpx-brand-logo />\r\n</ng-template>\r\n","import { inject, Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'lpxSafeHtml', standalone: true })\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n \r\n transform(value: string): string {\r\n if (!value || typeof value !== 'string') return '';\r\n return this.sanitizer.sanitize(SecurityContext.HTML, value) || '';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslatePipe } from './translate.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslatePipe],\r\n exports: [TranslatePipe],\r\n})\r\nexport class LpxTranslateModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToObservableModule, LpxTranslateModule } from '../../pipes';\r\nimport { LpxVisibleDirective } from '../../directives/visible.directive';\r\nimport { LpxBrandLogoModule } from '../brand-logo/brand-logo.module';\r\nimport { LpxIconModule } from '../icon/icon.module';\r\nimport { NavbarComponent } from './navbar.component';\r\nimport { SubNavbarComponent } from './sub-navbar/sub-navbar.component';\r\nimport { NavbarRoutesComponent } from './navbar-routes/navbar-routes.component';\r\nimport { NavbarRoutesDirective } from './navbar-routes/navbar-routes.directive';\r\nimport {\r\n LpxNavbarSettings,\r\n provideLpxCore,\r\n SKIP_DEFAULTS,\r\n withNavbar,\r\n withNavbarChild,\r\n} from '../../providers';\r\n\r\nconst exportedDeclarations = [\r\n NavbarComponent,\r\n SubNavbarComponent,\r\n NavbarRoutesComponent,\r\n NavbarRoutesDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n LpxBrandLogoModule,\r\n LpxIconModule,\r\n ToObservableModule,\r\n LpxTranslateModule,\r\n LpxVisibleDirective,\r\n ...exportedDeclarations,\r\n ],\r\n exports: [...exportedDeclarations],\r\n})\r\nexport class LpxNavbarModule {\r\n /**\r\n * @deprecated `LpxNavbarModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(\r\n options: LpxNavbarSettings = {},\r\n ): ModuleWithProviders<LpxNavbarModule> {\r\n return {\r\n ngModule: LpxNavbarModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withNavbar(options))],\r\n };\r\n }\r\n\r\n /**\r\n * @deprecated `LpxNavbarModule.forChild()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forChild(\r\n options: Omit<LpxNavbarSettings, 'menuItems'> = {},\r\n ): ModuleWithProviders<LpxNavbarModule> {\r\n return {\r\n ngModule: LpxNavbarModule,\r\n providers: [provideLpxCore(SKIP_DEFAULTS, withNavbarChild(options))],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataStore } from '../../utils/data-store';\r\n\r\nexport interface FooterLink {\r\n link: string;\r\n text: string;\r\n}\r\n\r\nexport interface FooterNav {\r\n brandName: string;\r\n brandUrl: string;\r\n authorName: string;\r\n authorUrl: string;\r\n links?: FooterLink[];\r\n}\r\n\r\nconst DEFAULT_FOOTER_DATA: FooterNav = {\r\n brandName: 'Lepton Theme',\r\n brandUrl: 'https://leptontheme.com/',\r\n authorName: 'Volosoft',\r\n authorUrl: 'https://volosoft.com/',\r\n links: [\r\n { text: 'About', link: '' },\r\n { text: 'Privacy', link: '' },\r\n { text: 'Contact', link: '' }\r\n ]\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FooterLinksService {\r\n private store = new DataStore(DEFAULT_FOOTER_DATA);\r\n footerInfo$ = this.store.sliceState((state) => state);\r\n\r\n setFooterInfo(links: FooterNav) {\r\n this.store.set(links);\r\n } \r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { FooterLinksService } from './footer-links.service';\r\n\r\n@Component({\r\n selector: 'lpx-footer',\r\n templateUrl: './footer.component.html',\r\n imports: [AsyncPipe],\r\n})\r\nexport class FooterComponent {\r\n private service = inject(FooterLinksService);\r\n footerValues$ = this.service.footerInfo$;\r\n currentYear = new Date().getFullYear();\r\n}\r\n","@if (footerValues$ | async; as footerValues) {\r\n<div class=\"lpx-footbar-container end-0\">\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n @if (footerValues.brandUrl) {\r\n <span>{{ currentYear }}© </span>\r\n <a [href]=\"[footerValues.brandUrl]\" target=\"_blank\"> {{ footerValues.brandName }} </a>\r\n <span>by</span>\r\n }\r\n @if (footerValues.authorUrl) {\r\n <a [href]=\"[footerValues.authorUrl]\" target=\"_blank\"> {{ footerValues.authorName }}</a>\r\n }\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n @for (footerLink of footerValues.links; track $index) {\r\n @if (footerLink) {\r\n <a [href]=\"[footerLink.link]\" >{{ footerLink.text }}</a>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FooterComponent } from './footer.component';\r\n\r\n@NgModule({\r\n exports: [FooterComponent],\r\n imports: [CommonModule, RouterModule, FooterComponent],\r\n})\r\nexport class LpxFooterModule {\r\n static forRoot(): ModuleWithProviders<LpxFooterModule> {\r\n return {\r\n ngModule: LpxFooterModule,\r\n providers: [],\r\n };\r\n }\r\n}\r\n","import {\r\n EnvironmentProviders,\r\n inject,\r\n makeEnvironmentProviders,\r\n provideAppInitializer,\r\n Provider,\r\n Type,\r\n} from '@angular/core';\r\nimport {\r\n BreadcrumbRouteListenerService,\r\n CONTENT_AFTER_ROUTES,\r\n CONTENT_BEFORE_ROUTES,\r\n ICON_MAP,\r\n ICON_MAP_TYPE,\r\n LEPTON_X_ICON_SET,\r\n LPX_MENU_ITEMS,\r\n LpxNavbarItem,\r\n} from '../components';\r\nimport { ResponsiveBreakpoints } from '../directives';\r\nimport {\r\n LanguageService,\r\n LanguageTranslateDefaults,\r\n LPX_LANGUAGE,\r\n LPX_TRANSLATE_TOKEN,\r\n LPX_TRANSLATE_PROVIDERS,\r\n LpxLanguageModuleOptions,\r\n LpxTranslate,\r\n} from '../services';\r\nimport {\r\n createDirectionProvider,\r\n createResponsiveProvider,\r\n LPX_STYLE_PROVIDERS,\r\n createWindowProvider,\r\n} from './';\r\n\r\nexport interface LpxIconSettings {\r\n iconSet?: ICON_MAP_TYPE;\r\n}\r\n\r\nexport interface LpxNavbarSettings {\r\n menuItems?: LpxNavbarItem[];\r\n contentAfterRoutes?: Type<any>[];\r\n contentBeforeRoutes?: Type<any>[];\r\n}\r\n\r\nexport interface LpxCoreOptions {\r\n responsiveSettings?: ResponsiveBreakpoints;\r\n window?: Window;\r\n iconSettings?: LpxIconSettings;\r\n languageSettings?: LpxLanguageModuleOptions;\r\n navbarSettings?: LpxNavbarSettings;\r\n texts?: LpxTranslate[];\r\n listenDirectionChanges?: boolean;\r\n}\r\n\r\nexport enum LpxCoreFeatureKind {\r\n Options,\r\n Icon,\r\n Language,\r\n Navbar,\r\n NavbarChild,\r\n SkipDefaults,\r\n}\r\n\r\nexport interface LpxCoreFeature<KindT extends LpxCoreFeatureKind> {\r\n ɵkind: KindT;\r\n ɵproviders: (Provider | EnvironmentProviders)[];\r\n}\r\n\r\nfunction makeLpxCoreFeature<KindT extends LpxCoreFeatureKind>(\r\n kind: KindT,\r\n providers: (Provider | EnvironmentProviders)[],\r\n): LpxCoreFeature<KindT> {\r\n return {\r\n ɵkind: kind,\r\n ɵproviders: providers,\r\n };\r\n}\r\n\r\nexport const SKIP_DEFAULTS = makeLpxCoreFeature(\r\n LpxCoreFeatureKind.SkipDefaults,\r\n [],\r\n);\r\n\r\nexport function withIcon(\r\n iconSettings = {} as LpxIconSettings,\r\n): LpxCoreFeature<LpxCoreFeatureKind.Icon> {\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.Icon, [\r\n {\r\n provide: LEPTON_X_ICON_SET,\r\n useValue: iconSettings.iconSet || ICON_MAP,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withLanguage(\r\n languageOptions = {} as LpxLanguageModuleOptions,\r\n): LpxCoreFeature<LpxCoreFeatureKind.Language> {\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.Language, [\r\n {\r\n provide: LPX_LANGUAGE,\r\n useValue: languageOptions.languages || [],\r\n },\r\n {\r\n provide: LPX_TRANSLATE_TOKEN,\r\n useValue: [LanguageTranslateDefaults],\r\n multi: true,\r\n },\r\n LanguageService,\r\n ]);\r\n}\r\n\r\nexport function withNavbar(\r\n navbarOptions = {} as LpxNavbarSettings,\r\n): LpxCoreFeature<LpxCoreFeatureKind.Navbar> {\r\n const { menuItems, contentBeforeRoutes, contentAfterRoutes } = navbarOptions;\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.Navbar, [\r\n {\r\n provide: LPX_MENU_ITEMS,\r\n useValue: menuItems || [],\r\n },\r\n {\r\n provide: CONTENT_AFTER_ROUTES,\r\n useValue: contentAfterRoutes || [],\r\n multi: true,\r\n },\r\n {\r\n provide: CONTENT_BEFORE_ROUTES,\r\n useValue: contentBeforeRoutes || [],\r\n multi: true,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withNavbarChild(\r\n navbarChildOptions = {} as Omit<LpxNavbarSettings, 'menuItems'>,\r\n): LpxCoreFeature<LpxCoreFeatureKind.NavbarChild> {\r\n return makeLpxCoreFeature(LpxCoreFeatureKind.NavbarChild, [\r\n {\r\n provide: CONTENT_AFTER_ROUTES,\r\n useValue: navbarChildOptions.contentAfterRoutes || [],\r\n multi: true,\r\n },\r\n {\r\n provide: CONTENT_BEFORE_ROUTES,\r\n useValue: navbarChildOptions.contentBeforeRoutes || [],\r\n multi: true,\r\n },\r\n ]);\r\n}\r\n\r\nexport function withLpxCoreOptions(\r\n options = {} as LpxCoreOptions,\r\n): LpxCoreFeature<LpxCoreFeatureKind>[] {\r\n const {\r\n responsiveSettings,\r\n window,\r\n iconSettings,\r\n languageSettings,\r\n navbarSettings,\r\n listenDirectionChanges,\r\n } = options;\r\n\r\n const iconOptions = withIcon(iconSettings);\r\n const languageOptions = withLanguage(languageSettings);\r\n const navbarOptions = withNavbar(navbarSettings);\r\n\r\n return [\r\n iconOptions,\r\n languageOptions,\r\n navbarOptions,\r\n makeLpxCoreFeature(LpxCoreFeatureKind.Options, [\r\n createDirectionProvider(listenDirectionChanges || true),\r\n createResponsiveProvider(responsiveSettings),\r\n createWindowProvider(window),\r\n ]),\r\n ];\r\n}\r\n\r\nexport function provideLpxBreadcrumb(): EnvironmentProviders {\r\n return provideAppInitializer(() => {\r\n const breadcrumb = inject(BreadcrumbRouteListenerService);\r\n breadcrumb.subscribeRoute();\r\n });\r\n}\r\n\r\nexport function provideLpxCore(\r\n ...features: LpxCoreFeature<LpxCoreFeatureKind>[]\r\n): EnvironmentProviders {\r\n const providers: (Provider | EnvironmentProviders)[] = [];\r\n const skipDefaults = features.some(\r\n (feature) => feature.ɵkind === LpxCoreFeatureKind.SkipDefaults,\r\n );\r\n\r\n if (!skipDefaults) {\r\n providers.push(\r\n provideLpxBreadcrumb(),\r\n ...LPX_STYLE_PROVIDERS,\r\n ...LPX_TRANSLATE_PROVIDERS,\r\n );\r\n }\r\n\r\n features.forEach(({ ɵproviders }) => providers.push(...ɵproviders));\r\n\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LpxVisibleDirective } from './directives/visible.directive';\r\nimport {\r\n LpxCoreOptions,\r\n provideLpxCore,\r\n withLpxCoreOptions,\r\n} from './providers';\r\n\r\n@NgModule({\r\n imports: [CommonModule, LpxVisibleDirective],\r\n})\r\nexport class LpxCoreModule {\r\n /**\r\n * @deprecated `LpxCoreModule.forRoot()` is deprecated. You can use `provideLpxCore` **function** instead.\r\n */\r\n static forRoot(options?: LpxCoreOptions): ModuleWithProviders<LpxCoreModule> {\r\n return {\r\n ngModule: LpxCoreModule,\r\n providers: [provideLpxCore(...withLpxCoreOptions(options))],\r\n };\r\n }\r\n}\r\n","import { inject, InjectionToken, makeStateKey, PLATFORM_ID, TransferState } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { LpxCookieStorageService } from '../services';\r\n\r\nexport const LPX_SSR_FLAG = makeStateKey<boolean>('SSR_FLAG');\r\n\r\nexport const LPX_APP_STARTED_WITH_SSR = new InjectionToken<boolean>('LPX_APP_STARTED_WITH_SSR', {\r\n providedIn: 'root',\r\n factory: () => {\r\n const platformId = inject(PLATFORM_ID);\r\n const cookieService = inject(LpxCookieStorageService);\r\n if (!isPlatformBrowser(platformId)) return true;\r\n const ts = inject(TransferState);\r\n const ssrEnabled = cookieService.getItem('ssr-init');\r\n // Remove the cookie after reading its value because it's only needed once\r\n cookieService.removeItem('ssr-init');\r\n return ts.get(LPX_SSR_FLAG, false) || ssrEnabled === 'true';\r\n },\r\n});\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-breadcrumb-panel]' })\r\nexport class BreadcrumbPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-content]' })\r\nexport class ContentPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-current-user-image-panel]' })\r\nexport class CurrentUserImagePanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-current-user-panel]' })\r\nexport class CurrentUserPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-footer-panel]' })\r\nexport class FooterPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-language-panel]', })\r\nexport class LanguagePanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-mobile-navbar-panel]', })\r\nexport class MobileNavbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-mobile-navbar-settings-panel]', })\r\nexport class MobileNavbarSettingsPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-mobile-navbar-profile-panel]', })\r\nexport class MobileNavbarProfilePanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-navbar-panel]', })\r\nexport class NavbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-navitem-panel]', })\r\nexport class NavitemPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-toolbar-panel]', })\r\nexport class ToolbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-top-navbar-panel]', })\r\nexport class TopNavbarPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({ selector: 'ng-template[lpx-settings-panel]', })\r\nexport class SettingsPanelDirective {\r template = inject<TemplateRef<any>>(TemplateRef);\n\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BreadcrumbPanelDirective } from './breadcrumb-panel.directive';\r\nimport { NavbarPanelDirective } from './navbar-panel.directive';\r\nimport { FooterPanelDirective } from './footer-panel.directive';\r\nimport { MobileNavbarPanelDirective } from './mobile-navbar-panel.directive';\r\nimport { ToolbarPanelDirective } from './toolbar-panel.directive';\r\nimport { TopNavbarPanelDirective } from './top-navbar-panel.directive';\r\nimport { SettingsPanelDirective } from './settings-panel.directive';\r\nimport { NavitemPanelDirective } from './navitem-panel.directive';\r\nimport { LogoPanelDirective } from './logo-panel.directive';\r\nimport { CurrentUserPanelDirective } from './current-user-panel.directive';\r\nimport { CurrentUserImagePanelDirective } from './current-user-image-panel.directive';\r\nimport { LanguagePanelDirective } from './language-panel.directive';\r\nimport { ContentPanelDirective } from './content-panel.directive';\r\nimport { MobileNavbarSettingsPanelDirective } from './mobile-navbar-settings-panel.directive';\r\nimport { MobileNavbarProfilePanelDirective } from './mobile-navbar-profile-panel.directive';\r\n\r\nconst declarationsAndExports = [\r\n BreadcrumbPanelDirective,\r\n ContentPanelDirective,\r\n CurrentUserImagePanelDirective,\r\n CurrentUserPanelDirective,\r\n FooterPanelDirective,\r\n LanguagePanelDirective,\r\n LogoPanelDirective,\r\n MobileNavbarPanelDirective,\r\n MobileNavbarSettingsPanelDirective,\r\n MobileNavbarProfilePanelDirective,\r\n NavbarPanelDirective,\r\n NavitemPanelDirective,\r\n SettingsPanelDirective,\r\n TopNavbarPanelDirective,\r\n ToolbarPanelDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...declarationsAndExports],\r\n exports: [...declarationsAndExports],\r\n})\r\nexport class PanelsModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToolbarItem } from '../../models/toolbar-item.model';\r\nimport { DataStore, sortItems } from '../../utils';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ToolbarService {\r\n private store = new DataStore({ items: <Array<ToolbarItem>>[] });\r\n\r\n items$ = this.store.sliceState(({ items }) => items);\r\n\r\n setItems(items: Array<ToolbarItem>): void {\r\n this.store.patch({ items: items.sort(sortItems) });\r\n }\r\n\r\n addItem(item: ToolbarItem): void {\r\n this.setItems([...this.store.state.items, item]);\r\n }\r\n\r\n patchItem(itemId: string | number, item: Omit<ToolbarItem, 'id'>): void {\r\n const { items } = this.store.state;\r\n const index = items.findIndex(({ id }) => id === itemId);\r\n if (index === -1) {\r\n return;\r\n }\r\n const updateItems = [...items];\r\n updateItems[index] = { id: itemId, ...item };\r\n this.setItems(updateItems);\r\n }\r\n\r\n removeItem(id: string | number): void {\r\n const { items } = this.store.state;\r\n const index = items.findIndex((item) => item.id === id);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n const updateItems = [...items.slice(0, index), ...items.slice(index + 1)];\r\n this.store.patch({ items: updateItems });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DOCUMENT","exportedDeclarations","RoutesService","map"],"mappings":"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"}