{"version":3,"file":"volosoft-ngx-lepton-x.mjs","sources":["../../../../libs/lepton-x/src/lib/theme/enums/style.enum.ts","../../../../libs/lepton-x/src/lib/theme/enums/theme-translate-keys.enum.ts","../../../../libs/lepton-x/src/lib/theme/models.ts","../../../../libs/lepton-x/src/lib/theme/defaults.ts","../../../../libs/lepton-x/src/lib/theme/tokens.ts","../../../../libs/lepton-x/src/lib/theme/theme.service.ts","../../../../libs/lepton-x/src/lib/tokens/style.token.ts","../../../../libs/lepton-x/src/lib/providers/style.provider.ts","../../../../libs/lepton-x/src/lib/providers/lepton-x.provider.ts","../../../../libs/lepton-x/src/lib/theme/theme.module.ts","../../../../libs/lepton-x/src/lib/components/card/components/card-footer.component.ts","../../../../libs/lepton-x/src/lib/components/card/components/card-header.component.ts","../../../../libs/lepton-x/src/lib/components/card/card.component.ts","../../../../libs/lepton-x/src/lib/components/card/card.component.html","../../../../libs/lepton-x/src/lib/components/card/card.module.ts","../../../../libs/lepton-x/src/lib/components/context-menu/components/context-menu-header.component.ts","../../../../libs/lepton-x/src/lib/components/context-menu/context-menu.component.ts","../../../../libs/lepton-x/src/lib/components/context-menu/context-menu.component.html","../../../../libs/lepton-x/src/lib/components/context-menu/components/context-menu-action-group.component.ts","../../../../libs/lepton-x/src/lib/components/context-menu/context-menu-toggle.directive.ts","../../../../libs/lepton-x/src/lib/components/context-menu/context-menu.module.ts","../../../../libs/lepton-x/src/lib/components/topbar-content/topbar-content.service.ts","../../../../libs/lepton-x/src/lib/components/topbar-content/topbar-content.component.ts","../../../../libs/lepton-x/src/lib/components/topbar-content/topbar-content.component.html","../../../../libs/lepton-x/src/lib/components/topbar-content/topbar-content.module.ts","../../../../libs/lepton-x/src/lib/lepton-x.module.ts","../../../../libs/lepton-x/src/volosoft-ngx-lepton-x.ts"],"sourcesContent":["export enum StyleNames {\r\n  Dark = 'dark',\r\n  Dim = 'dim',\r\n  Light = 'light',\r\n  System = 'system',\r\n}\r\n\r\nexport enum BundleNames {\r\n  BootstrapDark = 'bootstrap-dark',\r\n  BootstrapDim = 'bootstrap-dim',\r\n  BootstrapLight = 'bootstrap-light',\r\n  Dark = 'dark',\r\n  Dim = 'dim',\r\n  Light = 'light',\r\n  Ng = 'ng-bundle',\r\n}\r\n","export enum ThemeTranslateKeys {\r\n  AppearanceTitle = 'theme.settings.title',\r\n  DarkMode = 'theme.settings.darkMode',\r\n  LightMode = 'theme.settings.lightMode',\r\n  SemiDarkMode = 'theme.settings.semiDarkMode',\r\n  System = 'theme.settings.system',\r\n}\r\n\r\nexport type ThemeTranslateValues = {\r\n  [key in ThemeTranslateKeys]: string;\r\n};\r\n\r\nexport const ThemeTranslateDefaults: ThemeTranslateValues = {\r\n  [ThemeTranslateKeys.AppearanceTitle]: 'Appearance',\r\n  [ThemeTranslateKeys.DarkMode]: 'Dark',\r\n  [ThemeTranslateKeys.LightMode]: 'Light',\r\n  [ThemeTranslateKeys.SemiDarkMode]: 'Semi-Dark',\r\n  [ThemeTranslateKeys.System]: 'System',\r\n};\r\n","import { HasStyleFactory, LpxStyle } from '@volo/ngx-lepton-x.core';\r\n\r\nexport interface LpxThemeOptions {\r\n  localStorageKey: string;\r\n  disableSystemOption?: boolean;\r\n}\r\n\r\nexport type SystemKey = 'dark' | 'light';\r\n\r\nexport interface LpxThemeStyleConfig {\r\n  bundles: LpxStyle[];\r\n  styleName: string;\r\n  defaultTheme?: boolean;\r\n  label: string;\r\n  icon: string;\r\n  order?: number;\r\n  systemKey?: SystemKey;\r\n}\r\n\r\nexport class LpxTheme implements LpxThemeStyleConfig {\r\n  bundles: LpxStyle[];\r\n  styleName: string;\r\n  defaultTheme?: boolean;\r\n  label: string;\r\n  icon: string;\r\n  order?: number;\r\n  systemKey?: SystemKey;\r\n  constructor(args: LpxThemeStyleConfig) {\r\n    this.bundles = args.bundles;\r\n    this.styleName = args.styleName;\r\n    this.defaultTheme = args.defaultTheme;\r\n    this.label = args.label;\r\n    this.icon = args.icon;\r\n    this.order = args.order;\r\n    this.systemKey = args.systemKey;\r\n  }\r\n\r\n  updateBundle(bundle: LpxStyle) {\r\n    const updateIndex = this.bundles.findIndex(\r\n      (b) => bundle.bundleName === b.bundleName\r\n    );\r\n    if (updateIndex > -1) {\r\n      this.bundles[updateIndex] = bundle;\r\n    }\r\n  }\r\n\r\n  addBundle(bundle: LpxStyle) {\r\n    this.bundles.push(bundle);\r\n  }\r\n\r\n  deleteBundle(bundle: LpxStyle) {\r\n    const deleteIndex = this.bundles.findIndex(\r\n      (b) => bundle.bundleName === b.bundleName\r\n    );\r\n    if (deleteIndex > -1) {\r\n      this.bundles.splice(deleteIndex, 1);\r\n    }\r\n  }\r\n}\r\nexport type LpxThemes = Array<LpxTheme>;\r\n\r\nexport interface LpxThemeModuleOptions\r\n  extends LpxThemeOptions,\r\n    HasStyleFactory<LpxThemes> {}\r\n","import { BundleNames, StyleNames, ThemeTranslateKeys } from './enums';\r\nimport { LpxTheme, LpxThemeOptions, LpxThemes } from './models';\r\n\r\nexport const dimTheme = new LpxTheme({\r\n  bundles: [\r\n    {\r\n      bundleName: BundleNames.BootstrapDim,\r\n    },\r\n    {\r\n      bundleName: BundleNames.Dim,\r\n    },\r\n  ],\r\n  styleName: StyleNames.Dim,\r\n  icon: 'bi bi-brightness-alt-high-fill',\r\n  label: ThemeTranslateKeys.SemiDarkMode,\r\n});\r\n\r\nexport const darkTheme = new LpxTheme({\r\n  bundles: [\r\n    {\r\n      bundleName: BundleNames.BootstrapDark,\r\n    },\r\n    {\r\n      bundleName: BundleNames.Dark,\r\n    },\r\n  ],\r\n  styleName: StyleNames.Dark,\r\n  systemKey: StyleNames.Dark,\r\n  icon: 'bi bi-moon-fill',\r\n  label: ThemeTranslateKeys.DarkMode,\r\n});\r\n\r\nexport const lightTheme = new LpxTheme({\r\n  bundles: [\r\n    {\r\n      bundleName: BundleNames.BootstrapLight,\r\n    },\r\n    {\r\n      bundleName: BundleNames.Light,\r\n    },\r\n  ],\r\n  systemKey: StyleNames.Light,\r\n  styleName: StyleNames.Light,\r\n  icon: 'bi bi-sun-fill',\r\n  label: ThemeTranslateKeys.LightMode,\r\n});\r\n\r\nexport const LPX_THEME_DEFAULTS: LpxThemeOptions = {\r\n  localStorageKey: 'LPX_THEME',\r\n  disableSystemOption: false,\r\n};\r\nexport const LPX_THEME_STYLES_DEFAULTS: LpxThemes = [\r\n  lightTheme,\r\n  dimTheme,\r\n  darkTheme,\r\n];\r\nexport const ThemeLinkElemId = 'lpxTheme';\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxThemeOptions, LpxThemeStyleConfig } from './models';\r\n\r\nexport const LPX_THEME_OPTIONS = new InjectionToken<LpxThemeOptions>(\r\n  'LPX_THEME_SETTINGS'\r\n);\r\n\r\nexport const LPX_THEMES = new InjectionToken<LpxThemeStyleConfig[]>(\r\n  'LPX_THEMES'\r\n);\r\n\r\nexport const LPX_THEMES_FINAL = new InjectionToken<LpxThemeStyleConfig[]>(\r\n  'LPX_THEMES_FINAL'\r\n);\r\n","import {\r\n  LPX_APP_STARTED_WITH_SSR,\r\n  LpxCookieStorageService,\r\n  LpxLocalStorageService,\r\n} from '@volo/ngx-lepton-x.core';\r\nimport { inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\r\nimport {\r\n  DataStore,\r\n  LanguageService,\r\n  LpxNavbarItem,\r\n  LpxStyle,\r\n  StyleService,\r\n  WINDOW,\r\n} from '@volo/ngx-lepton-x.core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { fromEvent, EMPTY } from 'rxjs';\r\nimport {\r\n  distinctUntilKeyChanged,\r\n  filter,\r\n  map,\r\n  startWith,\r\n  takeWhile,\r\n} from 'rxjs/operators';\r\nimport { StyleNames, ThemeTranslateKeys } from './enums';\r\nimport {\r\n  LpxTheme,\r\n  LpxThemeOptions,\r\n  LpxThemes,\r\n  LpxThemeStyleConfig,\r\n  SystemKey,\r\n} from './models';\r\nimport { LPX_THEME_OPTIONS, LPX_THEMES } from './tokens';\r\n\r\n@Injectable()\r\nexport class ThemeService {\r\n  themeSettings = inject<LpxThemeOptions>(LPX_THEME_OPTIONS);\r\n  styles = inject<LpxThemes>(LPX_THEMES);\r\n  private injector = inject(Injector);\r\n  protected window = inject(WINDOW);\r\n  private languageService = inject(LanguageService);\r\n  private styleService = inject(StyleService);\r\n  private localStorageService = inject(LpxLocalStorageService);\r\n  private cookieStorageService = inject(LpxCookieStorageService);\r\n  private lpxAppStartedWithSsr = inject(LPX_APP_STARTED_WITH_SSR);\r\n  private platformId = inject(PLATFORM_ID);\r\n\r\n  readonly store = new DataStore({\r\n    styles: [] as LpxTheme[],\r\n    selectedStyle: {} as LpxTheme,\r\n  });\r\n\r\n  id = 'styles';\r\n\r\n  convertThemeToNavbarItem = (styles: LpxTheme[]): LpxNavbarItem[] => {\r\n    return styles.map((style) => ({\r\n      icon: style.icon,\r\n      text: style.label,\r\n      order: style.order,\r\n      id: style.styleName,\r\n      selected: style.styleName === this.selectedStyle.styleName,\r\n      action: () => {\r\n        if (this.selectedStyle.styleName === style.styleName) {\r\n          return true;\r\n        }\r\n        return this.setTheme(style);\r\n      },\r\n    }));\r\n  };\r\n\r\n  get selectedStyle(): LpxThemeStyleConfig {\r\n    return this.store.state.selectedStyle;\r\n  }\r\n\r\n  selectedStyle$ = this.store.sliceState((state) => state.selectedStyle);\r\n  styles$ = this.store.sliceState((state) => state.styles);\r\n  stylesAsNavbarItems$ = this.styles$.pipe(map(this.convertThemeToNavbarItem));\r\n  // TODO: PROVIDE API\r\n  stylesAsSettingsGroup$ = this.stylesAsNavbarItems$.pipe(\r\n    map((styles) => ({\r\n      text: ThemeTranslateKeys.AppearanceTitle,\r\n      icon: 'bi bi-palette-fill',\r\n      id: this.id,\r\n      children: styles,\r\n    })),\r\n  );\r\n\r\n  systemMediaQueryList = this.window?.matchMedia('(prefers-color-scheme: dark)');\r\n  systemThemeChange$ = this.systemMediaQueryList ? fromEvent<MediaQueryList>(\r\n    this.systemMediaQueryList,\r\n    'change',\r\n  ).pipe(\r\n    startWith(this.systemMediaQueryList),\r\n    map((list) => list.matches),\r\n    filter(() => this.selectedStyle.styleName === StyleNames.System),\r\n    takeWhile(() => !this.themeSettings.disableSystemOption)\r\n  ) : EMPTY;\r\n\r\n  get currentSystemTheme() {\r\n    return this.systemMediaQueryList?.matches ? 'dark' : 'light';\r\n  }\r\n\r\n  constructor() {\r\n    if (!this.themeSettings.disableSystemOption) {\r\n      this.createSystemOption();\r\n    }\r\n    this.subscribeDirectionChange();\r\n  }\r\n\r\n  getInitialTheme() {\r\n    const defaultStyle = this.styles.find(({ defaultTheme }) => defaultTheme);\r\n    const savedStyle = this.styles.find(\r\n      ({ styleName }) =>\r\n        styleName === (this.lpxAppStartedWithSsr ? this.cookieStorageService.getItem(this.themeSettings.localStorageKey) : this.localStorageService.getItem(this.themeSettings.localStorageKey))\r\n    );\r\n    if (this.themeSettings.disableSystemOption) {\r\n      return savedStyle || defaultStyle;\r\n    } else {\r\n      const system = this.findLpxStyleByName(StyleNames.System);\r\n      return savedStyle || defaultStyle || system;\r\n    }\r\n  }\r\n\r\n  createSystemOption() {\r\n    const systemOption = new LpxTheme({\r\n      styleName: StyleNames.System,\r\n      label: ThemeTranslateKeys.System,\r\n      icon: 'bi bi-laptop-fill',\r\n      bundles: [],\r\n    });\r\n    this.styles.push(systemOption);\r\n    this.systemThemeChange$.subscribe(() => {\r\n      this.setTheme(systemOption);\r\n    });\r\n  }\r\n\r\n  async initTheme(): Promise<void> {\r\n    const style = this.getInitialTheme();\r\n    if (style) {\r\n      await this.setTheme(style);\r\n      this.store.patch({ styles: this.styles });\r\n    }\r\n    return Promise.resolve();\r\n  }\r\n\r\n  async setTheme(style?: LpxTheme): Promise<boolean> {\r\n    if (!style) {\r\n      return Promise.resolve(true);\r\n    }\r\n    const styleService = this.injector.get(StyleService);\r\n    const { styleName, bundles, systemTheme } = this.getBundlesAndStyle(style);\r\n\r\n    for (const bundle of bundles) {\r\n      await styleService.loadStyle(\r\n        bundle,\r\n        this.languageService.selectedLanguage?.isRTL ? 'rtl' : 'ltr',\r\n      );\r\n    }\r\n    this.activateStyle(styleName, systemTheme);\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      if (this.lpxAppStartedWithSsr) {\r\n        this.cookieStorageService.setItem(this.themeSettings.localStorageKey, style.styleName);\r\n      } else {\r\n        this.localStorageService.setItem(this.themeSettings.localStorageKey, style.styleName);\r\n      }\r\n    }\r\n    this.store.patch({ selectedStyle: style });\r\n\r\n    return Promise.resolve(true);\r\n  }\r\n\r\n  private getBundlesAndStyle(style: LpxTheme) {\r\n    let styleName = style.styleName;\r\n    let bundles = style.bundles;\r\n    let systemTheme: SystemKey = this.currentSystemTheme;\r\n\r\n    if (style.styleName === StyleNames.System) {\r\n      const activeStyle = this.styles.find(\r\n        (s) => s.systemKey === this.currentSystemTheme,\r\n      );\r\n\r\n      if (activeStyle) {\r\n        styleName = activeStyle.styleName;\r\n        bundles = activeStyle.bundles;\r\n      } else {\r\n        throw new Error(\r\n          `System style ${this.currentSystemTheme} not found.\r\n          Please add systemKey with value ${this.currentSystemTheme} to the style`,\r\n        );\r\n      }\r\n      /*\r\n       * The reason for this opposite condition is when the user changes the system theme old theme is the opposite of the current system theme\r\n       * */\r\n      systemTheme = this.currentSystemTheme === 'dark' ? 'light' : 'dark';\r\n    }\r\n    return { styleName, bundles, systemTheme };\r\n  }\r\n\r\n  private activateStyle(styleName: string, systemTheme: SystemKey) {\r\n    if (this.selectedStyle.styleName === StyleNames.System) {\r\n      const selectedStyle = this.styles.find(\r\n        (s) => s.systemKey === systemTheme,\r\n      );\r\n      if (selectedStyle) {\r\n        this.removeOldThemeStyles(selectedStyle.bundles);\r\n        this.setThemeClassToBody(styleName, selectedStyle.styleName);\r\n      }\r\n    } else {\r\n      if (this.selectedStyle.styleName) {\r\n        this.removeOldThemeStyles(this.selectedStyle.bundles);\r\n      }\r\n      this.setThemeClassToBody(styleName, this.selectedStyle.styleName);\r\n    }\r\n  }\r\n\r\n  private findLpxStyleByName(styleName: string) {\r\n    return this.styles.find((style) => style.styleName === styleName);\r\n  }\r\n\r\n  private setThemeClassToBody(styleName: string, selectedStyleName?: string) {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      const body = document.querySelector('body');\r\n      if (body) {\r\n        if (selectedStyleName) {\r\n          body.classList.remove(`lpx-theme-${selectedStyleName}`);\r\n        }\r\n        body.classList.add(`lpx-theme-${styleName}`);\r\n\r\n        // Set Bootstrap data-bs-theme attribute\r\n        if (styleName === 'dark') {\r\n          body.setAttribute('data-bs-theme', 'dark');\r\n        } else if (styleName === 'light') {\r\n          body.setAttribute('data-bs-theme', 'light');\r\n        } else {\r\n          body.removeAttribute('data-bs-theme');\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  private removeOldThemeStyles(bundles: LpxStyle[]) {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      bundles.forEach((bundle) => {\r\n        const elem = document.querySelector(`link#${bundle.bundleName}`);\r\n        elem?.remove();\r\n      });\r\n    }\r\n  }\r\n\r\n  private subscribeDirectionChange() {\r\n    this.languageService.languageChange$\r\n      .pipe(distinctUntilKeyChanged('isRTL'))\r\n      .subscribe(async (lang) => {\r\n        const bundles = this.selectedStyle.bundles || [];\r\n        if (\r\n          !bundles.length &&\r\n          this.selectedStyle.styleName === StyleNames.System\r\n        ) {\r\n          const selectedStyle = this.styles.find(\r\n            (s) => s.systemKey === this.currentSystemTheme,\r\n          );\r\n          if (selectedStyle) {\r\n            bundles.push(...selectedStyle.bundles);\r\n          }\r\n        }\r\n        const direction = lang?.isRTL ? 'rtl' : 'ltr';\r\n        for (const bundle of this.selectedStyle.bundles || []) {\r\n          await this.styleService.replaceStyle(bundle, direction);\r\n        }\r\n      });\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { LpxStyles } from '@volo/ngx-lepton-x.core';\r\n\r\nexport const LPX_PRO_STYLE_TOKEN = new InjectionToken<LpxStyles>(\r\n  'LPX_PRO_STYLE_TOKEN'\r\n);\r\n","import { inject, provideAppInitializer } from '@angular/core';\r\nimport {\r\n  createStyleFactory,\r\n  LPX_INITIAL_STYLES,\r\n  LPX_LAYOUT_STYLE_FINAL,\r\n  LPX_STYLE_FINAL,\r\n  LpxStyleFactory,\r\n  styleLoadFactory,\r\n} from '@volo/ngx-lepton-x.core';\r\nimport { LPX_PRO_STYLE_TOKEN } from '../tokens/style.token';\r\n\r\n// TODO: make generator function in core\r\nexport const getLpxProStyleProviders = (styleFactory?: LpxStyleFactory) => [\r\n  provideAppInitializer(() => {\r\n    inject(LPX_PRO_STYLE_TOKEN);\r\n  }),\r\n  {\r\n    provide: LPX_PRO_STYLE_TOKEN,\r\n    deps: [LPX_INITIAL_STYLES, LPX_LAYOUT_STYLE_FINAL],\r\n    useFactory: styleLoadFactory,\r\n  },\r\n  {\r\n    provide: LPX_STYLE_FINAL,\r\n    deps: [LPX_PRO_STYLE_TOKEN],\r\n    useFactory: createStyleFactory(styleFactory),\r\n  },\r\n];\r\n","import {\r\n  EnvironmentProviders,\r\n  inject,\r\n  makeEnvironmentProviders,\r\n  provideAppInitializer,\r\n  Provider,\r\n} from '@angular/core';\r\nimport {\r\n  createStyleFactory,\r\n  LPX_TRANSLATE_TOKEN,\r\n  LpxStyles,\r\n  provideLpxCore,\r\n  withLpxCoreOptions,\r\n} from '@volo/ngx-lepton-x.core';\r\nimport { THEME_CHANGE_TOKEN } from '@abp/ng.theme.shared';\r\nimport { LpxOptions } from '../models';\r\nimport {\r\n  LPX_THEME_DEFAULTS,\r\n  LPX_THEME_OPTIONS,\r\n  LPX_THEME_STYLES_DEFAULTS,\r\n  LPX_THEMES,\r\n  LPX_THEMES_FINAL,\r\n  LpxThemeModuleOptions,\r\n  LpxThemes,\r\n  ThemeService,\r\n} from '../theme';\r\nimport { ThemeTranslateDefaults } from '../theme/enums/theme-translate-keys.enum';\r\nimport { getLpxProStyleProviders } from './style.provider';\r\n\r\nexport enum LpxFeatureKind {\r\n  Options,\r\n  DefaultTheme,\r\n}\r\n\r\nexport interface LpxFeature<KindT extends LpxFeatureKind> {\r\n  ɵkind: KindT;\r\n  ɵproviders: (Provider | EnvironmentProviders)[];\r\n}\r\n\r\nfunction makeLpxFeature<KindT extends LpxFeatureKind>(\r\n  kind: KindT,\r\n  providers: (Provider | EnvironmentProviders)[],\r\n): LpxFeature<KindT> {\r\n  return {\r\n    ɵkind: kind,\r\n    ɵproviders: providers,\r\n  };\r\n}\r\n\r\nexport function withLpxThemeDefaults(\r\n  defaultTheme = '' as string,\r\n): LpxFeature<LpxFeatureKind.DefaultTheme> {\r\n  if (defaultTheme) {\r\n    LPX_THEME_STYLES_DEFAULTS.forEach((theme) => {\r\n      theme.defaultTheme = theme.styleName === defaultTheme;\r\n    });\r\n  }\r\n  return makeLpxFeature(LpxFeatureKind.DefaultTheme, [\r\n    {\r\n      provide: LPX_THEMES,\r\n      useValue: LPX_THEME_STYLES_DEFAULTS,\r\n    },\r\n  ]);\r\n}\r\n\r\nexport function withLpxThemeOptions(\r\n  options = {} as LpxThemeModuleOptions,\r\n): LpxFeature<LpxFeatureKind.Options> {\r\n  return makeLpxFeature(LpxFeatureKind.Options, [\r\n    {\r\n      provide: LPX_THEME_OPTIONS,\r\n      useValue: options || LPX_THEME_DEFAULTS,\r\n    },\r\n    {\r\n      provide: LPX_THEMES_FINAL,\r\n      deps: [LPX_THEMES],\r\n      useFactory: createStyleFactory<LpxThemes>(options.styleFactory),\r\n    },\r\n  ]);\r\n}\r\n\r\n/**\r\n * @description Provides the core LPX theme functionality including:\r\n * - Theme service initialization\r\n * - Default theme translation tokens\r\n */\r\nexport function provideLpxTheme(\r\n  ...features: LpxFeature<LpxFeatureKind>[]\r\n): EnvironmentProviders {\r\n  const providers: (Provider | EnvironmentProviders)[] = [\r\n    ThemeService,\r\n    provideAppInitializer(() => {\r\n      const themeService = inject(ThemeService);\r\n      themeService.initTheme();\r\n    }),\r\n    {\r\n      provide: LPX_TRANSLATE_TOKEN,\r\n      useValue: [ThemeTranslateDefaults],\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: THEME_CHANGE_TOKEN,\r\n      useFactory: (themeService: ThemeService) => themeService.selectedStyle$,\r\n      deps: [ThemeService],\r\n    },\r\n  ];\r\n\r\n  if (!features.length) {\r\n    providers.push([\r\n      {\r\n        provide: LPX_THEME_OPTIONS,\r\n        useValue: LPX_THEME_DEFAULTS,\r\n      },\r\n      {\r\n        provide: LPX_THEMES,\r\n        useValue: LPX_THEME_STYLES_DEFAULTS,\r\n      },\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\r\nexport function withLpxOptions(\r\n  options = {} as LpxOptions,\r\n): LpxFeature<LpxFeatureKind.Options> {\r\n  const { defaultTheme, themeOptions, styleFactory } = options;\r\n  return makeLpxFeature(LpxFeatureKind.Options, [\r\n    provideLpxCore(...withLpxCoreOptions(options)),\r\n    provideLpxTheme(\r\n      withLpxThemeDefaults(defaultTheme),\r\n      withLpxThemeOptions(themeOptions),\r\n    ),\r\n    ...getLpxProStyleProviders(styleFactory),\r\n  ]);\r\n}\r\n/**\r\n * @description Provides the complete LPX functionality by combining all specified features.\r\n * Acts as the main entry point for LPX configuration.\r\n *\r\n */\r\nexport function provideLpx(\r\n  ...features: LpxFeature<LpxFeatureKind>[]\r\n): EnvironmentProviders {\r\n  const providers: (Provider | EnvironmentProviders)[] = [];\r\n\r\n  if (!features.length) {\r\n    const defaultStyleFactory = (styles: LpxStyles) => {\r\n      styles.push({ bundleName: 'abp-bundle' });\r\n      return styles;\r\n    };\r\n    providers.push(\r\n      provideLpxTheme(),\r\n      provideLpxCore(...withLpxCoreOptions()),\r\n      getLpxProStyleProviders(defaultStyleFactory),\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, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ThemeService } from './theme.service';\r\nimport { LpxThemeModuleOptions } from './models';\r\nimport {\r\n  provideLpxTheme,\r\n  withLpxThemeDefaults,\r\n  withLpxThemeOptions,\r\n} from '../providers';\r\n\r\nexport function initTheme() {\r\n  const themeService = inject(ThemeService);\r\n  themeService.initTheme();\r\n}\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n})\r\nexport class LpxThemeModule {\r\n  /**\r\n   * @deprecated `LpxThemeModule.forRoot()` is deprecated. You can use `provideLpxTheme` **function** instead.\r\n   */\r\n  static forRoot(\r\n    options?: LpxThemeModuleOptions,\r\n    defaultTheme?: string,\r\n  ): ModuleWithProviders<LpxThemeModule> {\r\n    return {\r\n      ngModule: LpxThemeModule,\r\n      providers: [\r\n        provideLpxTheme(\r\n          withLpxThemeDefaults(defaultTheme),\r\n          withLpxThemeOptions(options),\r\n        ),\r\n      ],\r\n    };\r\n  }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lpx-card-footer',\r\n  template: '<ng-content></ng-content>',\r\n})\r\nexport class CardFooterComponent {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lpx-card-header',\r\n  template: '<ng-content></ng-content>',\r\n})\r\nexport class CardHeaderComponent {}\r\n","import { Component, ContentChild } from '@angular/core';\r\nimport { CardFooterComponent, CardHeaderComponent } from './components';\r\n\r\n@Component({\r\n  selector: 'lpx-card',\r\n  templateUrl: './card.component.html',\r\n})\r\nexport class CardComponent {\r\n  @ContentChild(CardFooterComponent)\r\n  cardFooterTemplate?: CardFooterComponent;\r\n\r\n  @ContentChild(CardHeaderComponent)\r\n  cardHeaderTemplate?: CardHeaderComponent;\r\n}\r\n","<div class=\"card\">\r\n  @if (cardHeaderTemplate) {\r\n    <div class=\"card-header\">\r\n      <ng-content select=\"lpx-card-header\"></ng-content>\r\n    </div>\r\n  }\r\n  <div class=\"card-body\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n  @if (cardFooterTemplate) {\r\n    <div class=\"card-footer\">\r\n      <ng-content select=\"lpx-card-footer\"></ng-content>\r\n    </div>\r\n  }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CardComponent } from './card.component';\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardFooterComponent } from './components/card-footer.component';\r\nimport { CardHeaderComponent } from './components/card-header.component';\r\n\r\nconst declarationsWithExports = [\r\n  CardComponent,\r\n  CardFooterComponent,\r\n  CardHeaderComponent,\r\n];\r\n\r\n@NgModule({\r\n  imports: [CommonModule, ...declarationsWithExports],\r\n  exports: [...declarationsWithExports],\r\n})\r\nexport class CardModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lpx-context-menu-header',\r\n  template: '<ng-content></ng-content>',\r\n})\r\nexport class ContextMenuHeaderComponent {}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChild,\r\n  ViewEncapsulation,\r\n  inject,\r\n} from '@angular/core';\r\nimport { ContextMenuHeaderComponent } from './components/context-menu-header.component';\r\n\r\n@Component({\r\n  selector: 'lpx-context-menu',\r\n  templateUrl: './context-menu.component.html',\r\n  encapsulation: ViewEncapsulation.None,\r\n  exportAs: 'lpx-context-menu',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ContextMenuComponent {\r\n  protected readonly cdRef = inject(ChangeDetectorRef);\r\n  @ContentChild(ContextMenuHeaderComponent) header?: ContextMenuHeaderComponent;\r\n  private _visible = false;\r\n\r\n  get visible(): boolean {\r\n    return this._visible;\r\n  }\r\n\r\n  set visible(value: boolean) {\r\n    this._visible = value;\r\n    this.cdRef.detectChanges();\r\n  }\r\n\r\n  open(): void {\r\n    this.visible = true;\r\n  }\r\n  close(): void {\r\n    this.visible = false;\r\n  }\r\n  toggle(status?: boolean): void {\r\n    this.visible = status !== undefined ? status : !this._visible;\r\n  }\r\n}\r\n","<div class=\"lpx-context-menu\" [class.show]=\"visible\">\r\n  @if (header) {\r\n    <div class=\"lpx-context-menu--header\">\r\n      <ng-content select=\"lpx-context-menu-header\" />\r\n    </div>\r\n  }\r\n  <ng-content />\r\n</div>\r\n","import { Component, HostBinding } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lpx-context-menu-action-group',\r\n  template: ` <ng-content></ng-content> `,\r\n})\r\nexport class ContextMenuActionGroupComponent {\r\n  @HostBinding('class')\r\n  public hostClass = 'lpx-context-menu--action-group';\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { ContextMenuComponent } from './context-menu.component';\r\n\r\n@Directive({ selector: '[lpxCtxToggle]' })\r\nexport class ContextMenuToggleDirective {\r\n  @Input('lpxCtxToggle')\r\n  lpxCtx!: ContextMenuComponent;\r\n\r\n  @HostListener('click')\r\n  clickOnItem(): void {\r\n    this.lpxCtx.toggle();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LpxBrandLogoModule } from '@volo/ngx-lepton-x.core';\r\nimport { ContextMenuHeaderComponent } from './components/context-menu-header.component';\r\nimport { ContextMenuActionGroupComponent } from './components/context-menu-action-group.component';\r\nimport { ContextMenuComponent } from './context-menu.component';\r\nimport { ContextMenuToggleDirective } from './context-menu-toggle.directive';\r\n\r\nconst declarationsWithExports = [\r\n  ContextMenuComponent,\r\n  ContextMenuHeaderComponent,\r\n  ContextMenuActionGroupComponent,\r\n  ContextMenuToggleDirective,\r\n];\r\n\r\n@NgModule({\r\n  exports: [...declarationsWithExports],\r\n  imports: [CommonModule, LpxBrandLogoModule, ...declarationsWithExports],\r\n})\r\nexport class LpxContextMenuModule {}\r\n","import { Injectable, Injector, TemplateRef, Type } from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { DataStore, sortItems } from '@volo/ngx-lepton-x.core';\r\n\r\nexport interface TopBarItem {\r\n  action?: () => void;\r\n  component?: Type<any>;\r\n  injector?: Injector;\r\n  html?: string | SafeHtml;\r\n  id: string | number;\r\n  order?: number;\r\n  template?: TemplateRef<any>;\r\n  visible?: () => boolean;\r\n}\r\n\r\ninterface TopbarData {\r\n  items: Array<TopBarItem>;\r\n}\r\n\r\n// TODO: muhammed: find out how to abstract for TobparContentService and ToolbarService\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class TopbarContentService {\r\n  protected store = new DataStore({ items: [] } as TopbarData);\r\n\r\n  items$ = this.store.sliceState(({ items }) => items);\r\n\r\n  setItems(items: Array<TopBarItem>): void {\r\n    this.store.patch({ items: items.sort(sortItems) });\r\n  }\r\n\r\n  addItem(item: TopBarItem): void {\r\n    this.setItems([...this.store.state.items, item]);\r\n  }\r\n\r\n  patchItem(itemId: string | number, item: Omit<TopBarItem, '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","import { Component, Injector, inject } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n  NgComponentOutlet,\r\n  NgTemplateOutlet,\r\n  AsyncPipe,\r\n} from '@angular/common';\r\nimport { TopbarContentService, TopBarItem } from './topbar-content.service';\r\n\r\n@Component({\r\n  selector: 'lpx-topbar-content',\r\n  templateUrl: './topbar-content.component.html',\r\n  imports: [NgComponentOutlet, NgTemplateOutlet, AsyncPipe],\r\n})\r\nexport class TopbarContentComponent {\r\n  topbarContent = inject(TopbarContentService);\r\n  sanitizer = inject(DomSanitizer);\r\n  injector = inject(Injector);\r\n\r\n  items$ = this.topbarContent.items$.pipe(\r\n    map((items) =>\r\n      items.map((item) =>\r\n        item.html && typeof item.html === 'string'\r\n          ? { ...item, html: this.sanitizer.bypassSecurityTrustHtml(item.html) }\r\n          : item,\r\n      ),\r\n    ),\r\n  );\r\n\r\n  actionClick(item: TopBarItem): void {\r\n    if (item.action) {\r\n      item.action();\r\n    }\r\n  }\r\n}\r\n","@for (item of items$ | async; track $index) {\r\n  @if (item.component) {\r\n    <ng-container\r\n      *ngComponentOutlet=\"item.component; injector: item.injector || injector\"\r\n    ></ng-container>\r\n  }\r\n  @if (item.template) {\r\n    <ng-container [ngTemplateOutlet]=\"item.template\"></ng-container>\r\n  }\r\n\r\n  @if (item.html) {\r\n    <div [innerHtml]=\"item.html\" (click)=\"actionClick(item)\"></div>\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { TopbarContentComponent } from './topbar-content.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n  exports: [TopbarContentComponent],\r\n  imports: [CommonModule, TopbarContentComponent],\r\n})\r\nexport class LpxTopbarContentModule {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { LpxCoreModule } from '@volo/ngx-lepton-x.core';\r\nimport { LpxOptions } from './models/lpx-options';\r\nimport { LpxThemeModule } from './theme/theme.module';\r\nimport { provideLpx, withLpxOptions } from './providers';\r\n\r\n@NgModule({\r\n  imports: [LpxCoreModule, LpxThemeModule],\r\n})\r\nexport class LpxModule {\r\n  /**\r\n   * @deprecated `LpxModule.forRoot()` is deprecated. You can use `provideLpx` **function** instead.\r\n   */\r\n  public static forRoot(options?: LpxOptions): ModuleWithProviders<LpxModule> {\r\n    return {\r\n      ngModule: LpxModule,\r\n      providers: [provideLpx(withLpxOptions(options))],\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["declarationsWithExports"],"mappings":"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"}